Feedy – Konfigurátor

Tento článek je praktickou ukázkou práce s konfigurátorem XML feedů.

➡️ Nástroje > Feedy

Po vytvoření feedu se aktivuje záložka Konfigurátor, ve které si můžete strukturu celého XML vytvořit podle potřeby nebo upravovat jeden z námi předpřipravených feedů.

Mapování pro feedy

Funkci utils.map('název mapy', 'klíč', 'popisek') lze využít pro mapování hodnot ve feedu. klíč je povinný, a představuje hodnotu ve feedu, která se má mapováním přepisovat. Typicky se jako klíč použije třeba název výrobce producer.title nebo ID sekce section.id . popisek je volitelný, a slouží pouze pro orientaci v mapovaných hodnotách. Při vygenerování feedu se vytvoří mapování s názvem název mapy , do kterého se uloží všechny ve feedu použité klíče, pro které lze následně v ➡️ Nástroje > Mapování pro feedy doplnit nahrazující hodnoty. Při dalším vygenerování feedu zmiňovaná funkce vrátí již přeložené hodnoty z mapování. Pokud se později ve feedu objeví položky s novými klíči, tyto se automaticky přidají do mapování, a je potřeba pouze doplnit nahrazující hodnoty v ➡️ Nástroje > Mapování pro feedy.

Potřebujete do feedu propisovat specifická ID kategorií nějakého srovnávače, který WPJshop nepodporuje? V konfigurátoru můžete využít zjednodušené funkce section.map('název mapy') . Zde není potřeba definovat klíč ani popisek, protože se propíší automaticky z dat dané sekce. Jinak se však section.map() chová stejně jako obecná funknce utils.map() .


Funkce utils.map() se záložní hodnotou

Funkce utils.map(), pro mapování hodnot v konfiguraci feedu, má volitelný čtvrtý parametr. Ten slouží pro předání záložní hodnoty, která se využije pokud mapování neexistuje nebo je překladová hodnota prázdná. Např.

utils.map('Názvy parametrů', paramID, param.name, param.name)

Díky tomuto parametru není potřeba vytvářet další podmínky, a tím se zjednodušuje použití mapování v konfiguraci feedu. Níže je ukázka konfigurace pro mapování názvu parametrů a jejich hodnot.

Konfigurace produktových štítků do feedů

Pokud má produkt přiřazené nějaké štítky, jsou všechny načteny do dat feedu.

V datech je pole labels, jeho položky jsou jednotlivé štítky přiřazené k produktu. Hodnoty uvnitř štítku jsou překladatelné. Zobrazené informace jsou tedy závislé na konkrétní jazykové mutaci. Za nejdůležitější hodnoty ze seznamu lze považovat:

  • active (Y/N) – podle toho, jestli je štítek nastaven na dané jazykové mutaci jako aktivní,
  • name (text) – název přiřazeného štítku,
  • is_valid (Y/N) – kontroluje, jestli štítek splňuje následující podmínky: aktivní, datum v nastaveném rozmezí, je zobrazen na detailu produktu, (příp. pro B2B uživatele -– jestli splňuje nastavené skupiny uživatelů).

Pro vypsání dat o štítkách do XML feedu je potřeba do konfigurace feedu přidat nový element. Do tohoto elementu následně nechat cyklem vypsat jednotlivé štítky. V případě, že chceme vypisovat pouze štítky aktuálně viditelné na daném produktu, tak použijeme již výše zmíněnou hodnotu is_valid. Výsledná konfigurace by mohla vypadat například takto:

Ve výsledném XML dokumentu budou vypsány pouze štítky splňující podmínky dané jazykové mutace. (např. v ukázce je vidět, že štítek „Black Friday RO“, ačkoli je k produktu přiřazený, nesplňuje některé podmínky, a proto není ani ve výstupu).

Vypsat ve feedu cenu po slevě přiřazené ke štítku

Do feedu lze (zejména z marketingových důvodů) vypsat i cenu produktu po aplikování určité slevy (typicky cenu s použitím slevového kódu). Tato funkce má svá omezení, pokud plánujete ji využívat, pročtěte pečlivě celou sekci.

Ukázkový příklad konfigurace feedu pro Seznam podle specifikace platné k 3. 2. 2025:

Co tato konfigurace provádí?

  • Projdou se všechny štítky, které mají přiřazenou nějakou slevu
  • U každého štítku s přiřazenou slevou se vytvoří element SALES_VOUCHER a jeho podelementy
    • CODEkód aplikované slevy
    • PRICE_WITH_VOUCHERcena položky s aplikovaným kupónem (výpočet je vysvětlen v přiložené ukázce kódu)
// Zaokrouhlená cena položky s DPH
const original_price = price.round(price.withVat);


// Vypočítaná sleva z původní ceny položky a hodnoty slevy v procentech
const discount = ( original_price * label.coupon_discount ) / 100;


// Vrátí se naformátovaná hodnota zaokrouhlená na 2 desetinná místa
return price.format(price.round(original_price - discount), ',', 2, '');
    • DATE_FROM – datum a čas od kdy je štítek aktivní (pokud není nastaveno, tak je element prázdný)
    • DATE_TO – datum a čas do kdy je štítek aktivní (pokud není nastaveno, tak je element prázný)
    • TEXTnázev štítku

Pro slevy přiřazené ke štítku je nutné brát ohled na určitá omezení:

  • To, zdali se sleva ve feedu vypíše, reflektuje od štítku všechna nastavení (aktivní, interval datumů...)
  • Od přiřazené slevy se vezme pouze KOD a hodnota z pole „Produktová sleva“ zadaná v procentech. Ostatní omezení nastavená na slevě se již neaplikují.

Výsledek vygenerovaného bloku pro jeden štítek se slevou:

Pomohli jsme tímto vyřešit vaši otázku? Děkujeme za zpětnou vazbu Nepodařilo se odeslat zpětnou vazbu. Zkuste to prosím znovu.