# REST API: globális csoportok kezelése

> Globális kiegészítő-csoport létrehozása, módosítása, bővítése és szűkítése a REST API-val, curl példákkal.

A példákkal globális kiegészítő-csoportot hozhatsz létre és tarthatsz karban a WooCommerce REST API-val. A végpontok és mezők leírása a REST API referenciában van.

## Előkészületek

- Tesztboltot használj, amelyen a WooCommerce és a Product Add-Ons aktív.
- Hozz létre WooCommerce REST API-kulcsot olvasási és írási joggal, és HTTPS-en keresztül hívd a boltot.
- Cseréld a példában szereplő címet és kulcsot a sajátodra. Valódi kulcsot soha ne tegyél verziókezelőbe.
- A kérések egymásra épülnek. A létrehozó kérés válaszából jegyezd fel a csoport azonosítóját és a kiegészítők azonosítóit, és a későbbi kérésekben ezeket használd a példaértékek helyett.
- Kategóriakorlátozáshoz a `restrict_to_categories` mezőben termékkategória-azonosítók tömbjét küldd. Üres tömbbel a csoport minden termékre érvényes.
- A `PUT` kérés, amely tartalmazza a kiegészítők tömbjét, felülírja a csoport tagságát: minden megtartandó kiegészítőt vegyél bele. Ha egy opciót kihagysz a frissített `options` tömbből, az opció törlődik.

## 1. Csoport létrehozása két kiegészítővel

A válaszban megkapod a következő lépésekhez szükséges azonosítókat.

```bash
curl -X POST \
  https://example.com/wp-json/wc-product-add-ons/v2/global-add-ons \
  -u customer_key:customer_secret \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Személyre szabás",
  "priority": 5,
  "restrict_to_categories": [],
  "fields": [
    {
      "name": "Gravírozás",
      "title_format": "label",
      "description": "Kézi gravírozás a gyűrűre",
      "type": "custom_text",
      "display": "select",
      "restrictions_type": "any_text",
      "price_type": "flat_fee",
      "price": "100",
      "placeholder": "Neked",
      "min": 0,
      "max": 10
    },
    {
      "name": "Hozzáillő tű",
      "type": "multiple_choice",
      "required": false,
      "title_format": "label",
      "default": "1",
      "options": [
        {
          "label": "Ezüst",
          "price": "30",
          "price_type": "flat_fee",
          "visibility": true
        },
        {
          "label": "Arany",
          "price": "45",
          "price_type": "flat_fee",
          "visibility": true
        }
      ]
    }
  ]
}'
```

## 2. Kiegészítő módosítása és opció hozzáadása

A kérés átnevezi az első kiegészítőt, átállítja az árát és a legnagyobb hosszát, a másodiknál pedig új opciót (platina) ad hozzá. A meglévő opciókat is el kell küldeni, különben törlődnek. A csoport neve és a kategóriakorlátozás is frissül.

```bash
curl -X PUT \
  https://example.com/wp-json/wc-product-add-ons/v2/global-add-ons/123 \
  -u customer_key:customer_secret \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Személyre szabás gyűrűkhöz",
  "restrict_to_categories": [
    22
  ],
  "fields": [
    {
      "id": 1719406272,
      "name": "Kézi gravírozás",
      "price": "120",
      "max": 12
    },
    {
      "id": 1719406273,
      "options": [
        {
          "label": "Ezüst",
          "price": "30",
          "price_type": "flat_fee",
          "visibility": true
        },
        {
          "label": "Arany",
          "price": "45",
          "price_type": "flat_fee",
          "visibility": true
        },
        {
          "label": "Platina",
          "price": "50",
          "price_type": "flat_fee",
          "visibility": true
        }
      ]
    }
  ]
}'
```

## 3. Új kiegészítő hozzáadása

A meglévő kiegészítőket azonosítóval jelöld meg, az újat pedig a teljes leírásával add hozzá.

```bash
curl -X PUT \
  https://example.com/wp-json/wc-product-add-ons/v2/global-add-ons/123 \
  -u customer_key:customer_secret \
  -H "Content-Type: application/json" \
  -d '{
  "fields": [
    {
      "id": 1719406272
    },
    {
      "id": 1719406273
    },
    {
      "name": "Díszdoboz egyedi szöveggel",
      "type": "custom_text",
      "price_type": "quantity_based",
      "price": "20"
    }
  ]
}'
```

## 4. Kiegészítő törlése

Sorold fel azokat a kiegészítőket, amelyeket meg akarsz tartani. A kihagyottak törlődnek a csoportból.

```bash
curl -X PUT \
  https://example.com/wp-json/wc-product-add-ons/v2/global-add-ons/123 \
  -u customer_key:customer_secret \
  -H "Content-Type: application/json" \
  -d '{
  "fields": [
    {
      "id": 1719406272
    },
    {
      "id": 1719406273
    }
  ]
}'
```

## Ellenőrzés és hibaelhárítás

Minden módosítás után olvasd vissza a csoportot `GET` kéréssel, és nézd meg, hogy a kiegészítők azonosítói, értékei és opciói a kívántak-e.

- Ha a kérés hibával tér vissza, ellenőrizd a végpontot, a HTTPS-kapcsolatot, a kulcs jogosultságait és az azonosítókat.
- Ha egy kiegészítő eltűnt, hasonlítsd össze a frissítésben elküldött teljes tömböt azzal, amit meg akartál tartani.
