Webhooky
Webhooky umožňujú zasielanie informácií o nejakej udalosti, ktorá v systéme nastane. Napr. vytvorenie alebo editácia objednávky. Systém pri každej z týchto udalostí pošle HTTP požiadavku na URL adresu nastavenú vo webhooku.
URL adresa nastavená vo webhooku sa volá ako POST požiadavka, v tele požiadavky je JSON, ktorého obsahom je zoznam identifikátorov entít zo systému (napr. objednávok). Bližší popis je pri každom type webhooku. Súčasťou tela požiadavky je tiež názov e-shopu v Upgates.
Každý webhook vytvorený v systéme je viazaný na užívateľa API, ktorý ho vytvoril. Pokiaľ tento užívateľ nemá práva napr. na endpoint objednávok, nepôjde mu vytvoriť ani webhook na udalosti spojené s objednávkami. Rovnako to funguje aj pre iné typy webhookov. Pokiaľ užívateľ má webhook vytvorený a sú mu zmenené oprávnenia, webhook sa deaktivuje.
POST požiadavka na URL adresu nastavenú vo webhooku bude očakávať odpoveď 200 OK alebo 204 No Content. Timeout je nastavený na jednu sekundu. Tzn. vo vybavení požiadavky na strane servera volaného webhookom by sa nemali údaje priamo spracovávať. Len si údaje uložiť a vrátiť príslušný stavový kód. Pokiaľ toto nie je splnené a nepodarí sa URL adresu počas 12-tich hodín ani raz zavolať so správnou odpoveďou, webhook sa deaktivuje.
Správa webhookov
Správa webhookov (vytvorenie, editácia, zmazanie) ide len cez API. Viac nájdete v dokumentácii k Webhook API.
Vytvorenie objednávok (Orders.create)
- telo:
- project_name (string) - názov e-shopu
- orders (array) - pole objektov s objednávkami
- order_number (string) - číslo objednávky
- creation_time (datetime) - čas vytvorenia
príklad požiadavky
Aktualizácia objednávok (Orders.update)
- telo:
- project_name (string) - názov e-shopu
- orders (array) - pole objektov s objednávkami
- order_number (string) - číslo objednávky
- last_update_time (datetime) - čas poslednej aktualizácie
príklad požiadavky
Vytvorenie zákazníkov (Customers.create)
- telo:
- project_name (string) - názov e-shopu
- customers (array) - pole objektov so zákazníkmi
- customer_id (int) - ID zákazníka
- email (string) - e-mail zákazníka
- creation_time (datetime) - čas vytvorenia
príklad požiadavky
Aktualizácia zákazníkov (Customers.update)
- telo:
- project_name (string) - názov e-shopu
- customers (array) - pole objektov so zákazníkmi
- customer_id (int) - ID zákazníka
- email (string) - e-mail zákazníka
- last_update_time (datetime) - čas poslednej aktualizácie
príklad požiadavky
Vytvorenie produktov (Products.create)
- telo:
- project_name (string) - názov e-shopu
- products (array) - pole objektov s produktmi
- product_id (int) - ID produktu
- code (string) - kód produktu
- creation_time (datetime) - čas vytvorenia
Aktualizácia produktov (Products.update)
- telo:
- project_name (string) - názov e-shopu
- products (array) - pole objektov s produktmi
- product_id (int) - ID produktu
- code (string) - kód produktu
- last_update_time (datetime) - čas poslednej aktualizácie
Vytvorenie kategórií (Categories.create)
- telo:
- project_name (string) - názov e-shopu
- categories (array) - pole objektov s kategóriami
- category_id (int) - ID kategórie
- code (string) - kód kategórie
- creation_time (datetime) - čas vytvorenia
Aktualizácia kategórií (Categories.update)
- telo:
- project_name (string) - názov e-shopu
- categories (array) - pole objektov s kategóriami
- category_id (int) - ID kategórie
- code (string) - kód kategórie
- last_update_time (datetime) - čas poslednej aktualizácie