POS operacijų perkėlimas.
POST https://api.manorivile.lt/client/v2
ApiKey
: Privalomas. Unikalus API raktas išduodamas užsakant paslaugąContent-Type
: Privalomas. Kokiu formatu paduodami parametrai ir duomenys (request):
application/xml
application/json
Accept
: Neprivalomas. Gražinamo rezultato (response) formatas
application/xml
(default)application/json
(veikia nuo Manorivile-Gateway-1.1.0 versijos)method
: EDIT_I61_PERK
data
: perduodami duomenys:
I61_KODAS_WW
- POS operacijos numeris;I61_KODAS_KK
- POS kodas;I61_DOK_NR
- Kvito numeris;OBJ_SER_ORDER
- likučių pagal objektus ir serijas nurašymo eiliškumas;APJUNGTI
- požymis pardavimo operacijų apjungimui.Vienu metu veiksmai atliekami tik su vienu dokumentu.
Pirmi 7 ApiKey simboliai (pvz USERABC.JQKPG1d7Pkjxj37ObsgdfEkvfEfvF1oL7h7UMOLo
-> USERABC
) yra vartotojo vardas Rivile GAMA programoje, kuriuo bus kuriami ar koreguojami įrašai.
Būtina perduoti arba POS operacijos numerį I61_KODAS_WW
arba POS kodą I61_KODAS_KK
ir kvito numerį I61_DOK_NR
.
Jeigu POS aprašyme leidžiamas likučių nurašymas iš alternatyvių objektų ir serijų, naudojant tag'ą <obj_ser_order>
galima nurodyti objektų ir serijų parinkimo eiliškumą, pvz.: 'i17_serija asc, i17_kodas_os desc'
.
Pagal nutylėjimą kiekvienai perkeltai POS pardavimo operacijai kuriama nauja operacija pardavimų modulyje. Jei tag'o APJUNGTI
reikšmė yra 1, prieš kuriant naują operaciją ieškoma jau esamos neperkeltos operacijos su identiškomis laukų reikšmėmis (I06_OP_TIP
, I06_OP_DATA
, I06_KODAS_KS
, I06_KODAS_MS
, I06_KODAS_SM
, I06_KODAS_SS_M
, I06_KODAS_ZN
) ir tokią suradus pildoma esama operacija.
pvz application/xml
:
<body>
<method>EDIT_I61_PERK</method>
<data>
<I61>
<I61_KODAS_WW>010R00000001</I61_KODAS_WW>
<OBJ_SER_ORDER>i17_serija asc, i17_kodas_os desc</OBJ_SER_ORDER>
<APJUNGTI>1</APJUNGTI>
</I61>
</data>
</body>
pvz application/json
:
{
"method": "EDIT_I61_PERK",
"data": {
"I61": {
"I61_KODAS_WW": "010R00000001",
"OBJ_SER_ORDER": "i17_serija asc, i17_kodas_os desc",
"APJUNGTI": 1
}
}
}
Grąžinama informacija XML formate tarp tag'ų <RET_DOK>..</RET_DOK>
.
pvz response:
<RET_DOK>
<I61>
<I61_KODAS_WW>010R00000001</I61_KODAS_WW>
<I61_KODAS_KK>1</I61_KODAS_KK>
<I61_TIPAS>1</I61_TIPAS>
<I61_DOK_NR>A00000000001</I61_DOK_NR>
<I61_OP_DATA>2024-06-01T00:00:00</I61_OP_DATA>
<I61_PERKELTA>2</I61_PERKELTA>
...
<I62>
<I62_KODAS_WW>010R00000001</I62_KODAS_WW>
<I62_EIL_NR>1</I62_EIL_NR>
<I62_EIL_NR_VD>1</I62_EIL_NR_VD>
<I62_KODAS_PO>010R00000001</I62_KODAS_PO>
<I62_EIL_NR_PO>1</I62_EIL_NR_PO>
<I62_TIPAS>1</I62_TIPAS>
...
<Anuliuota>0</Anuliuota>
</I62>
</I61>
</RET_DOK>
Klaida paduodant duomenis / SQL sintaksės klaidos / kitos DB klaidos, pvz:
<?xml version='1.0' encoding='UTF-8'?>
<RET_DOK>
<id/>
<durationMs>345</durationMs>
<errorMessage>Nepavyko įvykdyti metodo</errorMessage>
<document/>
<errors>
<error>
<data><I61><num_row>1</num_row><I61_KODAS_WW>010R00000002</I61_KODAS_WW></I61></data>
<dataErrors>
<dataError>
<tag>I61_KODAS_WW</tag>
<code>19001</code>
<message>Toks operacijos kodas nerastas</message>
</dataError>
</dataErrors>
</error>
</errors>
</RET_DOK>
Blogai nurodytas adresas / neteisingai nurodytas API raktas / nenurodytas API raktas / pasibaigęs API rakto galiojimas, pvz.:
<?xml version='1.0' encoding='UTF-8'?>
<RET_DOK>
<id>0</id>
<durationMs>0</durationMs>
<errorMessage>Api key is not valid</errorMessage>
</RET_DOK>
Nepaleistas MANO Rivile Gateway arba kitaip sutrikusi jo veikla
<?xml version='1.0' encoding='UTF-8'?>
<RET_DOK>
<id/>
<durationMs>0</durationMs>
<errorMessage>Rivile GAMA database is unavailable. Please check if the gateway is running and is set up correctly.</errorMessage>
</RET_DOK>
Laiku nebuvo gautas Rivile API užklausos atsakymas, pavyzdžiui, apkrauta GAMA duomenų bazė
<?xml version='1.0' encoding='UTF-8'?>
<RET_DOK>
<id/>
<durationMs>0</durationMs>
<errorMessage>No response received from client gateway</errorMessage>
</RET_DOK>
Bendrinė sistemos klaida, pvz.:
<?xml version='1.0' encoding='UTF-8'?>
<Map>
<timestamp>2020-02-05T12:34:26.890+0000</timestamp>
<status>500</status>
<error>Internal Server Error</error>
<message>No message available</message>
<path>/v2</path>
</Map>
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'ApiKey: uUCz6UD.sKVrjaWRDJAH1c7l4qL2nOoN2K0jARkvuHDdYsss',
'Content-Type: application/json',
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
$response = curl_exec($ch);
curl_close($ch);