# Műveletek, keresések, metaadatok és Zapier-segédalkalmazások

> Létrehozás, frissítés és keresés a boltban, metaadatok kezelése, adatok tömeges átvitele, valamint a Szűrő, Elágazás, Ciklus, Formázó és Kód lépések használata.

## Létrehozás (Create) műveletek

A Create művelet új adatot hoz létre a WooCommerce-ben egy Zapből. Például új vásárlót vehetsz fel, amikor valaki feliratkozik a hírleveledre. Állítsd be a Zapet az [első Zap](zapier-integracio-elso-zap/) fejezet szerint, és a **Choose Action Event** listában válaszd ki a megfelelő Create műveletet.

Elérhető létrehozó műveletek:

- Create Order
- Create Order Note
- Create Product
- Create Customer
- Create Coupon
- Create Subscription
- Create Subscription Note
- Create User Membership

## Frissítés (Update) műveletek

Az Update művelet meglévő adatot módosít. Például a Zap frissítheti egy termék készletét. Ha ismered az erőforrás azonosítóját (például egy korábbi lépésből), azzal módosíthatod. Ha nem ismered, tegyél a frissítés elé egy Find (keresés) lépést: a keresés eredménye tartalmazza az azonosítót, amit az Update lépésben felhasználhatsz.

Elérhető frissítő műveletek:

- Update Order
- Update Product
- Update Product Price
- Update Product Stock Quantity
- Update Customer
- Update Coupon
- Update Subscription
- Update User Membership

Minden frissítő művelethez kötelező a legfelső szintű azonosító megadása, hogy a Zap tudja, melyik rekordot módosítsa. A beágyazott azonosítók elhagyhatók, de ha üresen hagyod őket, a WooCommerce új bejegyzést hoz létre (például új metaadat-elemet).

## Keresés (Find) műveletek

A Find lépés megkeresi a meglévő WooCommerce-adatot, hogy egy későbbi lépésben felhasználd. Például SKU alapján megkereshetsz egy terméket, mielőtt frissíted. A keresés után azonnal létre is hozhatod az erőforrást, ha nem találtad meg. Ez jó módszer két alkalmazás szinkronizálására.

Elérhető keresések:

- Find Order
- Find Order Note
- Find Product
- Find Customer
- Find Coupon
- Find Subscription
- Find Subscription Note

Minden keresés az első találatot adja vissza. Az alapértelmezett rendezést az **Order** és **Orderby** mezőkkel módosíthatod, így eldöntheted, hogy a legfrissebb vagy a legrégebbi találatot kapod.

### Termékek keresése rendelésekből

Ha rendelés-triggert használsz, és a termék kategóriáját vagy címkéjét is fel akarod használni egy későbbi lépésben, tegyél a Zapbe egy **Find Product** lépést. Két módja van, attól függően, melyik triggert használod.

**Tétel egy rendelésben (Line Item in an Order) → Find Product**

1. Az 1. lépés a **Line Item in an Order** trigger legyen.
2. A 2. lépés a **Find Product** művelet.
3. Ha a boltod használ cikkszámot (SKU), SKU alapján keress, és az 1. lépés **Line Product SKU** mezőjét add meg keresési értéknek.
4. A 3. lépésben a `categories` → `name` (vagy `tags` → `name`) tömböt használhatod.

Ha nincs SKU-d, és egyszerű és változó termékeket is árulsz, egyetlen Find Product lépéssel nem tudod megkeresni a terméket, mert a rendelési tétel a termékazonosítót és a változatazonosítót külön mezőben tárolja. Ezért érdemes minden termékhez és változathoz SKU-t rendelni, és SKU alapján keresni.

**Rendelés (Order) → Looping by Zapier → Find Product**

Ha az **Order** triggert használod, a tételeken végigmenő Ciklus (Looping by Zapier) lépést tehetsz a Zapbe, majd utána jön a Find Product. A ciklusról lent írunk.

## Metaadatok

A WooCommerce rugalmas: a bővítmények a saját adataikat metaadatként tárolják. Például a fizetési módok (mint a Stripe) gyakran a díjat vagy a nettó bevételt a rendelés metaadatai között tárolják, és az egyéni mezők is jellemzően metaadatok.

A Zapekben elérhető metaadat-típusok:

- Kupon metaadatai
- Vásárló metaadatai
- Rendelés metaadatai
- Rendelési kuponsorok metaadatai
- Rendelési díjsorok metaadatai
- Rendelési tételek metaadatai
- Rendelési szállítási sorok metaadatai
- Rendelési adósorok metaadatai
- Termék metaadatai

### Triggerekben és keresésekben

A metaadatok automatikusan önálló mezőkre bomlanak, hogy a későbbi lépésekben könnyebben használhatók legyenek. Ha egy rendelésnek van `stripe_fee` metaadata, a Zapekben a **Meta Data Stripe Fee** mezőn át éred el.

Tudnivalók:

- A metaadatok szerkezete nem kötött, és erőforrásonként eltérő. Ha több fizetési módot használsz, az egyik rendelésben megvan egy mező, egy másikban pedig nem. Ezért érdemes **Path** vagy **Filter** lépést tenni a Zapbe, ha a meglévő mezők szerint külön műveleteket akarsz végezni.
- Ha egy kulcshoz több érték tartozik, a Zapekben az utolsó érték érvényes, az előzőt felülírja.
- A régi **Meta Data**, **Meta Data Key** és **Meta Data Value** mezők visszamenőleges kompatibilitás miatt megmaradtak, de használatuk nem ajánlott.

A Zap összeállításakor a trigger **Find Data** lépésében olyan mintaadatot válassz, amely tartalmazza a használni kívánt metaadat-mezőket. Így a művelet lépéseiben a mezők elérhetők lesznek.

### Műveletekben (létrehozáskor)

A Create műveletekben a **Meta Data List** bemeneti rész látható, a régi mezők pedig „Legacy” jelölést kapnak. A **Meta Data List** egyszerre több metaadatot állít be:

1. A bal oldali mezőbe írd a metaadat nevét (kulcsát).
2. A jobb oldali mezőbe írd az értéket (használhatsz előző lépésekből származó változókat is).
3. Több metaadathoz kattints a plusz ikonra, és töltsd ki a következő kulcsot és értéket.

## Meglévő adatok tömeges átvitele

A Zapier lehetővé teszi, hogy a meglévő adatokat egyszerre átvidd az egyik alkalmazásból a másikba (**Transfer existing data**). A Zap bekapcsolása után ez a lehetőség is használható. Felhasználható:

- WooCommerce-adatok tömeges kiviteléhez egy másik alkalmazásba: rendelések, termékek, vásárlók, kuponok, foglalások, tagsági csomagok, felhasználói tagságok, előfizetések. Ez akkor hasznos, ha például új CRM-rendszerre váltasz.
- Más alkalmazások adatainak tömeges bevitelére a WooCommerce-be: rendelések, termékek, vásárlók, kuponok, előfizetések.

**WooCommerce mint forrás:** minden WooCommerce-trigger elérhető. Kiválasztod a triggert, beállítod a célműveletet és a mezőleképezést, és a Zapier lekéri az összes meglévő adatot. A lekérés eltarthat egy ideig. Utána szűrhetsz, kereshetsz, és kipipálhatod a rekordokat, amelyeket át akarsz küldeni.

**WooCommerce mint cél:** a Zapier bármelyik támogatott forrásalkalmazásából küldhetsz adatot a WooCommerce-be, és a WooCommerce összes művelete elérhető.

A fizetős Zapier-csomag többlépéses Zapeket is enged: a trigger és a művelet közé további lépések kerülhetnek. Például Szűrő vagy Elágazás a bonyolultabb logikához, Formázó az értékek átalakításához, Kód az adatszerkezet átalakításához vagy új mezők számításához.

## Szűrő (Filter by Zapier)

A Szűrő feltételeket ad a Zaphez. Például csak akkor fusson, ha a rendelés

- egy adott termékkategóriába tartozik;
- értéke meghalad egy összeget;
- szállítási címe egy adott országba szól.

## Elágazás (Paths by Zapier)

Az Elágazás feltételes logikát ad a Zaphez. Legfeljebb három különböző útvonalat hozhatsz létre egyetlen Zapen belül.

## Ciklus (Looping by Zapier)

A Ciklus lépéssel egy műveletet többször is végrehajthatsz egy Zapen belül. Ez főként a rendelés-triggereknél hasznos, mert a rendeléseknek több tétele lehet. Jellemzően a **Create Loop From Line Items** beállítást használod, és utána a ciklus mezőit (például a **2. Product ID** mezőt) fel tudod használni a következő lépésben, például egy Find Product lépésben.

## Formázó (Formatter by Zapier)

A Formázóval az adatokat alakíthatod: szétvághatod vagy összefűzheted a mezők tartalmát, átválthatsz szám- és dátumformátumok között, vagy akár az egész adatszerkezetet átalakíthatod.

### Tételekké alakító (Line Itemizer)

A bővítmény bizonyos mezőihez „tételes” adatforrás kell (például rendelési tételek, szállítási sorok, metaadatok). A Formázó **Line Itemizer** átalakítása a vesszővel elválasztott szöveget vagy értékeket tételekké alakítja, amelyek a bővítmény műveleteiben használhatók.

A tételes mezők: rendeléseknél a Kuponsorok, Díjsorok, Tételek, Metaadatok, Szállítási sorok és Visszatérítések; termékeknél a Letöltések, Kategóriák, Képek, Attribútumok és Metaadatok; vásárlóknál és kuponoknál a Metaadatok; előfizetéseknél a Kuponsorok, Szállítási sorok, Tételek és Eltávolított tételek.

#### Példa: több attribútum hozzáadása egy termékhez

1. Nézd meg a bolt globális attribútumainak azonosítóját. Menj a **Termékek → Attribútumok** oldalra, vidd az egeret az egyik attribútum fölé, és kattints a **Szerkesztés** hivatkozásra. A böngésző címsorában látni fogsz egy ilyet: `/wp-admin/edit.php?post_type=product&page=product_attributes&edit=123`. Az `edit=` utáni szám az attribútum azonosítója (itt `123`). Ismételd meg ezt minden használni kívánt attribútummal.
2. A Zap szerkesztőjében a **Create Product** vagy **Update Product** művelet elé add hozzá a **Formatter by Zapier → Line Itemizer** lépést.
3. A **Line-item(s) Group Name** mezőbe írd: `Attributes`.
4. A **Line-item Properties** részben a bal oldali mezőbe írd: `id`, adj hozzá még egy sort, és abba írd: `value`.
5. A jobb oldali `id` mezőbe vesszővel elválasztva az attribútumazonosítók kerülnek, amelyeket a termékhez akarsz rendelni. A `value` mezőbe az ezekhez tartozó értékek kerülnek, szintén vesszővel elválasztva. Az értékeket jellemzően nem kézzel írod be, hanem az 1. lépés adataiból veszed.
6. A lépés kimenete az attribútumazonosítók és értékeik tömbje. Ezt add át a **Create Product** vagy **Update Product** lépésnek az attribútum mezőjében.

Amikor a termék lépés lefut, végigmegy a lista minden elemén, és mindet elküldi a WooCommerce-nek. Az eredmény egy több attribútummal és értékkel rendelkező termék. Ugyanez a módszer minden más tételes mezőnél is használható.

## Kód (Code by Zapier)

A Kód lépéssel az adatokból új mezőket számíthatsz, vagy átalakíthatod, egyszerűsítheted őket. A kimenetet a következő lépésekben felhasználhatod. A JavaScript-kód írásához nem jár támogatás, ezért ehhez Zapier-szakértőt vagy webfejlesztőt érdemes bevonni.

## Különböző műveletek különböző megrendelt termékekhez

Az **Order** trigger alapértelmezetten minden rendelésre (és így minden termékre) lefut. Ha termékenként eltérő műveletet akarsz, használd az **Order** helyett a **Line Item in an Order** triggert: ez minden egyes megrendelt tételre külön fut le, nem csak rendelésenként egyszer.

1. Az 1. lépés a WooCommerce alkalmazás **Line Item in an Order** triggerrel, általában az **Order paid** vagy **Order created** triggerszabállyal.
2. A 2. lépés **Paths by Zapier** vagy **Filter by Zapier**: itt adod meg a feltételt, hogy csak egy adott termékre fusson.
3. Elágazás esetén minden útvonalhoz külön feltételt állítasz be, például a megrendelt termék neve alapján, majd az útvonalon belül elvégzed a kívánt műveletet.

A Zapier korlátozza az útvonalak és lépések számát egy Zapen belül. Ha több kell, több Zapet kell használnod.

## Feladatok kezelése a Zapierben

A korábban küldött adatokat a Zapier **Task History** oldalán láthatod. Ha egy feladat hibába ütközik, a Zapier leállítja.

- **Errored** (hibás): a probléma nemcsak az adott feladatot, hanem a későbbieket is megakadályozza. Ismétlődő hiba esetén a Zap is kikapcsol.
- **Halted** (leállított): a probléma csak az adott feladatot érinti, a későbbiek sikerülhetnek.

A leállított vagy hibás feladatokat a Task History oldalról újra elküldheted. A részletek a [Hibaelhárítás](zapier-integracio-hibaelharitas/) fejezetben vannak. A meglévő kapcsolatok és Zapek kezelését, módosítását és törlését a Zapier saját felületén végzed.
