Cykl życia zamówienia
Zamówienie przesyłki przechodzi te same etapy niezależnie od przewoźnika:
service_structure → [order_valuation] → order_send →
waybill / dispatch_code / turn_in → opcjonalnie cancel_order
order_valuation jest opcjonalne — zobacz krok 2. Poniższe przykłady
używają SDK PHP; każdy etap podaje nazwę metody API, więc przepływ
mapuje się 1:1 na surowe żądania z kopertą z
dowolnego języka. Pełne kształty payloadów znajdziesz w
referencji API v2.
Nie wiesz, której usługi użyć?
Jeśli nie przekazujesz stałego service_id, tylko chcesz wybrać spośród
usług, które faktycznie mogą przewieźć paczkę, zacznij od
Wyboru usługi z oferty i wróć tutaj przy
order_send.
1. Wybierz usługę — service_structure
Pobierz usługi dostępne na Twoim koncie i pozwól użytkownikowi (albo swojej konfiguracji) wybrać — nie hardkoduj listy:
Code
2. (Opcjonalnie) Wyceń przesyłkę — order_valuation
Pobierz wycenę przed utworzeniem zamówienia. Ten sam obiekt zamówienia działa dla wyceny i utworzenia:
Code
Pomijasz wycenę całkowicie?
Wiele integracji tworzy zamówienia bez wywoływania order_valuation — znają
usługę i przyjmują cenę z faktury. To w porządku. Pamiętaj tylko, że cena
ustala się dopiero przy utworzeniu: zmiany na poziomie zamówienia i
dopłaty (zobacz krok 2b) sprawiają, że zakładana cena może się różnić.
Rzeczywistą kwotę odczytaj po order_send z getOrder() / getOrders()
(price / price_gross, w groszach).
2b. (Opcjonalnie) Wyceń ponownie finalny payload — order_valuation
Jeśli po wcześniejszej wycenie zmieniłeś zamówienie — dodałeś odbiór, usługi
dodatkowe, dane celne albo punkt — uruchom order_valuation ponownie na
finalnym payloadzie przed wysłaniem. Zmiany na poziomie zamówienia mogą
zmienić cenę, więc wcześniejsza wycena bywa nieaktualna:
- odbiór kurierski zamówiony na ten sam dzień może być objęty dopłatą,
- usługi dodatkowe / pobranie podnoszą koszt,
- trasa przez punkt albo obsługa celna mogą zmienić obowiązującą taryfę.
Code
Ten sam obiekt, zero niespodzianek
Wyceniaj to, co zaraz wyślesz — wyceń finalny $order, a następnie przekaż
dokładnie ten obiekt do order_send.
3. Utwórz zamówienie — order_send
Code
order_send nie jest idempotentne — ponowione żądanie po timeoucie może
utworzyć zduplikowane zamówienie. Zobacz
dobre praktyki.
Obiekt pickup decyduje, jak paczka trafi do przewoźnika (odbiór kurierski
vs. własne nadanie) — szczegóły mają osobny przewodnik:
Typy odbioru.
4. Dokumenty — waybill, dispatch_code, turn_in
Każdy dokument jest zwracany w base64:
Code
5. Śledź przesyłkę — tracking
Odpytuj getTracking($waybillNumber) albo odbieraj notyfikacje push —
zobacz przewodnik śledzenia.
6. W razie potrzeby anuluj — cancel_order
Code
Zamówienie można anulować tylko do momentu przejęcia paczki przez
przewoźnika; później API zwraca kopertę błędu. Pamiętaj, że anulowane
zamówienie przestaje też udostępniać dokumenty — waybill i turn_in
zwracają dla niego błąd API, więc pobierz wszystko, czego potrzebujesz,
przed anulowaniem.
Późniejszy wgląd w zamówienia
Code
Zobacz też: Wybór usługi z oferty · Typy odbioru · Śledzenie · Dobre praktyki

