API slúži na previazanie nákupného radcu Heureka.sk s obchodmi zapojenými do služby Marketplace.
API má RESTful
architektúru a snaží sa využívať všetky možnosti
HTTP.
Využíva plnohodnotne metódy GET, POST a PUT.
Odpovede na HTTP požiadavky sú vrátené vo formáte JSON.
Komunikácia medzi obchodom a Heurekou môže fungovať obojstranne, preto má API dve časti. Jedna časť je na strane obchodu a druhá na strane Heureky. Sú rovnako dôležité a odporúčame mať implementované obe časti.
API na strane obchodu slúži k získavaniu aktuálnych informácií o ponúkaných produktoch - dostupnosti, možnosti dopravy apod. Druhá časť slúži k tomu, aby obchod mohol posielať Heureke napr. informácie o stave objednávky.
API vyžaduje zabezpečené spojenie pomocou SSL (https). Dôležitá je taktiež rýchlosť odozvy API.
Po novom môžete využiť HCAPI - nástroj určený na jednoduchšie napojenie na Marketplace API.
https://www.example.com/api/:verzia_api:/:oblasť:/:akcia:/
Na otestovanie API môžete použiť testovacie prostredie, ktoré nájdete v administrácii obchodu v časti Marketplace -> MP testing. Po prihlásení do administrácie e-shopu tu.
Na stránke si môžete vyskúšať ako Heureka volá vaše API a skontrolovať, či sú vaše odpovede správne.
V Heureka administrácii pod záložkou “Marketplace -> Nastavenie Marketplace API” následne vložte jednotlivé API URL do príslušných polí.
Metóda vracia aktuálne dáta o požadovaných produktoch.
https://www.exaple.com/api/1/products/availability
products array | pole s produktami |
---|---|
id string | ID produktu (ITEM ID) |
count integer | počet objednávaných kusov (vždy väčší než 0) |
products array | pole s produktami |
---|---|
id string | ID produktu (ITEM ID) |
count integer | počet objednávaných kusov (vždy väčší než 0) |
available boolean | je produkt dostupný? (false pokiaľ produkt nemožno v žiadnom prípade objednať, inak true) |
delivery integer | string | počet dní do odoslania (číselník), pokiaľ obchod nedisponuje číselnou hodnotou, môže uviesť textovú variantu napr. "na vyžiadanie", "do 2 dní". |
name string | názov produktu (max. 255 znakov) |
price float | cena tovaru za kus (vrátane DPH a všetkých poplatkov) |
related array [nepovinné] |
súvisiace položky k produktu (Ide o určitú pridanú hodnotu k produktu, ktorá nemá vplyv na cenu.) |
title string | popis položky |
priceTotal float | celková cena produktu (počet × cena) |
priceSum float | celková cena (za všetky produkty) |
Na volanie URL je použitý nástroj cURL.
curl https://www.example.com/api/1/products/availability?products[0][id]=ABC123&products[0][count]=1&products[1][id]=ABC124&products[1][count]=2
{ "products":[ { "id": "ABC123", "available": true, "count": 1, "delivery": 0, "name": "Diesel Zero Plus Masculine", "price": 3.5, "related": [ { "title": "Zdarma darčeková taška" } ], "priceTotal": 3.5 }, { "id": "ABC124", "available": true, "count": 2, "delivery": "na vyžiadanie", "name": "Mikrovlnná rúra Ariete-Scarlett 933 nerez", "price": 200.00, "related": [ { "title": "Vynáška do 5. poschodia zdarma" }, { "title": "Prepiska zdarma." } ], "priceTotal": 13 } ], "priceSum": 16.5 }
Vráťte v available hodnotu false.
V available musí byť true a v delivery hodnota -1 alebo iný vhodný textový popis. Všeobecne platí, že čo je v XML feede to musí obchod umožniť kúpiť aj na Heureke.
V count uveďte hodnotu 2. Zákazník bude na túto skutočnosť upozornený.
Hodnota delivery musí byť najhoršia možná, teda pokiaľ je obchod schopný dodať všetky 3 kusy, bude hodnota 5.
Nie. Hodnota count musí byť max. počet kusov ktoré zákazník požaduje.
Vráti možnosti dopravy a platby. Napr. to, že tovar je možné dodať pomocou Slovenskej pošty, alebo PPL s možnosťou dobierky.
Každý zapojený obchod zašle prostredníctvom API akým spôsobom expeduje tovar zákazníkovi.
Jeden z týchto spôsobov si zákazník zvolí. Pokiaľ zákazník zvolí platbu vopred (platba kartou),
tak platbu zaisťuje Heureka pomocou služby Adyen. A nezáleží na tom, či obchod takúto platbu podporuje alebo nie.
Pri dobierke, kde je platba na strane obchodu, je situácia iná.
Tu Heureka naprosto rešpektuje možnosti obchodu a zobrazí ich tak zákazníkovi.
To znamená, že pokiaľ obchod nepodporuje dobierku, nebude zákazníkovi ponúknutá.
V parametri binding obchod určí akým spôsobom je daná platba viazaná na spôsob doručenia. Napr. že "platba v hotovosti pri prevzatí" je viazaná na spôsob doručenia "osobný odber na pobočke v Bratislave".
Pokiaľ si zákazník zvolí platbu kartou a obchod tento variant nepodporuje, tak sú zákazníkovi zobrazené všetky spôsoby dopravy nezávisle na väzbách uvedených v binding.
Predpokladá sa, že obchod je po zaplatení tovaru schopný zákazníkovi doručiť tovar všetkými ponúknutými možnosťami.
Parameter store slúži k jasnej identifikácii pobočky, kde si možno vyzdvihnúť objednávku. Rozlišujú sa dva typy a to vlastné pobočky / výdajné miesta obchodu.
Vlastné pobočky musia mať správne ID, ktoré je používané taktiež v rámci XML Dostupnostného feedu. Nájdete ho v administrácii pobočiek. Pre vlastné pobočky ide o Depot ID pre dostupnostný XML súbor.
Parameter store má význam len pri osobných odberoch na pobočkách či výdajných miestach. Pri ostatných možnostiach ich neposielajte.
https://www.example.com/api/1/payment/delivery
products array | pole s produktami |
---|---|
id string | ID produktu (ITEM ID) |
count integer | počet objednávaných kusov |
transport array | doprava |
---|---|
id integer | ID dopravy |
type integer | typ dopravy (číselník) |
name string | názov dopravy |
price float | cena |
description string | popis |
store | identifikácia pobočky |
type integer | typ pobočky / výdajného miesta (číselník) |
id integer | ID pobočky pre Osobný odber (z feedu alebo administrácie) alebo ID obchodu ("shopId") / ID dopravca ("shipperId") pre DepotAPI. |
payment array | platba |
id integer | ID platby |
type integer | typ platby (číselník) |
name string | názov platby |
price float | cena |
binding array | pole väzieb medzi dopravou a platbou |
id integer | ID väzby |
transportId integer | ID dopravy |
paymentId integer | ID platby |
Na volanie URL je použitý nástroj cURL.
curl https://www.example.com/api/1/payment/delivery?products[0][id]=ABC123&products[0][count]=1&products[1][id]=ABC124&products[1][count]=2
{ "transport": [ { "id": 1, "type": 1, "name": "PPL", "price": 4, "description": "Do 1 - 2 pracovných dní." }, { "id": 2, "type": 1, "name": "Slovenská pošta", "price": 3.5, "description": "Do 2 - 3 pracovných dní." }, { "id": 4, "type": 2, "name": "Osobný odber Lozorno", "price": 0, "description": "O tom, že je tovar pripravený k odberu Vás budeme ...", "store": { "id": 2020, "type": 1 } }], "payment":[ { "id": 123, "type":1, "price": 1, "name": "Dobierka Slovenská pošta" }, { "id": 200, "type":1, "price": 1.1, "name": "Dobierka PPL" }, { "id": 300, "type": 3, "price": 0.00, "name": "Platba kartou" }, { "id": 100, "type": 2, "price": 0.33, "name": "Platba pri prevzatí" }], "binding": [ { "id": 1, "transportId": 1, "paymentId": 200 }, { "id": 5, "transportId": 1, "paymentId": 300 }, { "id": 2, "transportId": 2, "paymentId": 123 }, { "id": 6, "transportId": 2, "paymentId": 300 }, { "id": 4, "transportId": 4, "paymentId": 300 }, { "id": 7, "transportId": 4, "paymentId": 100 }] }
Väzby sú dôležité na to, aby sme mohli zákazníkovi správne zobraziť k vybranej platbe dostupné dopravy.
Platbu kartou (a ďalšie online platby) zaisťuje Heureka pomocou Adyen, takže by sa mohlo zdať, že nie sú potrebné informácie od vás o platbe kartou. To do istej miery nie je tak. Pokiaľ ich nepošlete nič sa nedeje, my príslušné väzby vygenerujeme sami. Ale pokiaľ ich posielate, tak my vám pri objednávke pošleme konkrétne ID platby a dopravy, ktoré si nakupujúci vybral. Môže si ich teda obchod správne spárovať vo svojom shopsystéme.
V hodnote delivery musí byť taká hodnota, za ktorú je obchod schopný dodať kompletnú objednávku. V tomto prípade teda päť.
Je tu nutné rozlišovať dve veci. Slovenská pošta je možnosť dopravy a dobierka je platba, tieto dve veci je nutné spojiť pomocou väzieb. Chybou by bolo keby sa možnosť platby dobierkou alebo predom rozlišovalo v transport.
Ukážka správneho postupu:
{ "transport": [ { "id": 1, "type": 1, "name": "Slovenská pošta", "price": 3.50, "description": "Do 1 - 2 pracovných dní." }], "payment": [ { "id": 1, "type": 1, "name": "Dobierka" "price": 1 }, { "id": 2, "type": 3, "name": "Platobná karta", "price": 0.00 }], "binding": [ { "id": 1, "transportId": 1, "paymentId": 1 }, { "id": 2, "transportId": 1, "paymentId": 2 }] }
Vráti stav objednávky v obchode.
https://www.example.com/api/1/order/status
order_id integer | ID objednávky |
---|
order_id integer | ID objednávky |
---|---|
status integer | aktuálny stav objednávky (číselník) |
Na volanie URL je použitý nástroj cURL.
curl https://www.example.com/api/1/order/status?order_id=2011101001
{ "order_id": 2011101001, "status": 0 }
Na stav objednávky sa automaticky pýtame niekoľkokrát denne. Obvykle to býva ráno, okolo poludnia a popoludní.
Odoslanie objednávky do obchodu.
Po odoslaní by malo dôjsť v obchode k rezervácii tovaru a začať proces expedície (pokiaľ je objednávka zaplatená alebo je na dobierku).
V prípade osobného odberu od zákazníka povinne vyžadujeme iba polia meno, priezvisko, e-mail a telefónne číslo. Zákazník má možnosť vyplniť svoju fakturačnú adresu, ak tak ale nevykoná, zasielame cez API vo fakturačných údajoch nasledovnú adresu:
Osobný odber
Ulica č. p.: Osobný odber 1
Mesto: Bratislava
PSČ: 81103
Štát: Slovenská republika
Aby mohol obchod rozoznať akú platbu a dopravu si zákazník vybral sú posielané ich ID, ktoré boli zaslané obchodom v metóde payment/delivery.
Môže sa stať, že obchod v metóde payment/delivery neposiela (obchod ju nepodporuje) napr. platbu pomocou platobnej karty, napriek tomu si ju používateľ môže vybrať, pretože tento variant platby je nezávislý na obchode (zaisťuje ju Heureka). V tomto prípade nie je k dispozícii hodnota pre paymentId. V paymentId tak bude zaslaná hodnota 0. Pokiaľ však už platba s paymentId 0 existuje, bude použité najvyššie dostupné paymentId zvýšené o 1.
Príklady:
Príklad odpovede | paymentId pre bankový prevod | paymentId pre platbu kartou |
---|---|---|
{ "transport": ..., "payment":[ { "id": 200, "type":1, "price": 33.00, "name": "Dobírka" }, { "id": 300, "type": 2, "price": 10.00, "name": "Platba při převzetí" }], "binding": ... } |
0 | 301 |
{ "transport": ..., "payment":[ { "id": 200, "type":1, "price": 33.00, "name": "Dobírka" }, { "id": 0, "type": 2, "price": 10.00, "name": "Platba při převzetí" }], "binding": ... } |
201 | 202 |
{ "transport": ..., "payment":[ { "id": 200, "type":1, "price": 33.00, "name": "Dobírka" }, { "id": 300, "type": 3, "price": 10.00, "name": "Platba kartou" }], "binding": ... } |
0 | 300 |
Pokiaľ zákazník zvolí dopravu na výdajné miesto zaslané cez DepotAPI je v dodacej adrese vyplnená adresa vybraného výdajného miesta.
Parameter eLicence označuje, že objednávka obsahuje produkt s elektronickou licenciou - tieto produkty využívajú elektronickú distribúciu, teda nie klasickú dopravu. V prípade, že objednávka neobsahuje produkt s klasickou dopravou, je deliveryId zvolené z najvyššieho deliveryId z metódy GET payment/delivery, ktoré inkrementujeme o 1 (napr. ak je najvyššia deliveryId 5, pre eLicence bude 6)
https://www.example.com/api/1/order/send
products array | objednané produkty |
---|---|
id string | ID produktu (ITEM ID) |
count integer | počet kusov |
price float | cena, za ktorú zákazník produkt objednal (za kus) |
totalPrice float | celková cena (počet kusov x cena) |
params array | vybrané parametre |
id integer | ID parametra |
value string | hodnota parametra |
gifts array | Darčeky ponúkané k produktu (z XML) |
name string | názov darčeka |
shopGiftId string|null | ID darčeku dodané obchodom v XML |
productsTotalPrice float | celková cena za všetky produkty (bez poplatkov za dopravu a platbu!) |
heureka_id big integer | interné číslo objednávky v systéme Heureky - pomocou neho môžete identifikovať duplicitne zasielané objednávky |
deliveryId integer | ID vybranej dopravy |
paymentId integer | ID vybranej platby |
deliveryPrice float | cena vybranej dopravy |
paymentPrice float | cena vybranej platby |
eLicence bool | príznak, či objednávka obsahuje elektronickú licenciu (a teda aj el. distribúciu) |
note string | poznámka k objednávke |
paymentOnlineType array | typ online platby, v prípade "offline" platby sa parameter neposiela |
title string | názov platby |
id integer | ID platby |
customer array | nakupujúci (fakturačná adresa) |
firstname string | krstné meno |
lastname string | priezvisko |
email string | |
phone string | telefón |
street string | ulica a číslo popisné |
city string | mesto |
postCode string | PSČ |
state string | štát |
company string | názov firmy |
ic integer | IČ |
dic string | DiČ |
deliveryAddress array | nakupujúci (dodacia adresa) |
firstname string | krstné meno |
lastname string | priezvisko |
street string | ulica a číslo popisné |
city string | mesto |
postCode string | PSČ |
state string | štát |
company string | názov firmy |
depotId integer [deprecated] | ID pobočky - Heureka neručí za to, že ID depotu, ktoré od nás cez API obdržíte, je totožné s tým, ktoré dopravca zasiela priamo obchodu. |
originalId string | Unikátne ID pobočky výdajného miesta/boxu podľa oficiálneho zoznamu dopravcov. |
order_id integer | číslo objednávky - s týmto číslom ďalej komunikujeme cez API |
---|---|
internal_id string | interné číslo objednávky v obchode (typicky to ktoré uvádzate zákazníkovi na faktúre) |
variableSymbol big integer |
variabilný symbol (bez nevýznamných núl, max. 10 čísel), bude slúžiť k spárovaniu platieb pri vybíjaní kreditu |
Na volanie URL je použitý nástroj cURL.
curl -d "products[0][id]=ABC123&products[0][count]=1&products[0][price]=100&products[0][totalPrice]=100&products[0][gifts][0][name]=darek&products[0][gifts][0][shopGiftId]=drk1&customer[firstname]=Jan&customer[lastname]=Novak&customer[street]=Jiraskova%209&customer[phone]=728000000&customer[city]=Jablonec&customer[company]=&customer[postCode]=46601&customer[state]=%C4%8Cesk%C3%A1%20republika&customer[email][email protected]&deliveryAddress[firstname]=Jan&deliveryAddress[lastname]=Kos&deliveryAddress[street]=Liberecka%20999&deliveryAddress[city]=Jablonec&deliveryAddress[company]=&deliveryAddress[postCode]=46601&deliveryAddress[state]=%C4%8Cesk%C3%A1%20republika&deliveryAddress[note]=Poznámka%20TEST%20Heureka&deliveryId=100&paymentId=203&productsTotalPrice=500&paymentOnlineType[title]=Testovací%20online%20platba&paymentOnlineType[id]=1&deliveryPrice=100&paymentPrice=30.20&heureka_id=7864287" https://www.example.com/api/1/order/send
{ "order_id": 2011101001, "internal_id": "HRK-2012-0001", "variableSymbol": 1234567890 }
Objednávky sú odesielané pomocou fronty. To znamená, že po vytvorení zákazníkom sa dáta uložia do databázy do fronty a objednávka sa odošle. Pokiaľ nie je vrátené číslo objednávky, tak je to považované za neúspešný pokus a objednávka sa po chvíli pošle znovu. Celkovo sa to opakuje 5 krát, potom sú neodoslané objednávky riešené individuálne.
Nemalo by sa to stávať, pretože všetko čo Heureka ponúka má obchod uvedené v XML feede a teda to predáva. Samozrejme môže sa stať, že dôjde k oneskoreniu medzi zistením dostupnosti a odoslaním objednávky, ale i v tomto prípade by mal obchod objednávku prijať a potom so zákazníkom vyriešiť túto skutočnosť individuálne.
Nastavenie objednávky na storno
K stornu objednávky dochádza len výnimočne, tak aby nedochádzalo k problémom pri expedícii.
https://www.example.com/api/1/order/cancel
order_id integer | ID objednávky |
---|---|
reason integer | dôvod storna (stav objednávky 4-6 z číselníku) |
status boolean | true došlo k stornu, inak false |
---|
Na volanie URL je použitý nástroj cURL.
curl -X PUT -d "order_id=123&reason=6" https://www.example.com/api/1/order/cancel
{ "status": true }
žiadne otázky
Toto volanie je nepovinné a bude v budúcnosti zrušené! Metóda sa teraz volá vždy, keď zákazník vytvorí objednávku s platbou online, ktorú zaisťuje Heureka pomocou platobného poskytovateľa Adyen. Kým sa v poslednom kroku nákupného procesu zákazníkovi nepodarí úspešne zaplatiť, objednávka nie je vytvorená!
https://www.example.com/api/1/payment/status
order_id integer | ID objednávky |
---|---|
status signed integer | stav platby (číselník) |
date string | dátum vykonania platby (YYYY-MM-DD) |
status boolean | podarilo sa nastaviť stav? |
---|
Na volanie URL je použitý nástroj cURL.
curl -X PUT -d "order_id=123&status=1&date=2012-12-30" https://www.example.com/api/1/payment/status
{ "status": true }
žiadne otázky
https://ssl.heureka.sk/api/cart/:API_kľúč:/:verzia_api:/:metoda:/:funkcia:
Kľúč API pre prichádzajúce hovory je váš unikátny identifikátor, ktorý sa používa na autentizáciu jednotlivých volaní do systému Heureka Marketplace. Toto pole je povinné a kľúč nájdete v Heureka administrácii pod záložkou “Marketplace -> Nastavenie Marketplace API”.
Pri každej metóde je uvedený príklad použitia API. Príkaz pomocou cURL je možné rovno vykonať. A možno ho používať pre svoje interné testovanie.
API vracia vygenerované dáta (často náhodne). Cieľom testovania by mala byť štruktúra, a nie samotné dáta.
Upozornenie: URL adresa v príklade má trochu iný tvar než základný tvar.
Táto metóda sa už nepoužíva!
https://ssl.heureka.sk/api/cart/:APIkľúč:/1/payment/status/
order_id integer | ID objednávky |
---|
order_id integer | číslo objednávky |
---|---|
status signed integer | stav platby (číselník) |
date string | dátum poslednej zmeny stavu (YYYY-MM-DD) |
curl https://api.heureka.sk/cart/validate/1/payment/status?order_id=123
{ "order_id": 123, "status": 1 "date": "2012-12-24" }
žiadne otázky
Nastavenie stavu objednávky na Heureke.
Je dôležité, aby každá zmena objednávky bola prenesená späť do Heureky. Len tak je možné zákazníkom zobraziť, v ktorom stave sa nachádza ich objednávka.
Je daná postupnosť stavov, kedy nie je možné zmeniť stav z jednej úrovne o úroveň nižšiu. Pre presné zobrazenie postupnosti sa pozrite na zápis v Stav objednávok.
https://ssl.heureka.sk/api/cart/:APIkľúč:/1/order/status/
order_id integer | ID objednávky |
---|---|
status integer | stav objednávky (číselník) |
transport array [nepovinné] | informácie o expedícii - v prípade, že sú k dispozícii |
tracking_url string | web, kde je možné sledovať zásielku smerujúcu k zákazníkovi |
note string | poznámka k expedícii |
expectDelivery string | predpokladaný dátum expedície (YYYY-MM-DD) |
status boolean | true pokiaľ bolo všetko správne nastavené |
---|
curl -X PUT -d "order_id=123&status=10&transport[tracking_url]=http://www.exmaple.com/?id=101010&transport[expectDelivery]=2013-01-10" https://api.heureka.sk/cart/validate/1/order/status
{ "status": true }
žiadne otázky
Táto metóda sa už nepoužíva!
Nastavenie stavu platby na Heureke.
Táto metóda slúži k nastaveniu platby pri dobierke alebo platbe v hotovosti na pobočke obchodu.
https://ssl.heureka.sk/api/cart/:APIkľúč:/1/payment/status/
order_id integer | ID objednávky |
---|---|
status signed integer | stav platby (číselník) |
date string | dátum zmeny stavu |
status boolean | true - pokiaľ bolo všetko správne nastavené |
---|
curl -X PUT -d "order_id=123&status=1&date=2013-01-10" https://api.heureka.sk/cart/validate/1/payment/status
{ "status": true }
žiadne otázky
Informácie o stave objednávky a internom čísle objednávky na Heureke.
https://ssl.heureka.sk/api/cart/:APIkľúč:/1/order/status/
order_id integer | ID objednávky |
---|
order_id integer | ID objednávky |
---|---|
status integer | stav objednávky (číselník) |
internal_id string | interné číslo objednávky v obchode (typicky to, ktoré uvádzate zákazníkovi na faktúre) |
heureka_id integer | interné číslo objednávky v systému Heureky (s týmto číslom komunikujeme so zákazníkom) |
curl https://api.heureka.sk/cart/validate/1/order/status?order_id=1234
{ "order_id": 123, "status": 1, "internal_id": 8100000630, "heureka_id": 9782212982398 }
žiadne otázky
Informácie o pobočkách / výdajných miestach, ktoré má obchod uložené na Heureke.
Slúži k nastaveniu store v GET payment/delivery.
https://ssl.heureka.sk/api/cart/:APIkľúč:/1/stores/
žiadne
id integer | ID pobočky / výdajného miesta |
---|---|
type integer | typ pobočky / výdajného miesta (číselník) |
name string | názov |
city string | umiestnenie |
curl https://api.heureka.sk/cart/validate/1/stores
[ { "id": 390, "type": 1, "name": "Pobočka na námestí", "city": "Košice" }, { "id": 40, "type": 2, "name": "Zásielkovňa Bratislava", "city": "Bratislava" } ]
žiadne otázky
Informácie o aktivácii obchodu v Heureka Marketplace.
Slúži k zisteniu, či je obchod spustený v Marketplace alebo nie. Pokiaľ je Marketplace vypnutý z dôvodu chyby v API alebo nejakej procesnej chyby, je to uvedené v parametri message.
Informácie o aktivácii / deaktivácii sú vždy na 30 minút uložené vo vyrovnávacej pamäti (cache). Pokiaľ testujete stav obchodu pomocou cronu zvoľte interval 30 minút a viac.
https://ssl.heureka.sk/api/cart/:APIkľúč:/1/shop/status/
status boolean | true pokiaľ je obchod zapnutý |
---|---|
error array | informácie o prípadnej chybe, pokiaľ je obchod aktívny je pole prázdne |
message string | text chyby |
created string | čas kedy bol obchod deaktivovaný (vo formáte YYYY-MM-DD HH:MM:SS) |
curl https://api.heureka.sk/cart/validate/1/shop/status
{ "status": false, "error": { "message": "Odozva api je väčšia ako 5 sekúnd.", "created": "2012-09-21 19:11:01" } }
žiadne otázky
Táto metóda sa už nepoužíva!
Zaslanie poznámky, ktorú obchod vytvoril pri procese odbavovania objednávky.
Tieto poznámky sa zobrazujú zákazníkovi pri objednávke v jeho profile.
https://ssl.heureka.sk/api/cart/:APIkľúč:/1/order/note
order_id integer | ID objednávky |
---|---|
note string | text poznámky (max. 1000 znakov) |
status boolean | true - pokiaľ sa poznámka uložila |
---|
curl -d "order_id=123¬e=Testovaci%20poznámka" https://api.heureka.sk/cart/validate/1/order/note
{ "status": true }
žiadne otázky
Táto metóda sa už nepoužíva!
Zaslanie faktúry (dokladu) k objednávke.
Obchody, ktoré posielajú faktúry zákazníkom v elektronickej podobe, ju musia poslať taktiež Heureke, tak aby ich bolo možné opätovne poslať alebo umožniť ich stiahnutie v prehľade objednávok.
Maximálna veľkosť súboru s faktúrou je 3 MB a súbor musí byť v PDF.
Táto metóda predpokladá multipart data v parametri file. POST požiadavka by mal mať nastavený Content-type na multipart / form-data.
https://ssl.heureka.sk/api/cart/:APIkľúč:/1/order/invoice
order_id integer | ID objednávky |
---|---|
invoice multipart data | faktúra |
status boolean | true faktúra sa uložila |
---|
curl -X POST -F "[email protected]" -F "order_id=123" https://api.heureka.sk/cart/validate/1/order/invoice
{ "status": true }
žiadne otázky
Vráti zoznam objednávok v konkrétnej výplate.
https://ssl.heureka.sk/api/cart/:APIkľúč:/1/payout-report
day string | Dátum výplaty vo formáte YYYY-MM-DD |
---|
V odpovedi nájdete text/csv. Dáta sú oddelené bodkočiarkou (;). Súbor obsahuje nasledujúce stĺpce:
curl -X 'POST' 'https://ssl.heureka.sk/api/cart/:APIkľúč:/1/payout-report' -H 'accept: text/csv' -H 'Content-Type: application/json' -d '{"day": "2023-08-28"}'
"Číslo objednávky";"Dátum objednávky";Typ;"Referenčné číslo";"Hrubá cena produktov";"Poplatok za dopravu";"Hrubá provízia";"Celková suma nákupu";"Celková suma znížená o províziu";"Variabilný symbol";"Internal ID" 8311418522;"2023-07-17 16:10:18";Pripisovanie;;24;0;3,19;24;20,81;2023000007;2023000007
Výplaty sú spracované vždy v pondelok, pokiaľ je na virtuálnom účte dostupná kladná čiastka na vyplatenie.
Pri chybe alebo pri nejakej neočakávanej situácii je nutné vracať niektorý z chybových stavových kódov protokolu HTTP. Teda kódy rady 3xx, 4xx alebo 5xx.
Pri chybe je dobré poslať čo sa stalo v tvare:
{ "id": 22, // identifikátor chyby "msg": "Produkt nie je možné objednať.", }
id | krátky názov stavu | popis |
---|---|---|
0 | Prebieha | objednávka vyexpedovaná (obchod odoslal objednávku zákazníkovi) |
1 | Nový | objednávka odoslaná do obchodu |
3 | Nový | objednávka potvrdená (obchod objednávku prijal a potvrdzuje, že ju začína spracovávať) |
4 | Zrušené | storno z pohľadu obchodu (obchod stornoval objednávku) |
5 | Zrušené | storno z pohľadu zákazníka (zákazník sa rozhodol stornovať objednávku) |
6 | Zrušené | storno - objednávka nebola zaplatená (zákazník nezaplatil za objednávku) |
7 | Vrátené | vrátené v 14 dňovej lehote (zákazník vrátil tovar v zákonnej 14 dňovej lehote) |
8 | Nový | objednávka bola dokončená na Heureke (objednávka bola správne dokončená na Heureke) |
9 | Dokončené | objednávka dokončená (zákazník zaplatil a prevzal objednávku) |
10 | Prebieha | objednávka pripravená na vyzdvihnutie (objednávka je pripravená na osobný odber na pobočke) |
11 | Prebieha | vyexpedované na externé výdajné miesto (napr. Zásielkovňa) |
východiskový stav | povolená zmena |
---|---|
8 - Nový | 1 - Nový |
1 - Nový |
3 - Nový, 0, 10, 11 - Prebieha, 9 - Dokončené, 4, 5, 6 - Zrušené, 7 - Vrátené |
3 - Nový |
0, 10, 11 - Prebieha, 9 - Dokončené, 4, 5, 6 - Zrušené, 7 - Vrátené |
0, 10, 11 - Prebieha |
9 - Dokončené, 4, 5, 6 - Zrušené, 7 - Vrátené |
V prípade dokončenej objednávky (stav 9) prípadne stornovanej objednávky (stavy 4, 5, 6) už nie je možné stav zmeniť. V prípade potreby kontaktujte našu podporu, ktorá zmenu vykoná.
Stavy je možné preskakovať, musí však zachovať postup, viď vyššie.
1 | zaplatené |
-1 | nezaplatené |
0 | skladom, expedované do 24 hodín |
1 | 1 deň do expedície |
2 | 2 dni do expedície |
3 | 3 dni do expedície |
... | |
n | n dní do expedície |
-1 | tovar je nedostupný |
1 | dobierka |
2 | v hotovosti pri osobnom prevzatí |
3 | online platba (platobná karta, Google Pay, ...) |
4 | prevod na účet |
1 | osobný odber |
2 | Slovenská pošta |
3 | špedičná služba (DPD, DHL, ...) |
4 | expresné dodanie |
5 | špeciálna doprava |
9 | Dopravcovia poskytovaní cez DepotAPI |
1 | interná pobočka / výdajné miesto obchodu |
3 | Výdajné miesto dopravcu z DepotAPI |
Zoznam dopravcov s ID je verejne cez API, ktoré nájdete na githubu:
https://api.heureka.sk/depot-api/v1/delivery-places/getshippers
(unsigned) integer | kladné celé číslo (4 bajtové), rozsah: 0 až 4294967295 (napr. 1, 2, 20202) |
signed integer | celé číslo (4 bajtové), rozsah: -2147483648 až 2147483647 (napr. 1, 2, -2, 20202) |
(unsigned) big integer | kladné celé číslo (8 bajtové), rozsah 0 až 18446744073709551615 (napr. 1, 2, 9223372036854775807) |
float | desatinné číslo s desatinnou bodkou (napr. 12.90, 999.99) |
string | reťazec |
bool | logický dátový typ (true alebo false) |
Všeobecne platí, že čím kratšia odozva tým lepšie.
API na strane Heureky odpovedá do pár desiatok milisekúnd. Takúto odozvu požadujeme aj od obchodov.
Pamätajte, že na rýchlosti API záleží spokojnosť zákazníkov. Nikto nechce byť pri nákupe rušený čakaním. Rýchle odozvy znamenajú viac nákupov!
V súčasnej dobe sú pomalé odozvy API najčastejšou príčinou pozastavenia služby Heureka Marketplace.
Prosíme, myslite na to.
V prípade, že máte problém s pripojením na API Marketplace, obráťte sa, prosím, na [email protected].