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