API se uporablja za prenos informacij o bonih med Slevomatom in sistemom poslovnega partnerja. Partnerju omogoča, da preveri veljavnost bonov v svojem sistemu in unovči bone. Partnerju za ta namen ni treba uporabljati partnerskega vmesnika.
Možni primeri uporabe:
- Kupec kupi bon, pri katerem je storitev pogojena z vnosom kode na spletni strani partnerja ob kreiranju naročila. Zahvaljujoč API-ju se po tem vnosu takoj preveri veljavnost bona. Vrednost bona se nato odšteje od partnerjeve košarice in bon se samodejno unovči pri Slevomatu.
- Na enak način je možno tudi preveriti veljavnost bonov v partnerjevem rezervacijskem sistemu ali naložiti kupljeno dobroimetje v določeni vrednosti neposredno na spletno stran partnerja.
Partner API zahteva žeton, ki je edinstven za vsakega partnerja in se pošlje kot del vsake zahteve. Za uporabo partnerskega API-ja se obrnite na vašega/našega prodajnega predstavnika.
Oblika zahteve
Dostopna točka API se nahaja na /api.
Oblika zahteve je
<URL přístupového bodu>/<akce>[<parametry>]
Vse zahteve so standardne zahteve HTTP GET, kar pomeni, da je zahteva za preverjanje veljavnosti kupona lahko videti takole:
https://www.slevomat.cz/api/vouchercheck?code=1234-5677-77-111&token=123456789012345.
Oblika odgovora
Odgovor strežnika je vedno v formatu JSON z ustrezno glavo Content-type. Osnovna struktura odgovora je naslednja.
{
"result": true,
"data": {
...
},
"error": {
"code": 0,
"message": null
}
}
Vrednost elementa rezultata je true (v primeru uspeha) ali false (v primeru napake). V primeru napake vnos napake vsebuje kodo napake (koda ) in njen opis (sporočilo ). Poleg navedbe v polju napake sistem v primeru napake vrne ustrezno statusno kodo HTTP (400, 401, 403, 404).
Podatkovna postavka vsebuje podatke, ki jih vrne klicano dejanje, in njena vsebina je individualna.
Vsi podatki so v obliki zapisa LLLL-MM-DDTHH:MM:SSZ (ISO8601; npr. 2011–01–01T10:10:10+02:00).
Potrditev vavčerja
- dejanje: voucherCheck
- parametri: žeton (obvezno; edinstven partnerski žeton), koda (obvezno; koda bona)
Obstajajo tri kode testnih bonov:
- 1234–5677–77–111 (plačano, neuporabljeno),
- 2234–5688–88–222 (plačano, rabljeno),
- 3234–5699–99–333 (neplačano, neuporabljeno).
Če aplikacija uporabi eno od teh kod, bo strežnik vrnil ustrezen odgovor (v primeru vplačanega in neizkoriščenega bona vrne tudi vzorec bona in podatke o dogodku).
Oblika podatkov o odgovoru
{
"token": <auth token>,
"code": <voucher code>,
"voucherData": <voucher data>
}
Parameter voucherData vsebuje definicijo bona v naslednji obliki.
{
"id": <Voucher ID>,
"orderId": <Order ID>,
"title": <voucher title>,
"ordered": <order date and time; datetime>,
"paidDate": <order paid date; date>
"validFrom": <voucher validity start; date>,
"validTo": <voucher validity end; date>,
"key": <voucher code>,
"code": <voucher code,
"product": <promotion ID>,
"productName": <promotion title>,
"variant": <variant ID>,
"variantName": <variant title>,
"imageUrl": <URL image>,
"smallImageUrl": <URL image>,
"productUrl": <URL image>,
"reservationTime": <Reservation time if voucher is reserved; datetime>
}
Stanja napak
- Koda 1101 (HTTP statusna koda 400): avtentikacijski žeton ali koda kupona ni bila vnesena,
- Koda 1102 (HTTP statusna koda 403): žetona ni v bazi podatkov,
- koda 1103 (HTTP statusna koda 404): bon z navedeno kodo ne obstaja,
- koda 1104 (HTTP statusna koda 401): naročilo, na podlagi katerega je bil bon izdan, ni plačano,
- koda 1105 (HTTP statusna koda 401): bon je že unovčen,
- koda 1106 (HTTP statusna koda 401): kupon je bil povrnjen,
- koda 1107 (HTTP statusna koda 401): naročilo ali kupon je bilo preklicano,
- koda 1108 (HTTP statusna koda 401): dogodek je že zaračunan partnerju; ni več mogoče zahtevati nobenih dodatnih kuponov,
- koda 1109 (HTTP status koda 401): boni za ta dogodek še niso začeli veljati,
- koda 1111 (koda stanja HTTP 500): notranja napaka strežnika,
- koda 1112 (HTTP statusna koda 403): kupon je potrebno unovčiti samo z rezervacijo
Primer zahteve
https://www.slevomat.cz/api/vouchercheck?code=1234-5677-77-111&token=123456789012345
Primer odgovora
{
"result": true,
"data": {
"token": "123456789012345",
"code": "1234567890-123",
"voucherData": {
"title": <název voucheru>,
...
}
},
"error": {
"code": 0,
"message": null
}
}
Unovčenje bona
- Akcija: bonPrijava
- parametri: žeton (obvezen; edinstven partnerski žeton), koda (obvezen; koda bona)
Poskusi unovčiti kupon dane kode.
Številko testnega bona lahko uporabite za namene testiranja. V tem primeru bon ne bo unovčen, ampak bo sistem vrnil odgovor, kot da je bil unovčen.
Oblika podatkov o odgovoru
Format odgovora je popolnoma enak kot pri preverjanju veljavnosti bona.
Pogoji napak
- Koda 1201 (koda statusa HTTP 400): ni bil vnesen žeton za preverjanje pristnosti ali koda kupona,
- Koda 1202 (HTTP statusna koda 403): žetona ni v bazi podatkov,
- koda 1203 (HTTP statusna koda 404): bon z navedeno kodo ne obstaja,
- koda 1204 (HTTP statusna koda 401): naročilo, na podlagi katerega je bil bon izdan, ni plačano,
- koda 1205 (HTTP statusna koda 401): bon je že unovčen,
- koda 1206 (HTTP statusna koda 401): kupon je bil povrnjen,
- koda 1207 (HTTP statusna koda 401): naročilo ali kupon je bilo preklicano,
- koda 1208 (HTTP statusna koda 401): dogodek je bil že zaračunan partnerju; ni več mogoče zahtevati nobenih dodatnih kuponov,
- koda 1209 (HTTP statusna koda 401): boni za ta dogodek še niso začeli poteči,
- koda 1211 (koda statusa HTTP 500): notranja napaka strežnika
- koda 1212 (HTTP statusna koda 403): kupon je možno unovčiti le preko rezervacije
Primer zahteve
https://www.slevomat.cz/api/voucherapply?code=1234-5677-77-111&token=123456789012345
Primer odgovora
{
"result": true,
"data": {
"token": "123456789012345",
"code": "1234567890-123",
"voucherData": {
"title": <název voucheru>,
...
}
},
"error": {
"code": 0,
"message": null
}
}
Opomba: če želite uporabiti Partner API za odštevanje vrednosti ali izdelkov v vašem vozičku, razmislite o vključitvi več atributov parametra voucherData. To je še posebej pomembno, če imate več tekočih promocij z različnimi vrednostmi ponujenih izdelkov. Zlasti priporočamo uporabo atributov izdelka ali različice.