# Vásárlók és kuponok

> A vásárló és a kupon erőforrás triggerszabályai, műveletei és keresései, egyedi kuponkód létrehozása Zappel.

## Vásárlók

A vásárló erőforrás azt a vevőt jelenti, aki regisztrál az oldaladon. A WooCommerce-ben vásárló az, akinek van felhasználói fiókja: a vendégként (belépés nélkül) vásárlók nem számítanak vásárlónak. A WooCommerce alapból engedi a fiókok létrehozását. Ha erre az erőforrásra támaszkodsz, a vendégvásárlást a **Fiókok és adatvédelem** beállításoknál kikapcsolva kötelezővé teheted a regisztrációt.

A WooCommerce a vásárlók adatait a WordPress-felhasználók mellett tárolja. Ha a WordPress szerepköreit és jogosultságait testre szabod, ne nevezd át a Vásárló (Customer) szerepkört, mert ez zavarhatja a bővítmény működését. A vásárlóknak nincs külön WooCommerce-oldaluk, a **Felhasználók** oldalon jelennek meg.

### Triggerszabályok

| Szabály | Mikor fut le |
|---|---|
| **Customer created** | amikor egy vásárló regisztrál a boltban, vagy bármilyen WordPress-felhasználói fiók létrejön. A **Customer updated** is lefut a fiók első létrehozásakor. Vendégvásárlásnál nem fut le: arra rendelés-triggert használj |
| **Customer deleted** | amikor egy vásárlói fiókot törölnek. Mivel a WordPressben nincs felhasználói kuka, a törlés és a végleges törlés is elindítja. Csak az `ID`-t küldi |
| **Customer updated** | amikor egy meglévő vásárlót (vagy bármely WordPress-felhasználót) frissítenek, a fiók létrehozásának pillanatában is |

### Műveletek

A vásárlók tételes mezője a Metaadatok.

- **Create Customer**: új vásárlót hoz létre.
- **Update Customer**: meglévő vásárlót módosít. A legfelső szintű azonosító kötelező.
- **Find Customer**: megkeresi a vásárlót, és ha nincs találat, opcionálisan létrehozhat egyet. Ajánlott keresési mezők: **Email** (a megadott e-mail-címre keres), **Search** (a vásárló felhasználónevében, e-mail-címében, URL-jében és megjelenítendő nevében keres), **Customer ID** (a megadott numerikus azonosítóra).

Alapértelmezetten a keresés a „Customer” szerepkörű felhasználókra korlátozódik. Ha szélesebb eredmény kell, válassz másik szerepkört a listából, például az „All” lehetőséggel a bolt összes felhasználójában kereshetsz, az adminisztrátorokban is.

> WordPress többhelyes hálózat (multisite): ha a **Find Customer** keresésnél a „Create WooCommerce Customer if it doesn't exist yet” lehetőséget használod, és a hálózatban már létezik az e-mail-cím, de nincs vásárlóként hozzárendelve az adott webhelyhez, ilyen hibát kaphatsz: „Communication error. 400 Bad Request. registration-error-email-exists. An account is already registered with your email address. Please log in.” Ez a többhelyes rendszer és a WooCommerce működésének korlátja. Megoldás: a **Felhasználók → Új hozzáadása** oldalon vedd fel kézzel a felhasználót Vásárló szerepkörrel az al-webhelyen.

## Kuponok

A kuponok használatához a WooCommerce-ben engedélyezni kell a kuponokat: a **WooCommerce → Beállítások → Általános** oldalon jelöld be a **Kuponkódok használatának engedélyezése** négyzetet, és mentsd a módosításokat. Ha ez ki van kapcsolva, a kupon erőforrás nem működik („Coupons are not enabled” hiba).

### Triggerszabályok

| Szabály | Mikor fut le |
|---|---|
| **Coupon created** | amikor egy kupon létrejön. A rendelésekkel és vásárlókkal ellentétben a **Coupon updated** ilyenkor nem fut le |
| **Coupon deleted** | amikor a kupon a kukába kerül. A végleges törlés nem indít semmit. Csak az `ID`-t küldi |
| **Coupon restored** | amikor egy kukába tett kupont visszaállítanak |
| **Coupon updated** | amikor egy meglévő kupont frissítenek |

### Műveletek

A kuponok tételes mezője a Metaadatok.

- **Create Coupon**: új kupont hoz létre.
- **Update Coupon**: meglévő kupont módosít. A legfelső szintű azonosító kötelező.
- **Find Coupon**: megkeresi a kupont, és ha nincs találat, opcionálisan létrehozhat egyet. Ajánlott keresési mezők: **Code** (a megadott kuponkódra keres), **Search** (a kupon nevében és leírásában keres), **Coupon ID** (a megadott numerikus azonosítóra).

### Egyedi kuponkód minden feliratkozónak

A **Create Coupon** gyakori felhasználása, hogy minden hírlevél-feliratkozónak automatikusan egyedi kuponkódot hozol létre. Ehhez a Create Coupon műveletben az **Email Restrictions** mezőbe a vásárló e-mail-címét add meg a Zap trigger (1.) lépéséből, így a kupont csak az adott e-mail-cím használhatja.

Automatikus kuponoknál célszerű egyszerű, egyedi, betűkből és számokból álló kódot használni. Ehhez add hozzá a Zaphez a **Code by Zapier** lépést, amely a vásárló e-mail-címéből betűkből, számokból és kötőjelekből álló kódot állít elő.

Bemeneti adat (**Input Data**): `customer` → az 1. lépés felhasználói e-mail-címe (vagy bármilyen más egyedi azonosító, például név).

```javascript
// Alfanumerikus kuponkód (a-z, 0-9 és kötőjel) képzése a bemenetből.
return { slug: input.customer.replace(/[^A-Za-z0-9-]+/g, "") };
```

A Code lépés eredményét (`slug`) használd a **Create Coupon** művelet kuponkódjaként.

### URL-kuponok (URL Coupons bővítmény)

Ha a WooCommerce URL Coupons bővítményt használod, a Zapben létrehozott kuponhoz automatikusan beállíthatod az URL-kupon beállításait is. A **Create Coupon** műveletben a **Meta Data List** mezővel adj hozzá egy `_wc_url_coupons_unique_url` metaadatot, amelynek értéke jellemzően a fenti Code lépés **Slug** kimenete.

Az átirányítási oldalt is megadhatod két további metaadattal:

- `_wc_url_coupons_redirect_page_type` értéke `page`;
- `_wc_url_coupons_redirect_page` értéke a választott oldal azonosítója.

Az eredmény egy automatikusan létrehozott kupon mindhárom URL-kupon beállítással.

## Az adatmezők eltérhetnek a boltodban

A bővítmény a WooCommerce REST API-ját használja, ezért a mezők nevei, leírásai és értékei boltonként eltérhetnek a WordPress, a WooCommerce, az aktív bővítmények és az egyedi kódok függvényében.
