Zmiana zamówienia (Order Change)

Zmiana istniejącego zamówienia przez Order Change: endpoint, przepływ i topiki webhook.

Czy zamówienie wymaga modyfikacji po wysłaniu? Za pomocą Order Change nabywca może zmienić istniejące zamówienie, np. dostosować ilości, dodać pozycje zamówienia lub zastąpić artykuły. Order Change stanowią część profilu Peppol Advanced Ordering.

Jak działa Order Change?

Order Change to w istocie całkowicie nowy dokument UBL Order, który odwołuje się do oryginalnego zamówienia. Całkowicie zastępuje wcześniejsze zamówienie. Dostawca otrzymuje zmieniony dokument i może na niego odpowiedzieć Order Response (zaakceptować, odrzucić lub zaakceptować warunkowo).

Przepływ wygląda następująco:

  1. Nabywca wysyła Order Change z odwołaniem do oryginalnego zamówienia
  2. Dostawca otrzymuje zmianę przez webhook OrderChangeReceived
  3. Dostawca pobiera zmienione zamówienie i porównuje z oryginałem
  4. Dostawca wysyła Order Response (AB, AP, CA lub RE)
Endpoint (nabywca)

Nabywca wysyła Order Change, przesyłając nowy dokument UBL Order przez regularny endpoint:

POST /api/v1/{partyId}/purchaseOrder/send

Dokument zawiera odwołanie do oryginalnego zamówienia w elemencie OrderReference pliku UBL. PSB automatycznie rozpoznaje, że jest to zmiana.

Odbiór jako dostawca

Należy skonfigurować webhook na topiku OrderChangeReceived:

{
  "action": "https://jouw-endpoint.nl/order-changes",
  "topics": ["OrderChangeReceived"],
  "secret": "jouw-geheime-sleutel"
}

Następnie pobieranie zmienionego dokumentu:

GET /api/v1/{partyId}/salesOrder/{documentId}/download

Wskazówka: należy porównać otrzymany dokument z oryginalnym zamówieniem, aby ustalić, co zostało zmienione. PSB nie oferuje funkcji diff; system musi samodzielnie wykryć zmiany.

Topiki webhook
TopikKierunekKiedyOrderChangeSentNabywcaZmiana została pomyślnie dostarczonaOrderChangeReceivedDostawcaZmiana została odebranaOrderResponseReceivedNabywcaDostawca odpowiedział na zmianę
Reagowanie na Order Change

Jako dostawca odpowiada się na Order Change przez endpoint Order Response, dokładnie tak jak przy regularnym zamówieniu. Dostępne kody statusu są takie same: AB (odebrane), AP (zaakceptowane), CA (zaakceptowane warunkowo) i RE (odrzucone).

Często zadawane pytania
Jak PSB rozpoznaje, że moja wiadomość to Order Change, a nie nowe zamówienie?

Zmodyfikowane zamówienie UBL wysyła się przez ten sam endpoint co nowe zamówienie: POST /api/v1/{partyId}/purchaseOrder/send. W dokumencie UBL należy umieścić odniesienie do pierwotnego zamówienia w elemencie OrderReference. PSB rozpoznaje na tej podstawie, że chodzi o modyfikację.

Czy Order Change całkowicie zastępuje poprzednie zamówienie?

Tak. Order Change to zupełnie nowy dokument UBL Order, który odwołuje się do pierwotnego zamówienia i zastępuje poprzednią wersję. Dostawca pobiera dokument i musi sam określić różnice w stosunku do wcześniejszego dokumentu; PSB nie oferuje funkcji porównywania.

Jaki wzorzec integracji stosuje dostawca po `OrderChangeReceived`?

Należy skonfigurować webhook na OrderChangeReceived, pobrać za pomocą GET /api/v1/{partyId}/salesOrder/{documentId}/download i porównać z poprzednim zamówieniem. Następnie odpowiedzieć za pomocą Order Response (AB, AP, CA lub RE). Kupujący śledzi postęp między innymi przez OrderChangeSent i OrderResponseReceived.


Pełna specyfikacja API dostępna jest na psb.econnect.eu z dokładną strukturą UBL Order Change.

Zobacz dokumentację API

Powiązane