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:. http://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 http://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/katalog/175978
            }
            curl -X DELETE http://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 http://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:

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

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 http://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í konkrétních záznamů z katalogu:
http://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/katalog/175948
curl -X GET http://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/katalog/175948

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

Katalog  (formát 2)

Ziskání konkrétních záznamů z katalogu (podle ID nebo podle katcis):
http://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/katalog2/175948
http://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/katalog2/HALVYROVNANI
curl -X GET http://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/katalog2/175948
curl -X GET http://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/katalog2/HALVYROVNANI

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

 

Sklad

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

Ziskání celkového stavu skladu pro konkrétní skladovou kartu
http://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/v_sklad_katcis/121
curl -X GET http://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
http://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/v_sklad_katcis
curl -X GET http://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/v_sklad

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

Ziskání stavu skladu skladové karty na konkrétním skladu
http://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/v_sklad/01/121
curl -X GET http://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ů:
http://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/vernostni_ucty/19
curl: -X GET http://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/vernostni_ucty/19
http://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/vernostni_ucty/'karel.vomacka@datona.cz'
curl: -X GET http://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:
http://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/objednavky/1179
curl: -X GET http://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/objednavky/1179

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

Vzor pro objednávky: vzor xml

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

 

Příjemky

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

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

 

Dodací listy

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

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

 

Ostatní skladové doklady

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

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

 

Faktury vydané

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

Ziskání všech ID z příjemek:
'http://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/faktury_vydane'
'curl -X GET http://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:
http://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/doprava_ciselnik/1
curl: -X GET http://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/doprava_ciselnik/1

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

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

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

 

Dárkové šeky

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

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

Ziskání detailu konkrétního dárkového šeku:
http://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/seky_kody/1
curl: -X GET http://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ů:
'http://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/seky_kody'
'curl -X GET http://uzivatelske_jmeno:heslo@ws2.datona.cz/firma/seky_kody'

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

 

Sledování změn