Přenos objednávek z e-shopu do ABRA FlexiBee
Doporučujeme nejdříve prostudovat 1. díl článku: Přenos dat z účetnictví do e-shopu.
Jaká data bude nutné přenášet z e-shopu do systému ABRA FlexiBee?
Zákazník svou cestu po e-shopu zakončil vytvořením objednávky, kterou je nutné přenést a zpracovat v ABRA FlexiBee. Vytvořit z ní výdejku na skladové zboží a fakturu. K této faktuře pak „napárovat“ úhrady.
Většina napojení e-shopů na FlexiBee nevytváří ve FlexiBee záznamy do evidence objednavka-prijata ale rovnou vytváří faktury nebo výzvy k platbě, aby se snížil počet dokladů, které je potřebné zpracovat. Je však samozřejmě možné vytvořit nejdříve objednávku, a tu vyfakturovat. Každá objednávka obsahuje položky, které určují, co si zákazník objednal. Ve FlexiBee je možné do objednávek (i faktur) zadávat položky z ceníku i bez vyplnění ceníku, skladové i neskladové. Zákazníka lze vybrat z adresáře firem nebo vyplnit přímo na dokladu.
Pro úspěšné vytvoření objednávky je nutné na straně e-shopu nejdříve sestavit XML nebo JSON soubor, a ten pak pomocí metody PUT nebo POST zaslat do FlexiBee.
Soubor pro vytvoření objednávky by měl mít strukturu například:
<winstrom> <objednavka-prijata> <id>ext:OBP-ESHOP:123</id> <!-- místo 123 použijte vnitřní identifikátor objendávky v eshopu --> <typDokl>code:OBP-ESHOP</typDokl> <!-- zkratka typu dokladu, který se má použít na vytvářenou objednávku --> <stredisko>code:ESHOP</stredisko> <!-- pokud využíváte střediskovou cenotvorbu --> <firma>code:FIRMA</firma> <!-- zkratka firmy pro výběr firmy z adresáře --> ... <polozkyDokladu removeAll="true"> <objednavka-prijata-polozka> <id>ext:OBP-POL-ESHOP:234</id> <!-- místo 234 použijte vnitřní identifikátor položky objednávky v eshopu --> <cenik>code:CENIK</cenik> <!-- zkratka objednaného zboží z ceníku--> <sklad>code:SKLAD</sklad> <!-- zkratka skladu ze kterého bude zboží vyskladněno --> <mnozMj>1</mnozMj> <!-- objednané množství --> <cenaMj>100</cenaMj> <!-- jednotková cena za kterou bylo zboží objednáno --> ... </objednavka-prijata-polozka> </polozkyDokladu> </objednavka-prijata> </winstrom>
TIP: Doporučujeme Vám, vždy když posíláte nějaká data do ABRA FlexiBee, snažte se používat identifikátory (elementy id). Umožníte tím zpětné změny na objednávce pro zákazníky z e-shopu (například změnu objednaného množství nebo dodací adresy). Také vyplňujte jen pole, o kterých víte, co znamenají a co se s nimi ovlivňuje. Kompletní seznam polí dostupných pro objednávky přijaté naleznete na adrese https://demo.flexibee.eu/c/demo/objednavka-prijata/properties .
Realizace objednávky
Objednávku z e-shopu nyní zrealizujeme. To je možné v provést buď ručně, nebo automatizovaně.
Pro zautomatizování je potřeba do ABRA FlexiBee poslat XML které bude vypadat například takto:
<objednavka-prijata> <id>ext:OBP-ESHOP:123</id> <realizaceObj type="faktura-vydana"> <id>ext:FAV-ESHOP:123</id> <!-- nepovinné, id faktury, která se z objednávky vytvoří --> <polozkyObchDokladu> <polozka> <cisRad>1</cisRad> <!--č. řádky v obj.--> <mj>1</mj> </polozka> </polozkyObchDokladu> </realizaceObj> </objednavka-prijata>
Při realizaci objednávky je výhodné vytvářené faktuře rovnou přiřadit externí identifikátor, abychom mohli následně s fakturou pracovat, např. získat PDF tiskopis, odeslat do EET, poslat PDF zákazníkovi mailem.
V případě, že je objednávka zaplacena kartou, je potřeba fakturu, vzniklou z této objednávky, odeslat do EET. Odesílání dokladů do EET popisujeme v článku EET automaticky přes REST API.
Pokud chcete poslat fakturu zákazníkovi mailem, stačí po úspěšné realizaci objednávky odeslat do ABRA FlexiBee XML soubor:
<winstrom> <faktura-vydana> <id>ext:FAV-ESHOP:123</id> <stavMailK>stavMail.odeslat</stavMailK> <!-- na faktuře nastaví, že má dojít k automatickému odeslání --> </faktura-vydana> </winstrom>
Samostatné odeslání faktur určených k odeslání se provádí pomocí volání
PUT|POST /c/{firma}/faktura-vydana/automaticky-odeslat-neodeslane
Autentizace evidencí kontaktů
Pokud přemýšlíte, kde mít bezpečně uložena uživatelská jména a hesla vašich zákazníků a jak jednoduchou formou pomocí těchto údajů umožnit uživatelům se přihlásit, je výhodné využít evidenci kontakt.
Pro každého zákazníka je potřeba vytvořit záznam do evidence kontakt s vyplněním polí username a password:
POST /c/{firma}/kontakty/{id}.xml <kontakt> <username>jan</username> <password hash=”” salt=””>heslo</password> </kontakt>
Autentizace pomocí záznamů v evidenci kontakt se pak provádí pomocí požadavkem POST na adresu:
POST /c/{firma}/kontakty/{id}/authenticate username=jan&password=heslo
Uživatelské dotazy
Pokud se vám zdá, že některá volání jsou pro vás zbytečně složitá nebo pomalá, případně nevracejí výsledky přesně tak, jak potřebujete, můžete využít evidenci uzivatelsky-dotaz.
Tato evidence umožňuje do ABRA FlexiBee doplnit vlastní SQL dotazy, které budou „ušity“ Vám na míru. Díky nim je možné získat z ABRA FlexiBee data, která jsou přes API nedostupná nebo optimalizovat jejich čtení.
Nevýhodou tvorby uživatelských dotazů je nutná znalost databázového schématu ABRA FlexiBee a také to, že systém negarantuje na rozdíl od API stabilitu databázového schématu.
Uživatelský dotaz je pak možné přes API volat:
GET|POST /c/{firma}/uzivatelsky-dotaz/{id}/call.{xml|json}?parametry=hodnoty... &detail/start/limit
Web Hooks
Další možností, jak propojení zoptimalizovat, je využití web hooks. Je to nejlepší způsob, jakým se e-shop může dozvědět o změnách v systému ABRA FlexiBee v reálném čase.
Dokumentace k web hooks je dostupná na stránce https://www.flexibee.eu/api/dokumentace/ref/web-hooks/. Web hooky Vám ušetří mnoho zbytečně složitých dotazů do ABRA FlexiBee a budete moci načítat pouze ta data, která se reálně změnila.
Zpět na úvodní část návodu
Četli jste první díl tohoto návodu – jak dostat data z účetnictví do e-shopu?
Užitečné odkazy
https://www.flexibee.eu/api/navody/napojeni-internetovy-obchod/
https://www.flexibee.eu/api/dokumentace/casto-kladene-dotazy-pro-api/
https://www.flexibee.eu/api/dokumentace/ref/index/
https://www.flexibee.eu/api/dokumentace/ref/individualni-cenik/
https://www.flexibee.eu/api/dokumentace/ref/realizace-objednavky/
https://www.flexibee.eu/api/dokumentace/ref/uzivatelske-dotazy/