Preskoči na glavno vsebino

Prepojenie s internetovým obchodom

Ako prepojiť Flexi s internetovým obchodom

Avtor: Lenka Haringerová

Ekonomický systém možno jednoducho napojiť na rôzne systémy a jedným z najčastejších sú práve internetové obchody. V tomto návode sa pozrieme, ako na to.

Tento návod je určený pre programátorov realizujúcich napojenie a mali by byť oboznámení so základmi API (minimálne ukážka v PHP).

Napojenie sa všeobecne skladá z týchto častí:

  1. Export katalógu

  2. Vytvorenie objednávky

  3. Cenotvorba

  4. Ďalšie informácie o katalógu tovaru

  5. Ďalšie číselníky

  6. Problematika DPH

Export katalógu z Flexi

Prepojenie katalógu možno realizovať dvoma spôsobmi:

  • online – pri každej návšteve klienta sa vykoná dopyt do Flexi a požiadavka je vybavená (kombinuje sa s kešovaním)

  • synchronizačne – eshop má vlastnú databázu, do ktorej je pravidelne sťahovaný katalóg

V tomto návode sa pozrieme na prvú variantu. Tú je niekedy možné realizovať tak, že si eshop raz v noci stiahne celý katalóg a potom vybavuje požiadavky voči svojej kópii.

Export katalógu

Najprv načítame zoznam tovaru:

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"

Ak chcete zobrazovať iba tovar, ktorý je skladom (alebo neskladový), použite 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í sa berie tovar zo všetkých skladov, možno obmedziť aj na iba určité sklady cez skladovú kartu.

Takto súčasne načítate aj súvisiace objekty, ako sú poplatky, prílohy, príslušenstvo, atribúty a podobný tovar. Prílohy zverejňujte iba v prípade, že sú označené exportNaEshop=true. Prílohy môžete tiež načítať všetky 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"

Ak chcete pracovať so stromovou štruktúrou cenníka, získajte najprv 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 potom umiestnenie položiek cenníka v strome:

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

Vytvorenie objednávky

Po objednávke klientom je potrebné vytvoriť doklad vo Flexi. Základnou otázkou je, či vytvoriť objednávku, výzvu na platbu (nedaňový doklad) alebo faktúru (daňový doklad). V internetových obchodoch sa vždy používa označenie objednávka. Avšak vo Flexi nie je možné prijaté platby párovať priamo na objednávku, a preto sa objednávky vo Flexi pri internetových obchodoch zvyčajne nepoužívajú.

Zvyčajne sa nevytvára rovno faktúra, ale len výzva na platbu. Dôvodom je, že pri faktúre musíte odviesť DPH aj v prípade nezaplatenia. Navyše pri podvojnom účtovníctve musíte zdaniť aj neuhradené faktúry ako výnos.

Zvyčajne sa v prípade platby vopred a dobierky vytvára faktúra, v prípade prevodu sa vytvára výzva na platbu.

Pri importe dát výzvy na platbu, zálohového daňového dokladu, dobropisu, ťarchopisu či faktúry ide vždy o vydanú faktúru.
To, čo ich rozlišuje, je typ dokladu, ktorý určuje druh dokladu.
Pri novo založenej firme (databáze) je vytvorených niekoľko základných typov dokladov. Typ dokladu určuje, či ide o účtovný alebo neúčtovný doklad, ale aj číselnú radu,
do ktorej bude doklad zaradený (prehľad možností typu dokladu).

Zaúčtovanie dokladu je riadené predpisom zaúčtovania (ten možno tiež určiť v type dokladu, pričom výzva na platbu zaúčtovanie nepotrebuje).

Nastavenie typu dokladu „výzva na platbu"

Aby išlo o výzvu na platbu, musíte nastaviť tieto informácie:

  • Zvoľte druh „proforma"

  • Zrušiť „Doklad je účtovný"

  • Vyberte alebo vytvorte novú dokladovú radu

  • Skratka: bude používaná pri tvorbe typu dokladu

  • Názov: bude použitý ako nadpis dokladu

  • Je možné nastaviť aj ďalšie položky, ako je účet, forma úhrady, splatnosť, …

Pri tvorbe faktúry si musíte ujasniť niekoľko vecí:

  • položka z cenníka alebo s cenou a množstvom? Pri tvorbe dokladu môžete použiť položku z cenníka, prípadne aj vyskladniť zo skladu, použiť východiskovú cenu (vrátane rôznych zliav pre partnerov) alebo môžete vytvoriť umelú položku.

  • mena: bude v eurách alebo v inej mene

  • príjemca: použijete príjemcu z adresára alebo ho uvediete len pre túto faktúru?

Identifikácia zákazníka

Flexi obsahuje adresár zákazníkov. Pri niektorých internetových obchodoch ho využívame, pri iných nie. Vytvorený doklad môže byť na adresár naviazaný, alebo pri ňom môžu byť uvedené priamo všetky údaje bez väzby. Rozhodnutie závisí od preferencií majiteľa internetového obchodu. Analýza predaja využíva väzby na adresár a pri jej absencii nebude možná analýza podľa firiem či skupín firiem.

Založenie adresára, ak 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>

Na identifikáciu možno použiť ID (primárny kľúč), IČO alebo kód (viac o identifikátoroch).

Ukážka XML

Teraz teda vytvorí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>

Teraz faktúru založíme takto (viac o volaní z príkazového riadka):

curl -u winstrom:winstrom -f -L http://demo.flexibee.eu:5434/c/demo/faktura-vydana.xml -T faktura.xml

Výsledný doklad je potrebné zaslať zákazníkovi (buď ručne alebo cez Flexi).

Doplňujúce kontaktné údaje

Niekedy potrebujete na doklad uviesť doplňujúce kontaktné údaje. Na tieto účely slúžia tieto položky dokladu:

  • kontaktJmeno

  • kontaktEmail

  • kontaktTel

  • kontaktOsoba – väzba do zoznamu kontaktných osôb. Nie je nutné použiť. Pri jeho použití sa ostatné polia vyplnia.

Cenotvorba

Pri každej položke cenníka je určená cena bez DPH a vrátane DPH. Keď pri vytváraní objednávky/faktúry uvediete cenu, Flexi ju bude rešpektovať. Ak ju neuvediete, Flexi cenu automaticky dopočíta podľa pokročilej cenotvorby. Zvyčajne je potrebné cenu zobrazenú klientovi rešpektovať aj na faktúre.

Individuálna cenotvorba pre B2B

Ak používate pokročilú cenotvorbu a chcete, aby ju internetový obchod používal (zvyčajne v prípade veľkoobchodného predaja, teda B2B). Na tieto účely sme vytvorili individuálny cenník.

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

Ďalšie informácie o katalógu tovaru

Základné atribúty, ktoré majú význam pri internetových obchodoch:

Atribúty

Atribúty umožňujú parametrické informácie o tovare (napr. uhlopriečka v palcoch). To je potom možné využívať na porovnávanie.

Podobný tovar

Zoznam tovaru, ktorý je alternatívou k aktuálnemu tovaru (napr. od iného výrobcu).

Príslušenstvo

Zoznam tovaru, ktorý dopĺňa aktuálny tovar (napr. spotrebný materiál, doplnkové príslušenstvo).

Sady a komplety

V niektorých prípadoch sa predáva celá sada (napr. bicykel + pumpa) za zvýhodnenú cenu. Ak do objednávky vložíte sadu, vyskladnia sa jednotlivé komponenty.

Stavy položky cenníka

Niekedy chcete označiť tovar ako novinku, akciu či výpredaj. Preto môže mať jeden tovar viac stavov, ktorým môžete priradiť význam.

Ďalšie čí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 sadzby DPH a pri každej položke obsahuje informáciu o tom, či ide o zníženú alebo základnú sadzbu. Ak vystavujete doklad do zahraničia, je automaticky určená DPH na doklade (platiteľ DPH z EÚ je bez DPH, neplatiteľ z EÚ je s DPH, …) na základe štátu príjemcu.

V prípade, že je firma registrovaná k DPH vo viacerých štátoch, kontaktujte technickú podporu Flexi.

Ste s tem dobili odgovor na svoje vprašanje?