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ń.
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ń przyjmujeCreatedFrom 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.