Návod, jak Heureka dostupnostní XML feed zpracovat v aplikaci Blending Bull tak, aby by z něj byl na výstupu Mall dostupnostní XML feed, a přitom se nadále automaticky aktualizoval.
O dostupnostních XML feedech
Dostupnostní feed v některých systémech doplňuje hlavní produktový feed. Uvádí informace o skladové dostupnosti a cílový systém načítá data častěji než z produktového feedu. U nás byla průkopníkem Heureka. V současné době podporuje dostupnostní feed také Mall Marketplace (někdy označuje jako availability feed).
V Mergadu jsme se zpracováním dostupnostních feedů dříve nepočítali. Příčinou bylo mé rozhodnutí. Domníval jsem se, že feed marketing se týká základních produktových dat. Že informace o dostupnosti obsažené v produktových feedech jsou dostatečné, a tak zpracování dostupnostních feedů není zapotřebí. Toto rozhodnutí jsem učinil před mnoha lety. Řadu let bylo platné. S nástupem dostupnostních feedů ve více službách však přichází problém v situaci, kdy e-shop dostupnostní feed v daném formátu nemá. Ale má ho např. v rozšířeném “Heureka dostupnostní XML” formátu. Pro spuštění inzerce v takovém systému je zapotřebí dostupnostní feed získat. Např. konverzí. Mergado “Heureka dostupnostní XML” bohužel zatím zpracovat neumí. Kvůli parametrům v elementech. Můžeme však použít Blending Bull. Ten to dokáže díky své obecnosti a výhodou bude i velmi časté zpracování dat.
Jak konvertovat Heureka dostupnostní XML feed na Mall dostupnostní XML feed
Postup ukáži na příkladu dat. Ta vygeneroval Mergado Pack z e-shopu na WooCommerce. XML feed neobsahuje 100% všechny parametry, které se v Heureka dostupnostním XML feedu mohou objevit. Je to dáno WooCommerce shopsystémem a jeho implementací. Jako příklad nám feed poslouží dobře.
Příklad vstupních dat
<?xml version="1.0" encoding="UTF-8"?>
<item_list>
<item id="1">
<stock_quantity>5</stock_quantity>
</item>
<item id="2">
<stock_quantity>4</stock_quantity>
</item>
</item_list>
Příklad neobsahuje některé elementy viz dokumentace např. delivery_time
. Pokud takový element Váš dostupnostní feed obsahuje, v Blending Bullovi ho můžete smazat pomocí pravidla Smazat text za použití regulárního výrazu, který ošetří části textu, které se mění (např. datum).
Příklad výstupních dat
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<AVAILABILITIES>
<AVAILABILITY>
<ID>1</ID>
<IN_STOCK>5</IN_STOCK>
<ACTIVE>true</ACTIVE>
</AVAILABILITY>
<AVAILABILITY>
<ID>2</ID>
<IN_STOCK>4</IN_STOCK>
<ACTIVE>true</ACTIVE>
</AVAILABILITY>
</AVAILABILITIES>
Podrobnosti viz. dokumentace Mall dostupnostního feedu.
Z uvedených dat je zřejmé, že
ID
je v Heureka formátu jako parametr elementitem
, zatímco v Mall formátu jako samostatný element.- Mall formát má element
ACTIVE
, který předpokládáme všudetrue
. - Elementy mají obdobný význam, jen se jinak jmenují. V aplikaci Blending Bull tedy můžeme vytvořit sadu pravidel, která elementy zpracuje, přejmenuje.
Heureka | Mall | Poznámka |
---|---|---|
item_list | AVAILABILITIES | Kořenový element XML |
item | AVAILABILITY | Jednotlivá položka |
id | ID | U Heureky jako parametr elementu item viz výše |
stock_quantity | IN_STOCK | Počet kusů skladem |
- | ACTIVE | Předpokádáme vždy true viz výše |
Příklad řešení v appce Blending Bull
Zvětšíte-li si screenshot výše, uvidíte, že první pravidlo je vypnuté. Následuje převod do “tabulky”, aby se mi s daty lépe pracovalo. Následuje zpracování jednotlivých elementů. A na konci jsem přepsal hlavičku, protože jsem ji chtěl mít 100% dle specifikace Mallu.
Pravidla pro přepis elementů jsou tato:
Nalézt v datovém zdroji text | Nahradit za text | Regulární výraz |
---|---|---|
item_list |
AVAILABILITIES |
- |
<item id="(.*)"> |
<AVAILABILITY><ID>\g<1></ID> |
ano |
</item> |
</AVAILABILITY> |
- |
stock_quantity |
IN_STOCK |
- |
</IN_STOCK> |
</IN_STOCK><ACTIVE>true</ACTIVE> |
- |
Z uvedených pravidel vidíte, že jde hlavně o přepis názvů elementů. Pouze v jednom pravidle byl použit regulární výraz. Ten vyparsuje hodnotu id
a zapíše do elementu ID
. ID přitom zapisuje jako samostatný element.
Po nastavení pravidel klikněte na ikonu šipek vpravo nad náhledem výstupních dat. Tím se soubor zařadí do fronty k přegenerování. To nemusí proběhnout úplně hned, ale mělo by to být brzy. Tak si budeme moci data zkontrolovat. Blending Bull bude následně pravidelně dostupnostní feed v Heureka formátu stahovat, zpracuje ho do Mall formátu a bude k dispozici aktualizovaný pro Mall Marketplace.
Poznámky k příkladu
Mým cílem bylo Vám ukázat postup řešení. Nikoliv sepsat 100% vše objímající návod. V praxi mohou nastat situace, kdy bude dostupnostní feed obsahovat např. data navíc, systém generující Heureka dostupnostní feed může různě kouzlit s pořadím elementů, nestandardním obsahem elementů a podobně. Blending Bull Vám nabídne nástroje, které by měly i takové situace vyřešit. A pokud by Vám při tom nestačila inspirace z ostatních návodů Blending Bull, tak napište. Vymyslíme, jak na to