Mapování feedu v praxi - 1. díl
O mapování feedů v Napojse jsme toho napsali již hodně. Nyní se podíváme na praktické příklady a v několikadílném seriálu si ručně namapujeme několik feedů, od jednodušších až po ty nejsložitější.
Dnes se podíváme na XML feed od Heureky. Ačkoliv Heureka feed můžete v Napojse napojit velmi snadno pomocí předhotovené šablony, záměrně si namapujeme feed ručně, abychom si vysvětlili všechny možnosti a záludnosti, s kterým se v mapování takového feedu setkáme.
Začínáme
Poté, co si přidáme nový import a ve formátu feedu zvolíme Vlastní formát XML, se dostaneme na stránku se samotným mapováním:
- vpravo vidíme seznam všech elementů, které se ve feedu nacházejí. Každý element ve feedu obsahuje specifickou informaci o produktu (název, popis, cenu apod.). Pokud najedete kurzorem myši na otazník, uvidíte příklad hodnoty, které se ve feedu nachází.
- vlevo pak vidíme samotné mapovací příkazy, které si vysvětlíme v následujících odstavcích.
![](http://d33v4339jhl8k0.cloudfront.net/docs/assets/5c0d104804286304a71d2a29/images/663b224d7303ea4a739d4146/file-PG8O6Kou3q.png)
- pokud potřebujete hlubší vhled do toho, jak feed vypadá, můžete si zobrazit jeho náhled feedu pomocí buttonu Zobrazit > Zobrazit feed. V novém okně uvidíte 50 prvních produktů, které se ve feedu nacházejí.
![](http://d33v4339jhl8k0.cloudfront.net/docs/assets/5c0d104804286304a71d2a29/images/663b23795ae8353469c6b6cc/file-qOwquiFJq0.png)
Jdeme na to
Základní vlastnosti produktu
Začneme vlastnostmi, které se u produktu ani ve feedu neopakují. Začneme tím, že nastavíme název produktu:
- klikneme na Přidat příkaz
- Ze seznamu příkazů vybereme typ Nastav, který slouží k nastavení určité vlastnosti produktu ze zvoleného elementu.
- Vybereme Název produktu z pole Vlastnost produktu
- Vybereme element PRODUCTNAME, který ve feedu označuje název produktu a klikneme na Uložit.
Po uložení vidíme náhled výsledného mapování a můžeme pokračovat nastavováním dalších vlastností. V seznamu elementů na pravé straně vidíme element PRODUCTNAME označený fialovou barvou, což značí, že je již v mapování použitý.
Stejným způsobem nastavíme rozšířený název produktu, EAN, podrobný popis apod.
TIP: Pro kontrolu správnosti namapovaných dat můžete kliknout na button Zobrazit Produkt vpravo nahoře.
Prodejní cena
Cenu nastavíme obdobným způsobem, jako předchozí základní elementy. Kromě částky však potřebujeme znát i měnu, ve které je cena uvedena. Naskýtají se nám dvě možnosti:
měnu vybereme ze seznamu měn a určíme ji napevno. Pokud například víme, že cena je v korunách, můžeme uvést měnu CZK.
využijeme nastavení měny, které jsme provedli v nastavení formátu feedu a v mapování použijeme příslušnou proměnnou.
Obrázky
Obrázky produktu se ve feedu nacházejí hned ve dvou elementech:
- IMGURL, který zpravidla označuje hlavní obrázek produktu. Ten nastavíme standardním způsobem pomocí příkazu Nastav.
- IMGURL_ALTERNATIVE, který obsahuje doplňkové obrázky a je specifický tím, že se ve feedu objevuje několikrát - podle toho, kolik má produkt doplňkových obrázků. Říkáme, že se jedná o vícenásobný element.
Protože je doplňkových obrázků více a my chceme namapovat všechny, využijeme příkaz Projdi.
Jak název napovídá, pomocí něj projdeme všechny elementy daného typu a na každém následně zavoláme příkaz Nastav. Ten musí být v mapování nastavený jako podřízený příkaz.
TIP: Všechny vícenásobné elementy jsou v seznamu dostupných elementů označeny symbolem #.
Způsoby dopravy
Stejně jako v případě doplňkových obrázků může jeden produkt obsahovat více způsobů dopravy. S výhodou tedy opět použijeme kombinaci příkazů Projdi a Nastav.
Parametry
Parametry jsou dalším vícenásobným elementem ve feedu. Postup tedy bude stejný, jako v předchozích případech:
- příkazem Projdi projdeme všechny vícenásobné elementy PARAM
- nastavíme vlastnost Parametr. Název parametru (např. "barva") vezmeme z elementu PARAM / PARAM_NAME, hodnotu parametru (např. "modrá") namapujeme z elementu PARAM / VAL
- skupinu parametrů nemusíme vyplňovat
Dodací lhůta
Heureka feed je specifický tím, že dodací lhůtu v elementu DELIVERY_DATE může uvádět dvěma způsoby:
- jako číslo, které vyjadřuje počet dní k doručení
- jako datum ve formátu YYYY-MM-DD, které určuje přesné datum doručení
My si ukážeme, jak namapovat obě možnosti. Jelikož dopředu nevíme, v jakém formátu feed dodací lhůty uvádí, nebo zda neuvádí oboje, s výhodou využijeme podmínečného příkazu Když.
Následující kombinace příkazů Když a Nastav se použije, pokud je obsah elementu čislo. Číslo vyjadřuje regulární výraz ^\d+$. Regulární výrazy jsou samostatná problematika, přesahující rozsah tohoto článku, pro jejich pochopení doporučujeme specializované zdroje.
V případě, že bude hodnota ve formátu data, použijeme další kombinaci příkazů Když a Nastav. Tentokrát použijeme regulární výraz ^\d{4}-\d{2}-\d{2}$, který vyjadřuje datum ve formátu YYYY-MM-DD.
Závěr
V tomto článku jsme si ukázali použití všech příkazů s praktickými ukázkami. V následujících článcích se podíváme i na složitější případy mapování a použití filtrů.
Nezapomeňte, že pokud si s mapováním nevíte rady, můžete se na nás obrátit a feedy napojíme za vás.