Rozhraní DATONA SIMPLE REST pro internetový obchod umožňuje perfektni, rychlou a výkonnou komunikaci s internetovým obchodem. Způsob výměny dat je programátorsky přívětivé jednoduche REST API, ktere využívá oblíbeny formát XML. Rozhraní  DATONA SIMPLE REST je dvousměrné rozhraní, ktere umožňuje úplnou synchronizaci masterdat i transakčních dat mezi internetovým obchodem a informačními systémy DATONA. 

Komunikace směrem do internetového obchodu

Směrem z DATONA IS se na web mohou přenášet následující záznamy: 

  • Katalog (seznam produktu včetně uživatelských atributu a položek setu a receptur), 
  • stav skladu, 
  • věrnostní účty, 
  • adresář firem, 
  • objednávky,
  • dodací listy, 
  • faktury
  • číselník plateb,
  • číselník tras dopravy. 

Komunikace směrem z DATONA IS na WEB je založena na změnovém logu, kterým DATONA IS poskytuje internetovému obchodu informace o tom změnách v záznamech. Programátor internetového obchodu se může rozhodnout jestli bude reagovat na všechny změnové informace a nebo jestli naprogramuje jednodušší variantu, která bude reagovat pouze na vybrané záznamy. Výstupní formát směrem do internetového obchodu je xml nebo json. Typ výstupního formátu je možné specifikovat pomocí GET parametru format(xml|json). Výchozí hodnota je xml. Příklad:. https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/skladove_doklady/117....

Komunikace z internetového obchodu do DATONA IS

Z internetového obchodu se do informačního systému přenášejí následující záznamy:

  • Objednávky, 
  • věrnostní účty, 
  • adresář firem. 

Vstupní formát pro importované doklady z internetového obchodu je xml.

Postup při stahování dat z DATONA IS do internetového obchodu

  1. Internetový obchod pravidelně žjišťuje zda došlo ke změne na strane DATONA IS pomocí HTTP volání, které vrátí druh změněného záznamu a seznam změněných ID.
  2. Pokud došlo ke změnám v záznamech na které internetový obchod reaguje, internetový obchod v cyklu stáhne konkrétní objekty a provede změny ve své databázi 

    foreach transfer_request_id in transfer_requests do {
            foreach ID in IDs do {
                stažení záznamu: curl -X GET https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/katalog/175978
            }
            curl -X DELETE https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/transfer_request/3073
        }

 

Postup ukládání dat do DATONA IS 

  1. Pro uložení nové objednávky uloží internetový obchod fo DATONA IS objednávku pomocí HTTP volání.

curl -X POST https://uzivatelske_jmeno:heslo@ws2.datona.cz/objednavky --data "@/home/user/objednavka123.xml"

 

Seznam změn záznamů:
Internetový obchod pravidelně (např. jednou za 5 minut) volá funkci pro získání informace o změnách:

https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/transfer_request-peek;
https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/transfer_request?lim...
curl -X GET https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/transfer_request-peek;
curl -X GET https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/transfer_request?lim...

Pokud tento dotaz vrátí nějaké záznamy, zavolá se pro každé změměné ID funkce pro získání konkrétního záznamu 
a následně se smaže záznam z fronty změnových požadavků:
curl -X DELETE https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/transfer_request/3073;

Příklad nejjednodušší hodnoty volání funkce peek. Záznam o změně může obsahovat jedno nebo více změněných ID. 
<table>
    <row><transfer_request_id>3073</transfer_request_id><objekt>objednavky</objekt><id><element>1178</element></id></row>
</table>

Příklad kdy funkce peek vrátí dvě změněná ID.  
<table>
    <row><transfer_request_id>3075</transfer_request_id><objekt>katalog</objekt><id><element>175978</element><element>175948</element></id></row>
</table>

Příklad vrácené hodnoty volání funkce pro seznam změněných záznamů. Každý záznam o změně může obsahovat jedno nebo více změněných ID. 

<table>
    <row><transfer_request_id>3073</transfer_request_id><objekt>objednavky</objekt><id><element>1178</element></id></row>
    <row><transfer_request_id>3074</transfer_request_id><objekt>objednavky</objekt><id><element>1179</element></id></row>
    <row><transfer_request_id>3075</transfer_request_id><objekt>katalog</objekt><id><element>175978</element><element>175948</element></id></row>
</table>

 

Katalog

Ziskání všech ID z katalogu:
https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/katalog
curl -X GET https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/katalog

https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/katalog2
curl -X GET https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/katalog2

https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/katalog3
curl -X GET https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/katalog3

https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/katalog4
curl -X GET https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/katalog4

https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/katalog5
curl -X GET https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/katalog5

Ziskání konkrétních záznamů z katalogu:

https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/katalog/175948
curl -X GET https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/katalog/175948

 

Aktualizace skladové karty (vzor skladove_karty xml):
https://ws2.datona.cz/firma/katalog5 --data "@/home/user/katalog5_update.xml"
curl -X POST https://ws2.datona.cz/firma/katalog5 --data-binary "@/home/user/katalog5_update.xml"

Vzor skladové karty (vzor skladove_karty xml)

 

Sklad

Ziskání feedu celkového stavu skladu všech skladových karet
https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/v_sklad_katcis
curl -X GET https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/v_sklad_katcis

Ziskání celkového stavu skladu pro konkrétní skladovou kartu
https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/v_sklad_katcis/121
curl -X GET https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/v_sklad_katcis/121

Ziskání feedu stavu skladu všech skladových karet na jednotlivých skladech
https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/v_sklad
curl -X GET https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/v_sklad

Ziskání feedu stavu skladu všech skladových karet na konkrétním skladu
https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/v_sklad/01
curl -X GET https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/v_sklad/01

Ziskání stavu skladu skladové karty na konkrétním skladu
https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/v_sklad/01/121
curl -X GET https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/v_sklad/01/121

 

Věrnostní účty

Ziskání konkrétních záznamů z věrnostních účtů:
https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/vernostni_ucty/19
curl: -X GET https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/vernostni_ucty/19
https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/vernostni_ucty/'karel.vomacka@datona.cz'
curl: -X GET https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/vernostni_ucty/'karel.vomacka@datona.cz'

 

Objednávky

Ziskání konkrétních záznamů z objednávek:
https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/objednavky/1179
curl: -X GET https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/objednavky/1179

Ziskání všech ID z objednávek:
'https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/objednavky'
'curl -X GET https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/objednavky'

Vzor pro objednávky: vzor xml

Odeslani objednávky (vzor xml):
https://ws2.datona.cz/firma/objednavky --data "@/home/user/objednavka123.xml"
curl -X POST https://ws2.datona.cz/firma/objednavky --data-binary "@/home/user/objednavka123.xml"

 

Příjemky

Ziskání konkrétních záznamů z příjemek:
https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/prijemky/117
curl: -X GET https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/prijemky/117

Ziskání všech ID z příjemek:
'https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/prijemky'
'curl -X GET https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/prijemky'

 

Dodací listy

Ziskání konkrétních záznamů z dodacích listů:
https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/dodaci_listy/117
curl: -X GET https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/dodaci_listy/117

Ziskání všech ID z příjemek:
'https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/dodaci_listy'
'curl -X GET https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/dodaci_listy'

 

Ostatní skladové doklady

Ziskání konkrétních záznamů ze skladových dokladů:
https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/skladove_doklady/117
curl: -X GET https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/skladove_doklady/117

Ziskání všech ID ze skladových dokladů:
'https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/skladove_doklady'
'curl -X GET https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/skladove_doklady'

 

Faktury vydané

Ziskání konkrétních záznamů z faktur vydaných:
https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/faktury_vydane/117
curl: -X GET https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/faktury_vydane/117

Ziskání všech ID z příjemek:
'https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/faktury_vydane'
'curl -X GET https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/faktury_vydane

 

Číselníky dopravy a platby

Ziskání konkrétních záznamů z číselníku doprava:
https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/doprava_ciselnik/1
curl: -X GET https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/doprava_ciselnik/1

Ziskání všech ID z číselníku doprava:
'https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/doprava_číselník'
'curl -X GET https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/platba_ciselnik'

Ziskání konkrétních záznamů z číselníku plateb:
https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/platba_ciselnik/1
curl: -X GET https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/platba_ciselnik/1

Ziskání všech ID z číselníku doprava:
'https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/platba_číselník'
'curl -X GET https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/platba_ciselnik'

 

Dárkové šeky

Ziskání detailu konkrétní série dárkových šeků:
https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/seky/1
curl: -X GET https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/seky/1

Ziskání seznamu všech platných sérií dárkových šeků::
'https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/seky'
'curl -X GET https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/seky'

Ziskání detailu konkrétního dárkového šeku:
https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/seky_kody/1
curl: -X GET https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/seky_kody/1

Ziskání seznamu všech kódů všech sérií dárkových šeků:
'https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/seky_kody'
'curl -X GET https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/seky_kody'

Zapsání informace o vydaní konkrétního kódu dárkového šeku:
'https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/zapis_vystaveny_kod/...'
'curl -X GET https://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/zapis_vystaveny_kod/...'

 

Sledování změn