Ekonomický systém lze snadno napojit na různé systémy a jedním z nejčastějších jsou právě internetové obchody. V tomto návodu se podíváme jak na to.
Tento návod je určen pro programátory realizující napojení a měli by být seznámeni se základy API (minimálně ukázka v PHP).
Obecně se napojení skládá z těchto částí:
Export katalogu
Vytvoření objednávky
Cenotvorba
Další informace o katalogu zboží
Další číselníky
Problematika DPH
Export katalogu z Flexi
Propojení katalogu lze realizovat dvěma způsoby:
online – při každé návštěvě klienta se provede dotaz do Flexi a požadavek je vyřízen (kombinuje se s cachováním)
synchronizačně – eshop má vlastní databázi do které je pravidelně sehráván katalog
V tomto návodu se podíváme na první variantu. Tu je někdy možné realizovat tak, že si eshop jednou v noci stáhne celý katalog a pak vyřizuje požadavky vůči své kopii.
Exportu katalogu
Nejdříve přečteme seznam zboží:
curl -u winstrom:winstrom -f -L "http://demo.flexibee.eu:5434/c/demo/cenik/(exportNaEshop=true).xml?detail=custom:nazev,kod,skupZboz,sumStavMj,cenaBezna,mj1,cenaZaklBezDph,cenaZaklVcDph,zaruka,mjZarukyK,popis,cenJednotka,eanKod,kratkyPopis,klicSlova,techParam,dodaciLhuta,mjDodaciLhuta&relations=poplatky,prilohy,prislustenstvi,atributy,podobne-zbozi&limit=0"
Pokud chcete zobrazovat pouze zboží, které je skladem (nebo neskladové) použijte toto:
curl -u winstrom:winstrom -f -L "http://demo.flexibee.eu:5434/c/demo/cenik/(exportNaEshop=true and (sumStavMj gt 0 or skladove=false)).xml?detail=custom:nazev,kod,skupZboz,mj1,cenaZaklBezDph,cenaZaklVcDph,szbDph,zaruka,mjZarukyK,kratkyPopis,klicSlova,techParam,dodaciLhuta,mjDodaciLhuta&relations=poplatky,prilohy,prislustenstvi,atributy,podobne-zbozi&limit=0"
Poznámka: v tomto zobrazení se bere zboží ze všech skladů, lze omezit i na pouze určité sklady přes skladovou kartu.
Takto současně načtete i související objekty jako jsou poplatky, přílohy, příslušenství, atribut a podobné zboží. Přílohy zveřejňujte pouze v případě, že jsou označené exportNaEshop=true
. Přílohy také můžete načíst všechny takto:
curl -u winstrom:winstrom -f -L "http://demo.flexibee.eu:5434/c/demo/prilohy/(exportNaEshop=true and cenik is not empty).xml?detail=full&limit=0"
Pokud chcete pracovat se stromovou strukturou ceníku, získejte nejdříve uzly stromu:
curl -u winstrom:winstrom -f -L "http://demo.flexibee.eu:5434/c/demo/strom/(strom='code:STR_CEN').xml?limit=0&detail=full"
a pak umístění položek ceníku ve stromu:
curl -u winstrom:winstrom -f -L "http://demo.flexibee.eu:5434/c/demo/strom-cenik.xml?limit=0&detail=full"
Vytvoření objednávky
Po objednávce klientem, je nutné vytvořit doklad ve Flexi. Základní otázkou je, zda vytvořit objednávku, výzvu k platbě (nedaňový doklad) nebo fakturu (daňový doklad). V internetových obchodech se vždy používá označení objednávka. Nicméně ve Flexi nelze příchozí platbu párovat přímo na objednávku a proto se obvykle u internetových obchodů objednávky ve Flexi nepoužívají.
Obvykle se nevytváří rovnou faktura, ale jen výzva k platbě. Důvodem je, že u faktury musíte odvést DPH i v případě nezaplacení. Navíc u podvojného účetnictví musíte zdanit i neuhrazené faktury jako výnos.
Obvykle v případě platby předem a dobírky, se vytváří faktura, v případě převodem se vytváří výzva k platbě.
Při importu dat výzvy k platbě, zálohového daňového dokladu, dobropisu, vrubopisu či faktury se vždy jedná o fakturu vydanou.
To co je rozlišuje, je typ dokladu, který určuje typ dokladu.
Při nově založené firmě (databázi) je vytvořeno několik základních typů dokladů. Typ dokladu určuje zda se jedná o účetní či neúčetní doklad, ale také i číselnou řadu,
do které bude doklad zařazen (přehled možností typu dokladu).
Zaúčtování dokladu je řízeno předpisem zaúčtování (ten lze také určit v typu dokladu, nicméně výzva k platbě nepotřebuje zaúčtování).
Nastavení typu dokladu „výzva k platbě“
Aby se jednalo o výzvu k platbě, musíte nastavit tyto informace:
Zvolte druh „proforma“
Zrušit „Doklad je účetní“
Vyberte nebo vytvořte novou dokladovou řadu
Zkratka: bude používána při tvorbě typu dokladu
Název: bude použit jako nadpis dokladu
Je možné nastavit i další položky jako je účet, formu úhrady, splatnost, …
Při tvorbě faktury, si musíte ujasnit několik věcí:
položka z ceníku nebo s cenou a množstvím? Při tvorbě dokladu můžete použít položku z ceníku, případně i vyskladnit ze skladu, použít výchozí cenu (včetně různých slev pro partnery) a nebo můžete vytvořit umělou položku.
měna: bude v Kč nebo v měně
příjemce: použijete příjemce z adresáře a nebo jej uvedete jen pro tuto fakturu?
Identifikace zákazníka
Flexi obsahuje adresář zákazníků. U některých internetových obchodů jej využíváme, u jiných nikoliv. Vytvořený doklad může být na adresář navázán, nebo u něj mohou být uvedený přímo všechny údaje bez vazby. Rozhodnutí záleží na preferencích majitele internetového obchodu. Analýza prodeje využívá vazby na adresář a při její absenci nebude možná analýza dle firem či skupin firem.
Založení adresáře pokud neexistuje
<?xml version="1.0" encoding="utf-8"?> <winstrom version="1.0"> <!-- pokud položka adresáře existuje, doplníme naše ID z eshopu. Pokud klient nemá IČO a DIČ, záznam je zbytečný. Pokud záznam existuje, neměníme jej. --> <adresar create="ignore"> <id>ext:ESHOP:1</id> <id>in:123</id> <id>vatId:CZ123</id> </adresar> <!-- pokud položka adresáře neexistuje, založíme ji a vyplníme další hodnoty --> <adresar update="ignore"> <id>ext:ESHOP:1</id> <id>in:123</id> <id>vatId:CZ123</id> <ic>123</ic> <dic>CZ123</dic> <nazev>Moje Firma s.r.o.</nazev> <ulice>Lochotínská 18</ulice> <tel>123/456 789</tel> <email>123/456 789</email> <stat>code:CZ</stat> <platceDph>true</platceDph> </adresar> </winstrom>
Pro identifikaci lze použít ID (primární klíč), IČO a nebo kód (více o identifikátorech).
Ukázka XML
Nyní tedy vytvoříme nový doklad:
<?xml version="1.0" encoding="utf-8"?> <winstrom version="1.0"> <faktura-vydana> <!-- ID, které jednoznačně identifikuje výzvu k platbě. Slouží při opakovaném importu --> <id>ext:ESHOP:1</id> <typDokl>code:FAKTURA</typDokl> <!-- identifikátor firmy, které posíláme výzvu k platbě --> <firma>[ext:ESHOP:1][in:123][vatId:CZ123]</firma> <!-- přímo uvedené kontaktní údaje. Není nutné vyplnit, pokud se mají použít hodnoty z adresáře --> <kontaktJmeno>Jan Novák</kontaktJmeno> <kontaktEmail>jan.novak@seznam.cz</kontaktEmail> <kontaktTel>123/456 789</kontaktTel> <nazFirmy>Moje Firma s.r.o.</nazFirmy> <ulice>Moje Firma s.r.o.</ulice> <stat>code:CZ</stat> <polozkyFaktury> <PolFak> <cenik>code:ZBOZI</cenik> <typPolozkyK>typPolozky.katalog</typPolozkyK> <mnozMj>1</mnozMj> </PolFak> </polozkyFaktury> </faktura-vydana> </winstrom>
Nyní fakturu založíme takto (více o volání z příkazového řádku):
curl -u winstrom:winstrom -f -L http://demo.flexibee.eu:5434/c/demo/faktura-vydana.xml -T faktura.xml
Výsledný doklad je nutné zaslat zákazníkovi (buď ručně nebo přes Flexi).
Doplňující kontaktní údaje
Někdy potřebujete na doklad uvést doplňující kontaktní údaje. Pro tyto účely slouží tyto položky dokladu:
kontaktJmeno
kontaktEmail
kontaktTel
kontaktOsoba
– vazba do seznamu kontaktních osob. Není nutné použít. Při jeho použití se ostatní políčka vyplní.
Cenotvorba
U každé položky ceníku je určena cena bez DPH a včetně DPH. Když při vytváření objednávky/faktury uvedete cenu, Flexi ji bude respektovat. Pokud ji neuvedete, Flexi cenu automaticky dopočte podle pokročilé cenotvorby. Obvykle je nutné cenu zobrazenou klientovi respektovat i na faktuře.
Individuální cenotvorba pro B2B
Pokud používáte pokročilou cenotvorbu a chcete, aby ji internetový obchod používal (obvykle v případě velkoobchodního prodeje, chcete-li B2B). K těmto účelům jsme vytvořili individuální ceník.
curl -u winstrom:winstrom -f -L "http://demo.flexibee.eu:5434/c/demo/individualni-cenik.xml?limit=0&detail=full"
Další informace o katalogu zboží
Základní atributy, které mají význam u internetových obchodů:
Atributy
Atributy umožňují parametrické informace o zboží (např. uhlopříčka v palcích). To je pak možné používat pro porovnávání.
Podobné zboží
Seznam zboží, které je alternativou pro aktuální zboží (např. od jiného výrobce).
Příslušenství
Seznam zboží, které doplňuje aktuální zboží (např. spotřební materiál, doplňkové příslušenství).
Sady a komplety
V některých případech se prodává celá sada (např. kolo + pumpička) za zvýhodněnou cenu. Pokud do objednávky vložíte sadu, vyskladní se jednotlivé komponenty.
Stavy položky ceníku
Někdy chcete označit zboží jako novinku, akci či výprodej. Proto u jednoho zboží může být více stavů, kterým můžete dát význam.
Další číselníky
Forma dopravy
curl -u winstrom:winstrom -f -L "http://demo.flexibee.eu:5434/c/demo/forma-dopravy.xml?limit=0&detail=full"
Forma úhrady
curl -u winstrom:winstrom -f -L "http://demo.flexibee.eu:5434/c/demo/forma-uhrady.xml?limit=0&detail=full"
Problematika DPH
Flexi samo obsahuje sazby DPH a u každé položky obsahuje informaci o tom, zda se jedná o sníženou nebo základní sazbu. Pokud vystavujete doklad do zahraničí, je automaticky určeno DPH na doklad (EU plátce DPH je bez DPH, EU neplátce je s DPH, …) na základě státu příjemce.
V případě, že je firma registrovaná k DPH ve více státech, kontaktujte technickou podporu Flexi.