Logo

Webhooki

Zasada działania webhooków

Webhook jest efektywną i prostą metodą komunikacji pomiędzy aplikacjami. Pozwala na wysyłanie requestów pod ustalony adres URL, bezpośrednio po wykonaniu sformułowanych wcześniej czynności np. złożenie zamówienia, edycja koszyka, po zalogowaniu czy rejestracji nowego klienta. Dzięki temu zintegrowane aplikacje zewnętrzne zostają natychmiast powiadomione o wystąpieniu zmian. Metoda zapewnia sprawne porozumiewanie się pomiędzy sklepem internetowym a zewnętrzną aplikacją, bez wymogu powtarzającego się odpytywania aplikacji.

Przykładem wykorzystania webhooków w sklepie internetowym jest wymiana danych np. z narzędziem do remarketingu, firmą logistyczną, systemem ERP, czy CRM dla e-commerce.

Webhook może zostać wywołany przy zdarzeniach:

  • logowanie do sklepu,

  • utworzenie konta,

  • edycja konta,

  • dodanie towaru do koszyka,

  • edycja koszyka,

  • złożenie zamówienia,

  • edycja zamówienia,

  • zmiana statusu zamówienia na pakowane,

  • zmiana statusu zamówienia na pakowane fulfillment,

  • potwierdzenie zamówienia,

  • wysłanie zamówienia,

  • anulowanie zamówienia,

  • zmiana statusu subskrypcji newslettera email,

  • zmiana statusu subskrypcji newslettera sms,

  • wysyłka zamówienia dropshippingowego,

  • usunięcie z zamówienia numeru paczki,

  • zmiana statusu zamówienia [Marketplace].

Webhook może zostać wysłany przy użyciu metod:

  • POST - do utworzenia zasobu,

  • GET - aby uzyskać zasoby,

  • PUT - do aktualizacji,

  • DELETE - aby usunąć.

Struktura nagłówka Content-Type może być wygenerowana w formatach:

  • application/x-www-form-urlencoded,

  • application/json,

  • text/xml.

Treść requestu oraz parametry GET możesz zaprogramować dowolną zawartością, używając naszego wewnętrznego języka programowania treści. Możesz używać zmiennych z wartościami pętli czy bloków warunkowych.

Mechanizm zapewniający kompletność informacji

Webhooki oczekują na odpowiedź z aplikacji zewnętrznej przez 5 sekund. Jeśli po wywołanym zdarzeniu webhook nie doczeka się odpowiedzi potwierdzającej prawidłowy odbiór treści, system ponowi próbę wysyłki webhooka 10 razy w ciągu 3 dni. Pierwsze 3 ponowne próby wysyłki wystąpią co 10 minut, następne podejścia odbędą się w większych interwałach czasowych.

Bezpieczeństwo webhooków

W nagłówku webhooka przekazywany jest token, czyli klucz używany do podpisania webhooka algorytmem SHA-256. Dzięki kluczowi aplikacja zewnętrzna ma pewność, że webhook nie został zmodyfikowany lub uszkodzony podczas swojej internetowej podróży, oraz został wysłany przez autoryzowany sklep. Jeśli przesyłasz w żądaniach wrażliwe informacje takie jak hasła, loginy czy dane personalne, to polecamy wysyłać dane w formie zaszyfrowanej przy użyciu protokołu HTTPS w URL, na jaki zostanie wysłany webhook. W przypadku użycia HTTP webhook przesyłany jest otwartym tekstem.

Organizacja działania webhooków

Webhooki można organizować w kampanie. Dzięki temu w przejrzysty sposób skonfigurujesz nawet dużą ilość skomplikowanych integracji. Pojedyncze webhooki i całe kampanie można eksportować i importować. To doskonałe rozwiązanie dla aplikacji zewnętrznych chcących szybkiej i sprawnej integracji z IdoSell. Dzięki podziałowi na kampanie efektywnie oddzielisz integracje z poszczególnymi aplikacjami. Możesz rozbudować sklep o całkiem nowe funkcjonalności, bez konieczności edycji kodu źródłowego. Wszystko zależy od twojej pomysłowości.

Możesz uzależnić działanie webhooków zgrupowanych na poziomie kampanii (np. dodatkowe parametry przesyłane w treści request'a), od własnych zmiennych konfiguracyjnych, którym użytkownicy w panelu będą mogli nadawać wartości bez konieczności modyfikacji kodu.
Wykorzystując mechanizm eksportu i importu  kampanii, wystarczy zmodyfikować plik ICF, dodając nowy węzeł <setting>.

Przykład:

<settings>
2
<setting type="config" name="dodatkowy_par" description="Dodatkowe informacje"></setting>
3
</settings>

Zaimportowanie tak przygotowanego pliku do panelu, będzie skutkowało pojawieniem się w ustawieniach kampanii dodatkowego pola konfiguracyjnego, którego wartość wykorzystasz w kodzie webhooka jako zmienną [config:dodatkowy_par].

Różnice między webhookami a API

W komunikacji poprzez API sklep internetowy jest regularnie odpytywany przez aplikacje zewnętrzne w celu sprawdzenia wystąpienia zmian. Przesyłanie danych na bieżąco wymaga częstych requestów do API, które mogą znacznie obciążać serwer, szczególnie przy większej liczbie integracji. Z kolei rozwiązanie polegające na zmniejszeniu częstotliwości requestów do API, spowoduje opóźnienie aktualizacji danych w aplikacjach zewnętrznych.

Dlatego w IdoSell dostępne jest rozwiązanie w formie webhooków, dzięki którym otrzymujesz informację o wydarzeniu w chwili jego zaistnienia. Możesz produktywniej synchronizować dane bez konieczności zbyt częstego wysłania requestów do API.

FAQ

Nie znalazłeś odpowiedzi na pytanie?Skontaktuj się z Działem Wsparcia

Przejdź do Biura Obsługi Klienta i skontaktuj się z ekspertami IdoSell