Webhooky

Webhooky umožňují zasílání informací o nějaké události, která v systému nastane. Např. vytvoření nebo editace objednávky. Systém při každé z těchto událostí pošle HTTP požadavek na URL adresu nastavenou ve webhooku.

URL adresa nastavená ve webhooku se volá jako POST požadavek, v těle požadavku je JSON, jehož obsahem je seznam identifikátorů entit ze systému (např. objednávek). Bližší popis je u každého typu webhooku. Součástí těla požadavku je také název e-shopu v Upgates.

Každý webhook vytvořený v systému je vázán na uživatele API, který ho vytvořil. Pokud tento uživatel nemá práva např. na endpoint objednávek, nepůjde mu vytvořit ani webhook na události spojené s objednávkami. Stejně to funguje i pro jiné typy webhooků. Pokud uživatel má webhook vytvořen a jsou mu změněna oprávnění, webhook se deaktivuje.

POST požadavek na URL adresu nastavenou ve webhooku bude očekávat odpověď 200 OK nebo 204 No Content. Timeout je nastavený na jednu vteřinu. Tzn. ve vyřízení požadavku na straně serveru volaného webhookem by se neměla data přímo zpracovávat, pouze si data uložit a vrátit příslušný stavový kód. V případě špatné odpovědi bude systém odesílat webhook každých 5 minut až do chvíle, než obdrží správnou odpověď. Pokud systém během 12 hodin ani jednou neobdrží správnou odpověď, webhook se deaktivuje.

Správa webhooků

Správa webhooků (vytvoření, editace, smazání) je možná pouze přes API. Více najdete v dokumentaci k Webhook API.

Vytvoření objednávek (Orders.create)

  • tělo:

    • project_name (string) - název e-shopu
    • orders (array) - pole objektů s objednávkami
      • order_number (string) - číslo objednávky
      • creation_time (datetime) - čas vytvoření
      • status_id (int) - ID stavu objednávky
      • status (string) - stav objednávky, vždy v jazyku objednávky, pro párování je lepší použít ID
  • příklad požadavku

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

Aktualizace objednávek (Orders.update)

  • tělo:

    • project_name (string) - název e-shopu
    • orders (array) - pole objektů s objednávkami
      • order_number (string) - číslo objednávky
      • last_update_time (datetime) - čas poslední aktualizace
      • status_id (int) - ID stavu objednávky
      • status (string) - stav objednávky, vždy v jazyku objednávky, pro párování je lepší použít ID
  • příklad požadavku

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

Smazání objednávek (Orders.delete)

  • tělo:

    • project_name (string) - název e-shopu
    • orders (array) - pole objektů s objednávkami
      • order_number (string) - číslo objednávky
      • deletion_time (datetime) - čas smazání
  • příklad požadavku

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

Vytvoření zákazníků (Customers.create)

  • tělo:

    • project_name (string) - název e-shopu
    • customers (array) - pole objektů se zákazníky
      • customer_id (int) - ID zákazníka
      • email (string) - email zákazníka
      • code (string) - kód zákazníka
      • creation_time (datetime) - čas vytvoření
  • příklad požadavku

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

Aktualizace zákazníků (Customers.update)

  • tělo:

    • project_name (string) - název e-shopu
    • customers (array) - pole objektů se zákazníky
      • 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 poslední aktualizace
  • příklad požadavku

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

Smazání zákazníků (Customers.delete)

  • tělo:

    • project_name (string) - název e-shopu
    • customers (array) - pole objektů se zákazníky
      • customer_id (int) - ID zákazníka
      • email (string) - email zákazníka
      • code (string) - kód zákazníka
      • deletion_time (datetime) - čas smazání
  • příklad požadavku

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

Vytvoření produktů (Products.create)

  • tělo:

    • project_name (string) - název e-shopu
    • products (array) - pole objektů s produkty
      • product_id (int) - ID produktu
      • code (string) - kód produktu
      • creation_time (datetime) - čas vytvoření
  • příklad požadavku

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

Aktualizace produktů (Products.update)

  • tělo:

    • project_name (string) - název e-shopu
    • products (array) - pole objektů s produkty
      • product_id (int) - ID produktu
      • code (string) - kód produktu
      • last_update_time (datetime) - čas poslední aktualizace
  • příklad požadavku

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

Smazání produktů a variant (Products.delete)

  • tělo:

    • project_name (string) - název e-shopu
    • products (array) - pole objektů s produkty
      • product_id (int) - ID produktu
      • code (string) - kód produktu
      • deletion_time (datetime) - čas smazání
    • variants (array) - pole objektů s variantami
      • variant_id (int) - ID varianty
      • code (string) - kód varianty
      • deletion_time (datetime) - čas smazání
  • příklad požadavku

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

Vytvoření kategorií (Categories.create)

  • tělo:

    • project_name (string) - název e-shopu
    • categories (array) - pole objektů s kategoriemi
      • category_id (int) - ID kategorie
      • code (string) - kód kategorie
      • creation_time (datetime) - čas vytvoření
  • příklad požadavku

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

Aktualizace kategorií (Categories.update)

  • tělo:

    • project_name (string) - název e-shopu
    • categories (array) - pole objektů s kategoriemi
      • category_id (int) - ID kategorie
      • code (string) - kód kategorie
      • last_update_time (datetime) - čas poslední aktualizace
  • příklad požadavku

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

Smazání kategorií (Categories.delete)

  • tělo:

    • project_name (string) - název e-shopu
    • categories (array) - pole objektů s kategoriemi
      • category_id (int) - ID kategorie
      • code (string) - kód kategorie
      • deletion_time (datetime) - čas smazání
  • příklad požadavku

    {
        "project_name": "",
        "categories": [
            {
                "category_id": "",
                "code": "",
                "deletion_time": ""
            }
        ]
    }
Na této stránce

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