API se koristi za prijenos informacija o vaučerima između Zlavomata i sustava poslovnog partnera. Omogućuje partneru provjeru valjanosti vaučera u svom sustavu i iskorištavanje vaučera. Partner u tu svrhu ne mora koristiti partnersko sučelje.
Mogući primjeri upotrebe:
- Kupac kupuje vaučer, gdje je uvjet za pružanje usluge unos koda na web stranici partnera prilikom kreiranja narudžbe. Zahvaljujući API-ju, nakon ovog unosa odmah se provjerava valjanost vaučera. Njegova vrijednost se zatim odbija iz partnerove košarice i vaučer se automatski iskorištava na Zlavomotu.
- Na isti način, valjanost vaučera može se provjeriti i u rezervacijskom sustavu partnera ili kupac može izravno na web stranici partnera učitati kupljeni kredit određene vrijednosti.
Partner API zahtijeva token koji je jedinstven za svakog partnera i šalje se sa svakim zahtjevom. Ako želite koristiti Partner API, obratite se svom/našem trgovcu.
Format zahtjeva
API pristupna točka nalazi se na /api.
Format zahtjeva je
<URL přístupového bodu>/<akce>[<parametry>]
Svi zahtjevi su standardni HTTP GET zahtjevi, tj. zahtjev za provjeru valjanosti vaučera može izgledati ovako, na primjer:
https://www.zlavomat.sk/api/vouchercheck?code=1234-5677-77-111&token=123456789012345.
Format odgovora
Odgovor poslužitelja je uvijek u JSON formatu s odgovarajućim zaglavljem Content-type. Osnovna struktura odgovora je sljedeća.
{
"result": true,
"data": {
...
},
"error": {
"code": 0,
"message": null
}
}
Vrijednost rezultirajuće stavke je true (u slučaju uspjeha) ili false (u slučaju pogreške). U slučaju pogreške, stavka pogreške sadrži kod pogreške ( code ) i njezin opis ( message ). Uz indikaciju u polju pogreške, sustav u slučaju pogreške vraća odgovarajući HTTP statusni kod (400, 401, 403, 404).
Podatkovni element sadrži podatke koje je vratila pozvana akcija, a njegov sadržaj je individualan.
Svi podaci su u formatu GGGG-MM-DDTHH:MM:SSZ (ISO8601; npr. 2011–01–01T10:10:10+02:00).
Provjera valjanosti vaučera
- akcija: provjera vaučera
- parametri: token (obavezno; jedinstveni partnerski token), kod (obavezno; kod vaučera)
Postoje tri koda za probni vaučer:
- 1234–5677–77–111 (plaćeno, neiskorišteno),
- 2234–5688–88–222 (plaćeno, korišteno),
- 3234–5699–99–333 (neplaćeno, neiskorišteno).
Ako aplikacija koristi jedan od ovih kodova, poslužitelj će vratiti odgovarajući odgovor (u slučaju plaćenog i neiskorištenog vaučera, vratit će i uzorak vaučera i podatke o akciji).
Format podataka odgovora
{
"token": <autentizační token>,
"code": <kód voucheru>,
"voucherData": <data voucheru>
}
Parametar voucherData sadrži definiciju vaučera u sljedećem formatu.
{
"id": <ID voucheru>,
"orderId": <ID objednávky>,
"title": <název voucheru>,
"ordered": <datum a čas objednávky; datum a čas>,
"paidDate": <datum zaplacení objednávky; datum>
"validFrom": <začátek platnosti voucheru; datum>,
"validTo": <konec platnosti voucheru; datum>,
"key": <kód voucheru>,
"code": <kód voucheru>,
"product": <ID akce>,
"productName": <název akce>,
"variant": <ID varianty akce>,
"variantName": <název varianty akce>,
"imageUrl": <URL obrázku>,
"smallImageUrl": <URL náhledu>,
"productUrl": <URL akce>
}
Stavke varijante ili variantName sadrže ID ili naziv uređene varijante radnje, ako navedena radnja sadrži varijante. Ako ne, oba atributa su NULL .
Stanja grešaka
- kod 1101 (HTTP statusni kod 400): nije unesen autentifikacijski token ili kod vaučera,
- kod 1102 (HTTP statusni kod 403): zadani token nije u bazi podataka,
- kod 1103 (HTTP statusni kod 404): vaučer s navedenim kodom ne postoji,
- kod 1104 (HTTP statusni kod 401): narudžba na temelju koje je izdan vaučer nije plaćena,
- kod 1105 (HTTP statusni kod 401): vaučer je već iskorišten,
- kod 1106 (HTTP statusni kod 401): vaučer je vraćen,
- kod 1107 (HTTP statusni kod 401): narudžba ili vaučer je otkazan,
- kod 1108 (HTTP kod statusa 401): akcija je već naplaćena partneru; nije moguće primijeniti druge vaučere,
- kod 1109 (HTTP statusni kod 401): važenje vaučera za ovaj događaj još nije započelo.
- kod 1111 (HTTP kod statusa 500): interna pogreška poslužitelja
Primjer zahtjeva
https://www.zlavomat.sk/api/vouchercheck?code=1234-5677-77-111&token=123456789012345
Primjer odgovora
{
"result": true,
"data": {
"token": "123456789012345",
"code": "1234567890-123",
"voucherData": {
"title": <název voucheru>,
...
}
},
"error": {
"code": 0,
"message": null
}
}
Iskorištenje vaučera
- akcija: vaučerPrimijeni
- parametri: token (obavezno; jedinstveni partnerski token), kod (obavezno; kod vaučera)
Pokušat će se iskoristiti vaučer s navedenim kodom.
Moguće je koristiti broj testnog vaučera u svrhu testiranja. U tom slučaju, vaučer neće biti iskorišten, ali će sustav vratiti odgovor kao da se to dogodilo.
Format podataka odgovora
Format odgovora je potpuno isti kao u slučaju provjere valjanosti vaučera.
Stanja grešaka
- kod 1201 (HTTP kod statusa 400): nije unesen autentifikacijski token ili kod vaučera,
- kod 1202 (HTTP statusni kod 403): zadani token nije u bazi podataka,
- kod 1203 (HTTP statusni kod 404): vaučer s navedenim kodom ne postoji,
- kod 1204 (HTTP statusni kod 401): narudžba na temelju koje je izdan vaučer nije plaćena,
- kod 1205 (HTTP statusni kod 401): vaučer je već iskorišten,
- kod 1206 (HTTP statusni kod 401): vaučer je vraćen,
- kod 1207 (HTTP statusni kod 401): narudžba ili vaučer je otkazan,
- kod 1208 (HTTP statusni kod 401): akcija je već naplaćena partneru; nije moguće primijeniti druge vaučere,
- kod 1209 (HTTP statusni kod 401): važenje vaučera za ovaj događaj još nije započelo.
- kod 1211 (HTTP kod statusa 500): interna pogreška poslužitelja
Primjer zahtjeva
https://www.zlavomat.sk/api/voucherapply?code=1234-5677-77-111&token=123456789012345
Primjer odgovora
{
"result": true,
"data": {
"token": "123456789012345",
"code": "1234567890-123",
"voucherData": {
"title": <název voucheru>,
...
}
},
"error": {
"code": 0,
"message": null
}
}
Napomena: Da biste pomoću Partner API-ja pročitali vrijednost proizvoda u košarici, razmislite o uključivanju više atributa parametra voucherData. To je posebno važno u trenutku kada imate nekoliko aktivnih kampanja s različitom vrijednošću ponuđenih proizvoda. Preporučujemo korištenje uglavnom atributa proizvoda ili varijante.