Zamówienia
Struktura danych JSON
Obiekt Order
- id – (readonly) ID w bazie danych (jest jednocześnie numerem zamówienia)
- uuid – (readonly) unikalne ID
- addDate – (readonly) data utworzenia zamówienia
- addUserId – (readonly) ID usera który utworzył zamówienie
- lastModDate – (readonly) data ostatniej modyfikacji (lub null gdy niemodyfikowane)
- lastModUserId – (readonly) ID usera który ostatnio modyfikował (lub null gdy niemodyfikowane)
- modifiedByUser – (readonly) czy zamówienie zostało zmodyfikowane przez użytkownika?
- orderDate – data zamówienia (ta widoczna na liście zamówień)
- messageToSeller – wiadomość do sprzedającego
- comment – komentarz do zamówienia
- problem – problem z zamówieniem (lub null gdy brak)
- orderStatus – obiekt statusu zamówienia
- deliveryCost – koszt wysyłki brutto
- deliveryVat – stawka % podatku VAT dla kosztów wysyłki
- cashOnDelivery – czy dostawa za pobraniem?
- shippingMethod – metoda dostawy, enum: PERSONAL_PICKUP, ADDRESS, PICKUP_POINT
- carrierMethod – obiekt metody dostawy przewoźnika, lub null gdy nie wybrano przewoźnika
- billOfLading – numer listu przewozowego, lub null gdy nie ustawiono
- sizeA – rozmiar A boku przesyłki (milimetry)
- sizeB – rozmiar B boku przesyłki (milimetry)
- sizeC – rozmiar C boku przesyłki (milimetry)
- weight – waga przesyłki (kilogramy)
- incomeSource – obiekt źródła przychodu
- clientData – obiekt danych klienta OrderClientData
- invoice – obiekt danych do faktury OrderInvoice (lub null, gdy brak danych do faktury)
- items – tablica towarów w zamówieniu – obiekty OrderItem
Obiekt OrderClientData
- email – email klienta
- tel – telefon klienta
- pickupPoint – punkt odbioru (lub null gdy brak punktu odbioru)
- nameSurname – imię i nazwisko
- companyName – nazwa firmy (puste, gdy brak)
- street – ulica
- buildNr – numer budynku (i lokalu)
- city – miejscowość
- postCode – kod pocztowy
- countryCode – kod kraju
Obiekt OrderInvoice
- invoiceNumber – numer faktury (lub null gdy niewystawiona)
- companyName – nazwa firmy (lub null gdy faktura na osobę prywatną)
- companyTaxId – NIP firmy (lub null gdy faktura na osobę prywatną)
- nameSurname – imię i nazwisko (lub null gdy faktura na firmę)
- address – ulica i numer budynku (lokalu)
- city – miejscowość
- postCode – kod pocztowy
- countryCode – kod kraju
- invoiceMailSent – czy faktura została wysłana na e-mail klienta?
Obiekt OrderItem
- code – kod wewnętrzny towaru
- quantity – zamówiona ilość
- price – cena brutto jednej sztuki
- vat – stawka VAT %
- name – nazwa towaru
- itemId – ID powiązanego towaru (lub null gdy brak powiązania)
Wyszukiwanie zamówień
GET
/orders
Parametry w ścieżce zapytania (wszystkie są opcjonalne)
- perPage – ilość na stronę. Domyślnie 100, max 1000
- page – strona. Domyślnie 1
- number – numer zamówienia
- dateFrom – data od
- dateTo – data do
- tel – numer telefonu
- email – adres e-mail klienta
- city – miejscowość
- postCode – kod pocztowy
- pickupPoint – punkt odbioru
- bol – numer listy przewozowego
- statusId – ID statusu zamówiena
- incomeSrcId – ID źródła przychodu
- invoiceType – wyszukiwanie po danych o fakturze, enum: WITHOUT_INVOICE(bez faktur), WITH_INVOICE(z fakturami), INV_WITH_NUM(faktury wystawione – z numerem faktury), INV_WITHOUT_NUM(faktury niewystawione – bez numeru faktury)
- sort – sortowanie, enum: NUMBER, DATE. Domyślnie NUMBER
Odpowiedź JSON - zawiera tablicę obiektów zawierających prawie takie same dane jak obiekt Order (niżej opisane różnice)
{ "orders": [ //tablica zamówień ... ],
"perPage": 100, //ilość zamówień na stronę
"count": 2345 //ilość wszystkich znalezionych zamówień }
W tym wypadku pole items nie są przekazywane w odpowiedzi!
Dostępne są następujące dodatkowe dane:
- orderSummary – obiekt JSON z danymi:
- sumGross – suma brutto zamówienia
- sumNet – suma netto zamówienia
- sumVat – suma VAT zamówienia
- itemsSumGross – suma brutto towarów w zamówieniu
- itemsSumNet – suma netto towarów w zamówieniu
- itemsSumVat – suma VAT towarów w zamówieniu
- itemsQuantity – ilość towarów w zamówieniu
- itemsRows – ilość wierszy towarów w zamówieniu (czyli inaczej – ile w zamówieniu jest różnych towarów)
- itemsCodes – tablica towarów w zamówieniu, z następującymi obiektami:
- quantity – ilość
- code – kod wewnętrzny
Pobieranie zamówienia
GET
/orders
Parametry w ścieżce zapytania
- id – ID zamówienia
/orders?id=166
Odpowiedź JSON
{
"id":166,
"uuid":"95a807f32d794b349d2837ae0c7f552a",
"addDate":"2022-06-28T14:23:10Z",
"lastModDate":null,
"modifiedByUser":false,
"orderDate":"2022-06-28T14:23:10Z",
"messageToSeller":"",
"comment":"",
"problem":null,
"orderStatus":{
"id":2,
"name":"Rozpoczęto realizację",
"color":"d3d7cf"
},
"deliveryCost":9.99,
"deliveryVat":23,
"cashOnDelivery":false,
"shippingMethod":"ADDRESS",
"carrierMethod":null,
"billOfLading":null,
"sizeA":0,
"sizeB":0,
"sizeC":0,
"weight":0,
"incomeSource":{
"id":1,
"name":"Telefoniczne"
},
"clientData":{
"email":"admin@xxxxx",
"tel":"999888777",
"pickupPoint":null,
"nameSurname":"",
"companyName":"",
"street":"",
"buildNr":"",
"city":"",
"postCode":"",
"countryCode":""
},
"invoice":null,
"items":[
{
"code":"S100",
"quantity":5,
"price":0.05,
"vat":23,
"name":"Rezystor 1k",
"itemId":1
},
{
"code":"S101",
"quantity":1,
"price":8.99,
"vat":23,
"name":"Rezystor 1k SMD 100szt",
"itemId":4
}
]
}
Dodawanie zamówienia
POST
/orders
Dane JSON w zapytaniu (body)
Należy przekazać obiekt Order. Pola readonly są pomijane, nie trzeba ich przekazywać.
W polach z referencjami do obiektów zewnętrznych (na przykład status zamówienia) nie trzeba przekazywać wszystkich danych – wystarczy przekazanie samego ID.
{ ..... "orderStatus":{ "id":1, }, ..... }
Dane odpowiedzi JSON
W odpowiedzi zwrócony zostanie nowo utworzony obiekt Order zawierający ID.
Edycja zamówienia
PUT
/orders
Dane JSON w zapytaniu (body)
Należy przekazać pełny obiekt Order do edycji. Pole ID należy przekazać, reszta pól readonly jest ignorowana.
W polach z referencjami do obiektów zewnętrznych (na przykład status zamówienia) nie trzeba przekazywać wszystkich danych – wystarczy przekazanie samego ID.
{ ..... "orderStatus":{ "id":1, }, ..... }
Dane które można pominąć (nie przekazywać tych pól w obiekcie JSON):
- items – nie przekazanie tego pola spowoduje pominięcie edycji towarów w zamówieniu
Dane odpowiedzi JSON
W odpowiedzi zwrócony zostanie obiekt Order.
Usuwanie zamówienia
DELETE
/orders
Parametry w ścieżce zapytania
- id – ID zamówienia do usunięcia
/orders?id=1
Odpowiedź - 204 No Content