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. Pokud toto není splněno a nepodaří se URL adresu během 12-ti hodin ani jednou zavolat se správnou odpovědí, webhook se deaktivuje.

Správa webhooků

Správa webhooků (vytvoření, editace, smazání) jde 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í
  • příklad požadavku

    Content-Type: application/json
    
    {
        "project_name": "",
        "orders": [
            {
                "order_number": "",
                "creation_time": ""
            }   
        ]
    }

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
  • příklad požadavku

    Content-Type: application/json
    
    {
        "project_name": "",
        "orders": [
            {
                "order_number": "",
                "last_update_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
      • creation_time (datetime) - čas vytvoření
  • příklad požadavku

    Content-Type: application/json
    
    {
        "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
      • last_update_time (datetime) - čas poslední aktualizace
  • příklad požadavku

    Content-Type: application/json
    
    {
        "project_name": "",
        "customers": [
            {
                "customer_id": "",
                "email": "",
                "last_update_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

    Content-Type: application/json
    
    {
        "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

    Content-Type: application/json
    
    {
        "project_name": "",
        "products": [
            {
                "product_id": "",
                "code": "",
                "last_update_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

    Content-Type: application/json
    
    {
        "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

    Content-Type: application/json
    
    {
        "project_name": "",
        "categories": [
            {
                "category_id": "",
                "code": "",
                "last_update_time": ""
            }
        ]
    }
Na této stránce
Zpět

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