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. V prípade zlej odpovede bude systém odosielať webhook každých 5 minút až do chvíle, kým dostane správnu odpoveď. Pokiaľ systém počas 12 hodín ani raz nedostane správnu odpoveď, webhook sa deaktivuje.

Správa webhookov

Správa webhookov (vytvorenie, editácia, zmazanie) je možná iba 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
      • status_id (int) - ID stavu objednávky
      • status (string) - stav objednávky, vždy v jazyku objednávky, pre párovanie je lepšie použiť ID
  • príklad požiadavky

    {
        "project_name": "",
        "orders": [
            {
                "order_number": "",
                "creation_time": "",
                "status_id": "",
                "status": ""
            }   
        ]
    }

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
      • status_id (int) - ID stavu objednávky
      • status (string) - stav objednávky, vždy v jazyku objednávky, pre párovanie je lepšie použiť ID
  • príklad požiadavky

    {
        "project_name": "",
        "orders": [
            {
                "order_number": "",
                "last_update_time": "",
                "status_id": "",
                "status": ""
            }
        ]
    }

Zmazanie objednávok (Orders.delete)

  • telo:

    • project_name (string) - názov e-shopu
    • orders (array) - pole objektov s objednávkami
      • order_number (string) - číslo objednávky
      • deletion_time (datetime) - čas zmazania
  • príklad požiadavky

    {
        "project_name": "",
        "orders": [
            {
                "order_number": "",
                "deletion_time": ""
            }
        ]
    }

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) - email zákazníka
      • code (string) - kód zákazníka
      • creation_time (datetime) - čas vytvorenia
  • príklad požiadavky

    {
        "project_name": "",
        "customers": [
            {
                "customer_id": "",
                "email": "",
                "creation_time": ""
            }
        ]
    }

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) - email zákazníka
      • code (string) - kód zákazníka
      • last_update_time (datetime) - čas poslednej aktualizácie
  • príklad požiadavky

    {
        "project_name": "",
        "customers": [
            {
                "customer_id": "",
                "email": "",
                "last_update_time": ""
            }
        ]
    }

Zmazanie zákazníkov (Customers.delete)

  • 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) - email zákazníka
      • code (string) - kód zákazníka
      • deletion_time (datetime) - čas zmazania
  • príklad požiadavky

    {
        "project_name": "",
        "customers": [
            {
                "customer_id": "",
                "email": "",
                "deletion_time": ""
            }
        ]
    }

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
  • príklad požiadavky

    {
        "project_name": "",
        "products": [
            {
                "product_id": "",
                "code": "",
                "creation_time": ""
            }
        ]
    }

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
  • príklad požiadavky

    {
        "project_name": "",
        "products": [
            {
                "product_id": "",
                "code": "",
                "last_update_time": ""
            }
        ]
    }

Zmazanie produktov a variant (Products.delete)

  • telo:

    • project_name (string) - názov e-shopu
    • products (array) - pole objektov s produktmi
      • product_id (int) - ID produktu
      • code (string) - kód produktu
      • deletion_time (datetime) - čas zmazania
    • variants (array) - pole objektov s variantmi
      • variant_id (int) - ID varianty
      • code (string) - kód varianty
      • deletion_time (datetime) - čas zmazania
  • príklad požiadavky

    {
        "project_name": "",
        "products": [
            {
                "product_id": "",
                "code": "",
                "deletion_time": ""
            }
        ],
        "variants": [
            {
                "variant_id": "",
                "code": "",
                "deletion_time": ""
            }
        ],
    }

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
  • príklad požiadavky

    {
        "project_name": "",
        "categories": [
            {
                "category_id": "",
                "code": "",
                "creation_time": ""
            }
        ]
    }

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
  • príklad požiadavky

    {
        "project_name": "",
        "categories": [
            {
                "category_id": "",
                "code": "",
                "last_update_time": ""
            }
        ]
    }

Zmazanie kategórií (Categories.delete)

  • 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
      • deletion_time (datetime) - čas zmazania
  • príklad požiadavky

    {
        "project_name": "",
        "categories": [
            {
                "category_id": "",
                "code": "",
                "deletion_time": ""
            }
        ]
    }
Na tejto stránke

Další zdroje informací

Facebook poradna

Výměna zkušeností, rady a tipy mezi provozovateli e-shopů na systému UPgates.

Přejít do poradny

Akademie

Získejte znalosti od našich specialistů na marketing, obchod, právo a podnikání.

Přejít do akademie

Novinky z Blogu

Co nového jsme pro vás připravili nebo chystáme najdete na blogu.

Přejít do blogu

Nepodařilo se Vám najít tu správnou odpověď?

Kontaktujte naši technickou podporu, která je tu pro vás od pondělí do pátku 8:00 až 16:00 hod.

Zákaznická podpora