č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í.


neděle 3. dubna 2011

Inshop 4 - v. 4.2.4A

Dnes bych chtěl podrobněji rozebrat novinku zveřejněnou posledně na blogu pod titulkem Nová verze Zoner Inshop 4 4.2.4.A.

Grafika
Na první pohled je změněn grafický kabát. Po několika letech, opravdu letech, se změnilo i logo. Co  mě jako uživatele potěšilo nejvíce je úprava loadovacího okna. Již neobsahuje "sympatickou" ženskou postavu, ale je nahrazeno neutrálním pozadí s logem Inshopu.

Oblíbené agendy
Agendy, lze nyní uložit do oblíbených. Spíše bych typoval, že tuto funkci využijí začínající uživatelé. Ale i tak je dobré vědět, že je možné pravým tlačítkem myši (dále jen PTM) přidat jakoukoliv agendu do oblíbených. Oblíbené se nacházejí přímo pod stávajícím seznamem agend.
  
Hledání v agendách
Tady není až moc co popisovat, stačí začít psát a namísto stávajících agend se zobrazí výsledky. Vyhledávání probíhá ihned při psaní. Není nutné tedy zadat frází a odeslat požadavek.
  
Propojení s ekonomickým systémem
Stávající Manager umožňuje propojení s ekonomickým systémem (dále jen ES) Money a Pohoda. Tady narážíme na největší kámen úrazu Zoneru. Zatímco ostatní platformy umožňují propojení hned s několika systémy, Manager až teprve nyní podporuje Pohodu (doteď byl podporován jen ES Money). Pro Zoner není "problém" udělat individuální propojení ale částka kterou si za to obvykle vezmou je nepřiměřená.

Platba PayPal
Mnoho obchodníků žádalo platbu PayPal a teď ji tu konečně máme. Nejsem si jist kolik obchodníků ji do dnešního dne zapnutou ale dle mého skromného názoru to tak velké číslo není. Ale jsem rád, že je tato platba mezi námi. U nás není mnoho lidí co by upřednostnilo platbu přes portál PayPal ale v zahraničí je to běžná věc. Proto obchody prodávající i za hranicemi ČR mají opět lepší šanci v boji s konkurencí.

Nové možnosti na kartě produktu
Na kartě produktu je nově možné přidat EAN - čárový kód (mnohdy vyplňovaný v ES) a Číslo od výrobce/ISBN. K produktům je nově možné přidat tři příznaky. A to:
  1. "Nezahrnovat do XML feedu pro vyhledávače". Ačkoliv název je trochu nepřesný, jde o to, že výrobek s tímto příznakem se nezahrne do automaticky generovaného XML (např. pro zbozi.cz).
  2. "Poštovné zdarma pro celou objednávku". Na kartě již má obchodník možnost volit mezi tímto novým příznakem a příznakem "Poštovné zdarma". Dle názvu již lze dopídit funkce. Buď se nebude počítat poštovné na celou objednávku nebo pouze na jeden produkt, i když objednávka obsahuje produktů několik. Toto přivítají převážně obchodníci, kteří počítají výši ceny např. dle váhového limitu.
  3. "Zakázáno zobrazení v e-shopu". Zde název mluví za vše. 
 Emaily
V příchozích emailech, informujících o stavu objednávky, je přidán řádek s Expedičním kódem - pokud je vyplněn obchodníkem.

Toť zatím vše z nových funkcí. Zoner opravil mnoho chyb či změnil logiku u některých funkcí. To ale obchodníky již nezajímá, protože to nevidí, či je to přímo neovlivní.