Práca s objednávkami.
Rozhranie dodáva zoznam objednávok. Iba tie, ktoré vytvoril e-shop.
Rozhranie dodáva detail k objednávke. Základné parametre a jednotlivé položky objednávky.
Vytvorenie novej objednávky.
Vytvorenie novej objednávky. Voči predchádzajúcej verzii umožňuje nastaviť polia fu_id (forma úhrady), sposob_id (spôsob dopravy), ks_id (konštantný symbol) a lehota_id (dodacia lehota).
Popis správania jednotlivých parametrov.
Riadok objednávky:
Objednávka predpokladá, že existuje firma s id=2 a skladová karta s id=1. Objednávajú sa 2 kusy s jednotkovou cenou bez DPH 5 EUR. Poskytuje sa zľava 1%.
{
"datum": "2018-07-02T00:00:00.000Z",
"poznamka": "string",
"objednavka_orig": "origstring",
"firma_id": 2,
"osoba_id": 0,
"fu_id": 2,
"sposob_id": 1,
"ks_id": "0008",
"items": [
{
"karta_id": 1,
"mnozstvo": 2,
"cena": 5,
"zlava": 1
}
]
}
Objednávka predpokladá, že existuje firma s id=2 a skladová karta s id=1 a 2. Na jednu položku je zľava a na druhú nie.
{
"datum": "2018-07-11T00:00:00.000Z",
"poznamka": "string",
"objednavka_orig": "origstring",
"firma_id": 2,
"osoba_id": 0,
"items": [
{
"karta_id": 1,
"mnozstvo": 2,
"cena": 5,
"zlava": 1
},
{
"karta_id": 2,
"mnozstvo": 2,
"cena": 1,
"zlava": 0
}
]
}
Objednávka predpokladá, že existuje firma s id=2. V objednávke je jedna textová položka s názvom, cenou a DPH. Bude podporované od API 1.3.0.
{
"datum": "2018-08-01T00:00:00.000Z",
"poznamka": "Príklad čisto textovej objednávky, ktorá objednáva dopravu.",
"objednavka_orig": "origstring",
"firma_id": 2,
"osoba_id": 0,
"items": [
{
"karta_id": null,
"mnozstvo": 2,
"mj": "ks",
"cena": 5,
"zlava": 0,
"dph": 20,
"nazov": "Dopravné náklady"
}
]
}
Objednávka predpokladá, že existuje firma s id=2. V objednávke je jedna skladová karta s id=1. V objednávke je jedna textová položka s názvom, cenou a DPH. Cena je záporná, pretože predstavuje poskytnutú zľavu. Bude podporované od API 1.3.0.
{
"datum": "2018-08-01T00:00:00.000Z",
"poznamka": "Príklad čisto textovej objednávky, ktorá objednáva skladovú kartu a poskytuje textovú zľavu.",
"objednavka_orig": "origstring",
"firma_id": 2,
"osoba_id": 0,
"items": [
{
"karta_id": 1,
"mnozstvo": 2,
"cena": 10,
"zlava": 0
},
{
"karta_id": null,
"mnozstvo": 1,
"mj": "ks",
"cena": -2,
"zlava": 0,
"dph": 20,
"nazov": "Celková zľava na objednávku"
}
]
}
Objednávka predpokladá, že existuje firma s id=2. V objednávke je jedna skladová karta s id=1. Ak sa pripojí parameter dodanie, na faktúre sa objaví aj adresa dodania. Podporované od API 1.3.0 a Optivus verzia 5.24.0.x.
{
"datum": "2018-08-01T00:00:00.000Z",
"poznamka": "Príklad objednávky s adresou dodania. Pomenovanie je voliteľné, ak sa dá null, použije implicitné pomenovanie.",
"objednavka_orig": "origstring",
"firma_id": 2,
"osoba_id": 0,
"dodanie": {
"pomenovanie": "Adresa dodania",
"adresat": "Róbert Ulbricht",
"ulica": "Partizánska 71",
"mesto": "97401 Banská Bystrica"
},
"items": [
{
"karta_id": 1,
"mnozstvo": 2,
"cena": 10,
"zlava": 0
}
]
}
Špeciálne prípady:
Zistenie stavu konkrétnej objednávky.
Zmena stavu konkrétnej objednávky.
Parametre:
Získanie číselníka stavov.
Získanie zoznamu dokumentov k objednávke. Obvykle to bude iba faktúra.
Získanie konkrétneho súboru k objednávke.
Faktúra je jeden z možných druhov dokumentov. Vytvorí sa nasledovným postupom.
Prvým krokom je vytvorenie objednávky cez API v zozname objednávok v Optivuse. To sa robí funkciou Nová objednávka. Po vytvorení objednávky si ju užívateľ v Optivuse nájde a vytvorí z nej faktúru. Aby bolo možné teraz túto faktúru preniesť ako dokument do API, musí sa daná faktúra vytlačiť. Nie je potrebné ju fyzicky tlačiť, ale potrebujete si zobraziť dialóg na tlač faktúry. Na ňom sa nachádza tlačidlo ESH Fakt.... Pomocou tlačidla môžete vložiť report faktúry k objednávke, ktorá je na danú faktúru napojená.
Optivus si overí, či môže do PDF vygenerovať aktuálny report a či ho má vložiť k objednávke.
Potom si môžete skontrolovať, či v detailoch objednávky vidíte daný dokument.
V tomto postupe je popísané, ako sa dostať ku konkrétnemu súboru s faktúrou, ktorá je vygenerovaná k objednávke. Postupuje sa v nasledovných bodoch.
.../objednavky/zoznam
- Získa sa zoznam objednávok..../objednavky/dokumenty
- Získa sa zoznam dokumentov k objednavke..../objednavky/dokumenty/subor
- Získa sa konkrétny súbor faktúry k objednávke.Request.
https://remote-server/interface/ostra/eshop/v1/objednavky/zoznam?limit=100
Response. Tu to vrátilo jednu objednávku. Podstatná je položka objednavka_id
, ktorá má hodnotu 69607.
{
"items": [
{
"Row#": "1",
"cena": 6.16,
"cena_dph": 1.03,
"cena_zaklad": 5.13,
"cislo": "OP2018/07065",
"datum": "2018-12-19T10:35:46.000Z",
"datum_vybavenia": "2018-12-19T00:00:00.000Z",
"firma_id": 7463,
"id_stav": 3,
"objednavka_id": 69607,
"objednavka_orig": "",
"osoba_id": 11035,
"vybavena": true,
"zrusena": false
}
],
"paging": {
"limit": 333,
"maximum": 1,
"offset": 0
}
}
Request.
https://remote-server/interface/ostra/eshop/v1/objednavky/dokumenty?objednavka_id=69607
Response. Tu to vrátilo zoznam dokumentov. Obvykle bude iba jeden dokument, ktorým je faktúra. V tejto ukážke sú to tri dokumenty. Nemusíme skúmať, prečo všetky tri dokumenty obsahujú podľa názvu ten istý dokument. Pravdepodobne to užívateľ v Optivuse tak urobil, pravdepodobne z neznalosti, lebo program ho určite upozornil, že už tam jeden dokument má urobený. Podstatná je položka id_dokument
, ktorá má hodnotu 1, 2 alebo 3.
{
"items": [
{
"Row#": "1",
"crc": -195060123,
"datum": "2018-12-19T11:28:42.577Z",
"filename": "FV2018_02779.pdf",
"id_dokument": 1,
"objednavka_id": 69607,
"velkost": 38798,
"version": "265230890"
},
{
"Row#": "2",
"crc": 1798742948,
"datum": "2018-12-19T11:29:49.243Z",
"filename": "FV2018_02779.pdf",
"id_dokument": 2,
"objednavka_id": 69607,
"velkost": 38798,
"version": "265241240"
},
{
"Row#": "3",
"crc": 221535193,
"datum": "2018-12-19T11:40:31.347Z",
"filename": "FV2018_02779.pdf",
"id_dokument": 3,
"objednavka_id": 69607,
"velkost": 38798,
"version": "265303421"
}
],
"paging": {
"limit": 100,
"maximum": 3,
"offset": 0
}
}
Nasleduje záverečný krok, ktorý dodá obsah súboru.
Request.
https://remote-server/interface/ostra/eshop/v1/objednavky/dokumenty/subor?id=1
Response. Tu to vrátilo konkrétny subor.
GET /interface/ostra/eshop/v1/objednavky/dokumenty/subor?id=1 HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate
Authorization: Bearer sem daj bearer autentifikáciu
Connection: keep-alive
Host: remote-server
User-Agent: HTTPie/0.9.9
HTTP/1.1 200 OK
Connection: keep-alive
Content-Disposition: inline; filename="FV2018_02779.pdf"
Content-Length: 38798
Content-Type: application/pdf
Date: Wed, 19 Dec 2018 11:27:07 GMT
X-Powered-By: Express
+-----------------------------------------+
| NOTE: binary data not shown in terminal |
+-----------------------------------------+