1. Co jsou elementy
Definice
Element je základní stavební prvek feedu, který nese data. Každý element představuje konkrétní informaci – například název produktu, cenu, kód nebo obrázek. V jazyce XML i CSV funguje element jako označení místa, kde se daná hodnota nachází.
Zjednodušeně řečeno:
- element = „název informace“,
- hodnota = „obsah této informace“.
Příklad:
<g:title>Bid long and prosper – hrnek</g:title>
<g:price>364.21 CZK</g:price>
<g:id>47</g:id>
V tomto příkladu je:
<g:title>element,- „Bid long and prosper – hrnek“ jeho hodnota.
Elementy v různých formátech
Element v XML feedu
V XML souborech je element vše, co se nachází mezi počátečním a ukončovacím tagem. Element může obsahovat text, atributy nebo další elementy (tzv. zanoření). XML je hierarchický formát – díky tomu umí popsat i složitější vztahy mezi daty.
Příklad:
<PRICE_VAT>1499</PRICE_VAT>
Element PRICE_VAT obsahuje jednu hodnotu – cenu s DPH.
Element v CSV feedu
V CSV souborech element odpovídá jednomu sloupci v tabulce. Název sloupce představuje element, buňky ve sloupci pak jeho hodnoty.
Příklad:
| PRODUCTNAME | PRICE_VAT | EAN |
|---|---|---|
| Hrnek Mergado | 1499 | 8592384021932 |
CSV neumí pracovat se zanořením (rodič–potomek), a proto Mergado tuto strukturu simuluje zápisem typu rodič | potomek.
Element v Mergado Editoru
V Mergado Editoru odpovídá každý element jednomu řádku na stránce Elementy. Editor zobrazuje strukturu feedu jako strom – tedy v hierarchii, kde jsou zanořené elementy zobrazeny odsazením.
Každý element v Mergadu může být:
- jednoduchý, pokud má pouze jednu hodnotu,
- vícenásobný, pokud se opakuje vícekrát (např. více obrázků, více parametrů),
- zanořený, pokud je součástí jiného elementu,
- nebo atributový, pokud doplňuje hlavní hodnotu o další informaci (např.
@idnebo@description).
K čemu elementy slouží
Elementy jsou základem pro přenos, zpracování a úpravu dat v Mergadu. Pomáhají organizovat data tak, aby bylo možné je:
- číst, měnit a exportovat,
- převádět mezi formáty (např. Heureka → Google Merchant),
- třídit, filtrovat a vyhodnocovat.
V praxi s nimi pracujete při:
- tvorbě výběrů produktů,
- nastavování pravidel,
- práci s proměnnými a automatizací,
- řazení a kontrole dat na stránkách Produkty a Elementy.
Shrnutí
Element je základní jednotka dat ve feedu. Mergado s ním zachází jednotně bez ohledu na formát – ať už pochází z XML, CSV nebo z jiného zdroje. Porozumění tomu, jak elementy fungují a jak spolu souvisejí, je klíčové pro efektivní práci s pravidly, výběry i exporty.
FAQ – Co jsou elementy
1. Co je to element
Element je základní stavební prvek feedu, který nese konkrétní informaci – například název, cenu nebo kód produktu. V XML i CSV formátu představuje označení místa, kde se daná hodnota nachází.
2. Jaký je rozdíl mezi elementem a hodnotou
Element je název informace (např. PRICE_VAT), zatímco hodnota je její obsah (např. 1499). Společně tvoří pár – název a jeho datový obsah.
3. Jak element vypadá v XML feedu
V XML je element definován počátečním a ukončovacím tagem. Příklad:
<PRICE_VAT>1499</PRICE_VAT>
Zde je PRICE_VAT element a 1499 jeho hodnota.
4. Jak element funguje v CSV feedu
V CSV souboru element odpovídá názvu sloupce. Každá buňka v tomto sloupci představuje hodnotu elementu. Příklad:
PRICE_VAT→ sloupec s hodnotami 1499, 1599, 1799 atd.
5. Jak se zanoření zapisuje v CSV, když CSV neumí hierarchii
Mergado zanoření v CSV simuluje pomocí zápisu rodič | potomek. Například cesta PARAM | VAL představuje hodnotu elementu VAL zanořeného pod elementem PARAM.
6. Jak elementy zobrazuje Mergado Editor
V Mergado Editoru je každý element zobrazen jako samostatný řádek na stránce Elementy. Zanořené elementy jsou vizuálně odsazené a tvoří stromovou strukturu, která odpovídá struktuře XML feedu. To platí i pro stránku Produkty v zobrazení typu Elementy.
7. Jaké druhy elementů Mergado rozlišuje
Mergado pracuje se čtyřmi základními typy:
- Jednoduché elementy – mají jednu hodnotu.
- Vícenásobné elementy – mohou mít více hodnot.
- Zanořené elementy – jsou součástí jiného elementu.
- Atributové elementy – doplňují element o další informace (např.
@id).
8. K čemu elementy slouží v Mergadu
Elementy jsou základem práce s daty – používají se pro čtení, úpravu, filtrování, export i převody dat. Jsou klíčové při práci s pravidly, výběry, proměnnými a automatizací.
9. Jsou elementy stejné ve všech formátech
Ano. Mergado s nimi zachází jednotně – bez ohledu na to, zda pocházejí z XML, CSV nebo jiného formátu.
10. Proč je důležité porozumět elementům
Protože téměř veškerá práce v Mergadu (výběry, pravidla, výpočty, exporty) se na elementech zakládá. Porozumění elementům znamená schopnost přesně řídit úpravy a zpracování dat.
2. Základy elementů
Typy elementů
Mergado rozlišuje čtyři základní typy elementů. Každý z nich má specifické chování a možnosti použití.
Jednoduché elementy
- Mají jednu hodnotu.
- Jejich pozice (
@@POSITION) je vždy rovna 1. - Při práci s nimi není nutné pozici uvádět.
Příklad:
<ITEM_ID>47</ITEM_ID>
Cesta ITEM_ID cílí na stejnou hodnotu jako ITEM_ID { @@POSITION = 1 }.
Vícenásobné elementy
- Obsahují více hodnot stejného typu.
- Každá hodnota má vlastní pozici (1, 2, 3 …).
- Pro cílení na konkrétní hodnotu se používají podmínky nebo atributy
@@POSITIONa@@VALUE.
Příklad:
<IMAGE>url1.jpg</IMAGE>
<IMAGE>url2.jpg</IMAGE>
Element IMAGE má dvě hodnoty – na pozici 1 a 2.
Vícenásobnost se objevuje často například u obrázků, doprav, parametrů nebo kategorií.
Zanořené elementy
- Jsou uvnitř jiného elementu (tzv. rodiče).
- Vytvářejí hierarchickou strukturu dat.
- V Mergadu se zanoření zobrazuje odsazením, v cestě k elementu pak pomocí svislé čáry
|.
Příklad:
<PARAM>
<PARAM_NAME>Barva</PARAM_NAME>
<VAL>Černá</VAL>
</PARAM>
Cesta k hodnotě zní:
- PARAM | VAL
Tento zápis určuje, že hodnota VAL se nachází uvnitř elementu PARAM.
Atributové elementy
- Atribut je doplňující informace, která rozšiřuje význam elementu.
- V XML je uveden v otevíracím tagu a označuje se symbolem
@. - V Mergadu se atributy používají běžně a zapisují se pomocí cesty s
@.
Příklad:
<IMAGE description=“Zimní bunda”>obrazek.jpg</IMAGE>
Cesta k atributu:
- IMAGE | @description
Jak elementy zobrazit v Mergado Editoru
Stránka Elementy
Na stránce Elementy najdete kompletní přehled všech elementů v projektu. Zde můžete elementy:
- zobrazovat a skrývat (pro výstupní feed),
- přidávat, mazat nebo přejmenovávat (u uživatelských elementů),
- třídit podle názvu nebo podle struktury,
- prohlížet jejich vstupní a výstupní hodnoty.
Kliknutím na název elementu otevřete detailní přehled všech jeho hodnot.
Stránka Produkty
Na stránce Produkty lze elementy zobrazit dvěma způsoby:
- Zobrazení „Elementy“ – zobrazuje všechny elementy a jejich hodnoty u konkrétního produktu.
- Zobrazení „Tabulka“ – umožňuje vybrat konkrétní elementy a zobrazit je v přehledné tabulce.
Nástroj Cesta k elementu (Element-Path)
Na stránce Elementy i v pravidlech můžete využít nástroj Cesta k elementu, který pomáhá s tvorbou správné cesty a kontrolou její validity. Zobrazí vám, kam přesně cesta vede, a usnadní práci s pravidly nebo výběry.
Shrnutí
Elementy jsou základní jednotkou, se kterou Mergado pracuje.Rozlišují se podle své funkce (jednoduché, vícenásobné, zanořené, atributové) a jejich pochopení je klíčem k efektivní práci s pravidly, výběry i strukturou feedu.
FAQ
1. Jaké typy elementů v Mergadu existují
Existují čtyři základní typy:
- Jednoduché – mají jednu hodnotu.
- Vícenásobné – obsahují více hodnot.
- Zanořené – nacházejí se uvnitř jiného elementu.
- Atributové – doplňují hodnotu o další informaci.
2. Co znamená pozice elementu
Každá hodnota elementu má svou pozici (např. první, druhá, třetí hodnota). U jednoduchých elementů je pozice vždy 1, u vícenásobných elementů může být vyšší.
3. Jak se pracuje s vícenásobnými elementy
Vícenásobné elementy (např. IMAGE) mohou mít více hodnot.
Pro práci s nimi se používají podmínky nebo speciální atributy @@POSITION (cílení podle pořadí) a @@VALUE (cílení podle obsahu).
4. Jak poznám zanořený element
Zanořený element se nachází uvnitř jiného elementu (tzv. rodiče).
V cestě k elementu se označuje pomocí svislítka |, například PARAM | VAL.
5. Jak se zapisují atributy elementů
Atributy se zapisují pomocí zavináče @. Příklad:
- <IMAGE description=“Zimní bunda”>obrazek.jpg</IMAGE>
V Mergadu je cesta k tomuto atributu IMAGE | @description.
U některým formátů feedu (např. ceneo) jsou atributy uvedeny i u obalovacího elementu.
- <o id=”123” price=”100” avail=”1”>
<name>Název produktu</name>
…
</o>
V tomto případě je v Mergadu cesta k tomuto atributu @id, @price, @avail.
A pokud chceme v Mergadu vytvořit nový atribut do obalovacího elementu, přidáme ho na stránce Elementy na nový řádek, tedy ne pomocí znaku plus u existujícího elementu.
6. Kde v Mergadu elementy najdu
Na stránce Elementy v levém menu projektu. Zde můžete elementy zobrazovat, skrývat, přidávat nebo třídit podle struktury.
7. Jak si zobrazím hodnoty konkrétního elementu
Kliknutím na jeho název na stránce Elementy otevřete přehled všech jeho hodnot – vstupních i výstupních.
8. Jak se elementy zobrazují na stránce Produkty
Na stránce Produkty můžete zvolit:
- zobrazení Elementy – všechny elementy a jejich hodnoty u konkrétního produktu,
- zobrazení Tabulka – přehledný výpis vybraných elementů v tabulce.
9. Co je nástroj Cesta k elementu (Element-Path)
Element-Path, neboli Cesta k elementu je jazyk vyvinutý společností Mergado, který slouží k zapisování cest k elementům a jejich hodnotám. Pomocí Element-Path určujete, na které hodnoty ve feedu chcete cílit – zda je budete číst, nebo do nich zapisovat.
Mergado Editor pracuje s elementy stejně jako XML feed – ve stromové struktuře. Aby bylo možné v této struktuře přesně určit, s kterými daty chcete pracovat, je potřeba znát jejich cestu. Právě to umožňuje jazyk Element-Path.
10. Jaký je rozdíl mezi jednoduchým a vícenásobným elementem
Jednoduchý element má jednu hodnotu u všech produktů (např. ITEM_ID). Vícenásobný element má více hodnot (např. více IMAGE tagů) u jednoho produktu – a s těmito hodnotami je možné pracovat individuálně díky Element-path.
3. Zanořenost elementů
Co je zanořenost
Zanořenost (nebo také vnořenost) je vlastnost elementu, která určuje jeho umístění v hierarchii XML feedu. Element je považován za zanořený, pokud se v XML nachází mezi počátečním a ukončovacím tagem jiného elementu. Zanořenost vytváří strukturu, která pomáhá udržet přehlednost a logické vazby mezi daty.
Tento princip má praktický význam – elementy, které jsou do sebe zanořené, spolu obvykle souvisí a tvoří jeden celek. S takovou strukturou se setkáte například u parametrů produktů, kategorií nebo dopravců.
Příklad:
<PARAM>
<PARAM_NAME>Barva</PARAM_NAME>
<VAL>Černá</VAL>
</PARAM>
V tomto případě:
PARAM_NAMEje název parametru,VALje jeho hodnota,PARAMje nadřazený element, který oba spojuje.
Díky této struktuře Mergado rozpozná, že hodnota „Černá“ patří právě k parametru „Barva“.
Rodiče, potomci a sourozenci
Zanořené elementy tvoří mezi sebou vztahy, které odpovídají stromové struktuře XML:
| Typ vztahu | Popis |
|---|---|
| Rodič (Parent) | Element, do kterého se jiný element zanořuje. |
| Potomek (Child) | Element, který je uvnitř jiného elementu. |
| Sourozenci (Siblings) | Elementy, které mají stejného rodiče. |
Příklad vztahů:
PARAM | PARAM_NAME
PARAM | VAL
PARAMje rodič.PARAM_NAMEaVALjsou jeho potomci.PARAM_NAMEaVALjsou mezi sebou sourozenci.
V Mergado Editoru se tento vztah vizuálně projevuje odsazením – potomci jsou na stránkách Elementy a Produkty vždy posunuti doprava oproti rodiči.
Jak Mergado pracuje se zanořenou strukturou
Mergado Editor pracuje s elementy tak, že přebírá a zobrazuje strukturu XML feedu v její přirozené stromové podobě. Každý element si zachovává informaci o svém rodiči a potomcích, což umožňuje:
- přesně rozlišovat, které hodnoty k sobě patří,
- správně zacílit na konkrétní hodnotu (např.
PARAM | VAL), - vytvářet a spravovat nové zanořené elementy přímo v rozhraní Editoru.
Na stránce Elementy můžete nové zanořené elementy přidat kliknutím na ikonu „+“ u rodičovského elementu. Takto vytvořený element je prázdný a naplní se až pomocí pravidla (např. Přepsat).
Pro lepší orientaci si můžete strukturu představit jako složky a soubory:
- rodičovský element je složka,
- potomek je soubor nebo podsložka uvnitř ní.
Například cesta PARAM | VAL znamená, že hodnota VAL se nachází uvnitř elementu PARAM.
CSV a zanořenost
Zanořenost je přirozenou vlastností formátů jako XML nebo JSON, ale formát CSV ji neumí nativně vyjádřit. Proto Mergado zanoření v CSV simuluje pomocí zápisu rodič | potomek, aby bylo možné s daty pracovat stejným způsobem jako v XML.
V praxi to znamená, že v CSV souboru každý sloupec představuje cestu k elementu. Například:
PARAM | PARAM_NAME
PARAM | VAL
Tento zápis vyjadřuje, že element VAL je zanořený pod elementem PARAM. Tímto způsobem Mergado dokáže zachovat logické vztahy mezi daty i u formátů, které zanořenost samy o sobě nepodporují.
Prakticky: práce se zanořeností v Mergado Editoru
1. Zápis cesty k zanořenému elementu
Když chcete v pravidle nebo výběru pracovat se zanořeným elementem, zapíšete jeho cestu pomocí svislé čáry |.
Příklad:
- PARAM | VAL
Tento zápis znamená: „Najděte element PARAM a v něm potomka VAL.“ Je nutné dodržet mezery před a za svislítkem.
- Správně:
PARAM | VAL - Chybně:
PARAM|VAL
2. Přesné cílení pomocí podmínky
Pokud má element PARAM více hodnot (např. více parametrů), je vhodné doplnit podmínku pro přesnější cílení. Podmínky se zapisují do složených závorek { } a filtrují hodnoty podle zadaného kritéria.
Příklad:
- PARAM { PARAM_NAME = “Typ displeje” } | VAL
Tento zápis říká: „Najděte element PARAM, který má potomka PARAM_NAME s hodnotou Typ displeje, a upravte jeho hodnotu VAL.“ Takto cílíte přesně na požadovaný parametr bez ohledu na jeho pozici ve feedu.
Rozdíl mezi XML a CSV při zpracování zanořenosti
| Vlastnost | XML feed | CSV feed | Zobrazení v Mergadu |
|---|---|---|---|
| Zpracování zanořenosti | Ano, nativně. | Ne, Mergado ji simuluje. | Ano, prostřednictvím stromové struktury. |
| Zobrazení vztahů | Pomocí tagů a odsazení. | Pomocí názvů sloupců. | Pomocí odsazení na stránkách Elementy a Produkty. |
| Zápis cesty | Pomocí tagů. | `Rodič | Potomek`. |
Zatímco XML vyjadřuje zanoření pomocí značek a vnořených tagů, CSV používá zápis cesty s oddělovačem |.Mergado obě struktury sjednocuje a umožňuje s nimi pracovat stejným způsobem.
Shrnutí
Zanořenost je základní princip práce s daty v Mergado Editoru. Umožňuje rozpoznat, jak spolu hodnoty jednotlivých elementů souvisí, a díky tomu přesně cílit pravidla i výběry.
Správné pochopení zanořenosti je klíčem k efektivní práci s parametry, dopravci, variantami a dalšími vícenásobnými strukturami.Ať už pracujete s XML nebo CSV feedem, Mergado dokáže zanoření zobrazit, zachovat a využít při všech typech úprav.
FAQ
1. Co je zanořenost elementu
Zanořenost je vlastnost elementu, která určuje, že se nachází uvnitř jiného elementu. Tento vztah vytváří hierarchii dat – například element PARAM (rodič) může obsahovat názvy a hodnoty parametrů (PARAM_NAME a VAL), které jsou jeho potomky. Pojmy zanořený a vnořený znamenají totéž.
2. K čemu zanořenost slouží
Zanořenost pomáhá udržet logickou a srozumitelnou strukturu dat. Díky ní lze jednoznačně přiřadit hodnoty k jejich kontextu – například že parametr „Barva“ má hodnotu „Černá“. Umožňuje tak sjednotit související informace do jedné struktury.
3. Jaké vztahy se v zanořené struktuře používají
Zanořené elementy mezi sebou tvoří tři typy vztahů:
- Rodič (Parent) – element, který obsahuje jiné elementy.
- Potomek (Child) – element, který je uvnitř jiného elementu.
- Sourozenci (Siblings) – elementy, které mají stejného rodiče.
Příklad: v cestě PARAM | VAL je PARAM rodič a VAL jeho potomek.
4. Jak vypadá zanořený element v XML
V XML se zanoření vyjadřuje vnořenými tagy. Příklad:
<PARAM>
<PARAM_NAME>Barva</PARAM_NAME>
<VAL>Černá</VAL>
</PARAM>
Element PARAM je rodičovský, PARAM_NAME a VAL jsou jeho potomci.
5. Jak Mergado zobrazuje zanořené elementy
Mergado Editor zobrazuje elementy ve stromové hierarchii, která odpovídá struktuře XML feedu. Zanořené elementy jsou odsazené zleva vůči svému rodiči. Zanoření můžete vidět například na stránkách Produkty a Elementy. Nový zanořený element lze vytvořit kliknutím na ikonu „+“ u rodičovského elementu.
6. Jak se zanoření zapisuje v Element-Path
Zanoření se zapisuje pomocí svislé čáry | mezi názvy elementů. Příklad:
PARAM | VAL
Tento zápis znamená, že VAL je potomek elementu PARAM. Je nutné zachovat mezery před a za svislítkem.
- Správně:
PARAM | VAL - Chybně:
PARAM|VAL.
7. Jak se zanoření vyjadřuje v CSV formátu
Formát CSV neumí hierarchii vyjádřit nativně, proto Mergado zanoření simuluje pomocí zápisu rodič | potomek. Například PARAM | PARAM_NAME a PARAM | VAL vyjadřují stejný vztah jako ve struktuře XML.
8. Které typy souborů umí pracovat se zanořeností
Se zanořeností pracují přirozeně formáty XML a JSON. CSV formát zanoření nativně neumí, ale Mergado Editor mu v tom pomáhá právě pomocí zápisu rodič | potomek.
9. Jaký je maximální počet úrovní zanoření
Na hloubku zanoření neexistuje teoretické omezení. V praxi se Mergado setkalo s až devíti úrovněmi zanoření, například u feedů ve formátu Upgates.
10. Jak přesně cílit na hodnotu zanořeného elementu
Pro přesné cílení se používá podmínka v cestě. Příklad:
PARAM { PARAM_NAME = "Typ displeje" } | VAL
Tento zápis říká: „Najděte element PARAM, který má potomka PARAM_NAME s hodnotou Typ displeje, a pracujte s jeho elementem VAL.“ Tento způsob je nejspolehlivější, protože funguje bez ohledu na pořadí elementů ve feedu.
11. Jak se cílit, když je element vícenásobný i zanořený
Pokud je element vícenásobný (např. PARAM se opakuje vícekrát), je nutné použít podmínku. Cesta PARAM | VAL bez podmínky cílí na všechny hodnoty, ale přesné cílení zajistí zápis:
PARAM { PARAM_NAME = "Barva" } | VAL
12. Proč je cílení přes potomka jistější než pomocí @@POSITION
Cílení přes potomka (např. PARAM_NAME = "Barva") je jistější, protože vybere správnou hodnotu bez ohledu na její pozici v seznamu. Atribut @@POSITION se odkazuje pouze na pořadí, takže pokud se pořadí parametrů liší mezi produkty, může vést k chybnému výsledku.
13. Proč je práce se zanořeností důležitá
Většina komplexních dat, jako jsou parametry, doprava nebo varianty, je zanořená. Správné pochopení zanořenosti umožňuje pracovat s daty přesně, vytvářet spolehlivá pravidla a udržovat feed logicky strukturovaný a přehledný.
4. Vícenásobnost elementů
Co znamená vícenásobný element
Vícenásobný element je takový element, u kterého existuje více hodnot se stejným názvem. Z pohledu struktury feedu to znamená, že v rámci jednoho produktu se daný element vyskytuje opakovaně – například u obrázků, parametrů nebo variant.
Vícenásobnost umožňuje sjednotit více příbuzných hodnot pod jeden název elementu, a není tedy nutné vytvářet nové elementy pro každou hodnotu zvlášť.
S vícenásobnými elementy se setkáte nejčastěji u:
- URL adres obrázků (např.
IMGURL_ALTERNATIVE), - parametrů produktů (
PARAM), - dopravy (
DELIVERY), - kategorií,
- variant produktů.
Příklad v XML struktuře:
<IMGURL_ALTERNATIVE>url1.jpg</IMGURL_ALTERNATIVE>
<IMGURL_ALTERNATIVE>url2.jpg</IMGURL_ALTERNATIVE>
V tomto případě je element IMGURL_ALTERNATIVE vícenásobný, protože má více hodnot.
Rozdíl mezi jednoduchým a vícenásobným elementem
| Vlastnost | Jednoduchý element | Vícenásobný element |
|---|---|---|
| Počet hodnot | Pouze jedna hodnota. | Více hodnot se stejným názvem. |
| Pozice hodnoty | Vždy rovna 1. | Každá hodnota má vlastní pozici (2, 3 …). |
| Zápis cesty | Není nutné uvádět pozici. | Pro cílení na konkrétní hodnotu je nutné použít podmínku nebo atribut @@POSITION. |
| Příklady | ITEM_ID, DESCRIPTION, PRICE_VAT |
IMAGE, PARAM, DELIVERY, IMGURL_ALTERNATIVE |
U zanořených struktur (např. PARAM) se vícenásobnost vztahuje k rodičovskému elementu. Potomci (typicky PARAM_NAME a VAL) zůstávají jednoduché, protože v rámci jednoho rodiče mají vždy jen jednu hodnotu.
Jak Mergado pracuje s pozicemi
Každá hodnota elementu má své pořadové číslo neboli pozici (1, 2, 3 …). Pozici lze využít pro přesné zacílení konkrétní hodnoty v rámci elementu.
Pro práci s pozicemi se v Mergadu používá speciální atribut @@POSITION. Ten je součástí jazyka Element-Path a umožňuje určit, na kterou pozici chcete v elementu mířit.
Příklad:
<IMAGE>url1.jpg</IMAGE> @@POSITION = 1
<IMAGE>url2.jpg</IMAGE> @@POSITION = 2
<IMAGE>url3.jpg</IMAGE> @@POSITION = 3
Pokud chcete pracovat s třetím obrázkem, použijete cestu:
- IMAGES | IMAGE { @@POSITION = 3 }
Tento zápis říká: „Pracuji s elementem IMAGE na třetí pozici.“
Omezení atributu @@POSITION
Atribut @@POSITION se odkazuje pouze na pořadí, nikoli na obsah. Pokud se pořadí hodnot liší napříč produkty, stejné pozice nemusí odpovídat stejným informacím.
Příklad:
- První produkt má parametry 1. Materiál, 2. Objem.
- Druhý produkt má 1. Materiál, 2. Dekor.
Cesta PARAM { @@POSITION = 2 } | VAL pak u druhého produktu odkáže na Dekor, nikoli Objem.
Bezpečnější je proto cílit podle názvu:
- PARAM { PARAM_NAME = “Objem” } | VAL
Jak pracovat s vícenásobností v Mergado Editoru
Zjištění a použití pozice
- Na stránce Elementy otevřete daný element a uvidíte všechny jeho hodnoty s jejich pozicemi.
- V pravidlech nebo výběrech můžete cílit:
- podle pozice, např.
IMGURL_ALTERNATIVE { @@POSITION > 1 }, - nebo podle rozsahu pozic, např.
IMGURL_ALTERNATIVE { @@POSITION >= 3 AND @@POSITION <= 8 }.
- podle pozice, např.
- Pokud chcete pracovat s hodnotou místo pozice, použijte atribut
@@VALUE, například:CATEGORY { @@VALUE != "Hračky" }
- Tento zápis vybere všechny hodnoty elementu
CATEGORY, které nejsou rovny „Hračky“.
Kdy pozici nemusíte uvádět
Pozici v cestě není nutné zapisovat v následujících případech:
- Jednoduché elementy
- Mají vždy jen jednu hodnotu, takže pozice = 1. Cesta
ITEM_IDje ekvivalentní zápisuITEM_ID { @@POSITION = 1 }.
- Mají vždy jen jednu hodnotu, takže pozice = 1. Cesta
- Čtení z vícenásobného elementu bez upřesnění
- Pokud v pravidle čtete z vícenásobného elementu bez podmínky, Mergado automaticky použije první hodnotu.
- Například: při použití
%PARAM | VAL%si Mergado vezme první hodnotu.
- Cílení na všechny hodnoty
- Pokud chcete zpracovat všechny výskyty elementu, použijte pouze název elementu bez podmínky.
- Např.
IMAGES | IMAGEpracuje se všemi obrázky. - Při zápisu mějte na paměti, že se změna provede u všech hodnot vyhovujících dané cestě.
Shrnutí
Vícenásobnost umožňuje uchovávat a zpracovávat více hodnot stejného typu v rámci jednoho elementu. Pro přesnou práci je vhodné cílit na konkrétní hodnoty pomocí podmínek nebo speciálních atributů. Díky tomu zajistíte, že úpravy proběhnou správně a nedotknou se ostatních dat.
FAQ
1. Co je vícenásobný element
Vícenásobný element je element, který má více hodnot se stejným názvem. V praxi to znamená, že se v rámci jednoho produktu vyskytuje opakovaně – například u obrázků, parametrů, dopravy nebo kategorií.
Typickými vícenásobnými elementy jsou IMAGE, PARAM, DELIVERY nebo CATEGORY.
2. Jaký je rozdíl mezi jednoduchým a vícenásobným elementem
- Jednoduchý element obsahuje jednu hodnotu a má pozici vždy rovnou 1.
- Vícenásobný element může mít více hodnot, z nichž každá má vlastní pozici (2, 3, 4 …).
Příklad:
<IMAGE>url1.jpg</IMAGE>
<IMAGE>url2.jpg</IMAGE>
Element IMAGE je vícenásobný, protože se vyskytuje vícekrát a obsahuje více hodnot.
3. K čemu vícenásobnost slouží
Vícenásobnost umožňuje sjednotit více příbuzných hodnot pod jeden název elementu. Není tedy nutné vytvářet nové elementy pro každou hodnotu zvlášť. Například všechny alternativní obrázky produktu lze zapsat jako opakující se elementy IMGURL_ALTERNATIVE.
4. Které elementy jsou typicky vícenásobné
Vícenásobnost se nejčastěji vyskytuje u elementů, které popisují opakující se vlastnosti produktů, například:
- URL adresy obrázků (
IMGURL_ALTERNATIVE), - parametry produktů (
PARAM), - dopravu (
DELIVERY), - kategorie,
- varianty produktů.
5. Jak Mergado pracuje s pozicemi hodnot
Každá hodnota elementu má svou pozici, tedy pořadové číslo (1, 2, 3 …). Pozici lze využít pro přesné cílení na konkrétní hodnotu v rámci elementu. K tomu slouží speciální atribut @@POSITION. Příklad:
IMAGES | IMAGE { @@POSITION = 3 }
Tento zápis znamená: „Pracuji s elementem IMAGE na třetí pozici.“
6. Co znamená atribut @@POSITION a jak se používá
@@POSITION určuje pořadí hodnoty uvnitř vícenásobného elementu. Používá se v podmínkách pro cílení na konkrétní pozici nebo rozsah pozic. Příklad:
IMGURL_ALTERNATIVE { @@POSITION > 1 }
Tento zápis cílí na všechny alternativní obrázky kromě prvního. Je však třeba mít na paměti, že @@POSITION pracuje pouze s pořadím, nikoli s obsahem. Pokud se pořadí liší mezi produkty, může cílit na nesprávnou hodnotu.
7. Co je atribut @@VALUE a kdy ho použít
@@VALUE představuje obsah hodnoty elementu a umožňuje cílit podle hodnoty namísto pozice. Používá se zejména u elementů bez potomků, například CATEGORY nebo IMGURL_ALTERNATIVE. Příklad:
CATEGORY { @@VALUE != "Hračky" }
Tento zápis vybere všechny kategorie kromě „Hračky“.
8. Jak se cílit na hodnoty vícenásobných elementů v Element-Path
Cílení se provádí pomocí podmínek ve složených závorkách { }. V nich lze používat atributy @@POSITION, @@VALUE nebo výrazy z jazyka MQL.
Cílení na všechny hodnoty:
IMAGES | IMAGE
- Zpracuje všechny hodnoty (
url1,url2,url3…).
Cílení na konkrétní hodnoty nebo rozsah pozic:
IMAGES | IMAGE { @@POSITION IN (3;4) }
- Cílí na třetí a čtvrtý obrázek.
9. Jak zjistit pozice hodnot v Mergado Editoru
Na stránce Elementy lze u každého elementu zobrazit všechny jeho hodnoty včetně jejich pozic. Tento přehled pomáhá lépe porozumět struktuře vícenásobných dat a usnadňuje cílení v pravidlech.
10. Kdy není nutné pozici v cestě uvádět
Pozici není nutné uvádět v těchto případech:
- Jednoduché elementy – mají vždy jednu hodnotu (pozice = 1).
ITEM_IDje ekvivalentníITEM_ID { @@POSITION = 1 }. - Čtení z vícenásobného elementu bez podmínky – Mergado automaticky použije první hodnotu. Např.
%PARAM | VAL%vezme první hodnotu. - Cílení na všechny hodnoty – stačí uvést název elementu bez podmínky, např.
IMAGES | IMAGE.
11. Jaký je rozdíl mezi cílením podle pozice a podle hodnoty
@@POSITIONpracuje s pořadím hodnoty.@@VALUEpracuje s obsahem hodnoty.
Pokud se pořadí hodnot v rámci produktů liší, je bezpečnější použít @@VALUE, protože cílí přímo na obsah.
12. Jaký je problém cílení pomocí @@POSITION
@@POSITION se odkazuje pouze na pořadí. Pokud mají produkty parametry v jiném pořadí, může cesta zacílit na nesprávnou hodnotu. Bezpečnější je použít cílení podle názvu potomka, například:
PARAM { PARAM_NAME = "Objem" } | VAL
13. Jak pracovat s vícenásobnými elementy v pravidlech a výběrech
Práce s vícenásobnými elementy závisí na tom, zda pravidlo z elementu čte, nebo do něj zapisuje.
Čtení:
- Pokud cesta vede k více hodnotám, Mergado použije první z nich.
- Chcete-li číst jinou hodnotu, je nutné cestu upřesnit podmínkou.
Zápis:
- Pokud pravidlo zapisuje do vícenásobného elementu, změna se provede ve všech hodnotách, které odpovídají zadané cestě.
- Chcete-li zapisovat pouze do konkrétní hodnoty, je nutné cestu omezit pomocí podmínky.
- Pokud podmínka obsahuje operátor
=nebo spojkuAND, Mergado vytvoří chybějící strukturu automaticky.
14. Proč je důležité rozlišovat vícenásobnost
Vícenásobnost určuje, že element může obsahovat více hodnot stejného typu. Porozumění tomuto principu je zásadní pro správné nastavení pravidel, výběrů i přesné cílení na konkrétní data v rámci feedu.
5. Práce s vícenásobnými elementy v Mergado pravidlech
Vícenásobné elementy se v Mergado Editoru chovají odlišně než elementy jednoduché. Každý produkt může obsahovat více hodnot stejného elementu, a proto je potřeba vědět, jak s nimi pracují pravidla – jak hodnoty čtou, zapisují a jak je správně cílit.
Jak pravidla čtou a zapisují vícenásobné hodnoty
Vícenásobný element je takový, který má více než jednu hodnotu u jednoho produktu. Pravidla v Mergadu (například Přepsat, Hromadné zkopírování hodnot, Výpočet) mají v takovém případě definované určité výchozí chování.
Čtení z elementů a proměnných
Pokud pravidlo čte hodnotu z vícenásobného elementu, jehož cesta vede k více hodnotám, Mergado automaticky použije pouze první hodnotu.
Toto chování platí, pokud se čte pomocí zápisu se znakem procenta % (například %PARAM | VAL%).
Příklad:
<VAL>Černá</VAL>
<VAL>XL</VAL>
Pokud pravidlo čte z cesty PARAM | VAL, Mergado vezme pouze první hodnotu „Černá“. U jednoduchých elementů (např. ITEM_ID) se tato logika nijak neprojevuje, protože existuje vždy jen jedna hodnota.
Zapisování do elementů
Pokud pravidlo zapisuje do vícenásobného elementu bez dalšího upřesnění, Mergado zapíše hodnotu do všech výskytů daného elementu.
Příklad:
- Použijete-li v pravidle Přepsat cestu
IMGURL_ALTERNATIVEa zadáte novou hodnotunovy_obrazek.jpg,
Mergado přepíše všechny existující hodnoty tohoto elementu.
Chcete-li zapisovat pouze do konkrétní hodnoty, je nutné cestu upřesnit pomocí podmínek.
Například cesta
- PARAM { PARAM_NAME = “Barva” } | VAL
zapíše hodnotu pouze do parametrů „Barva“. Pokud se v jednom produktu parametr „Barva“ vyskytuje vícekrát, změna se provede u všech těchto výskytů.
Kdy použít podmínku a kdy speciální atribut
Pro přesné cílení na konkrétní hodnotu vícenásobného elementu je potřeba doplnit podmínku. Podmínky fungují jako filtr – určují, na které hodnoty nebo pozice se pravidlo aplikuje. Zapisují se do složených závorek { } a mohou obsahovat buď zanořený element, nebo speciální atribut.
1. Použití zanořeného elementu v podmínce
Tento způsob je nejspolehlivější, protože cílí na hodnotu podle jejího obsahu, nikoli podle pořadí.
Příklad:
Chceme přepsat hodnotu elementu VAL, která patří k parametru „Barva“:
- PARAM { PARAM_NAME = “Barva” } | VAL
Tento zápis říká:„Najděte všechny elementy PARAM, které mají potomka PARAM_NAME s hodnotou Barva, a u nich upravte hodnotu elementu VAL.“
Tento způsob funguje bez ohledu na pořadí elementů ve feedu a je proto doporučován ve většině případů.
2. Použití speciálního atributu @@POSITION
Atribut @@POSITION slouží k cílení na hodnotu podle jejího pořadí.
Každá hodnota elementu má svou pozici – první = 1, druhá = 2 atd.
Příklad:
IMGURL_ALTERNATIVE { @@POSITION > 1 }
Tento zápis cílí na všechny obrázky kromě prvního.
Vhodné použití:
U elementů, kde pořadí hodnot odpovídá významu (např. alternativní obrázky).
Slabina:
Cílení pomocí @@POSITION se odkazuje pouze na pozici, nikoli na obsah. Pokud se pořadí hodnot mění napříč produkty, nemusí být výsledek konzistentní.
3. Použití speciálního atributu @@VALUE
Atribut @@VALUE odkazuje na skutečnou hodnotu elementu, nikoli na jeho pořadí. Je vhodný tam, kde se pořadí mění nebo není podstatné.
Příklad:
- CATEGORY { @@VALUE != “Hračky” }
Tento zápis cílí na všechny hodnoty elementu CATEGORY kromě „Hračky“.
@@VALUE se používá především u elementů, které nemají potomky (např. CATEGORY, IMGURL_ALTERNATIVE). U rodičovských elementů, které samy o sobě nenesou hodnotu (např. PARAM), nedává jeho použití smysl.
Praktické ukázky cest
Pravidla v Mergadu při práci s elementy (čtení/zápis) používají jazyk Element-Path, který umožňuje přesně zacílit na hodnoty, ze kterých chcete číst, nebo do kterých chcete zapisovat.
Cílení na hodnotu konkrétního parametru
- PARAM { PARAM_NAME = “Barva” } | VAL
Tento zápis čte nebo zapisuje hodnotu VAL u parametru, jehož název je Barva.
Mergado to interpretuje následovně:
„Najděte element PARAM, který má potomka PARAM_NAME s hodnotou Barva, a upravte hodnotu jeho potomka VAL.“
Cílení na hodnotu ve variantách
Cesta může kombinovat více úrovní zanoření a vícenásobnosti. Příklad pro práci s druhou variantou, která obsahuje parametr „Velikost“:
- VARIANTS | VARIANT { @@POSITION = 2 } | PARAMETERS | PARAMETER { NAME = “Velikost” } | VALUE
Tento zápis říká: „Najděte druhou variantu produktu, v níž parametr Velikost nese určitou hodnotu, a s touto hodnotou pracujte.“
Přidávání nových hodnot pomocí pravidel
Při zápisu do vícenásobných nebo zanořených elementů platí jedno důležité pravidlo:
Pokud element, na který cílíte, ještě neexistuje, Mergado jej vytvoří.
To znamená, že vše, co je uvedeno v podmínce (např. PARAM_NAME = "Barva") a v cestě s operátorem =, se vytvoří automaticky.
Příklad přidání nové strukturované hodnoty – tzv. „flagu“:
Element: FLAGS | FLAG { CODE = “action” } | ACTIVE
Nová hodnota: 0
Pokud flag s kódem action neexistuje, Mergado vytvoří nový FLAG (novou pozici) s elementem CODE = "action" a přidá k němu element ACTIVE s hodnotou 0.
Tento mechanismus se používá při přidávání nových variant, dopravců, parametrů či dalších strukturovaných dat.
5.5 Přehled pravidel, kterých se vícenásobnost týká
Popisované chování čtení a zápisu vícenásobných hodnot se týká těchto pravidel:
| Pravidlo | Umí číst | Zapisuje |
|---|---|---|
| Přepsat | ||
| Najít a nahradit | ||
| Hromadné přepisování dle výběrů | ||
| Hromadné přepisování dle hodnot | ||
| Hromadné zkopírování hodnot | ||
| Nastavit parametry produktů | ||
| Nastavení ceny dopravy | ||
| Nastavit UTM parametry | ||
| Výpočet | ||
| Import datového souboru |
Shrnutí
Při práci s vícenásobnými elementy v pravidlech Mergado Editoru je nejdůležitější vědět, s jakou hodnotou pracujete. Bez upřesnění pravidlo vždy čte první hodnotu a zapisuje do všech odpovídajících hodnot. Pomocí podmínek, speciálních atributů @@POSITION a @@VALUE nebo kombinace více zanořených úrovní můžete přesně určit, co pravidlo upravuje.
Správně napsaná cesta k elementu vám zajistí, že se úpravy provedou přesně tam, kde mají – a zůstanou bezpečné i v případě, že se struktura feedu v čase mění.
FAQ
1. Jaký je základní princip práce pravidel s vícenásobnými elementy
Pravidla v Mergado Editoru pracují s vícenásobnými elementy podle dvou principů – čtení hodnot a zapisování hodnot. Jednoduché elementy mají vždy jen jednu hodnotu, takže pravidlo s nimi pracuje přímo. Vícenásobné elementy však mohou mít u jednoho produktu více hodnot, a proto je nutné určit, se kterou z nich má pravidlo pracovat. Bez upřesnění pravidla čtou první hodnotu a zapisují do všech hodnot.
2. Jak Mergado čte hodnoty z vícenásobných elementů
Pokud cesta vede k více hodnotám, Mergado automaticky použije pouze první hodnotu. Toto chování platí u všech pravidel, která čtou hodnotu elementu pomocí zápisu se znakem % – například %PARAM | VAL%. Příklad:
<VAL>Černá</VAL>
<VAL>XL</VAL>
Cesta PARAM | VAL vrátí hodnotu „Černá“, protože jde o první výskyt.
3. Jak Mergado zapisuje do vícenásobných elementů
Pokud pravidlo zapisuje do vícenásobného elementu bez dalšího upřesnění, Mergado zapíše novou hodnotu do všech jeho výskytů (pozic). Chcete-li cílit pouze na konkrétní hodnotu, je nutné cestu upřesnit pomocí podmínky. Příklad: PARAM { PARAM_NAME = "Barva" } | VAL
Tento zápis upraví hodnotu elementu VAL pouze u parametrů „Barva“. Pokud má produkt více parametrů „Barva“, změna se provede u všech těchto výskytů.
4. Proč je potřeba používat podmínky u vícenásobných elementů
Podmínky fungují jako filtr, který určuje, na které hodnoty se pravidlo vztahuje. Bez podmínky by pravidlo zasáhlo všechny hodnoty elementu. Podmínky se zapisují do složených závorek { } a mohou obsahovat buď zanořený element, nebo speciální atribut.
5. Jak používat zanořený element v podmínce
Cílení pomocí zanořeného elementu je nejspolehlivější, protože se opírá o obsah, nikoliv o pořadí.
Příklad: PARAM { PARAM_NAME = "Barva" } | VAL
Tento zápis znamená:
„Najděte element PARAM, který má potomka PARAM_NAME s hodnotou Barva, a upravte hodnotu jeho potomka VAL.“ Tento způsob funguje bez ohledu na pořadí elementů a je doporučovaný v praxi.
6. Kdy použít atribut @@POSITION
Atribut @@POSITION slouží k cílení podle pořadí hodnoty v rámci elementu. Každá hodnota má svou pozici – první = 1, druhá = 2 atd. Příklad: IMGURL_ALTERNATIVE { @@POSITION > 1 }
Cílí na všechny obrázky kromě prvního. Používejte jej tam, kde pořadí hodnot odpovídá významu (např. alternativní obrázky). Slabina: @@POSITION se odkazuje pouze na pořadí, nikoliv na obsah. Pokud se pořadí hodnot liší mezi produkty, výsledky nemusí být konzistentní.
7. Kdy použít atribut @@VALUE
Atribut @@VALUE odkazuje na skutečnou hodnotu elementu a umožňuje cílit podle obsahu místo pořadí. Používá se hlavně u elementů, které nemají potomky (např. CATEGORY, IMGURL_ALTERNATIVE). Příklad: CATEGORY { @@VALUE != "Hračky" }
Tento zápis vybere všechny hodnoty elementu CATEGORY kromě „Hračky“. @@VALUE je vhodný tam, kde se pořadí hodnot může měnit nebo není podstatné.
8. Jak kombinovat podmínky a speciální atributy
V jedné cestě lze kombinovat více podmínek a atributů. Podmínky mohou obsahovat logické operátory (AND, OR) nebo dotazy v jazyce MQL. Příklad:
VARIANTS | VARIANT { @@POSITION = 2 } | PARAMETERS | PARAMETER { NAME = "Velikost" } | VALUE
Znamená: „Najděte druhou variantu produktu, která obsahuje parametr Velikost, a pracujte s jeho hodnotou VALUE.“
9. Jak Mergado vytváří nové hodnoty při zápisu
Pokud element, na který cílíte, neexistuje, Mergado jej při zápisu automaticky vytvoří. To platí pro všechny podmínky obsahující operátor = nebo spojku AND.
Příklad:
FLAGS | FLAG { CODE = "action" } | ACTIVE
Pokud flag „action“ neexistuje, Mergado vytvoří nový element FLAG s potomkem CODE = "action" a přidá k němu ACTIVE s hodnotou 0.
Tento mechanismus umožňuje automaticky přidávat nové parametry, varianty nebo strukturovaná data.
10. Jak předejít chybám při práci s vícenásobnými hodnotami
- Ověřte, zda element, s nímž pracujete, skutečně obsahuje více hodnot.
- Používejte podmínky
{ }k přesnému cílení. - Vyhněte se spoléhání na
@@POSITION, pokud se pořadí hodnot liší mezi produkty. - Před zápisem zkontrolujte, zda cesta neovlivní více hodnot, než je žádoucí.
- Využívejte nástroj Cesta k elementu pro ověření, kam pravidlo cílí.
6. Atributy v elementech
Co jsou atributy
Atribut je součást elementu, která upřesňuje jeho význam nebo vlastnost. Zatímco element nese samotná data, atribut poskytuje doplňující informaci o těchto datech. Atributy tak fungují jako rozšíření hodnot elementu a často pomáhají popsat podrobnosti, které by se jinak do struktury nevešly.
Jak se atributy zapisují v XML
V XML je atribut vždy uveden v otevíracím tagu elementu a má svůj název a hodnotu. Hodnota atributu musí být uzavřena v uvozovkách nebo apostrofech.
Příklad XML zápisu:
<person gender=“female”>
<firstname>Pavlína</firstname>
<lastname>Nováková</lastname>
</person>
V tomto příkladu je
personelement,genderje atributfemalehodnota atributu.
Atribut gender tedy upřesňuje informaci o osobě – že jde o ženu.
Stejnou informaci je teoreticky možné vyjádřit i jinak, pomocí samostatného zanořeného elementu:
<person>
<gender>female</gender>
<firstname>Pavlína</firstname>
<lastname>Nováková</lastname>
</person>
Oba zápisy jsou správné – liší se pouze strukturou dat. Použití atributů se obvykle volí tam, kde doplňují nebo upřesňují význam hlavního elementu.
K čemu atributy slouží
V produktových feedech mají atributy praktický význam – umožňují přesněji popsat produkt nebo jeho vlastnosti. Některé reklamní portály nebo e-shopové platformy přímo vyžadují, aby určitá data byla uvedena formou atributů.
Příklady využití atributů v různých systémech
- Ceneo
- Používá atributy pro popis výrobce nebo jiných vlastností, například:
- <attrs>
<a name=“Producent”>Nike</a>
</attrs>
- <attrs>
- Používá atributy pro popis výrobce nebo jiných vlastností, například:
- Heureka (Dostupnostní feed)
- Vyžaduje atributy pro doplnění časových údajů:
- <delivery_time orderDeadline=“2023-04-17 12:00”>2023-04-26 12:00</delivery_time>
- Vyžaduje atributy pro doplnění časových údajů:
- Shoptet
- Používá atributy například u obrázků:
- <IMAGE description=“Columbia Squish N’ Stuff (Barva Zelená, Velikost L)”>https://cdn.myshoptet.com/obrazek.jpg\</IMAGE>
- Používá atributy například u obrázků:
- Google Nákupy
- Nepoužívá rozlišení mezi elementy a atributy, ale všechny označuje jako atributy v rámci svého systému.
Správné použití atributů v Mergadu vám umožní splnit požadavky těchto portálů a zajistit, že váš feed bude přijat bez chyb.
Jak s atributy pracovat v Mergado Editoru
Mergado Editor je navržen tak, aby uměl s atributy plnohodnotně pracovat. Atributy jsou jedním ze základních typů elementů a je s nimi možné pracovat v celém prostředí Editoru – v pravidlech, výběrech, proměnných i MQL dotazech.
Identifikace atributů
Atributy v Mergadu poznáte podle zavináče @ na začátku názvu.
@id– atribut identifikátoru produktu,@description– atribut popisující obrázek,@availability– atribut popisující stav nebo dostupnost.
Kromě běžných atributů existují i speciální atributy, které začínají dvěma zavináči @@. Ty se používají v jazyce Element-Path a slouží k přesnému cílení – typicky @@POSITION (pozice hodnoty) a @@VALUE (hodnota elementu).
Tip: Speciální atributy slouží pouze k cílení na hodnoty elementů a běžných atributů v rámci element-path a nikdy se neexportují do samotného feedu, na rozdíl od běžných atributů, které ve feedu najdete.
Cílení na atributy pomocí Element-Path
K práci s atributy se používá jazyk Element-Path. Cesta k atributu se zapisuje pomocí zavináče @ před názvem atributu.
Příklad cílení podle atributu:
1. V pravidle cílíme na element CODE jedné konkrétní varianty, která v atributu id elementu VARIANT obsahuje hodnotu idvariant3:
<VARIANTS>
<VARIANT id=“idvariant3”>
<CODE>EEQ21</CODE>
<UNIT>unit</UNIT>
<FREE_SHIPPING>1</FREE_SHIPPING>
<FREE_BILLING>1</FREE_BILLING>
</VARIANT>
<VARIANT id=“idvariant4”>
<CODE>EEQ22</CODE>
<UNIT>unit2</UNIT>
<FREE_SHIPPING>0</FREE_SHIPPING>
<FREE_BILLING>0</FREE_BILLING>
</VARIANT>
</VARIANTS>
Cesta k danému elementu CODE bude vypadat následovně: VARIANTS | VARIANT { @id ~ “idvariant3” } | CODE.
2. Na stránce Produkty hledáme produkt s výchozí kategorii s atributem @id = 123:
<CATEGORIES>
<DEFAULT_CATEGORY id=“123”>Spotrebice</DEFAULT_CATEGORY>
<CATEGORY id=“456”>Elektronika</CATEGORY>
</CATEGORIES>
Podmínka pro výběr bude vypadat následovně: CATEGORIES | DEFAULT_CATEGORY | @id = “123”.
Prakticky: vytvoření, přepsání a odstranění atributu
Vytvoření atributu
Atribut lze vytvořit přímo na stránce Elementy.
- Otevřete stránku Elementy a zvolte možnost Nový element.
- Zadejte název a zvolte typ atribut.
- Pokud do názvu přidáte zavináč
@, Editor automaticky rozpozná, že chcete vytvořit atribut. - Chcete-li vytvořit zanořený atribut, použijte ikonu „+“ u rodičovského elementu a zvolte typ atribut.
Po vytvoření je atribut prázdný (nemá hodnoty). Naplníte ho například pomocí pravidla Přepsat.
Přepsání hodnoty atributu
Atributy lze upravovat stejně jako běžné elementy – například pravidlem Přepsat.
Cílení:
V poli Element uveďte cestu k atributu, např.:
IMAGE | @description
SHOPITEM | @id
PARAM { @@VALUE = “Barva” } | @lang
Postup:
Na stránce Pravidla vytvořte nové pravidlo typu Přepsat, vyberte výběr produktů, zadejte cestu k atributu a do pole Nový obsah uveďte novou hodnotu.
Odstranění atributu
Atributy lze odstranit dvěma způsoby:
- Manuálně – na stránce Elementy lze ručně vytvořené atributy smazat pomocí ikony koše. Smažou se tak hodnoty i samotný atribut
- Pomocí pravidel – u atributů, které pocházejí ze vstupního nebo výstupního formátu, je možné odstranit pouze hodnoty, a to pravidlem (např. Přepsat s prázdnou hodnotou).
Atributy definované cílovým formátem (tzv. systémové) nelze přejmenovat ani odstranit, protože jsou součástí specifikace výstupního feedu.
Shrnutí
Atributy doplňují význam elementů a umožňují detailněji popsat data ve feedu. V Mergado Editoru s nimi můžete pracovat stejně jako s běžnými elementy – vytvářet je, měnit jejich hodnoty i cílit na ně v pravidlech.
Správná práce s atributy je důležitá zejména pro feedy, které směřují na portály vyžadující přesně definovanou strukturu, jako jsou Google, Heureka, Ceneo nebo Shoptet.
FAQ
1. Co je atribut v kontextu XML a produktových feedů
Atribut je součást elementu, která upřesňuje jeho význam nebo vlastnost. Zatímco element nese samotná data, atribut poskytuje doplňující informaci o těchto datech – například jednotku, stav nebo typ hodnoty. V XML je atribut vždy uveden v otevíracím tagu elementu a má svůj název i hodnotu, která musí být uzavřena v uvozovkách nebo apostrofech. Příklad:
<person gender="female">
<firstname>Pavlína</firstname>
<lastname>Nováková</lastname>
</person>
Zde je person element, gender je atribut a jeho hodnota je "female".
2. K čemu atributy slouží v produktových feedech
Atributy mají praktický význam – umožňují přesněji popsat produkt nebo jeho vlastnosti. Některé reklamní portály a e-shopové platformy vyžadují, aby určité údaje byly uvedeny právě formou atributů.
Příklady využití:
- Ceneo: používá atributy k určení výrobce (
<a name="Producent">Nike</a>). - Heureka (Dostupnostní feed): atributy doplňují časové údaje (
<delivery_time orderDeadline="2023-04-17 12:00">…</delivery_time>). - Shoptet: atribut
descriptionpopisuje obrázky (<IMAGE description="Columbia Squish N’ Stuff…">…</IMAGE>).
Používání atributů v Mergadu zajistí, že feed splní požadavky cílového systému a bude přijat bez chyb.
3. Jak se atributy zapisují v XML
Atribut je součástí otevírací značky elementu: <element atribut="hodnota">obsah elementu</element>
Hodnota atributu musí být uzavřena v uvozovkách nebo apostrofech. Příklad: <product available="true">Zimní bunda</product>
Zde atribut available doplňuje informaci o dostupnosti produktu.
4. Jak Mergado Editor identifikuje atributy
Atributy v Mergado Editoru poznáte podle zavináče @ na začátku názvu.
@id– identifikátor hodnoty elementu,@description– popis hodnoty elementu,@lang– jazyk hodnoty elementu.
Kromě těchto běžných atributů existují také speciální atributy, které začínají dvěma zavináči @@ (např. @@POSITION, @@VALUE). Tyto se používají výhradně v jazyce Element-Path a nikdy se neexportují do výstupního feedu.
5. Jak se cílit na atributy pomocí jazyka Element-Path
Pro práci s atributy (čtení, úpravu, filtrování) se používá jazyk Element-Path. Cesta k atributu se zapisuje pomocí zavináče @ před jeho názvem. Příklady cílení:
Při filtrování produktů:
Najděte produkty, jejichž id hlavní kategorie se rovná 123:
CATEGORIES | DEFAULT_CATEGORY | @id = "123"
V pravidle při cílení na konkrétní element:
Najděte CODE varianty, jejíž atribut @id obsahuje text idvariant3:
VARIANTS | VARIANT { @id ~ "idvariant3" } | CODE
Atributy lze používat i v podmínkách (v závorkách { }), kde filtrují konkrétní hodnoty.
6. Jaký je rozdíl mezi běžnými a speciálními atributy
V Mergadu rozlišujeme dva typy atributů:
| Typ atributu | Zápis | Použití |
|---|---|---|
| Standardní atributy (XML) | @id, @description, @availability |
Jsou součástí XML struktury a určují význam elementu. |
| Speciální atributy (Element-Path) | @@POSITION, @@VALUE |
Slouží pro cílení v podmínkách při práci s vícenásobnými elementy. Nejsou součástí výstupního feedu. |
7. K čemu slouží speciální atributy @@POSITION a @@VALUE
@@POSITION – odpovídá pořadí hodnoty elementu, na který se váže. Používá se hlavně u vícenásobných elementů (např. obrázky, varianty). Příklad:
IMGURL_ALTERNATIVE { @@POSITION > 1 }
- Tento zápis cílí na všechny alternativní obrázky kromě prvního.
@@VALUE – představuje obsah hodnoty elementu. Používá se u elementů, kde se pořadí hodnot mění nebo není důležité. Příklad:
CATEGORY { @@VALUE != "Hračky" }
- Tento zápis vybere všechny kategorie kromě „Hračky“.
8. Jak vytvořit nový atribut v Mergadu
Nový atribut lze vytvořit na stránce Elementy.
- Klikněte na Nový element.
- Zadejte název atributu začínající znakem
@. - Mergado automaticky rozpozná, že vytváříte atribut.
- Chcete-li vytvořit zanořený atribut, použijte ikonu „+“ u rodičovského elementu.
Nově vytvořený atribut je prázdný a lze jej naplnit pomocí pravidla Přepsat.
9. Jak upravit nebo přepsat hodnotu atributu
Atributy lze přepisovat stejně jako běžné elementy. V pravidle Přepsat stačí v poli Element uvést cestu k atributu. Příklady:
- IMAGE | @description
- SHOPITEM | @id
- PARAM { @@VALUE = “Barva” } | @value
Do pole Nová hodnota pak zadejte požadovanou novou hodnotu.
10. Jak odstranit atribut
Atributy lze odstranit dvěma způsoby:
- Manuálně: u ručně vytvořených atributů na stránce Elementy kliknutím na ikonu koše u atributu.
- Pomocí pravidla: např. pravidlem Přepsat s prázdnou hodnotou.
Atributy, které jsou součástí zdrojového nebo cílového formátu, nelze odstranit, pouze smazat jejich hodnoty.
11. Jaký je vztah mezi atributy a elementy v Mergadu
V Mergadu jsou atributy považovány za speciální typ elementů. Lze je používat v pravidlech, výběrech, proměnných i automatizacích stejně jako běžné elementy. Rozdíl spočívá pouze ve způsobu zápisu (se znakem @) a v jejich umístění v rámci struktury feedu.
12. Proč je důležité pracovat s atributy správně
Správná práce s atributy je klíčová pro feedy směřující na portály, které vyžadují přesnou datovou strukturu – jako Google, Heureka, Ceneo nebo Shoptet. Chybně uvedené nebo chybějící atributy mohou způsobit zamítnutí feedu nebo neúplné zobrazení produktů. Díky nástrojům Mergado Editoru lze atributy přidávat, měnit i kontrolovat s vysokou přesností.
7. Jazyk Element-Path
Co je Element-Path
Element-Path je jazyk vyvinutý společností Mergado, který slouží k zapisování cest k elementům a jejich hodnotám. Pomocí Element-Path určujete, na které hodnoty ve feedu chcete cílit – zda je budete číst, nebo do nich zapisovat.
Mergado Editor pracuje s elementy stejně jako XML feed – ve stromové struktuře. Aby bylo možné v této struktuře přesně určit, s kterými daty chcete pracovat, je potřeba znát jejich cestu. Právě to umožňuje jazyk Element-Path.
Co znamená „cesta k elementu“
Cesta k elementu je zápis, který vyjadřuje, kde se v datové struktuře nachází hodnota (hodnoty), se kterou chcete pracovat. Pomocí této cesty Mergadu sdělujete, že chcete buď:
- hodnotu přečíst – tedy použít ji jako vstup (např. v pravidle nebo výběru), nebo
- hodnotu změnit – tedy do ní zapsat nová data.
Příklad:
- Chcete-li cílit na hodnotu elementu
NAME, cesta bude jednoduše: NAME
Mergado Editor si tuto cestu přečte a použije hodnotu uvedenou v elementu NAME.
Poznámka:
V praxi se běžně používá pojem „cesta k elementu“, i když přesněji řečeno se vždy jedná o „cestu k hodnotě elementu“. U jednoduchých elementů se však oba pojmy významově shodují.
Zanořené cesty
Zanořenost (vnořenost) se v jazyce Element-Path zapisuje pomocí svislé čáry |, která vyjadřuje vztah rodiče a potomka.
- Syntaxe:
Chcete-li cílit na zanořený element, přidáte před jeho název rodiče a oddělíte je svislítkem. - Čtení:
Svislítko čteme jako „a pod ním zanořený“ nebo „a jeho potomek“.
Příklad:
Cesta
PARAM | VAL
- znamená: „Najděte element
PARAMa pod ním zanořený elementVAL.“ - Důležité pravidlo: Mezera před a za svislítkem musí být zachována – zápis
PARAM | VALje správně,PARAM|VALnikoli.
Slovní zásoba a syntaxe Element-Path
Element-Path má svou vlastní „slovní zásobu“ a pravidla syntaxe.
Základními prvky jazyka jsou:
- Názvy elementů – všechny názvy, které se v projektu vyskytují.
- Svislítko (
|) – označuje zanoření (rodič → potomek). - Podmínky (
{ }) – filtrují hodnoty podle zadaných kritérií. - Speciální atributy (
@@…) – umožňují cílit např. podle pozice (@@POSITION), hodnoty (@@VALUE), nebo na poslední hodnotu (@@MAX_POSITION). - MQL (Mergado Query Language) – můžete jej používat v podmínkách pro pokročilé filtrování (např. s operátory
AND,ORapod.).
Nápověda při psaní cest
V Mergado Editoru je práce s Element-Path usnadněna několika funkcemi:
- Našeptávání: Editor nabízí dostupné elementy, operátory i hodnoty.
- Validace: Pokud se napsaný element v projektu nenachází, zvýrazní se červeně; validní cesta je zvýrazněná zeleně.
- Našeptávání dopravců a parametrů: U některých typů feedů Editor nabízí konkrétní názvy (např. dopravce, parametry) a automaticky doplní celou cestu.
Kde se Element-Path používá
Cesty k elementům se používají téměř ve všech částech Mergado Editoru – všude tam, kde je potřeba určit, s jakými daty pracovat.
- V pravidlech – např. Přepsat, Najít a nahradit, Hromadné zkopírování hodnot, Výpočet. Cesta k elementu určuje, s jakými hodnotami má pravidlo pracovat.
- Ve výběrech – při vytváření výběrů na stránce Produkty nebo při psaní vlastního MQL dotazu.
- V proměnných – pro čtení hodnot z konkrétních elementů a zápisu hodnot do elementů.
- V importech – v elementech importních souborů, které se zpracovávají přes pravidlo Import datového souboru.
- Na stránce Produkty – pro řazení, filtrování a přehled hodnot elementů.
- V automatizaci – při nastavování pravidel a podmínek pro automatické akce.
Prakticky: práce se zápisem a podmínkami
Element-Path je klíčový zejména u zanořených a vícenásobných elementů. Správné zapsání cesty rozhoduje o tom, které hodnoty Mergado čte nebo upravuje.
1. Základní cesta bez podmínky
Pokud použijete zanořenou cestu bez podmínky, Mergado zacílí na všechny hodnoty v dané struktuře.
Příklad:
- PARAM | VAL
Tato cesta označuje všechny hodnoty VAL všechny výskyty elementu PARAM. Pokud má produkt parametry Barva, Velikost a Materiál, cesta PARAM | PARAM_NAME vede ke třem hodnotám. Při čtení Mergado použije první z nich; při zápisu se změna projeví u všech odpovídajících hodnot.
2. Přesné cílení pomocí podmínek
Podmínky se zapisují do složených závorek { } a vždy se vážou k elementu, který stojí nalevo. Slouží k omezení cílení na konkrétní hodnoty.
Cílení na konkrétní hodnotu zanořeného elementu
Chcete-li pracovat pouze s parametrem „Barva“, použijte podmínku, která filtruje přes zanořený element PARAM_NAME:
PARAM { PARAM_NAME = “Barva” } | VAL
Tento zápis znamená: „Najděte element PARAM, který má potomka PARAM_NAME s hodnotou Barva, a v něm upravte hodnotu elementu VAL.“
Tento způsob je nejbezpečnější, protože funguje bez ohledu na pořadí parametrů ve feedu.
Cílení na pozici vícenásobného elementu
Pomocí speciálního atributu @@POSITION můžete cílit na hodnotu podle její pozice. Každá hodnota má vlastní pořadové číslo (1, 2, 3 …).
Příklad:
- IMAGES | IMAGE { @@POSITION = 3 }
Tato cesta cílí na třetí obrázek. Je vhodná tam, kde má pořadí hodnot pevný význam. Je však třeba pamatovat, že @@POSITION neřeší obsah – pokud se pořadí liší napříč produkty, může dojít k nechtěnému výběru jiné hodnoty.
Cílení na hodnotu vícenásobného elementu
Atribut @@VALUE odkazuje na hodnotu elementu.
Používá se u elementů, které nemají potomky, a umožňuje cílit podle konkrétní hodnoty bez ohledu na její pozici.
Příklad:
CATEGORIES | CATEGORY { @@VALUE != “Hračky” }
Tento zápis vybere všechny CATEGORY, jejichž hodnota se nerovná „Hračky“.
Podmínky lze kombinovat i s MQL operátory (AND, OR, NOT apod.), což umožňuje velmi přesné filtrování.
Shrnutí
Element-Path je základní jazyk pro práci s daty v Mergado Editoru.
Díky němu lze přesně určit, odkud hodnoty pocházejí, kam se mají zapisovat a v jakém kontextu se nacházejí.
Správné pochopení struktury a syntaxí Element-Path vám umožní tvořit bezpečná pravidla, efektivní výběry a automatizace, které spolehlivě pracují i s komplexními XML a CSV feedy.
FAQ
1. Co je jazyk Element-Path a k čemu slouží
Element-Path je jazyk vyvinutý společností Mergado. Slouží k zapisování cest k elementům a jejich hodnotám – tedy k určení, s jakými daty ve feedu chcete pracovat. Pomocí Element-Path můžete:
- číst hodnoty z feedu (např. pro výběry, výpočty nebo podmínky),
- zapisovat nové hodnoty (např. pomocí pravidel jako Přepsat nebo Najít a nahradit)..
2. Co znamená „cesta k elementu“
Cesta k elementu určuje, kde se nachází konkrétní hodnota v datové struktuře feedu. Pomocí cesty sdělujete Mergadu, na jaký prvek má pravidlo nebo výběr cílit.
Příklad: NAME
- Tento zápis říká, že chceme pracovat s hodnotou elementu
NAME.
Poznámka: Technicky vzato jde o „cestu k hodnotě elementu“, protože cílem je vždy konkrétní hodnota, nikoli samotný tag elementu.
3. Jak se zapisuje zanoření v Element-Path
Zanoření vyjadřuje vztah rodiče a potomka a zapisuje se pomocí svislé čáry |.
Syntaxe: RODIČ | POTOMEK
- Čtení: „Najděte element
RODICa pod ním zanořený elementPOTOMEK.“ - Důležité: Mezera před a po svislítku je povinná.
- Správně:
PARAM | VAL - Chybně:
PARAM|VAL
- Správně:
Příklad:
<PARAM>
<PARAM_NAME>Barva</PARAM_NAME>
<VAL>Černá</VAL>
</PARAM>
Cesta k hodnotě VAL je PARAM | VAL.
4. Jaká je slovní zásoba a syntaxe Element-Path
Element-Path má svou vlastní „gramatiku“. Zahrnuje tyto základní prvky:
| Prvek | Popis | Příklad |
|---|---|---|
| Název elementu | Označuje konkrétní prvek ve feedu. | ITEM_ID |
| **Svislítko ( | )** | Vyjadřuje zanoření (rodič → potomek). |
| Podmínky ( { } ) | Slouží jako filtr pro přesné cílení. | `PARAM { PARAM_NAME = “Barva” } |
| Speciální atributy ( @@ ) | Cílí podle pozice (@@POSITION) nebo hodnoty (@@VALUE). |
IMGURL_ALTERNATIVE { @@POSITION = 2 } |
| MQL syntaxe | Umožňuje logické operace (AND, OR, NOT…) v rámci podmínek. | PARAM { PARAM_NAME = "Barva" AND VAL = "Černá" } |
5. Jaké nástroje pomáhají při psaní cest v Mergadu
Mergado Editor nabízí pokročilé funkce pro práci s Element-Path:
- Našeptávání: Editor nabízí dostupné elementy, atributy i operátory.
- Validace: Pokud element neexistuje, zvýrazní se červeně; validní cesty se zvýrazní zeleně.
- Našeptávání parametrů a dopravců: Editor automaticky doplňuje konkrétní názvy a vytváří kompletní cesty.
6. Kde všude se Element-Path používá
Cesty k elementům se používají napříč celým Mergado Editorem – všude tam, kde je potřeba přesně určit, s jakými daty pracujete.
- V pravidlech: např. Přepsat, Najít a nahradit, Výpočet, Hromadné zkopírování hodnot.
- Ve výběrech: v Onelineru i v MQL dotazech.
- V proměnných: při čtení nebo zápisu hodnot.
- V importech: v hlavičkách importních souborů.
- Na stránce Produkty: pro zobrazení, řazení a filtrování hodnot.
- V automatizaci: při nastavování pravidel a podmínek automatických akcí.
7. Co jsou podmínky a jak fungují
Podmínky slouží jako filtr, který omezuje, na které hodnoty má cesta mířit. Zapisují se do složených závorek { } a vážou se vždy k elementu nalevo od nich. Příklad:
PARAM { PARAM_NAME = "Barva" } | VAL
Tento zápis vybere pouze hodnoty VAL u parametrů, kde je PARAM_NAME rovno „Barva“. Podmínky jsou nezbytné u vícenásobných elementů, kde se stejné názvy mohou opakovat (např. různé parametry u jednoho produktu).
8. Jak se dají v podmínkách používat logické operátory MQL
Element-Path podporuje celou slovní zásobu jazyka MQL (Mergado Query Language). V podmínkách lze používat logické operátory jako AND, OR, NOT, IN, CONTAINS apod.
Příklad složité podmínky:
VARIANTS | VARIANT { PARAMETERS | PARAMETER { NAME = "Velikost" } | VALUE = "M" AND PARAMETERS | PARAMETER { NAME = "Materiál" } | VALUE = "Bavlna" } | STOCK | WAREHOUSES | WAREHOUSE | NAME
Tento zápis vybere název skladu (NAME) u variant, které mají velikost „M“ a materiál „Bavlna“.
9. Jaké speciální atributy Element-Path používá
Speciální atributy začínají vždy dvěma zavináči @@ a používají se v podmínkách. Slouží ke snadnějšímu cílení u vícenásobných elementů.
| Atribut | Popis | Příklad použití |
|---|---|---|
@@POSITION |
Cílí podle pořadí hodnoty (1, 2, 3…). | `VARIANTS |
@@VALUE |
Cílí podle obsahu hodnoty. | CATEGORY { @@VALUE != "Hračky" } |
@@POSITION se používá tam, kde pořadí hodnot odpovídá významu (např. obrázky).
@@VALUE je jistější tam, kde se pořadí může měnit.
10. Jak se používají podmínky s více úrovněmi zanoření
Podmínky lze kombinovat i mezi různými úrovněmi elementů. Příklad víceúrovňového zanoření:
VARIANTS | VARIANT { @@POSITION = 2 } | PARAMETERS | PARAMETER { NAME = "Velikost" } | VALUE
Tento zápis cílí na hodnotu parametru „Velikost“ u druhé varianty produktu.
11. Jaké jsou nejčastější chyby při psaní cest
- Vynechané mezery kolem svislítka (
|). - Nesprávné umístění složených závorek
{ }. - Chybné názvy elementů (neexistující v projektu).
- Použití
@@POSITIONu elementů, kde se pořadí liší mezi produkty. - Cesta končící rodičem místo potomkem (např.
PARAMmístoPARAM | VAL).
Mergado Editor chyby automaticky detekuje v poli pro zadání cesty – nevalidní cesta se zobrazí červeně.
12. Jak Element-Path pomáhá s přesností a bezpečností pravidel
Správné používání Element-Path zajišťuje, že pravidla, výběry i automatizace pracují pouze s relevantními daty. Díky přesně definované cestě lze:
- bezpečně číst a upravovat hodnoty,
- cílit jen na vybrané podmínky,
- předejít chybám způsobeným změnou struktury feedu.
8. Podmínky v cestě k elementu
Co jsou podmínky
Podmínky v cestě k elementu fungují jako filtr, který umožňuje cílit pouze na vybrané hodnoty a tím zpřesnit práci s daty. Jsou nedílnou součástí jazyka Element-Path a používají se zejména při práci s vícenásobnými a zanořenými elementy.
Podmínky se vždy vážou k elementu, který stojí nalevo od nich, a mohou filtrovat pouze hodnoty jeho zanořených potomků.
Jak se podmínky zapisují
Podmínky se zapisují do složených závorek { }, které se vážou k příslušnému elementu.
Základní šablona zápisu:
Element { Potomek Operátor Hodnota } | Další_potomek
Příklad:
- PARAM { PARAM_NAME = “Barva” } | VAL
Tato cesta říká: „Najděte element PARAM, který má potomka PARAM_NAME s hodnotou Barva, a v něm zacilte na zanořený element VAL.“
Pravidla zápisu
- Mezery jsou důležité – nelze je vynechat. Platí to jak uvnitř podmínky, tak před a po ní (např.
PARAM { PARAM_NAME = "Barva" } | VALje správně,PARAM{PARAM_NAME="Barva"}|VALje chybně). - Závorky
{ }se na české klávesnici píší pomocí klávesové zkratkyAlt + B (option + 9)(levá) aAlt + N (option + 0)(pravá). - Podmínky mohou obsahovat libovolně složité výrazy, včetně operátorů
AND,OR,NOT, nebo i více úrovní zanoření.
Použití MQL v podmínkách
Podmínky v Element-Path podporují plnou syntaxi Mergado Query Language (MQL). To znamená, že do nich můžete psát stejné výrazy jako do formuláře pro vlastní dotazy.
Například:
- PARAM { PARAM_NAME = “Velikost” AND VAL = “M” }
nebo složitější variantu s více úrovněmi:
- VARIANT { PARAMETERS | PARAM { PARAM_NAME = “Materiál” AND VAL = “Bavlna” } }
Tento přístup umožňuje kombinovat podmínky a cílit na velmi přesně definované skupiny hodnot.
K čemu podmínky slouží
Podmínky zpřesňují cestu k elementu a umožňují cílit na konkrétní podskupiny hodnot. Používají se především pro:
- Cílení na konkrétní hodnoty vícenásobných elementů.
- Například při práci s parametry, dopravci nebo obrázky, kde by cesta bez podmínky vedla k více hodnotám. Podmínka zajistí, že se pravidlo použije pouze na tu správnou.
- Strukturové přidávání hodnot
- Při zápisu do feedu platí, že vše, co je uvedeno v podmínce s operátorem
=neboAND, Mergado vytvoří, pokud to ještě neexistuje. - Díky tomu lze podmínkami vytvářet i nové zanořené struktury (např. nový parametr nebo flag).
- Při zápisu do feedu platí, že vše, co je uvedeno v podmínce s operátorem
- Použití speciálních atributů
- Podmínky slouží také k práci se speciálními atributy jako
@@POSITION(pořadí hodnoty) a@@VALUE(hodnota elementu).
- Podmínky slouží také k práci se speciálními atributy jako
Kdy mají a nemají smysl
Kdy mají smysl
Podmínky mají smysl u vícenásobných elementů, kde se jeden typ informace může opakovat vícekrát.
Nejčastěji se používají při práci s:
- parametry (
PARAM), - dopravou (
DELIVERY), - variantami (
VARIANT), - obrázky (
IMAGE), - kategoriemi (
CATEGORY).
Příklad:
- PARAM { PARAM_NAME = “Barva” } | VAL
Tento zápis zajistí, že se změna provede pouze u parametru „Barva“, bez ohledu na jeho pozici ve feedu. V tomto případě je to bezpečnější než použití atributu @@POSITION, který se může lišit napříč produkty.
Kdy nemají smysl
- Jednoduché elementy
- U jednoduchých elementů (např.
ITEM_ID,PRICE_VAT) má element vždy jedinou hodnotu, takže podmínka je zbytečná.
- U jednoduchých elementů (např.
- Cílení na všechny hodnoty
- Pokud chcete pracovat se všemi hodnotami elementu, podmínku nepoužívejte. Například: IMAGES | IMAGE
- Tato cesta cílí na všechny obrázky daného produktu.
Prakticky: filtrování hodnot pomocí podmínky
Příklad cesty
- PARAM { PARAM_NAME = “Barva” } | VAL
Jak Mergado tuto cestu vyhodnocuje
PARAM– označuje rodičovský, vícenásobný element.{ PARAM_NAME = "Barva" }– je podmínka, která říká:
„Zajímají nás pouze ty elementyPARAM, jejichž potomekPARAM_NAMEmá hodnotu Barva.“| VAL– určuje, že pracujeme s potomkemVAL, tedy s konkrétní hodnotou parametru.
Výsledkem je, že Mergado vybere pouze ty hodnoty VAL, které patří k parametru s názvem „Barva“.
Porovnání s cílením podle pozice
Podmínka
- PARAM { PARAM_NAME = “Barva” } | VAL
je spolehlivější než zápis
- PARAM { @@POSITION = 2 } | VAL
Protože cílení podle názvu parametru funguje bez ohledu na jeho pořadí v rámci produktu. U parametrů s různým pořadím se tak předejde nesprávnému přiřazení hodnot.
Shrnutí
Podmínky v jazyce Element-Path jsou klíčovým nástrojem pro přesné a bezpečné cílení na konkrétní hodnoty. Umožňují filtrovat data, vytvářet nové struktury a pracovat s vícenásobnými i zanořenými elementy bez rizika chybného přepisu. Správné používání podmínek vám pomůže předejít chybám, udržet pořádek v pravidlech a zajistit, že Mergado upraví vždy jen ta data, která skutečně chcete měnit.
FAQ
1. Co jsou podmínky v jazyce Element-Path a proč se používají
Podmínky jsou filtr, který zpřesňuje cestu k elementu. Pomocí nich určujete, na které konkrétní hodnoty má Mergado cílit – tedy které číst, upravit nebo vytvořit. Používají se hlavně u vícenásobných a zanořených elementů, kde se hodnoty opakují nebo sdílejí stejný název. Podmínky pomáhají:
- přesně cílit na vybranou hodnotu (např. konkrétní parametr),
- zabránit chybám při přepisu nesouvisejících dat,
- vytvářet nové struktury přímo v pravidlech.
2. Jak se podmínky zapisují (syntaxe)
Podmínky se zapisují do složených závorek { }, které se vážou k elementu stojícímu nalevo od nich. Základní tvar zápisu:
ELEMENT { POTOMEK = "Hodnota" } | DALŠÍ_POTOMEK
Příklad:
PARAM { PARAM_NAME = "Barva" } | VAL
Tento zápis říká: „Najděte element PARAM, jehož zanořený element PARAM_NAME má hodnotu Barva, a v něm zacilte na VAL.“
Důležité zásady zápisu:
- Mezery jsou povinné – nelze je vynechat ani uvnitř podmínky, ani před a po ní.
- Závorky
{ }se na české klávesnici píší kombinací Alt + B (levá) a Alt + N (pravá). - Podmínky mohou obsahovat více kritérií propojených logickými operátory
AND,OR,NOT.
3. Jak funguje vazba podmínek v cestě
Podmínka se vztahuje vždy k elementu nalevo od ní. Filtrovat lze pouze přes potomky (zanořené elementy) tohoto elementu.
Příklad:
VARIANT { PARAMETERS | PARAMETER { NAME = "Velikost" } | VALUE = "M" } | STOCK
Tento zápis znamená: „Najděte variantu, která má parametr s názvem Velikost a hodnotou M, a v ní pracujte s elementem STOCK.“
4. Jak se podmínky využívají při práci s vícenásobnými elementy
Podmínky jsou klíčové při práci s elementy, které se v rámci jednoho produktu opakují (např. PARAM, DELIVERY, CATEGORY, IMAGE, VARIANT).
Bez podmínky:
PARAM | VAL- cílí na všechny hodnotyVALv rámci všech parametrů. Při čtení Mergado použije první hodnotu, při zápisu změní všechny.
S podmínkou:
PARAM { PARAM_NAME = "Barva" } | VAL- cílí pouze na hodnotuVAL, která patří k parametru „Barva“. Tento zápis je bezpečný a jednoznačný – nezáleží na pořadí elementů.
5. Jaké operátory lze v podmínkách použít
Podmínky podporují všechny běžné operátory z jazyka MQL (Mergado Query Language).
Díky tomu lze vytvářet i velmi přesné a komplexní filtry.
| Typ operátoru | Příklad | Význam |
|---|---|---|
| = | PARAM_NAME = "Barva" |
Rovnost hodnoty |
| != | @@VALUE != "Hračky" |
Nerovnost |
| > / < | @@POSITION > 1 |
Porovnání číselných hodnot |
| ~ | @id ~ "variant" |
Obsahuje |
| AND | PARAM_NAME = "Barva" AND VAL = "Černá" |
A zároveň |
| OR | @@VALUE = "XL" OR @@VALUE = "L" |
Nebo |
| NOT | NOT (VAL = "M") |
Negace |
6. Jak se v podmínkách používá MQL syntaxe
Do podmínek lze psát celé MQL dotazy – jazyk Mergado Query Language je plně integrovaný do Element-Path. Tím je možné kombinovat vícenásobné filtry, různé úrovně zanoření i složitou logiku.
Příklad komplexní podmínky:
VARIANTS | VARIANT { PARAMETERS | PARAMETER { NAME = "Materiál" AND VAL = "Bavlna" } AND PARAMETERS | PARAMETER { NAME = "Velikost" AND VAL = "M" } } | PRICE
Tento zápis vybere cenu (PRICE) u varianty, která má parametry Materiál = Bavlna a Velikost = M.
7. Co když element nemá zanořené potomky
U elementů, které nemají žádné zanořené elementy, se v podmínkách používají speciální atributy:
@@POSITION– cílí podle pořadí hodnoty,@@VALUE– cílí podle obsahu hodnoty.
Příklady:
IMAGES | IMAGE { @@POSITION = 3 }– třetí obrázek,CATEGORY { @@VALUE != "Hračky" }– všechny kategorie kromě „Hračky“.
8. Jaký je rozdíl mezi podmínkou a cílením podle pozice
Cílení podle pozice (@@POSITION) odkazuje pouze na pořadí hodnoty. Cílení pomocí podmínky naopak zohledňuje obsah.
Porovnání:
PARAM { @@POSITION = 2 } | VAL– cílí na druhý parametr v pořadí.PARAM { PARAM_NAME = "Barva" } | VAL– cílí na parametr s názvem „Barva“, bez ohledu na jeho pozici.
Cílení podle obsahu je spolehlivější, protože funguje i tehdy, když se pořadí hodnot liší mezi produkty.
9. Jak podmínky pomáhají při zápisu nových dat
Při zápisu dat do feedu platí pravidlo: Pokud podmínka u elementu obsahuje pouze operátory = a AND s pod-elementy jejichž hodnoty neexistují, tak Mergado tyto hodnoty automaticky vytvoří.
Tento princip umožňuje tzv. strukturové přidávání hodnot – například přidání nového parametru, varianty nebo flagu.
Příklad:
FLAGS | FLAG { CODE = "action" } | ACTIVE
Pokud flag s kódem action neexistuje, Mergado jej automaticky vytvoří a nastaví ACTIVE na 0.
10. Kdy má smysl podmínky používat
Podmínky mají smysl zejména u vícenásobných nebo zanořených elementů, jako jsou:
PARAMnebog:attribute_detail(parametry produktu),DELIVERY(doprava),VARIANT(varianty),IMAGE(obrázky),CATEGORY(kategorie).
Například cesta:
PARAM { PARAM_NAME = "Barva" } | VAL
Zajistí, že se úprava týká pouze hodnoty parametru „Barva“, nikoli jiných parametrů.
11. Kdy podmínky nemají smysl
Podmínky nemají smysl v těchto případech:
- Jednoduché elementy – mají pouze jednu hodnotu (
ITEM_ID,PRICE_VAT). - Cílení na všechny hodnoty – pokud chcete pracovat se všemi výskyty elementu (např.
IMAGES | IMAGE), není třeba podmínku přidávat.
12. Jak ověřit správnost cesty s podmínkou
V Mergado Editoru je k dispozici nástroj Cesta k elementu, který umožňuje:
- otestovat zápis cesty (včetně podmínek),
- zobrazit, kam cesta skutečně vede,
- validovat, zda elementy v cestě existují.
Kromě toho pole pro zápis cesty nabízí:
- našeptávání (elementů, atributů, operátorů, hodnot),
- barevné zvýraznění syntaxe,
- varování při neplatné nebo neúplné cestě.
13. Jaké jsou nejčastější chyby při psaní podmínek
- Chybějící mezery kolem složených závorek
{ }. - Použití podmínky u elementu, který žádné potomky nemá.
- Zaměnění názvu elementu (např.
PARAM_NAMEvs.NAME). - Vynechané složené závorky nebo špatné umístění podmínky v cestě.
- Použití
@@POSITIONmísto názvu elementu tam, kde se pořadí liší.
Mergado na tyto chyby automaticky upozorňuje zvýrazněním chybného zápisu.
9. Speciální atributy v Element-Path
Co jsou speciální atributy
Speciální atributy představují pokročilý nástroj v Mergado Editoru a jazyce Element-Path. Slouží k přesnému cílení u vícenásobných elementů a umožňují rozlišovat mezi jednotlivými hodnotami daného elementu.
Každý speciální atribut:
- začíná dvěma zavináči (
@@), - váže se na konkrétní element,
- používá se uvnitř podmínek v cestách k elementům (v složených závorkách
{ }), - rozšiřuje možnosti cílení a filtrování v Element-Path.
V Mergadu jsou v současnosti k dispozici tyto speciální atributy:
@@POSITION– pozice hodnoty,@@VALUE– obsah hodnoty.@@MAX_POSITION– číslo určující nejvyšší pozici hodnot daného elementu u konkrétního produktu.
@@POSITION – cílení podle pozice
Atribut @@POSITION odpovídá pořadí hodnoty elementu, na který se váže. Umožňuje cílit na konkrétní pozici nebo rozsah pozic uvnitř vícenásobného elementu.
- Každá hodnota má svou pozici, vyjádřenou přirozeným číslem (1, 2, 3 …).
- U jednoduchých elementů má vždy hodnota pozici 1.
- Pouze u vícenásobných elementů (
IMAGE,PARAM,DELIVERYapod.) může být pozice vyšší než 1.
Příklad:
- IMAGES | IMAGE { @@POSITION = 3 }
Čteme jako: „Najděte element IMAGES a zacilte na jeho potomka IMAGE s hodnotou na třetí pozici.“
Slabina:
@@POSITION pracuje pouze s pořadím a nezohledňuje obsah hodnoty. Pokud se pořadí hodnot liší napříč produkty, může cílení dopadnout na jinou hodnotu, než očekáváte.
@@VALUE – cílení podle obsahu hodnoty
Atribut @@VALUE reprezentuje hodnotu elementu, na který se váže, a umožňuje cílit podle jejího obsahu. Používá se v podmínkách u elementů, které nemají potomky (nebo tam, kde nepotřebujeme cílit na zanořenou strukturu).
Kdy @@VALUE použít
- U elementů bez potomků – například
IMGURL_ALTERNATIVE,CATEGORY. - U vícenásobných elementů – umožňuje cílit na hodnotu bez ohledu na její pozici.
- Při měnícím se pořadí hodnot – nahrazuje méně spolehlivé cílení pomocí
@@POSITION.
Příklad:
- CATEGORIES | CATEGORY { @@VALUE != “Hračky” }
Tento zápis vybere všechny kategorie kromě „Hračky“. Cílení pomocí @@VALUE je vhodné tam, kde se pořadí hodnot může lišit mezi produkty.
@@MAX_POSITION – pomocný speciální atribut
Pomocný speciální atribut @@MAX_POSITION představuje pozici hodnoty s nejvyšším pořadím daného elementu u konkrétního produktu. Jinými slovy – označuje poslední pozici, na které se daný element v rámci produktu nachází.
Příklad:
<IMAGE>www.image1.jpg</IMAGE> …@@POSITION = 1
<IMAGE>www.image2.jpg</IMAGE> …@@POSITION = 2
<IMAGE>www.image3.jpg</IMAGE> …@@POSITION = 3
V tomto případě je @@MAX_POSITION = 3, protože nejvyšší existující pozice elementu IMAGE je právě 3. U různých produktů může mít stejný element rozdílnou hodnotu @@MAX_POSITION, protože počet hodnot se může lišit.
Kdy @@MAX_POSITION použít
Přidávání nových vícenásobných hodnot
Chcete-li přidat novou hodnotu na konec existujících hodnot, aby se žádná nepřepsala, použijte konstrukci: ELEMENT {@@POSITION = @@MAX_POSITION + 1}
Příklad:
Chcete zapsat novou URL obrázku www.image4.jpg do elementu IMAGE na další volnou pozici.
- Použijte pravidlo Přepsat
- Do pole Element vložte:
IMAGE {@@POSITION = @@MAX_POSITION + 1} - Do pole Nová hodnota zapíšeme novou url: www.image4.jpg
Výsledek:
<IMAGE>www.image1.jpg</IMAGE>
<IMAGE>www.image2.jpg</IMAGE>
<IMAGE>www.image3.jpg</IMAGE>
<IMAGE>www.image4.jpg</IMAGE>
Kopírování hodnot na konec existujícího seznamu
Při kopírování hodnot mezi vícenásobnými elementy můžete @@MAX_POSITION využít pro kopírování „až na konec“ bez přepsání původních hodnot.
Příklad:
Ve feedu máme tyto dva vícenásobné elementy:
<IMAGE>www.image1.jpg</IMAGE> …@@POSITION = 1
<IMAGE>www.image2.jpg</IMAGE> …@@POSITION = 2
<IMAGE>www.image3.jpg</IMAGE> …@@POSITION = 3
<CONTEXT_IMAGE>www.context_image1.jpg</CONTEXT_IMAGE> …@@POSITION = 1
<CONTEXT_IMAGE>www.context_image2.jpg</CONTEXT_IMAGE> …@@POSITION = 2
Chcete zkopírovat všechny CONTEXT_IMAGE do IMAGE, aniž by se původní obrázky přepsaly.
- Použijte pravidlo Hromadné zkopírování hodnot
- Do pole Zdrojový element zadejte:
CONTEXT_IMAGE - Do pole Cílový element zadejte:
IMAGE {@@POSITION = @@MAX_POSITION + 1}
Výsledek:
<IMAGE>www.image1.jpg</IMAGE>
<IMAGE>www.image2.jpg</IMAGE>
<IMAGE>www.image3.jpg</IMAGE>
<IMAGE>www.context_image1.jpg</IMAGE>
<IMAGE>www.context_image2.jpg</IMAGE>
Kdy který atribut použít
| Cíl cílení | @@POSITION (podle pozice) | @@VALUE (podle hodnoty) | Doporučený přístup |
|---|---|---|---|
| Obrázky nebo kategorie (bez potomků) | Vhodné, pokud je pořadí pevné (např. 2. obrázek). | Vhodné, pokud se pořadí mění. | Libovolné dle situace |
| Parametry (se zanořením) | Méně bezpečné – cílení na pořadí. | Nevhodné, protože rodič PARAM nemá hodnotu. |
Nejbezpečnější je cílit přes potomka (PARAM_NAME = "Barva") |
Pravidla pro volbu:
- U jednoduchých elementů pozici uvádět nemusíte – je vždy rovna 1.
- U vícenásobných elementů bez potomků můžete použít
@@POSITIONnebo@@VALUE. - U zanořených struktur (např. parametry) je nejbezpečnější použít podmínku s názvem zanořeného elementu, např.
PARAM_NAME = "Barva".
Indexace (#)
Kromě speciálních atributů umožňuje Element-Path také indexaci, která se zapisuje pomocí znaku #. Indexace rozšiřuje možnosti cílení tam, kde @@POSITION nestačí.
Indexaci je nutné použít pouze v případech, kdy cesta k elementu vrací více než jednu hodnotu a speciální atribut @@POSITION nelze využít, protože hodnoty se u jednotlivých produktů nacházejí na odlišných pozicích.
Použití indexace jako náhrady za @@POSITION v situacích, kdy to není nezbytné, je nevhodné a může vést k degradaci výkonu.
- Syntaxe:
PARAM { NAME = "Barva" } #{ 2 } | VALUE - Význam: Cílí na druhý výskyt elementu
PARAM | VALUEs názvem parametru „Barva“. - Použití: Indexace je vhodná zejména u podmíněných elementů, u kterých nelze použít
@@POSITION. - Doporučení: Pokud funguje běžné cílení podle pozice, je
@@POSITIONrychlejší a přehlednější.
Příklad:
Ve feedu máme 2 produkty s parametrem Barva. Oba produkty mají parametr Barva 2x s různými hodnotami, na různých pozicích.
Produkt A
\<g:product\_detail\>
\<g:attribute\_name\>Barva\</g:attribute\_name\>
\<g:attribute\_value\>Bílá\</g:attribute\_value\>
\</g:product\_detail\>
\<g:product\_detail\>
\<g:attribute\_name\>Barva\</g:attribute\_name\>
\<g:attribute\_value\>Černá\</g:attribute\_value\>
\</g:product\_detail\>
\<g:product\_detail\>
\<g:attribute\_name\>Materiál\</g:attribute\_name\>
\<g:attribute\_value\>Keramika\</g:attribute\_value\>
\</g:product\_detail\>
Produkt B
\<g:product\_detail\>
\<g:attribute\_name\>Barva\</g:attribute\_name\>
\<g:attribute\_value\>Zelená\</g:attribute\_value\>
\</g:product\_detail\>
\<g:product\_detail\>
\<g:attribute\_name\>Materiál\</g:attribute\_name\>
\<g:attribute\_value\>Keramika\</g:attribute\_value\>
\</g:product\_detail\>
\<g:product\_detail\>
\<g:attribute\_name\>Barva\</g:attribute\_name\>
\<g:attribute\_value\>Červená\</g:attribute\_value\>
\</g:product\_detail\>
V případě, že chceme zacílit právě na druhou hodnotu parametru Barva u každého produktu, nemůžeme použít speciální atribut @@POSITION, protože hodnoty jsou na různých pozicích. Pomůže nám právě Indexace.
Správný zápis cesty s použitím indexace:
g:product_detail { g:attribute_name = "Barva" } #{ 2 } | g:attribute_value
Praktické příklady použití speciálních atributů
1. Cílení na rozsah pozic pomocí @@POSITION
Cesta pro alternativní obrázky od pozice 3 do 8:
- IMGURL_ALTERNATIVE { @@POSITION >= 3 AND @@POSITION <= 8 }
2. Kombinace pozice a hodnoty pro cílení na varianty
Cesta pro parametr „Velikost“ u druhé varianty:
- VARIANTS | VARIANT { @@POSITION = 2 } | PARAMETERS | PARAMETER { NAME = “Velikost” } | VALUE
3. Cílení na atribut pomocí hodnoty elementu @@VALUE
Cesta pro atribut @value u parametrů s hodnotou „Barva“:
- PARAM { @@VALUE = “Barva” } | @value
V tomto případě @@VALUE nahrazuje element PARAM_NAME pro cílení na hodnotu „Barva“.
4. Cílení na všechny hodnoty kromě jedné
Cesta pro kategorie kromě „Dětská hřiště“:
- CATEGORIES | CATEGORY { @@VALUE NOT CONTAINS “Dětská hřiště” }
Shrnutí
Speciální atributy rozšiřují možnosti cílení v Element-Path a umožňují pracovat s vícenásobnými elementy na úrovni jednotlivých hodnot.
@@POSITION a @@MAX_POSITION cílí na pořadí, @@VALUE na obsah, a indexace # umožňuje adresovat konkrétní výskyty.
Jejich správné použití zajistí, že budete v Mergadu cílit na přesná data a úpravy provedete bezpečně a kontrolovaně i v komplexních feedech.
FAQ
1. Co jsou speciální atributy a proč existují
Speciální atributy jsou rozšiřující nástroj jazyka Element-Path, který umožňuje přesné cílení u vícenásobných elementů. Pomáhají rozlišit jednotlivé hodnoty podle jejich pořadí nebo obsahu a používají se uvnitř podmínek (ve složených závorkách { }).
Každý speciální atribut:
- začíná dvěma zavináči
@@, - váže se na konkrétní element,
- rozšiřuje možnosti cílení a filtrování,
- nikdy se neexportuje do feedu (na rozdíl od běžných XML atributů).
V současnosti Mergado podporuje tyto hlavní speciální atributy:
@@POSITION– cílení podle pořadí,@@MAX_POSITION– cílení podle nejvyšší existující pozice,@@VALUE– cílení podle obsahu hodnoty.
2. Jaký je rozdíl mezi speciálními a běžnými XML atributy
| Typ atributu | Zápis | Popis |
|---|---|---|
| Standardní atribut (XML) | @id, @description |
Je součástí XML struktury a doplňuje význam elementu. |
| Speciální atribut (Element-Path) | @@POSITION, @@VALUE |
Patří do jazyka Element-Path a slouží pro filtrování a přesné cílení v podmínkách. |
Běžné XML atributy se exportují do výstupního feedu, zatímco speciální atributy existují pouze pro interní logiku Mergada při práci s pravidly, výběry nebo proměnnými.
3. Co dělá atribut @@POSITION a kdy ho použít
@@POSITION cílí na pořadí hodnoty elementu, ke kterému se vztahuje. Každá hodnota ve feedu má svou pozici (1, 2, 3 …), která určuje, v jakém pořadí se ve vícenásobném elementu nachází.
Použití:
- Vhodné u vícenásobných elementů s pevným pořadím (např. obrázky, varianty).
- U jednoduchých elementů (s jedinou hodnotou) není potřeba – jejich pozice je vždy 1.
Příklad:
IMGURL_ALTERNATIVE { @@POSITION = 3 }
Tento zápis říká: „Pracuji s třetí hodnotou elementu IMGURL_ALTERNATIVE.″
4. Jaká je slabina @@POSITION
@@POSITION nepracuje s obsahem hodnoty, pouze s jejím pořadím. Pokud se pořadí hodnot liší napříč produkty, může dojít k chybnému zacílení. Příklad problému:
- U jednoho produktu je pozice 2 = „Objem“,
- u jiného produktu je pozice 2 = „Dekor“.
Cesta PARAM { @@POSITION = 2 } | VAL tak u druhého produktu vybere špatnou hodnotu.
Řešení: Použijte místo toho cílení podle názvu potomka, např.
PARAM { PARAM_NAME = "Objem" } | VAL
5. Co dělá atribut @@VALUE a kdy ho použít
@@VALUE představuje obsah hodnoty elementu. Používá se k filtrování podle hodnoty namísto pořadí.
Vhodné použití:
- u elementů, které nemají potomky (např.
CATEGORY,IMGURL_ALTERNATIVE), - u vícenásobných elementů s měnícím se pořadím hodnot,
- tam, kde chcete cílit podle obsahu, nikoli podle pozice.
Příklad:
CATEGORY { @@VALUE != "Hračky" }
Tento zápis vybere všechny hodnoty elementu CATEGORY kromě „Hračky“. Oproti @@POSITION je tato metoda spolehlivější, protože funguje bez ohledu na změnu pořadí.
6. Jak vybrat mezi @@POSITION, @@VALUE a podmínkou s potomkem
| Cíl cílení | @@POSITION |
@@VALUE |
Podmínka s potomkem |
|---|---|---|---|
| Obrázky, kategorie (bez potomků) | – | ||
| Parametry (se zanořením) | PARAM_NAME = "Barva") |
Doporučení:
- U jednoduchých elementů pozici neuvádějte.
- U vícenásobných elementů bez potomků můžete použít oba přístupy (
@@POSITIONi@@VALUE). - U zanořených struktur vždy preferujte cílení přes název potomka (např.
PARAM_NAME).
7. Co je indexace # a jak se liší od @@POSITION
Indexace je doplňkový nástroj jazyka Element-Path, který umožňuje přesně určit konkrétní výskyt elementu bez ohledu na jeho pořadí. Zapisuje se pomocí znaku #.
Syntaxe: PARAM { NAME = "Barva" } #{ 2 }
Tento zápis cílí na druhý výskyt elementu PARAM s názvem „Barva“.
Možnosti:
- lze uvést rozsah pozic:
{ 1 – 4 }, - vhodné u podmíněných elementů, kde nelze použít
@@POSITION.
Poznámka: Pokud postačí běžné cílení podle pozice, @@POSITION je rychlejší a přehlednější.
8. Jak kombinovat @@POSITION a @@VALUE v jedné cestě
Speciální atributy lze kombinovat v rámci jedné podmínky nebo s dalšími filtry pomocí logických operátorů.
Příklad 1 – cílení na rozsah pozic:
IMGURL_ALTERNATIVE { @@POSITION >= 3 AND @@POSITION <= 8 }
- Cílí na alternativní obrázky od 3. do 8. pozice.
Příklad 2 – kombinace s dalšími elementy:
VARIANTS | VARIANT { @@POSITION = 2 } | PARAMETERS | PARAMETER { NAME = "Velikost" } | VALUE
- Vybere parametr „Velikost“ u druhé varianty.
Příklad 3 – cílení podle hodnoty:
CATEGORIES | CATEGORY { @@VALUE NOT CONTAINS "Dětská hřiště" }
- Vybere všechny kategorie kromě těch, které obsahují „Dětská hřiště“.
9. Můžu pomocí speciálních atributů cílit i na atributy elementů?
Ano. Speciální atributy lze použít i v kombinaci s běžnými XML atributy. Například:
PARAM { @@VALUE = "Barva" } | @value
Tento zápis cílí na atribut @value u parametrů, jejichž hodnota je „Barva“. Zde @@VALUE nahrazuje potřebu používat element PARAM_NAME.
10. Jaké jsou nejčastější chyby při práci se speciálními atributy
- Použití
@@POSITIONu elementů, kde se pořadí liší napříč produkty. - Snažit se použít
@@VALUEu elementů, které samy o sobě nenesou hodnotu (např.PARAM). - Záměna jednoho zavináče
@(běžný XML atribut) za dva@@(speciální atribut). - Chybné umístění speciálního atributu mimo podmínku.
Všechny chyby Mergado automaticky upozorní v editoru barevným zvýrazněním nebo chybovým hlášením při validaci.
11. Jaký je rozdíl mezi @@POSITION a @@MAX_POSITION
| Atribut | Popis | Použití |
|---|---|---|
@@POSITION |
Odkazuje na konkrétní pozici hodnoty v rámci elementu. | Cílení na existující hodnotu. |
@@MAX_POSITION |
Udává nejvyšší pozici (poslední hodnotu) u daného elementu. | Vhodný pro přidávání nových hodnot „na konec“. |
12. Kdy má smysl @@MAX_POSITION použít
- Při přidávání nové hodnoty do vícenásobného elementu, aby se nepřepsala žádná stávající.
- Při kopírování hodnot z jednoho vícenásobného elementu do druhého (např. obrázky, alternativní obrázky, kontextové obrázky).