# REST API: referencia

> A Product Add-Ons REST API végpontjai, a globális csoportok és a kiegészítők mezői, a termékvégpont kiegészítései.

Ez a fejezet fejlesztőknek szól. A REST API-val a globális kiegészítő-csoportokat és a termékszintű kiegészítőket programból is kezelheted. Éles boltban ne próbálgasd: használj tesztboltot, és olyan WooCommerce REST API-kulcsot, amelynek megfelelő jogosultsága van (olvasás és írás). A példákban szereplő azonosítókat cseréld a saját boltod értékeire.

> **Figyelem**
>
> A csoportok és a termékek frissítésekor az a kiegészítő, amelyet kihagysz a kérésből, törlődik. Mindig küldd el az összes mezőt, amelyet meg akarsz tartani.

## Globális csoportok végpontjai

A globális kiegészítők két végponton érhetők el:

- `wc-product-add-ons/v2/global-add-ons`
- `wc-product-add-ons/v2/global-add-ons/<csoport-azonosító>`

### A csoport tulajdonságai

| Tulajdonság | Típus | Hozzáférés | Jelentés |
| --- | --- | --- | --- |
| `id` | egész szám | csak olvasható | A globális csoport azonosítója. |
| `name` | szöveg | olvasható, írható | A csoport neve. |
| `priority` | egész szám | olvasható, írható | A csoport sorrendje. |
| `restrict_to_categories` | egész számok tömbje | olvasható, írható | Termékkategória-azonosítók tömbje. Üres tömb esetén a csoport minden termékre érvényes. A válasz kategória-objektumokat ad, azonosítóval és névvel. |
| `fields` | objektumok tömbje | olvasható, írható | A csoport kiegészítői és azok opciói (lásd lent). |

### A kiegészítő tulajdonságai

Ezek a `fields` (globális csoport) és az `addons` (termék) tömb elemeinek mezői.

| Tulajdonság | Típus | Jelentés |
| --- | --- | --- |
| `id` | egész szám, csak olvasható | A kiegészítő egyedi azonosítója. |
| `name` | szöveg | A kiegészítő neve. |
| `title_format` | szöveg | A cím megjelenítése. Értékek: `label` (felirat), `heading` (címsor), `hide` (rejtett). |
| `default` | szöveg | Alapértelmezett érték, illetve az előre kiválasztott opciók sorszáma. Vásárló által megadott ár, mennyiség, többválasztós és jelölőnégyzetes mezőnél használható. |
| `description_enable` | logikai, csak olvasható | Be van-e kapcsolva a leírás. |
| `description` | szöveg | A kiegészítő leírása. |
| `placeholder_enable` | logikai, csak olvasható | Be van-e kapcsolva a helyőrző szöveg. |
| `placeholder` | szöveg | Helyőrző szöveg, csak rövid és hosszú szöveg mezőtípusnál. |
| `type` | szöveg | A mező típusa. Értékek: `multiple_choice`, `checkbox`, `custom_text`, `custom_textarea`, `file_upload`, `custom_price`, `input_multiplier`, `heading`, `datepicker`. |
| `display` | szöveg | A többválasztós mező megjelenése. Értékek: `select` (legördülő lista), `radiobutton` (rádiógombok), `images` (képek). |
| `position` | egész szám | A kiegészítő helye a terméken. |
| `required` | logikai | Kötelező-e kitölteni. |
| `restrictions` | logikai, csak olvasható | Be vannak-e kapcsolva a legkisebb és legnagyobb értékre vonatkozó korlátok (ár vagy szöveghossz). |
| `restrictions_type` | szöveg | A rövid szöveg mező bevitelének korlátozása. Értékek: `any_text`, `only_letters`, `only_numbers`, `only_letters_numbers`, `email`. |
| `adjust_price` | logikai, csak olvasható | Módosítja-e a kiegészítő a termék árát. |
| `price_type` | szöveg | A díj típusa. Értékek: `flat_fee` (fix), `quantity_based` (mennyiségalapú), `percentage_based` (százalékalapú). |
| `price` | szöveg | A kiegészítő díja, számként írt szöveg. |
| `min` | szöveg | Legkisebb megengedett bevitel (rövid és hosszú szöveg, vásárló által megadott ár, mennyiség). |
| `max` | szöveg | Legnagyobb megengedett bevitel, ugyanezekhez a típusokhoz. |
| `options` | objektumok tömbje | A többválasztós és a jelölőnégyzetes mező opciói. |

### Az opciók tulajdonságai

| Tulajdonság | Típus | Jelentés |
| --- | --- | --- |
| `label` | szöveg | Az opció felirata. |
| `price` | szöveg | Az opció díja, számként írt szöveg. |
| `price_type` | szöveg | A díj típusa: `flat_fee`, `quantity_based` vagy `percentage_based`. |
| `image` | egész szám | A médiatár képének azonosítója, ha a megjelenés `images`; különben 0. |
| `visibility` | logikai | Látható-e az opció. |

## A termékvégpont kiegészítései

A bővítmény a WooCommerce `v3/products` végpontjának válaszát két tulajdonsággal bővíti:

- `exclude_global_add_ons`: logikai érték, amely megmondja, hogy a globális kiegészítők érvényesek-e a termékre.
- `addons`: a termékszintű kiegészítők tömbje, a fenti kiegészítő-tulajdonságokkal.

A `products` végpont műveletei:

| Művelet | Mit csinál |
| --- | --- |
| `GET`, `context=view` | A termékre érvényes termékszintű és globális kiegészítőket adja vissza, ahogy az egyedi termékoldalon látszanak. |
| `GET`, `context=edit` | Csak a termékszintű kiegészítőket adja vissza. |
| `POST` | Új terméket hoz létre a kiegészítőkkel együtt, egy kéréssel. |
| `PUT` | Meglévő termék kiegészítőit hozza létre, módosítja vagy törli. |
| `DELETE` | A teljes terméket törli. Ha csak a kiegészítőket akarod törölni, küldj `PUT` kérést üres `addons` tömbbel. |

## Tipikus feladatok

A következő fejezetekben vannak a teljes, kipróbálható kérések:

- globális csoport létrehozása, kiegészítő módosítása, hozzáadása és törlése: [REST API: globális csoportok kezelése](https://hub.hellowp.io/hu/plugins/woocommerce-product-addons/fejlesztoknek-rest-api-globalis-csoportok/);
- ugyanez egy termékre: [REST API: termékszintű kiegészítők kezelése](https://hub.hellowp.io/hu/plugins/woocommerce-product-addons/fejlesztoknek-rest-api-termekek/);
- termék kosárba tétele kiegészítővel: [Store API: kosárba tétel kiegészítővel](https://hub.hellowp.io/hu/plugins/woocommerce-product-addons/fejlesztoknek-store-api-kosar/).

A feladatok sorrendje mindkét esetben ugyanaz: létrehozás két kiegészítővel (egy rövid szöveg és egy többválasztós), majd az első módosítása (új név, új ár, nagyobb legnagyobb hossz), a másodikhoz új opció (például platina tű), harmadik kiegészítő hozzáadása, végül a nem kívánt kiegészítők törlése úgy, hogy csak a megtartandó azonosítókat küldöd el.
