Przejdź do głównej treści
Omnilinker nie wysyła jeszcze webhooków wychodzących: nie zarejestrujesz adresu URL, który Omnilinker wywoła, gdy coś się zmieni. Aby reagować na zmiany, odpytuj API. Dla zamówień kanał dziennika zamówień daje Ci każdą zmianę po kolei, z kursorem, więc żadnej nie przegapisz i żadnej nie przetworzysz dwa razy.
Webhooki wychodzące nie są zaimplementowane. Nie ma:
  • możliwości zasubskrybowania adresu URL na zdarzenia, ani w aplikacji, ani przez API;
  • dostarczania, ponawiania ani podpisywania wywołań Twojego endpointu;
  • kanału powiadomień przez webhook, Slack czy Microsoft Teams: powiadomienia docierają do ludzi w aplikacji i e-mailem.

Śledzenie zmian w zamówieniach przez dziennik zamówień

Każda zmiana zamówienia trafia do dziennika zamówień: nowe zamówienie, zmiana statusu, płatność, edycja pozycji, przesyłka i tak dalej. Kanał zwraca te wpisy od najstarszego, każdy z numerem, który tylko rośnie. Twoja integracja pamięta numer ostatniego przetworzonego wpisu i prosi o to, co przyszło po nim.

Zanim zaczniesz

  • Klucz potrzebuje uprawnienia Dziennik w grupie Zamówienia. Ma je szablon Integracja zamówień. Aby odczytywać same zamówienia, potrzebuje też uprawnienia Zamówienia. Zobacz Uwierzytelnianie.
  • Dziennik należy do modułu Zarządzanie zamówieniami. Jeśli ten moduł nie jest włączony dla Twojej organizacji, kanał odpowiada 403 Forbidden.

Odczyt kanału

integer
Zwróć wpisy z id większym niż ta wartość. Pomiń parametr albo wyślij 0, aby zacząć od najstarszego wpisu.
integer
domyślnie:"100"
Ile wpisów zwrócić, od 1 do 100.
string[]
Zwróć tylko te typy zdarzeń. Powtórz parametr dla każdego z nich: EventTypes=StatusChanged&EventTypes=OrderCreated. Pomiń go, aby dostać wszystkie typy.
string
Zwróć tylko wpisy tego zamówienia (jego GUID). Pomiń go, aby dostać wpisy wszystkich zamówień.
Odpowiedź to lista, od najstarszego wpisu:
integer
Numer wpisu i Twój kursor. Wyślij numer ostatniego przetworzonego wpisu jako AfterId.
string
Zamówienie, którego dotyczy wpis. Pobierzesz je przez GET /api/ordering/order/{orderId}.
integer
Numer zamówienia, taki jak w Omnilinkerze.
string
Co się stało; zobacz tabelę „Typy zdarzeń” niżej.
string
Część zamówienia, której dotyczy wpis, na przykład pozycja, płatność lub przesyłka. null dla zmiany całego zamówienia.
string
Użytkownik stojący za zmianą, jeśli taki jest.
string
W kanale zawsze null. Kanał nie zawiera nazw.
integer
Kto wprowadził zmianę: 0 osoba, 1 reguła automatyzacji, 2 klucz API.
string
Krótki opis zmiany w formacie JSON, jako tekst, albo null. Nie zawiera danych osobowych. Jego postać zależy od typu zdarzenia i nie jest jeszcze opublikowanym kontraktem: możesz go wyświetlać, ale nie opieraj logiki na jego polach.
string
Kiedy wprowadzono zmianę, w UTC.

Odpytywanie kanału

1

Zacznij od kursora

Za pierwszym razem wyślij AfterId=0. Pierwsze przejście odczytuje całą historię, do 100 wpisów na wywołanie.
2

Przetwórz stronę

Obsłuż każdy wpis po kolei. Gdy wpis wymaga aktualnego stanu zamówienia, pobierz zamówienie po orderId.
3

Zapisz kursor

Zapisz id ostatniego przetworzonego wpisu, jeśli możesz, w tej samej transakcji co własne zmiany.
4

Poproś o kolejną stronę

Jeśli strona była pełna (miała tyle wpisów, ile MaxResultCount), od razu zapytaj ponownie z nowym AfterId. Jeśli miała mniej, masz wszystko na bieżąco: odczekaj przed kolejnym odpytaniem.

Jak działa kanał

  • Nic nie jest pomijane. Wpis pojawia się w kanale dopiero wtedy, gdy widoczny jest każdy wpis o niższym id, więc przesuwając kursor, nie pominiesz wpisu, który jeszcze się zapisywał.
  • Zmiany pojawiają się w ciągu około dwóch minut. Omnilinker udostępnia nowe wpisy w kanale co dwie minuty. Częstsze odpytywanie nie zwróci nic nowego. Wystarczy odpytywać co kilka minut.
  • Wpisy się nie zmieniają. Wpisu nigdy się nie edytuje ani nie usuwa, więc każdy możesz przetworzyć raz.
  • Bez danych osobowych. Kanał nie zawiera danych kupujących ani nazw. Gdy ich potrzebujesz, pobierz zamówienie kluczem z uprawnieniem Podgląd danych osobowych.
  • Tylko Twoja organizacja. Kanał zawiera zamówienia organizacji, do której należy klucz.

Typy zdarzeń

Każdy typ zdarzenia odpowiada wpisowi w historii zamówienia w Omnilinkerze, pokazanemu z etykietą z drugiej kolumny. Mogą pojawić się nowe typy zdarzeń. Pomijaj typy, których nie znasz, zamiast przerywać działanie z ich powodu.

Inne zmiany

Dziennik obejmuje tylko zamówienia. Inne dane odpytuj przez endpointy list z filtrem czasu, jeśli taki oferują. Na przykład lista zamówień przyjmuje CreatedFrom i CreatedTo, ConfirmedFrom i ConfirmedTo oraz InStatusFrom i InStatusTo. Dokumentacja API wymienia filtry każdego endpointu. Aby powiadamiać o zdarzeniach ludzi, a nie systemy, użyj powiadomień Omnilinkera; zobacz Kanały powiadomień.

Uwierzytelnianie

Utwórz klucz z uprawnieniem Dziennik.

Przegląd dla programistów

Konwencje, stronicowanie i błędy.

Zamówienia

Jak działają zamówienia, statusy i płatności.

Wbudowana automatyzacja zamówień

Działaj na zamówieniach w Omnilinkerze, bez kodu.