Napojení na internetový obchod

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í:

  1. Export katalogu
  2. Vytvoření objednávky
  3. Cenotvorba
  4. Další informace o katalogu zboží
  5. Další číselníky
  6. Problematika DPH

Export katalogu z FlexiBee

Propojení katalogu lze realizovat dvěma způsoby:

  • online – při každé návštěvě klienta se provede dotaz do FlexiBee 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"

Seznam atributů ceníku…

Vytvoření objednávky

Po objednávce klientem, je nutné vytvořit doklad ve FlexiBee. 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 FlexiBee nelze příchozí platbu párovat přímo na objednávku a proto se obvykle u internetových obchodů objednávky ve FlexiBee 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

FlexiBee 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Č 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Č 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 FlexiBee).

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, FlexiBee ji bude respektovat. Pokud ji neuvedete, FlexiBee 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"

Seznam atributů individuálního ceníku…

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).

Seznam atributů podobného zboží…

Příslušenství

Seznam zboží, které doplňuje aktuální zboží (např. spotřební materiál, doplňkové příslušenství).

Seznam atributů formy dopravy…

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.

Seznam atributů sad a kompletů…

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"

Seznam atributů formy dopravy…

Forma úhrady

curl -u winstrom:winstrom -f -L "http://demo.flexibee.eu:5434/c/demo/forma-uhrady.xml?limit=0&detail=full"

Seznam atributů formy úhrady…

Problematika DPH

FlexiBee 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 FlexiBee.