🐮 Jak převést Heureka dostupnostní XML feed na Mall dostupnostní XML feed

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 :czech_republic: :slovakia: 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 element item, zatímco v Mall formátu jako samostatný element.
  • Mall formát má element ACTIVE, který předpokládáme všude true.
  • 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 :wink:

2 Likes