Zobrazují se příspěvky se štítkemFeed zboží. Zobrazit všechny příspěvky
Zobrazují se příspěvky se štítkemFeed zboží. Zobrazit všechny příspěvky

čtvrtek 1. března 2012

Inshop 4 - Jak na vlastní feed pro Google Merchant

Inshop4 je pro generování feedu mnohem příjemnější. Ačkoliv je nutné znát jazyk xsl, programátor jej určitě uvítá. Pro neznalé, tak uvedený příklad bude na konci článku ke stažení a je jen na každém jak se soubory naloží.

 Vytvoření definic xsl

na ftp obchodu, konkrétně ve složce inshop/searchengines/config/user přidáme dva nové soubory. Ve složce user se soubory při aktualizaci serveru zachovávají. O úroveň výše, tomu tak není.
První soubor, který vytvoříme je ses.xml. Tento soubor je již ve stromové úrovni výše vytvořen, stačí jej nakopírovat do složky user a přidat jen jeden řádek:
  • <item Name="GoogleMerchant" OutputFile="google-merchant.xml" ExportTemplate="..\export.xml" TransformTemplate="googleMerchant.xml"/>
výsledek tedy může vypadat takto:
  • <?xml version="1.0" encoding="windows-1250"?>
    <items>
    <item Name="GoogleMerchant" OutputFile="google-merchant.xml" ExportTemplate="..\export.xml" TransformTemplate="googleMerchant.xml"/>
    </items>
Oproti příkladu z Inshop 3 - Jak na vlastní feed zboží, se feedy generují 1x/den a to pouze v případě, je-li v katalogu zboží provedena změna. Jaké feedy (případně pro jaké mutace a měny) právě určuje soubor ses.xml.

Druhý soubor již konkrétně definuje generovaný xml soubor. Je psán již ve zmiňovaném xsl jazyce a programátor jej může libovolně ovlivňovat.
Do složky user přidáme xml s názvem googleMerchant.xml (názvy souborů odpovídají příkladu ke stažení). A do něj přidáme obsah:
  • <?xml version="1.0" encoding="utf-8" ?>

    <xsl:stylesheet version="1.0" xmlns:g="http://base.google.com/ns/1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
    <xsl:template match="/">
    <rss version="2.0" xmlns:g="http://base.google.com/ns/1.0">
    <channel>
    <title><xsl:value-of select="//SHOP/ID"/></title>
    <link><xsl:text>http://</xsl:text><xsl:value-of select="//SHOP/ID" /></link>
    <description>popis obchodu</description>
    <xsl:apply-templates select="//SELECTEDPRODUCT" />
    </channel>
    </rss>
    </xsl:template>

    <xsl:template match="SELECTEDPRODUCT">
    <item>
    <title>
    <xsl:value-of select="NAME"/>
    </title>
    <description>
    <xsl:value-of select="DESCRIPTION_PLAINTEXT512"/>
    </description>
    <link>
    <xsl:value-of select="URL"/>
    </link>
    <g:id>
    <xsl:value-of select="IDPRODUCT"/>
    </g:id>
    <g:image_link>
    <xsl:value-of select="PICTUREFORSEARCHENGINES"/>
    </g:image_link>
    <g:price>
    <xsl:value-of select="ROUNDEDCUSTOMERPRICE"/> CZK
    </g:price>
    <g:condition>
    new
    </g:condition>
    <g:availability>
    in stock
    </g:availability>
    <g:brand>
    <xsl:value-of select="MANUFACTURERNAME"/>
    </g:brand>
    <g:google_product_category>
    <xsl:value-of select="translate(FULLCATEGORYTEXT, '|', '>')"/>
    </g:google_product_category>
    </item>
    </xsl:template>
    </xsl:stylesheet>
Soubor obsahuje standardní parametry pro úspěšnou registraci do Google Merchant. Parametry je možné libovolně přidat (musí je obsahovat definice export.xml - ta definuje jaké hodnoty z databáze načítat) nebo umazat. 

Generování feedu

Ne každý má možnost čekat do druhého dne a proto je možné výsledek kontrolovat ihned. Postup pro vygenerováni je následující:
  1. Označit zboží jako změněné a odeslat změny na server
  2. Jakmile je zboží na serveru odeslané, je možné ručně feedy  vygenerovat a to na adrese: http://muj-inshop.cz/inshop/webservices/Exchange.asmx/GenerateXmlForSearchEngines. Výsledek je opět ve formě xml a to konrétně v tagu result. např.<Result>true</Result>
  3. Vygenerovaný nový feed má cestu: http://muj-inshop.cz/inshop/robots/google-merchant.xml

Příklad ke stažení

Uvedený příklad je odzkoušen ale i tak se mohou najít malé mouchy. Problémy piště do diskuze. Budu se je snažit odstranit co nejdříve ale upozorňuji, že jsem pracující člověk s mnoha koníčky :)
A konečně příklad ke stažení: https://docs.google.com/open?id=0B72taWu9GqGDNDZDV3lybEpST1dvSE1TTnVlT2RzUQ

Historie úprav

1.3.2012 - první a původní verze
5.3.2012 - oprava ceny na cenu s DPH, původní verze obsahovala cenu bez DPH.

https://docs.google.com/open?id=0B72taWu9GqGDNDZDV3lybEpST1dvSE1TTnVlT2RzUQ

sobota 25. února 2012

Inshop 3 - Jak na vlastní feed zboží

Stále se najde pár obchodů na platformě Inshop 3. Je to již zastaralá verze, oproti Inshop 4 jsou některé funkce ale stále nepřekonány. Odhaduji, že na Inshop3 stále funguje nejméně 200 tuzemských obchodů. Což není na českou platformu špatné ale teď k věci. Inshop 3 v základu generuje několik standardních xml pro různé porovnávače.  Pokud nemáte standalone server a nechcete platit "velké peníze" za vytvoření feedu, přikládám možnost jak si sám upravit feed.

1. Úprava konfiguračního souboru

Feed je dobré mít statický, není dobré aby byl při každé návštěvě robota generován "pod rukama". Proto zajistíme, že výpis z databáze se uloží do souboru. Feedy sami o sobě jsou již obsáhlé a mohou mít i několik MB. Některé porovnávače berou feedy i v komprimované podobě ale o tom snad jindy. Díky tomu, že soubor nebude generován bude robot porovnávače také spokojen, načte se mu ihned a nemusí čekat na jeho generování (porovnávače při dlouhém načítání ukončí proces).
A teď k samému nastavení. Otevřeme si soubor v www.nase-domena.cz/inshop/texts/GenerateFiles.txt. A kamkoliv na nový řádek vložíme
  • 1=zbozi.html;/zbozi.xml
Kdy číslice na začátku řádku označuje pořadové číslo feedu. První soubor s listem produktů a za lomítkem pak název generovaného souboru. Tedy v překladu, načti soubor sitemap.html a ulož je do rootu prodejny jako sitemap.xml

2. Vytvoření listu produktů

aby bylo možné co ukládat, je nutné to nejprve kde vzít. K tomu slouží tzv. listy. Inshop 3 má jedinečný tagovací způsob zápisu. Uvedu v příkladu.
  • <shop.list_items items="store_items" Level=2 Range=1 Unique=true MaxCount=10000><shop.item_name/></shop.list_items>
Tento list nám vypíše názvy výrobků (shop.item_name se zamění za název výrobku). Tento list bere v potaz jakákoliv omezení co jsou na zboží nastavena (příznaky Skrýt apod.) a není nutné vytvářet složité SQL příkazy. A k vygenerování xml staží již jen doplnit do listu požadované parametry:
  • <?xml version="1.0" encoding="UTF-8"?>
    <SHOP>
    <shop.list_items items="store_items" Level=2 Range=1 Unique=true MaxCount=10000>
    <SHOPITEM>
    <PRODUCT><shop.Item_Name /></PRODUCT>
    <PRICE_VAT><shop.item_endpricewithtax /></PRICE_VAT>
    </SHOPITEM>
    </shop.list_items>
    </SHOP>
Takto upravený soubor uložíme do složky inshop/pages/ pod název zbozi.xml. Feed v příkladu obsahuje jen název produktu a cenu s DPH. Jaké další parametry lze přidat, nechám již na Vás. Porovnávače většinou mají rozdílné způsoby zápisu.

3. Generování

Při odeslání dat na server se automaticky soubor generuje pod názvem z GenerateFiles.txt  (lze generovat i ručně pro případ testování). Není nutné tedy nastavovat cyklické generování. Pokud je tedy odeslána změna v katalogu, soubor se generuje. Feed může být aktuální několikrát za den. O tom, že roboti porovnávačů tyto soubory načítají jednou za pár dní, to už je jiná. Z naší strany je provedeno vše a zůstává nám jen přání aby námi připravený feed byl bezchybný a přivedl další nakupujicí.