Import produktů z FlexiBee do Shoptetu

Jistě jste již přemýšleli o tom, že byste si ke svému FlexiBee pořídili e-shop. Mohu doporučit Shoptet. Chcete vědět jak do něho nahrát produkty?

Hlavní evidencí, kterou potřebujeme mít synchronizovánu mezi e-shopem a FlexiBee, je ceník. Jsou zde totiž evidovány všechny produkty a služby, které můžeme na e-shopu prodávat. Takže v podstatě tou nejdůležitější věcí je tyto produkty přenést do e-shopu. Pokud možno s minimálním úsilím :-).

Je ale důležité si rozmyslet, kde budeme mít primární zdroj dat. Jestli budeme produkty udržovat ve FlexiBee a do Shoptetu je budeme nahrávat a nebo opačně.

V předchozím článku o produktech jsem doporučoval mít hlavní zdroj dat v e-shopu. Většina e-shopů a Shoptet není výjimkou, má pro správu produktů mnohem lepší nástroje než FlexiBee.

Nezáleží na tom, jaké produkty ve FlexiBee evidujete
Nezáleží na tom, jaké produkty ve FlexiBee evidujete


XSLT transformace pro převod FlexiBee XML na Shoptet XML

Opět jako v předchozích článcích si pomůžeme XSLT transformací. Pomocí této novinky ve FlexiBee (od verze 2017.2) převedeme standardní FlexiBee XML na XML, které požaduje Shoptet.

<?xml version="1.0" encoding="utf-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
     xmlns:java="http://xml.apache.org/xalan/java" exclude-result-prefixes="java">
  <xsl:output method="xml" indent="yes" encoding="utf-8" />

  <xsl:template match="winstrom">
    <SHOP>
      <xsl:apply-templates select="cenik"/>
    </SHOP>
  </xsl:template>

  <xsl:template match="cenik">
    <SHOPITEM>
      <CODE><xsl:value-of select="kod"/></CODE>
      <NAME><xsl:value-of select="nazev"/></NAME>
      <PRICE><xsl:value-of select="java:flexibee.Tool.round(cenaZaklBezDph, 2)"/></PRICE>
      <PRICE_VAT><xsl:value-of select="java:flexibee.Tool.round(cenaZaklVcDph, 2)"/></PRICE_VAT>
      <PURCHASE_PRICE><xsl:value-of select="java:flexibee.Tool.round(nakupCena, 2)"/></PURCHASE_PRICE>
      <STANDARD_PRICE><xsl:value-of select="java:flexibee.Tool.round(cenaBezna, 2)"/></STANDARD_PRICE>
      <CURRENCY>CZK</CURRENCY>

      <xsl:if test="skladove = 'true'">
        <STOCK>
          <MINIMAL_AMOUNT>1</MINIMAL_AMOUNT>
          <AMOUNT><xsl:value-of select="sumDostupMj"/></AMOUNT>
        </STOCK>
      </xsl:if>

      <xsl:choose>
        <xsl:when test="kratkyPopis != ''"><SHORT_DESCRIPTION><xsl:value-of select="kratkyPopis"/></SHORT_DESCRIPTION></xsl:when>
        <xsl:when test="popis != ''"><SHORT_DESCRIPTION><xsl:value-of select="popis"/></SHORT_DESCRIPTION></xsl:when>
        <xsl:otherwise></xsl:otherwise>
      </xsl:choose>

      <xsl:if test="popis != ''">
        <DESCRIPTION><xsl:value-of select="popis"/></DESCRIPTION>
      </xsl:if>

      <xsl:if test="mj1 != ''">
        <UNIT><xsl:value-of select="java:flexibee.Tool.substring(mj1, 5)"/></UNIT>
      </xsl:if>

      <ITEM_TYPE>
        <xsl:choose>
          <xsl:when test="typZasobyK = 'typZasoby.sluzba'">service</xsl:when>
          <xsl:otherwise>product</xsl:otherwise>
        </xsl:choose>
      </ITEM_TYPE>

      <xsl:if test="vyrobce != ''">
        <MANUFACTURER><xsl:value-of select="java:flexibee.Tool.substring(vyrobce, 5)"/></MANUFACTURER>
      </xsl:if>

      <AVAILABILITY>
        <xsl:choose>
          <xsl:when test="sumStavMj > 0.0">Skladem</xsl:when>
          <xsl:otherwise>Není skladem</xsl:otherwise>
        </xsl:choose>
      </AVAILABILITY>

      <!-- odkomentováním následujících řádků a jejich správným vyplněním je možné vyplnit i další vlastnosti -->
      <!--VISIBILITY></VISIBILITY-->
      <!--WARRANTY></WARRANTY-->
      <!--WEIGHT></WEIGHT-->
      <!--CATEGORY></CATEGORY-->
      <!--FLAGS></FLAGS-->
      <!--FREE_SHIPPING></FREE_SHIPPING-->
      <!--IMAGES></IMAGES-->
      <!--INFORMATION_PARAMETERS></INFORMATION_PARAMETERS-->
      <!--PARAMETERS></PARAMETERS-->
      <!--TEXT_PROPERTIES></TEXT_PROPERTIES-->
      <!--ALTERNATIVE_PRODUCTS>
        <CODE></CODE>
      </ALTERNATIVE_PRODUCTS-->
      <!--RELATED_PRODUCTS>
        <CODE></CODE>
      </RELATED_PRODUCTS-->

    </SHOPITEM>
  </xsl:template>

</xsl:stylesheet>

Transformaci nahrajeme do FlexiBee do evidence Uživatelské transformace (horní menu Nástroje → Uživatelské transformace). Klikneme na tlačítko Nový a vyplníme zkratku (např. FLEXIBEE-PRODUKTY) a název. Do pole Dotaz vložíme zdrojový kód XSLT transformace a klikneme na tlačítko Uložit a zavřít.

Zkratku, kterou jsme zadali, si zapamatujeme. Budeme ji totiž potřebovat při sestavování adresy pro export produktů.


Jednorázový export produktů z FlexiBee

Pro vyzkoušení není potřeba přenos jakkoliv automatizovat a tak si vystačíme se stažením XML souboru z FlexiBee a jeho "ručním" importem do Shoptetu.

XML soubor z FlexiBee je dostupný na adrese https://{server}:{port}/c/{identifikátor firmy}/cenik.xml?format=code:{zkratka transformace}&limit=0
Reálná adresa bude tedy například: https://demo.flexibee.eu/c/demo/cenik.xml?format=code:FLEXIBEE-PRODUKTY&limit=0
Data z této adresy můžeme zkusit zobrazit v internetovém prohlížeči nebo si je stáhnout pomocí curl. Data si uložíme do souboru. Tento soubor následně nahrajeme do Shoptetu.

Nahrání do e-shopu se provádí v menu PRODUKTY → Import. Klikneme na tlačítko VYBERTE SOUBOR a vybereme XML soubor vyexportovaný z FlexiBee. Musíme zvolit jednu ze tří variant importu. Myslím, že nejlepší je první volba "Neměnit produkty a varianty, které nejsou obsaženy v importovaném souboru".

Import produktů v Shoptetu
Import produktů v Shoptetu

Kliknutím na tlačítko IMPORTOVAT spustíme import.

Pokud je všechno v pořádku, můžeme si zkontrolovat, zda se nám produkty na e-shopu objevily.

Automatický import produktů z FlexiBee

Další možností je automatický import. Stejně jako při přenosu stavu skladů je možné Shoptet nastavit tak, aby si data stahoval sám. Proč ne :-).

Co je potřeba udělat ručně?

Ručně je potřeba produkty roztřídit do kategorií. Zatím jsem totiž nevymyslel postup, jak přenášet i zatřídění do kategorií :-(. No co, možná mě ještě časem něco napadne.

Závěr

Pokud používáte FlexiBee a přemýšlíte o tom, že si k němu pořídíte e-shopové řešení, mohu Shoptet doporučit. Produkty již máte nejspíš připraveny a je tedy potřeba je jen do e-shopu přenést. Není nutné zadávat všechno znovu.

Otevírá se vám zcela nový směr podnikání :-).

ABRA FlexiBee, E-Shop, REST API, Shoptet

-
Kája z Norska
Kája z Norska

Jsem programátor, horolezec a tak trochu FlexiBee fanatik :-).
Na CharlieBlogu sepisuji své nápady a poznatky už od roku 2006.

Powered by CharlieBlog Engine v2.0