[API] Zamówienia – pobieranie listy, szczegółów. Tworzenie zamówień
Spis treści
Endpoint
Aby wykonywać działania na zamówieniach skorzystaj z endpointu
GET /rest/api/orders/
Pobieranie listy zamówień
Zaleca się używanie filtra orderedAfter oraz isOrderDocument przy pobieraniu listy zamówień.
Filtr orderedAfter pozwala na ograniczenie wyników do zamówień złożonych po określonej dacie, co może znacznie poprawić wydajność i szybkość odpowiedzi API.
Filtr isOrderDocument umożliwia filtrowanie zamówień, które posiadają dokument sprzedaży, co jest przydatne w kontekście specyficznych operacji na tych dokumentach.
Przykład:
GET /rest/api/orders/?isOrderDocument=1&orderedAfter=2024-01-01T19%3A55%3A12%2B01%3A00
Pobieranie szczegółów zamówienia
Aby uzyskać szczegóły zamówienia, użyj endpointu get_rest_order_documents_detail.
Upewnij się, że przekazujesz odpowiednie identyfikatory zamówienia, aby otrzymać pełne i dokładne informacje na temat konkretnego zamówienia.
Podstawowe informacje o zamówieniu uzyskasz również przez podanie id w filtrach dla endpointu
GET /rest/api/orders/
W celu wyświetlenia szczegółów zamówienia prosimy o korzystanie z endpointu
GET /rest/api/orders/{id}/
Przykład:
JSON GET /rest/api/orders/?id=MA240100001 GET /rest/api/orders/MA240100001
Tworzenie nowego zamówienia
Dla utworzenia zamówienia użyj endpointu
POST /rest/api/orders
W trakcie tworzenia zamówienia istnieje możliwość podania numeru zamówienia z systemu zewnętrznego. Ważne jest, aby wspomnieć, że ten numer będzie widoczny w dokumentach powiązanych, co ułatwi śledzenie i zarządzanie zamówieniami w przyszłości.
Przykład:
POST /rest/api/orders + JSON RequestBody
Aktualizacja listy zamówień
Po utworzeniu nowego zamówienia za pomocą endpointu „`POST /rest/api/orders/„`, konieczne jest zaktualizowanie listy zamówień, aby odzwierciedlić zmiany i uniknąć duplikatów. Oto kroki, które należy podjąć:
-
Pobranie aktualnej listy zamówień:
Użyj endpointu
GET /rest/api/orders/ z odpowiednimi filtrami, takimi jak orderedAfter i isOrderDocument, aby pobrać najnowszą listę zamówień.Przykład zapytania: http
GET /rest/api/orders?orderedAfter=2024-09-01T00:00:00Z&isOrderDocument=true -
Sprawdzenie nowo utworzonego zamówienia:
Po utworzeniu zamówienia za pomocą POST /rest/api/orders/, numer zamówienia w systemie integratora powinien być widoczny w odpowiedzi.
Przykład zapytania: JSON
POST /rest/api/orders/?id=MA240100001 Content-Type: application/json { "orders": [ { "idExternal": "123321123", "isInvoice": false, "originalCurrency": "CZK", "isEncrypted": false, "createdAt": "2024-01-31T10:05:07+0100", "updatedAt": "2024-06-17T10:07:23+0200", "orderItems": [ { "id": 16, "idExternal": null, "ean": "978020137962", "sku": "123213", "originalName": "test produkt", "originalCode": null, "originalPriceWithTax": "123.00", "originalPriceWithoutTax": "100.00", "media": null, "quantity": 1, "tax": "23.00", "status": 1, "unit": "t", "type": 1 }, { "id": 17, "idExternal": null, "ean": null, "sku": null, "originalName": "ManualCarrier", "originalCode": "1", "originalPriceWithTax": "0.00", "originalPriceWithoutTax": "0.00", "media": null, "quantity": 1, "tax": null, "status": 1, "unit": null, "type": 2 } ], "addressCustomer": { "name": "te", "phone": "13123123", "email": "t@t.com", "id": 41, "streetName": null, "streetNumber": null, "city": null, "zipCode": null, "country": null, "department": null, "class": "customer" }, "isCanceledByBuyer": null, "id": "MA240100001", "status": 5 } ], "totalCount": 1, "currentOffset": 0, "pageResultCount": 1 }
-
Aktualizacja lokalnej listy zamówień
Po otrzymaniu odpowiedzi z numerem zamówienia, zaktualizuj lokalną listę zamówień, aby uwzględnić nowe zamówienie.
Przykład odpowiedzi: JSON
GET /rest/api/orders/?id=MA240100001 { "orders": [ { "idExternal": "123321123", "isInvoice": false, "originalCurrency": "CZK", "isEncrypted": false, "createdAt": "2024-01-31T10:05:07+0100", "updatedAt": "2024-06-17T10:07:23+0200", "orderItems": [ { "id": 16, "idExternal": null, "ean": "978020137962", "sku": "123213", "originalName": "test produkt", "originalCode": null, "originalPriceWithTax": "123.00", "originalPriceWithoutTax": "100.00", "media": null, "quantity": 1, "tax": "23.00", "status": 1, "unit": "t", "type": 1 }, { "id": 17, "idExternal": null, "ean": null, "sku": null, "originalName": "ManualCarrier", "originalCode": "1", "originalPriceWithTax": "0.00", "originalPriceWithoutTax": "0.00", "media": null, "quantity": 1, "tax": null, "status": 1, "unit": null, "type": 2 } ], "addressCustomer": { "name": "te", "phone": "13123123", "email": "t@t.com", "id": 41, "streetName": null, "streetNumber": null, "city": null, "zipCode": null, "country": null, "department": null, "class": "customer" }, "isCanceledByBuyer": null, "id": "MA240100001", "status": 5 } ], "totalCount": 1, "currentOffset": 0, "pageResultCount": 1 }
-
Wykluczenie nowego zamówienia z kolejnych zapytań:
Podczas kolejnych zapytań do endpointu GET /rest/api/orders, upewnij się, że nowe zamówienie nie jest już uwzględniane w wynikach. Można to osiągnąć poprzez odpowiednie filtrowanie, np. za pomocą orderedAfter z datą utworzenia nowego zamówienia.
Przykład zapytania: JSON
GET /rest/api/orders?orderedAfter=2024-09-05T10:00:00Z&isOrderDocument=1
Lista zamówień z limitem elementów
Zaleca się korzystanie z filtra limit przy pobieraniu listy zamówień. Filtr pozwala na ograniczenie wyświetlanie wyników dla zamówień, które posiadają duże ilości produktów lub dokumentów powiązanych.