# API: vásárlók

> Vásárlók létrehozása, módosítása, lekérése, törölhetőségének ellenőrzése és törlése az API-val.

A vásárlók végpontjaival vásárlói profilokat hozhatsz létre és kezelhetsz, módosíthatod az elérhetőségeket és a beállításokat, lekérdezheted a vásárlókat, és ellenőrizheted, hogy egy vásárló biztonságosan törölhető-e.

Az API az Elite licenchez tartozik, használatához programozási ismeret kell. A hitelesítés az **Amelia** fejlécben küldött API-kulccsal történik ([részletek](https://hub.hellowp.io/hu/plugins/ameliabooking/fejlesztoknek-api-attekintes/)). Az alap útvonal: `{{az_oldalad_URL-je}}/wp-admin/admin-ajax.php?action=wpamelia_api&call=/api/v1`.

| Művelet | Metódus | Útvonal |
|---|---|---|
| Vásárló létrehozása | `POST` | `/users/customers` |
| Vásárló módosítása | `POST` | `/users/customers/{{vasarlo_id}}` |
| Egy vásárló lekérése | `GET` | `/users/customers/{{vasarlo_id}}` |
| Törölhetőség ellenőrzése | `GET` | `/users/customers/effect/{{vasarlo_id}}` |
| Vásárlók listázása | `GET` | `/users/customers` |
| Vásárló törlése | `POST` | `/users/customers/delete/{{vasarlo_id}}` |

## Vásárló létrehozása

Új vásárlót hoz létre. Ha megadsz e-mail-címet, annak egyedinek kell lennie.

| Tulajdonság | Típus | Kötelező | Leírás |
|---|---|---|---|
| `firstName` | szöveg | igen | Keresztnév. |
| `lastName` | szöveg | igen | Vezetéknév. |
| `externalId` | egész | nem | A vásárlóhoz kötött WordPress-felhasználó azonosítója. |
| `phone` | szöveg | nem | Telefonszám. |
| `countryPhoneIso` | szöveg | nem | A telefonszámhoz tartozó országkód (ISO). |
| `email` | szöveg | nem | E-mail-cím, egyedinek kell lennie. |
| `gender` | szöveg | nem | `male` (férfi) vagy `female` (nő). |
| `birthday` | szöveg | nem | Születésnap, `ÉÉÉÉ-HH-NN` formában. |
| `note` | szöveg | nem | Belső megjegyzés. |
| `language` | szöveg | nem | A vásárló alapértelmezett nyelve. |

```bash
curl --location 'https://pelda.hu/wp-admin/admin-ajax.php?action=wpamelia_api&call=/api/v1/users/customers' \
--header 'Content-Type: application/json' \
--header 'Amelia: AZ_API_KULCSOD' \
--data-raw '{
  "firstName": "Jordan",
  "lastName": "Reed",
  "externalId": 16,
  "phone": "+381601234567",
  "countryPhoneIso": "rs",
  "email": "jordan.reed@example.test",
  "gender": "female",
  "birthday": "1990-05-17",
  "note": "Reggeli időpontokat kér.",
  "language": "en_GB"
}'
```

A válasz a `user` objektumban adja vissza a létrehozott vásárlót (azonosító, név, e-mail, státusz `visible`, típus `customer`, fordítások).

## Vásárló módosítása

A vásárló adatait módosítja. Csak azt küldd el, amit változtatni akarsz. Az elfogadott mezők megegyeznek a létrehozásnál felsoroltakkal, de mind opcionálisak.

```bash
curl --location 'https://pelda.hu/wp-admin/admin-ajax.php?action=wpamelia_api&call=/api/v1/users/customers/23' \
--header 'Content-Type: application/json' \
--header 'Amelia: AZ_API_KULCSOD' \
--data-raw '{
  "lastName": "Miller",
  "email": "jordan.miller@example.test",
  "note": "Késő délutáni időpontokat kér."
}'
```

A válasz `is_wp_user` mezője jelzi, hogy a vásárló WordPress-felhasználóhoz van-e kötve.

## Vásárló lekérése

Egy vásárló adatait adja vissza. Az azonosító az útvonalban áll.

```bash
curl --location 'https://pelda.hu/wp-admin/admin-ajax.php?action=wpamelia_api&call=/api/v1/users/customers/23' \
--header 'Amelia: AZ_API_KULCSOD'
```

## Törölhetőség ellenőrzése

Megmondja, van-e a vásárlónak jövőbeli időpontja, amely akadályozná a törlést. A `valid` mező `false`, ha nem törölhető, és a `message` megadja az okot (például hány jövőbeli időpontja van).

```bash
curl --location 'https://pelda.hu/wp-admin/admin-ajax.php?action=wpamelia_api&call=/api/v1/users/customers/effect/23' \
--header 'Amelia: AZ_API_KULCSOD'
```

## Vásárlók listázása

A listát oldalra és keresőszóra szűrheted.

| Paraméter | Típus | Leírás |
|---|---|---|
| `page` | egész | Oldalszám. |
| `search` | szöveg | A keresztnévben, vezetéknévben, e-mail-címben és megjegyzésben keres. |

```bash
curl --location 'https://pelda.hu/wp-admin/admin-ajax.php?action=wpamelia_api&call=/api/v1/users/customers&page=1&search=jordan' \
--header 'Amelia: AZ_API_KULCSOD'
```

A válasz a `users` tömbben adja a vásárlókat, köztük az utolsó időpontot (`lastAppointment`), az időpontok számát (`totalAppointments`) és a függőben lévők számát (`countPendingAppointments`). A `filteredCount` a szűrt, a `totalCount` az összes vásárló száma.

## Vásárló törlése

Töröl egy vásárlót. A kérésnek nincs törzse.

```bash
curl --location --request POST 'https://pelda.hu/wp-admin/admin-ajax.php?action=wpamelia_api&call=/api/v1/users/customers/delete/23' \
--header 'Amelia: AZ_API_KULCSOD'
```
