Elementy v Mergade#

1. Čo sú elementy#

Definícia#

Element je základný stavebný prvok feedu, ktorý nesie dáta. Každý element predstavuje konkrétnu informáciu – napríklad názov produktu, cenu, kód alebo obrázok. V jazyku XML aj CSV funguje element ako označenie miesta, kde sa daná hodnota nachádza.

Zjednodušene povedané:

  • element = „názov informácie“,
  • hodnota = „obsah tejto informácie“.

Príklad:

<g:title>Bid long and prosper – hrnek</g:title> <g:price>364.21 CZK</g:price>
<g:id>47</g:id>

V tomto príklade je:

  • <g:title> element,
  • „Bid long and prosper – hrnek“ jeho hodnota.

Elementy v rôznych formátoch#

Element v XML feede#

V XML súboroch je element všetko, čo sa nachádza medzi počiatočným a ukončovacím tagom. Element môže obsahovať text, atribúty alebo ďalšie elementy (tzv. zanorenie). XML je hierarchický formát – vďaka tomu vie opísať aj zložitejšie vzťahy medzi dátami.

Príklad:

<PRICE_VAT>1499</PRICE_VAT>

Element PRICE_VAT obsahuje jednu hodnotu – cenu s DPH.

Element v CSV feede#

V CSV súboroch element zodpovedá jednému stĺpcu v tabuľke. Názov stĺpca predstavuje element, bunky v stĺpci potom jeho hodnoty.

Príklad:

PRODUCTNAME PRICE_VAT EAN
Hrnek Mergado 1499 8592384021932

CSV nevie pracovať so zanorením (rodič–potomok), a preto Mergado túto štruktúru simuluje zápisom typu rodič | potomok.

Element v Mergado Editore#

V Mergado Editore zodpovedá každý element jednému riadku na stránke Elementy. Editor zobrazuje štruktúru feedu ako strom – teda v hierarchii, kde sú zanorené elementy zobrazené odsadením.

Každý element v Mergade môže byť:

  • jednoduchý, pokiaľ má iba jednu hodnotu,
  • viacnásobný, pokiaľ sa opakuje viackrát (napr. viac obrázkov, viac parametrov),
  • zanorený, pokiaľ je súčasťou iného elementu,
  • alebo atribútový, pokiaľ dopĺňa hlavnú hodnotu o ďalšiu informáciu (napr. @id alebo @description).

Na čo elementy slúžia#

Elementy sú základom pre prenos, spracovanie a úpravu dát v Mergade. Pomáhajú organizovať dáta tak, aby bolo možné ich:

  • čítať, meniť a exportovať,
  • prevádzať medzi formátmi (napr. Heureka → Google Merchant),
  • triediť, filtrovať a vyhodnocovať.

V praxi s nimi pracujete pri:

Zhrnutie#

Element je základná jednotka dát vo feede. Mergado s ním zaobchádza jednotne bez ohľadu na formát – či už pochádza z XML, CSV alebo z iného zdroja. Porozumenie tomu, ako elementy fungujú a ako spolu súvisia, je kľúčové pre efektívnu prácu s pravidlami, výbermi aj exportmi.

FAQ#

Čo je to element?#

Element je základný stavebný prvok feedu, ktorý nesie konkrétnu informáciu – napríklad názov, cenu alebo kód produktu. V XML aj CSV formáte predstavuje označenie miesta, kde sa daná hodnota nachádza.

Aký je rozdiel medzi elementom a hodnotou?#

Element je názov informácie (napr. PRICE_VAT), zatiaľ čo hodnota je jej obsah (napr. 1499). Spoločne tvoria pár – názov a jeho dátový obsah.

Ako element vyzerá v XML feede?#

V XML je element definovaný počiatočným a ukončovacím tagom. Príklad:

  • <PRICE_VAT>1499</PRICE_VAT>

Tu je PRICE_VAT element a 1499 jeho hodnota.

Ako element funguje v CSV feede?#

V CSV súbore element zodpovedá názvu stĺpca. Každá bunka v tomto stĺpci predstavuje hodnotu elementu. Príklad:

  • PRICE_VAT → stĺpec s hodnotami 1499, 1599, 1799 atď.

Ako sa zanorenie zapisuje v CSV, keď CSV nevie hierarchiu?#

Mergado zanorenie v CSV simuluje pomocou zápisu rodič | potomok. Napríklad cesta PARAM | VAL predstavuje hodnotu elementu VAL zanoreného pod elementom PARAM.

Ako elementy zobrazuje Mergado Editor?#

V Mergado Editore je každý element zobrazený ako samostatný riadok na stránke Elementy. Zanorené elementy sú vizuálne odsadené a tvoria stromovú štruktúru, ktorá zodpovedá štruktúre XML feedu. To platí aj pre stránku Produkty v zobrazení typu Elementy.

Aké druhy elementov Mergado rozlišuje?#

Mergado pracuje so štyrmi základnými typmi:

  • Jednoduché elementy – majú jednu hodnotu.
  • Viacnásobné elementy – môžu mať viac hodnôt.
  • Zanorené elementy – sú súčasťou iného elementu.
  • Atribútové elementy – dopĺňajú element o ďalšie informácie (napr. @id).

Na čo elementy slúžia v Mergade?#

Elementy sú základom práce s dátami – používajú sa na čítanie, úpravu, filtrovanie, export aj prevody dát. Sú kľúčové pri práci s pravidlami, výbermi, premennými a automatizáciou.

Sú elementy rovnaké vo všetkých formátoch?#

Áno. Mergado s nimi zaobchádza jednotne – bez ohľadu na to, či pochádzajú z XML, CSV alebo iného formátu.

Prečo je dôležité porozumieť elementom?#

Pretože takmer všetka práca v Mergade (výbery, pravidlá, výpočty, exporty) sa na elementoch zakladá. Porozumenie elementom znamená schopnosť presne riadiť úpravy a spracovanie dát.


2. Základy elementov#

Typy elementov#

Mergado rozlišuje štyri základné typy elementov. Každý z nich má špecifické správanie a možnosti použitia.

1. Jednoduché elementy#

  • Majú jednu hodnotu.
  • Ich pozícia (@@POSITION) je vždy rovná 1.
  • Pri práci s nimi nie je nutné pozíciu uvádzať.

Príklad:

<ITEM_ID>47</ITEM_ID>

Cesta ITEM_ID cieli na rovnakú hodnotu ako ITEM_ID { @@POSITION = 1 }.

2. Viacnásobné elementy#

  • Obsahujú viac hodnôt rovnakého typu.
  • Každá hodnota má vlastnú pozíciu (1, 2, 3 …).
  • Na cielenie na konkrétnu hodnotu sa používajú podmienky alebo atribúty @@POSITION a @@VALUE.

Príklad:

<IMAGE>url1.jpg</IMAGE>
<IMAGE>url2.jpg</IMAGE>

Element IMAGE má dve hodnoty – na pozícii 1 a 2.

Viacnásobnosť sa objavuje často napríklad pri obrázkoch, dopravách, parametroch alebo kategóriách.

3. Zanorené elementy#

  • vnútri iného elementu (tzv. rodiča).
  • Vytvárajú hierarchickú štruktúru dát.
  • V Mergade sa zanorenie zobrazuje odsadením, v ceste k elementu potom pomocou zvislej čiary |.

Príklad:

<PARAM>
<PARAM_NAME>Barva</PARAM_NAME> <VAL>Černá</VAL> </PARAM>

Cesta k hodnote znie:

  • PARAM | VAL

Tento zápis určuje, že hodnota VAL sa nachádza vnútri elementu PARAM.

4. Atribútové elementy#

  • Atribút je doplňujúca informácia, ktorá rozširuje význam elementu.
  • V XML je uvedený v otváracom tagu a označuje sa symbolom @.
  • V Mergade sa atribúty používajú bežne a zapisujú sa pomocou cesty s @.

Príklad:

<IMAGE description=“Zimní bunda”>obrazek.jpg</IMAGE>

Cesta k atribútu:

  • IMAGE | @description

Ako elementy zobraziť v Mergado Editore#

Stránka Elementy#

Na stránke Elementy nájdete kompletný prehľad všetkých elementov v projekte. Tu môžete elementy:

  • zobrazovať a skrývať (pre výstupný feed),
  • pridávať, mazať alebo premenovávať (pri používateľských elementoch),
  • triediť podľa názvu alebo podľa štruktúry,
  • prehliadať ich vstupné a výstupné hodnoty.

Kliknutím na názov elementu otvoríte detailný prehľad všetkých jeho hodnôt.

Stránka Produkty#

Na stránke Produkty možno elementy zobraziť dvoma spôsobmi:

  • Zobrazenie „Elementy“ – zobrazuje všetky elementy a ich hodnoty pri konkrétnom produkte.
  • Zobrazenie „Tabulka“ – umožňuje vybrať konkrétne elementy a zobraziť ich v prehľadnej tabuľke.

Nástroj Cesta k elementu (Element-Path)#

Na stránke Elementy aj v pravidlách môžete využiť nástroj Cesta k elementu, ktorý pomáha s tvorbou správnej cesty a kontrolou jej validity. Zobrazí vám, kam presne cesta vedie, a uľahčí prácu s pravidlami alebo výbermi.

Zhrnutie#

Elementy sú základnou jednotkou, s ktorou Mergado pracuje. Rozlišujú sa podľa svojej funkcie (jednoduché, viacnásobné, zanorené, atribútové) a ich pochopenie je kľúčom k efektívnej práci s pravidlami, výbermi aj štruktúrou feedu.

FAQ#

Aké typy elementov v Mergade existujú?#

Existujú štyri základné typy:

  • Jednoduché – majú jednu hodnotu.
  • Viacnásobné – obsahujú viac hodnôt.
  • Zanorené – nachádzajú sa vnútri iného elementu.
  • Atribútové – dopĺňajú hodnotu o ďalšiu informáciu.

Čo znamená pozícia elementu?#

Každá hodnota elementu má svoju pozíciu (napr. prvá, druhá, tretia hodnota). Pri jednoduchých elementoch je pozícia vždy 1, pri viacnásobných elementoch môže byť vyššia.

Ako sa pracuje s viacnásobnými elementmi?#

Viacnásobné elementy (napr. IMAGE) môžu mať viac hodnôt.
Na prácu s nimi sa používajú podmienky alebo špeciálne atribúty @@POSITION (cielenie podľa poradia) a @@VALUE (cielenie podľa obsahu).

Ako spoznám zanorený element?#

Zanorený element sa nachádza vnútri iného elementu (tzv. rodiča).
V ceste k elementu sa označuje pomocou zvislej čiary |, napríklad PARAM | VAL.

Ako sa zapisujú atribúty elementov?#

Atribúty sa zapisujú pomocou zavináča @. Príklad:

  • <IMAGE description=“Zimní bunda”>obrazek.jpg</IMAGE>

V Mergade je cesta k tomuto atribútu IMAGE | @description.

Pri niektorých formátoch feedu (napr. ceneo) sú atribúty uvedené aj pri obaľovacom elemente.

  • <o id=”123” price=”100” avail=”1”>
    <name>Název produktu</name>
    </o>

V tomto prípade je v Mergade cesta k tomuto atribútu @id, @price, @avail.
A pokiaľ chceme v Mergade vytvoriť nový atribút do obaľovacieho elementu, pridáme ho na stránke Elementy na nový riadok, teda nie pomocou znaku plus pri existujúcom elemente.

Kde v Mergade elementy nájdem?#

Na stránke Elementy v ľavom menu projektu. Tu môžete elementy zobrazovať, skrývať, pridávať alebo triediť podľa štruktúry.

Ako si zobrazím hodnoty konkrétneho elementu?#

Kliknutím na jeho názov na stránke Elementy otvoríte prehľad všetkých jeho hodnôt – vstupných aj výstupných.

Ako sa elementy zobrazujú na stránke Produkty?#

Na stránke Produkty môžete zvoliť:

  • zobrazenie Elementy – všetky elementy a ich hodnoty pri konkrétnom produkte,
  • zobrazenie Tabulka – prehľadný výpis vybraných elementov v tabuľke.

Čo je nástroj Cesta k elementu (Element-Path)?#

Element-Path, čiže Cesta k elementu je jazyk vyvinutý spoločnosťou Mergado, ktorý slúži na zapisovanie ciest k elementom a ich hodnotám. Pomocou Element-Path určujete, na ktoré hodnoty vo feede chcete cieliť – či ich budete čítať, alebo do nich zapisovať.

Mergado Editor pracuje s elementmi rovnako ako XML feed – v stromovej štruktúre. Aby bolo možné v tejto štruktúre presne určiť, s ktorými dátami chcete pracovať, je potrebné poznať ich cestu. Práve to umožňuje jazyk Element-Path.

Aký je rozdiel medzi jednoduchým a viacnásobným elementom?#

Jednoduchý element má jednu hodnotu pri všetkých produktoch (napr. ITEM_ID). Viacnásobný element má viac hodnôt (napr. viac IMAGE tagov) pri jednom produkte – a s týmito hodnotami je možné pracovať individuálne vďaka Element-path.


3. Zanorenosť elementov#

Čo je zanorenosť#

Zanorenosť (alebo tiež vnorenosť) je vlastnosť elementu, ktorá určuje jeho umiestnenie v hierarchii XML feedu. Element je považovaný za zanorený, pokiaľ sa v XML nachádza medzi počiatočným a ukončovacím tagom iného elementu. Zanorenosť vytvára štruktúru, ktorá pomáha udržať prehľadnosť a logické vzťahy medzi dátami.

Tento princíp má praktický význam – elementy, ktoré sú do seba zanorené, spolu obvykle súvisia a tvoria jeden celok. S takou štruktúrou sa stretnete napríklad pri parametroch produktov, kategóriách alebo dopravcoch.

Príklad:

<PARAM>
<PARAM_NAME>Barva</PARAM_NAME> <VAL>Černá</VAL> </PARAM>

V tomto prípade:

  • PARAM_NAME je názov parametra,
  • VAL je jeho hodnota,
  • PARAM je nadradený element, ktorý oba spája.

Vďaka tejto štruktúre Mergado rozpozná, že hodnota „Černá“ patrí práve k parametru „Barva“.

Rodičia, potomkovia a súrodenci#

Zanorené elementy tvoria medzi sebou vzťahy, ktoré zodpovedajú stromovej štruktúre XML:

Typ vzťahu Popis
Rodič (Parent) Element, do ktorého sa iný element zanoruje.
Potomok (Child) Element, ktorý je vnútri iného elementu.
Súrodenci (Siblings) Elementy, ktoré majú rovnakého rodiča.

Príklad vzťahov:

PARAM | PARAM_NAME
PARAM | VAL

  • PARAM je rodič.
  • PARAM_NAME a VAL sú jeho potomkovia.
  • PARAM_NAME a VAL sú medzi sebou súrodenci.

V Mergado Editore sa tento vzťah vizuálne prejavuje odsadením – potomkovia sú na stránkach Elementy a Produkty vždy posunutí doprava oproti rodičovi.

Ako Mergado pracuje so zanorenou štruktúrou#

Mergado Editor pracuje s elementmi tak, že preberá a zobrazuje štruktúru XML feedu v jej prirodzenej stromovej podobe. Každý element si zachováva informáciu o svojom rodičovi a potomkoch, čo umožňuje:

  • presne rozlišovať, ktoré hodnoty k sebe patria,
  • správne zacieliť na konkrétnu hodnotu (napr. PARAM | VAL),
  • vytvárať a spravovať nové zanorené elementy priamo v rozhraní Editora.

Na stránke Elementy môžete nové zanorené elementy pridať kliknutím na ikonu „+“ pri rodičovskom elemente. Takto vytvorený element je prázdny a naplní sa až pomocou pravidla (napr. Prepísať).

Pre lepšiu orientáciu si môžete štruktúru predstaviť ako zložky a súbory:

  • rodičovský element je zložka,
  • potomok je súbor alebo podzložka vnútri nej.

Napríklad cesta PARAM | VAL znamená, že hodnota VAL sa nachádza vnútri elementu PARAM.

CSV a zanorenosť#

Zanorenosť je prirodzenou vlastnosťou formátov ako XML alebo JSON, ale formát CSV ju nevie nativne vyjadriť. Preto Mergado zanorenie v CSV simuluje pomocou zápisu rodič | potomok, aby bolo možné s dátami pracovať rovnakým spôsobom ako v XML.

V praxi to znamená, že v CSV súbore každý stĺpec predstavuje cestu k elementu. Napríklad:

PARAM | PARAM_NAME
PARAM | VAL

Tento zápis vyjadruje, že element VAL je zanorený pod elementom PARAM. Týmto spôsobom Mergado dokáže zachovať logické vzťahy medzi dátami aj pri formátoch, ktoré zanorenosť samy o sebe nepodporujú.

Prakticky: práca so zanorenosťou v Mergado Editore#

1. Zápis cesty k zanorenému elementu#

Keď chcete v pravidle alebo výbere pracovať so zanoreným elementom, zapíšete jeho cestu pomocou zvislej čiary |.

Príklad:

  • PARAM | VAL

Tento zápis znamená: „Nájdite element PARAM a v ňom potomka VAL.“ Je nutné dodržať medzery pred a za zvislou čiarou.

  • Správne: PARAM | VAL
  • Chybne: PARAM|VAL

2. Presné cielenie pomocou podmienky#

Pokiaľ má element PARAM viac hodnôt (napr. viac parametrov), je vhodné doplniť podmienku pre presnejšie cielenie. Podmienky sa zapisujú do zložených zátvoriek { } a filtrujú hodnoty podľa zadaného kritéria.

Príklad:

  • PARAM { PARAM_NAME = “Typ displeje” } | VAL

Tento zápis hovorí: „Nájdite element PARAM, ktorý má potomka PARAM_NAME s hodnotou Typ displeje, a upravte jeho hodnotu VAL.“ Takto cielite presne na požadovaný parameter bez ohľadu na jeho pozíciu vo feede.

Rozdiel medzi XML a CSV pri spracovaní zanorenosti#

Vlastnosť XML feed CSV feed Zobrazenie v Mergade
Spracovanie zanorenosti Áno, nativne. Nie, Mergado ju simuluje. Áno, prostredníctvom stromovej štruktúry.
Zobrazenie vzťahov Pomocou tagov a odsadenia. Pomocou názvov stĺpcov. Pomocou odsadenia na stránkach Elementy a Produkty.
Zápis cesty Pomocou tagov. `Rodič Potomok`.

Zatiaľ čo XML vyjadruje zanorenie pomocou značiek a vnorených tagov, CSV používa zápis cesty s oddeľovačom |. Mergado obe štruktúry zjednocuje a umožňuje s nimi pracovať rovnakým spôsobom.

Zhrnutie#

Zanorenosť je základný princíp práce s dátami v Mergado Editore. Umožňuje rozpoznať, ako spolu hodnoty jednotlivých elementov súvisia, a vďaka tomu presne cieliť pravidlá aj výbery.

Správne pochopenie zanorenosti je kľúčom k efektívnej práci s parametrami, dopravcami, variantmi a ďalšími viacnásobnými štruktúrami. Či už pracujete s XML alebo CSV feedom, Mergado dokáže zanorenie zobraziť, zachovať a využiť pri všetkých typoch úprav.

FAQ#

Čo je zanorenosť elementu?#

Zanorenosť je vlastnosť elementu, ktorá určuje, že sa nachádza vnútri iného elementu. Tento vzťah vytvára hierarchiu dát – napríklad element PARAM (rodič) môže obsahovať názvy a hodnoty parametrov (PARAM_NAME a VAL), ktoré sú jeho potomkami. Pojmy zanorený a vnorený znamenajú to isté.

Na čo zanorenosť slúži?#

Zanorenosť pomáha udržať logickú a zrozumiteľnú štruktúru dát. Vďaka nej možno jednoznačne priradiť hodnoty k ich kontextu – napríklad že parameter „Barva“ má hodnotu „Černá“. Umožňuje tak zjednotiť súvisiace informácie do jednej štruktúry.

Aké vzťahy sa v zanorenej štruktúre používajú?#

Zanorené elementy medzi sebou tvoria tri typy vzťahov:

  • Rodič (Parent) – element, ktorý obsahuje iné elementy.
  • Potomok (Child) – element, ktorý je vnútri iného elementu.
  • Súrodenci (Siblings) – elementy, ktoré majú rovnakého rodiča.

Príklad: v ceste PARAM | VAL je PARAM rodič a VAL jeho potomok.

Ako vyzerá zanorený element v XML?#

V XML sa zanorenie vyjadruje vnorenými tagmi. Príklad:

<PARAM>
<PARAM_NAME>Barva</PARAM_NAME> <VAL>Černá</VAL> </PARAM>

Element PARAM je rodičovský, PARAM_NAME a VAL sú jeho potomkovia.

Ako Mergado zobrazuje zanorené elementy?#

Mergado Editor zobrazuje elementy v stromovej hierarchii, ktorá zodpovedá štruktúre XML feedu. Zanorené elementy sú odsadené zľava voči svojmu rodičovi. Zanorenie môžete vidieť napríklad na stránkach Produkty a Elementy. Nový zanorený element možno vytvoriť kliknutím na ikonu „+“ pri rodičovskom elemente.

Ako sa zanorenie zapisuje v Element-Path?#

Zanorenie sa zapisuje pomocou zvislej čiary | medzi názvami elementov. Príklad:

PARAM | VAL

Tento zápis znamená, že VAL je potomok elementu PARAM. Je nutné zachovať medzery pred a za zvislou čiarou.

  • Správne: PARAM | VAL
  • Chybne: PARAM|VAL.

Ako sa zanorenie vyjadruje v CSV formáte?#

Formát CSV nevie hierarchiu vyjadriť nativne, preto Mergado zanorenie simuluje pomocou zápisu rodič | potomok. Napríklad PARAM | PARAM_NAME a PARAM | VAL vyjadrujú rovnaký vzťah ako v štruktúre XML.

Ktoré typy súborov vedia pracovať so zanorenosťou?#

So zanorenosťou pracujú prirodzene formáty XML a JSON. CSV formát zanorenie nativne nevie, ale Mergado Editor mu v tom pomáha práve pomocou zápisu rodič | potomok.

Aký je maximálny počet úrovní zanorenia?#

Na hĺbku zanorenia neexistuje teoretické obmedzenie. V praxi sa Mergado stretlo s až deviatimi úrovňami zanorenia, napríklad pri feedoch vo formáte Upgates.

Ako presne cieliť na hodnotu zanoreného elementu?#

Na presné cielenie sa používa podmienka v ceste. Príklad:

PARAM { PARAM_NAME = "Typ displeje" } | VAL

Tento zápis hovorí: „Nájdite element PARAM, ktorý má potomka PARAM_NAME s hodnotou Typ displeje, a pracujte s jeho elementom VAL.“ Tento spôsob je najspoľahlivejší, pretože funguje bez ohľadu na poradie elementov vo feede.

Ako cieliť, keď je element viacnásobný aj zanorený?#

Pokiaľ je element viacnásobný (napr. PARAM sa opakuje viackrát), je nutné použiť podmienku. Cesta PARAM | VAL bez podmienky cieli na všetky hodnoty, ale presné cielenie zaistí zápis:
PARAM { PARAM_NAME = "Barva" } | VAL

Prečo je cielenie cez potomka istejšie než pomocou @@POSITION?#

Cielenie cez potomka (napr. PARAM_NAME = "Barva") je istejšie, pretože vyberie správnu hodnotu bez ohľadu na jej pozíciu v zozname. Atribút @@POSITION sa odkazuje iba na poradie, takže pokiaľ sa poradie parametrov líši medzi produktmi, môže viesť k chybnému výsledku.

Prečo je práca so zanorenosťou dôležitá?#

Väčšina komplexných dát, ako sú parametre, doprava alebo varianty, je zanorená. Správne pochopenie zanorenosti umožňuje pracovať s dátami presne, vytvárať spoľahlivé pravidlá a udržovať feed logicky štruktúrovaný a prehľadný.


4. Viacnásobnosť elementov#

Čo znamená viacnásobný element#

Viacnásobný element je taký element, pri ktorom existuje viac hodnôt s rovnakým názvom. Z pohľadu štruktúry feedu to znamená, že v rámci jedného produktu sa daný element vyskytuje opakovane – napríklad pri obrázkoch, parametroch alebo variantoch.

Viacnásobnosť umožňuje zjednotiť viac príbuzných hodnôt pod jeden názov elementu, a nie je teda nutné vytvárať nové elementy pre každú hodnotu zvlášť.

S viacnásobnými elementmi sa stretnete najčastejšie pri:

  • URL adresách obrázkov (napr. IMGURL_ALTERNATIVE),
  • parametroch produktov (PARAM),
  • doprave (DELIVERY),
  • kategóriách,
  • variantoch produktov.

Príklad v XML štruktúre:

<IMGURL_ALTERNATIVE>url1.jpg</IMGURL_ALTERNATIVE>
<IMGURL_ALTERNATIVE>url2.jpg</IMGURL_ALTERNATIVE>

V tomto prípade je element IMGURL_ALTERNATIVE viacnásobný, pretože má viac hodnôt.

Rozdiel medzi jednoduchým a viacnásobným elementom#

Vlastnosť Jednoduchý element Viacnásobný element
Počet hodnôt Iba jedna hodnota. Viac hodnôt s rovnakým názvom.
Pozícia hodnoty Vždy rovná 1. Každá hodnota má vlastnú pozíciu (2, 3 …).
Zápis cesty Nie je nutné uvádzať pozíciu. Na cielenie na konkrétnu hodnotu je nutné použiť podmienku alebo atribút @@POSITION.
Príklady ITEM_ID, DESCRIPTION, PRICE_VAT IMAGE, PARAM, DELIVERY, IMGURL_ALTERNATIVE

Pri zanorených štruktúrach (napr. PARAM) sa viacnásobnosť vzťahuje k rodičovskému elementu. Potomkovia (typicky PARAM_NAME a VAL) zostávajú jednoduchí, pretože v rámci jedného rodiča majú vždy len jednu hodnotu.

Ako Mergado pracuje s pozíciami#

Každá hodnota elementu má svoje poradové číslo čiže pozíciu (1, 2, 3 …). Pozíciu možno využiť na presné zacielenie konkrétnej hodnoty v rámci elementu.

Na prácu s pozíciami sa v Mergade používa špeciálny atribút @@POSITION. Ten je súčasťou jazyka Element-Path a umožňuje určiť, na ktorú pozíciu chcete v elemente mieriť.

Príklad:

<IMAGE>url1.jpg</IMAGE> @@POSITION = 1
<IMAGE>url2.jpg</IMAGE> @@POSITION = 2
<IMAGE>url3.jpg</IMAGE> @@POSITION = 3

Pokiaľ chcete pracovať s tretím obrázkom, použijete cestu:

  • IMAGES | IMAGE { @@POSITION = 3 }

Tento zápis hovorí: „Pracujem s elementom IMAGE na tretej pozícii.“

Obmedzenie atribútu @@POSITION#

Atribút @@POSITION sa odkazuje iba na poradie, nie na obsah. Pokiaľ sa poradie hodnôt líši naprieč produktmi, rovnaké pozície nemusia zodpovedať rovnakým informáciám.

Príklad:

  • Prvý produkt má parametre 1. Materiál, 2. Objem.
  • Druhý produkt má 1. Materiál, 2. Dekor.

Cesta PARAM { @@POSITION = 2 } | VAL potom pri druhom produkte odkáže na Dekor, nie Objem.

Bezpečnejšie je preto cieliť podľa názvu:

  • PARAM { PARAM_NAME = “Objem” } | VAL

Ako pracovať s viacnásobnosťou v Mergado Editore#

Zistenie a použitie pozície#

  1. Na stránke Elementy otvorte daný element a uvidíte všetky jeho hodnoty s ich pozíciami.
  2. V pravidlách alebo výberoch môžete cieliť:
    • podľa pozície, napr. IMGURL_ALTERNATIVE { @@POSITION > 1 },
    • alebo podľa rozsahu pozícií, napr. IMGURL_ALTERNATIVE { @@POSITION >= 3 AND @@POSITION <= 8 }.
  3. Pokiaľ chcete pracovať s hodnotou namiesto pozície, použite atribút @@VALUE, napríklad:
    • CATEGORY { @@VALUE != "Hračky" }
  4. Tento zápis vyberie všetky hodnoty elementu CATEGORY, ktoré nie sú rovné „Hračky“.

Kedy pozíciu nemusíte uvádzať#

Pozíciu v ceste nie je nutné zapisovať v nasledujúcich prípadoch:

  1. Jednoduché elementy
    1. Majú vždy len jednu hodnotu, takže pozícia = 1. Cesta ITEM_ID je ekvivalentná zápisu ITEM_ID { @@POSITION = 1 }.
  2. Čítanie z viacnásobného elementu bez upresnenia
    1. Pokiaľ v pravidle čítate z viacnásobného elementu bez podmienky, Mergado automaticky použije prvú hodnotu.
    2. Napríklad: pri použití %PARAM | VAL% si Mergado vezme prvú hodnotu.
  3. Cielenie na všetky hodnoty
    1. Pokiaľ chcete spracovať všetky výskyty elementu, použite iba názov elementu bez podmienky.
    2. Napr. IMAGES | IMAGE pracuje so všetkými obrázkami.
    3. Pri zápise majte na pamäti, že sa zmena vykoná pri všetkých hodnotách vyhovujúcich danej ceste.

Zhrnutie#

Viacnásobnosť umožňuje uchovávať a spracovávať viac hodnôt rovnakého typu v rámci jedného elementu. Pre presnú prácu je vhodné cieliť na konkrétne hodnoty pomocou podmienok alebo špeciálnych atribútov. Vďaka tomu zaistíte, že úpravy prebehnú správne a nedotknú sa ostatných dát.

FAQ#

Čo je viacnásobný element?#

Viacnásobný element je element, ktorý má viac hodnôt s rovnakým názvom. V praxi to znamená, že sa v rámci jedného produktu vyskytuje opakovane – napríklad pri obrázkoch, parametroch, doprave alebo kategóriách.
Typickými viacnásobnými elementmi sú IMAGE, PARAM, DELIVERY alebo CATEGORY.

Aký je rozdiel medzi jednoduchým a viacnásobným elementom?#

  • Jednoduchý element obsahuje jednu hodnotu a má pozíciu vždy rovnú 1.
  • Viacnásobný element môže mať viac hodnôt, z ktorých každá má vlastnú pozíciu (2, 3, 4 …).

Príklad:
<IMAGE>url1.jpg</IMAGE>
<IMAGE>url2.jpg</IMAGE>

Element IMAGE je viacnásobný, pretože sa vyskytuje viackrát a obsahuje viac hodnôt.

Na čo viacnásobnosť slúži?#

Viacnásobnosť umožňuje zjednotiť viac príbuzných hodnôt pod jeden názov elementu. Nie je teda nutné vytvárať nové elementy pre každú hodnotu zvlášť. Napríklad všetky alternatívne obrázky produktu možno zapísať ako opakujúce sa elementy IMGURL_ALTERNATIVE.

Ktoré elementy sú typicky viacnásobné?#

Viacnásobnosť sa najčastejšie vyskytuje pri elementoch, ktoré opisujú opakujúce sa vlastnosti produktov, napríklad:

  • URL adresy obrázkov (IMGURL_ALTERNATIVE),
  • parametre produktov (PARAM),
  • dopravu (DELIVERY),
  • kategórie,
  • varianty produktov.

Ako Mergado pracuje s pozíciami hodnôt?#

Každá hodnota elementu má svoju pozíciu, teda poradové číslo (1, 2, 3 …). Pozíciu možno využiť na presné cielenie na konkrétnu hodnotu v rámci elementu. Na to slúži špeciálny atribút @@POSITION. Príklad:
IMAGES | IMAGE { @@POSITION = 3 }

Tento zápis znamená: „Pracujem s elementom IMAGE na tretej pozícii.“

Čo znamená atribút @@POSITION a ako sa používa?#

@@POSITION určuje poradie hodnoty vnútri viacnásobného elementu. Používa sa v podmienkach na cielenie na konkrétnu pozíciu alebo rozsah pozícií. Príklad:
IMGURL_ALTERNATIVE { @@POSITION > 1 }

Tento zápis cieli na všetky alternatívne obrázky okrem prvého. Je však potrebné mať na pamäti, že @@POSITION pracuje iba s poradím, nie s obsahom. Pokiaľ sa poradie líši medzi produktmi, môže cieliť na nesprávnu hodnotu.

Čo je atribút @@VALUE a kedy ho použiť?#

@@VALUE predstavuje obsah hodnoty elementu a umožňuje cieliť podľa hodnoty namiesto pozície. Používa sa najmä pri elementoch bez potomkov, napríklad CATEGORY alebo IMGURL_ALTERNATIVE. Príklad:
CATEGORY { @@VALUE != "Hračky" }

Tento zápis vyberie všetky kategórie okrem „Hračky“.

Ako cieliť na hodnoty viacnásobných elementov v Element-Path?#

Cielenie sa vykonáva pomocou podmienok v zložených zátvorkách { }. V nich možno používať atribúty @@POSITION, @@VALUE alebo výrazy z jazyka MQL.
Cielenie na všetky hodnoty:
IMAGES | IMAGE

  • Spracuje všetky hodnoty (url1, url2, url3 …).

Cielenie na konkrétne hodnoty alebo rozsah pozícií:
IMAGES | IMAGE { @@POSITION IN (3;4) }

  • Cieli na tretí a štvrtý obrázok.

Ako zistiť pozície hodnôt v Mergado Editore?#

Na stránke Elementy možno pri každom elemente zobraziť všetky jeho hodnoty vrátane ich pozícií. Tento prehľad pomáha lepšie porozumieť štruktúre viacnásobných dát a uľahčuje cielenie v pravidlách.

Kedy nie je nutné pozíciu v ceste uvádzať?#

Pozíciu nie je nutné uvádzať v týchto prípadoch:

  • Jednoduché elementy – majú vždy jednu hodnotu (pozícia = 1). ITEM_ID je ekvivalentné ITEM_ID { @@POSITION = 1 }.
  • Čítanie z viacnásobného elementu bez podmienky – Mergado automaticky použije prvú hodnotu. Napr. %PARAM | VAL% vezme prvú hodnotu.
  • Cielenie na všetky hodnoty – stačí uviesť názov elementu bez podmienky, napr. IMAGES | IMAGE.

Aký je rozdiel medzi cielením podľa pozície a podľa hodnoty?#

  • @@POSITION pracuje s poradím hodnoty.
  • @@VALUE pracuje s obsahom hodnoty.

Pokiaľ sa poradie hodnôt v rámci produktov líši, je bezpečnejšie použiť @@VALUE, pretože cieli priamo na obsah.

Aký je problém cielenia pomocou @@POSITION?#

@@POSITION sa odkazuje iba na poradie. Pokiaľ majú produkty parametre v inom poradí, môže cesta zacieliť na nesprávnu hodnotu. Bezpečnejšie je použiť cielenie podľa názvu potomka, napríklad:
PARAM { PARAM_NAME = "Objem" } | VAL

Ako pracovať s viacnásobnými elementmi v pravidlách a výberoch?#

Práca s viacnásobnými elementmi závisí od toho, či pravidlo z elementu číta, alebo do neho zapisuje.
Čítanie:

  • Pokiaľ cesta vedie k viacerým hodnotám, Mergado použije prvú z nich.
  • Ak chcete čítať inú hodnotu, je nutné cestu upresniť podmienkou.

Zápis:

  • Pokiaľ pravidlo zapisuje do viacnásobného elementu, zmena sa vykoná vo všetkých hodnotách, ktoré zodpovedajú zadanej ceste.
  • Ak chcete zapisovať iba do konkrétnej hodnoty, je nutné cestu obmedziť pomocou podmienky.
  • Pokiaľ podmienka obsahuje operátor = alebo spojku AND, Mergado vytvorí chýbajúcu štruktúru automaticky.

Prečo je dôležité rozlišovať viacnásobnosť?#

Viacnásobnosť určuje, že element môže obsahovať viac hodnôt rovnakého typu. Porozumenie tomuto princípu je zásadné pre správne nastavenie pravidiel, výberov aj presné cielenie na konkrétne dáta v rámci feedu.


5. Práca s viacnásobnými elementmi v Mergado pravidlách#

Viacnásobné elementy sa v Mergado Editore správajú odlišne než elementy jednoduché. Každý produkt môže obsahovať viac hodnôt rovnakého elementu, a preto je potrebné vedieť, ako s nimi pracujú pravidlá – ako hodnoty čítajú, zapisujú a ako ich správne cieliť.

Ako pravidlá čítajú a zapisujú viacnásobné hodnoty#

Viacnásobný element je taký, ktorý má viac než jednu hodnotu pri jednom produkte. Pravidlá v Mergade (napríklad Prepísať, Hromadné skopírovanie hodnôt, Výpočet) majú v takom prípade definované určité východiskové správanie.

Čítanie z elementov a premenných#

Pokiaľ pravidlo číta hodnotu z viacnásobného elementu, ktorého cesta vedie k viacerým hodnotám, Mergado automaticky použije iba prvú hodnotu.

Toto správanie platí, pokiaľ sa číta pomocou zápisu so znakom percenta % (napríklad %PARAM | VAL%).

Príklad:

<VAL>Černá</VAL> <VAL>XL</VAL>

Pokiaľ pravidlo číta z cesty PARAM | VAL, Mergado vezme iba prvú hodnotu „Černá“. Pri jednoduchých elementoch (napr. ITEM_ID) sa táto logika nijako neprejavuje, pretože existuje vždy len jedna hodnota.

Zapisovanie do elementov#

Pokiaľ pravidlo zapisuje do viacnásobného elementu bez ďalšieho upresnenia, Mergado zapíše hodnotu do všetkých výskytov daného elementu.

Príklad:

  • Ak použijete v pravidle Prepísať cestu IMGURL_ALTERNATIVE a zadáte novú hodnotu novy_obrazek.jpg,

Mergado prepíše všetky existujúce hodnoty tohto elementu.

Ak chcete zapisovať iba do konkrétnej hodnoty, je nutné cestu upresniť pomocou podmienok.
Napríklad cesta

  • PARAM { PARAM_NAME = “Barva” } | VAL

zapíše hodnotu iba do parametrov „Barva“. Pokiaľ sa v jednom produkte parameter „Barva“ vyskytuje viackrát, zmena sa vykoná pri všetkých týchto výskytoch.

Kedy použiť podmienku a kedy špeciálny atribút#

Na presné cielenie na konkrétnu hodnotu viacnásobného elementu je potrebné doplniť podmienku. Podmienky fungujú ako filter – určujú, na ktoré hodnoty alebo pozície sa pravidlo aplikuje. Zapisujú sa do zložených zátvoriek { } a môžu obsahovať buď zanorený element, alebo špeciálny atribút.

1. Použitie zanoreného elementu v podmienke#

Tento spôsob je najspoľahlivejší, pretože cieli na hodnotu podľa jej obsahu, nie podľa poradia.

Príklad:
Chceme prepísať hodnotu elementu VAL, ktorá patrí k parametru „Barva“:

  • PARAM { PARAM_NAME = “Barva” } | VAL

Tento zápis hovorí: „Nájdite všetky elementy PARAM, ktoré majú potomka PARAM_NAME s hodnotou Barva, a pri nich upravte hodnotu elementu VAL.“

Tento spôsob funguje bez ohľadu na poradie elementov vo feede a je preto odporúčaný vo väčšine prípadov.

2. Použitie špeciálneho atribútu @@POSITION#

Atribút @@POSITION slúži na cielenie na hodnotu podľa jej poradia.
Každá hodnota elementu má svoju pozíciu – prvá = 1, druhá = 2 atď.

Príklad:

IMGURL_ALTERNATIVE { @@POSITION > 1 }

Tento zápis cieli na všetky obrázky okrem prvého.

Vhodné použitie:
Pri elementoch, kde poradie hodnôt zodpovedá významu (napr. alternatívne obrázky).

Slabina:
Cielenie pomocou @@POSITION sa odkazuje iba na pozíciu, nie na obsah. Pokiaľ sa poradie hodnôt mení naprieč produktmi, nemusí byť výsledok konzistentný.

3. Použitie špeciálneho atribútu @@VALUE#

Atribút @@VALUE odkazuje na skutočnú hodnotu elementu, nie na jeho poradie. Je vhodný tam, kde sa poradie mení alebo nie je podstatné.

Príklad:

  • CATEGORY { @@VALUE != “Hračky” }

Tento zápis cieli na všetky hodnoty elementu CATEGORY okrem „Hračky“.

@@VALUE sa používa predovšetkým pri elementoch, ktoré nemajú potomkov (napr. CATEGORY, IMGURL_ALTERNATIVE). Pri rodičovských elementoch, ktoré samy o sebe nenesú hodnotu (napr. PARAM), nedáva jeho použitie zmysel.

Praktické ukážky ciest#

Pravidlá v Mergade pri práci s elementmi (čítanie/zápis) používajú jazyk Element-Path, ktorý umožňuje presne zacieliť na hodnoty, z ktorých chcete čítať, alebo do ktorých chcete zapisovať.

Cielenie na hodnotu konkrétneho parametra#

  • PARAM { PARAM_NAME = “Barva” } | VAL

Tento zápis číta alebo zapisuje hodnotu VAL pri parametri, ktorého názov je Barva.

Mergado to interpretuje nasledovne:
„Nájdite element PARAM, ktorý má potomka PARAM_NAME s hodnotou Barva, a upravte hodnotu jeho potomka VAL.“

Cielenie na hodnotu vo variantoch#

Cesta môže kombinovať viac úrovní zanorenia a viacnásobnosti. Príklad pre prácu s druhým variantom, ktorý obsahuje parameter „Velikost“:

  • VARIANTS | VARIANT { @@POSITION = 2 } | PARAMETERS | PARAMETER { NAME = “Velikost” } | VALUE

Tento zápis hovorí: „Nájdite druhý variant produktu, v ktorom parameter Velikost nesie určitú hodnotu, a s touto hodnotou pracujte.“

Pridávanie nových hodnôt pomocou pravidiel#

Pri zápise do viacnásobných alebo zanorených elementov platí jedno dôležité pravidlo:
Pokiaľ element, na ktorý cielite, ešte neexistuje, Mergado ho vytvorí.

To znamená, že všetko, čo je uvedené v podmienke (napr. PARAM_NAME = "Barva") a v ceste s operátorom =, sa vytvorí automaticky.

Príklad pridania novej štruktúrovanej hodnoty – tzv. „flagu“:

Element: FLAGS | FLAG { CODE = “action” } | ACTIVE

Nová hodnota: 0

Pokiaľ flag s kódom action neexistuje, Mergado vytvorí nový FLAG (novú pozíciu) s elementom CODE = "action" a pridá k nemu element ACTIVE s hodnotou 0.

Tento mechanizmus sa používa pri pridávaní nových variantov, dopravcov, parametrov či ďalších štruktúrovaných dát.

Prehľad pravidiel, ktorých sa viacnásobnosť týka#

Opisované správanie čítania a zápisu viacnásobných hodnôt sa týka týchto pravidiel:

Pravidlo Vie čítať Zapisuje
Prepísať :white_check_mark: :white_check_mark:
Nájsť a nahradiť :white_check_mark: :white_check_mark:
Hromadné prepisovanie podľa výberov :white_check_mark: :white_check_mark:
Hromadné prepisovanie podľa hodnôt :white_check_mark: :white_check_mark:
Hromadné skopírovanie hodnôt :white_check_mark: (Zdrojový element) :white_check_mark:
Nastaviť parametre produktov :white_check_mark: :x:
Nastavenie ceny dopravy :white_check_mark: :x:
Nastaviť UTM parametre :white_check_mark: :x:
Výpočet :white_check_mark: :white_check_mark:
Import dátového súboru :x: :white_check_mark:

Zhrnutie#

Pri práci s viacnásobnými elementmi v pravidlách Mergado Editora je najdôležitejšie vedieť, s akou hodnotou pracujete. Bez upresnenia pravidlo vždy číta prvú hodnotu a zapisuje do všetkých zodpovedajúcich hodnôt. Pomocou podmienok, špeciálnych atribútov @@POSITION a @@VALUE alebo kombinácie viacerých zanorených úrovní môžete presne určiť, čo pravidlo upravuje.

Správne napísaná cesta k elementu vám zaistí, že sa úpravy vykonajú presne tam, kde majú – a zostanú bezpečné aj v prípade, že sa štruktúra feedu v čase mení.

FAQ#

Aký je základný princíp práce pravidiel s viacnásobnými elementmi?#

Pravidlá v Mergado Editore pracujú s viacnásobnými elementmi podľa dvoch princípov – čítanie hodnôt a zapisovanie hodnôt. Jednoduché elementy majú vždy len jednu hodnotu, takže pravidlo s nimi pracuje priamo. Viacnásobné elementy však môžu mať pri jednom produkte viac hodnôt, a preto je nutné určiť, s ktorou z nich má pravidlo pracovať. Bez upresnenia pravidlá čítajú prvú hodnotu a zapisujú do všetkých hodnôt.

Ako Mergado číta hodnoty z viacnásobných elementov?#

Pokiaľ cesta vedie k viacerým hodnotám, Mergado automaticky použije iba prvú hodnotu. Toto správanie platí pri všetkých pravidlách, ktoré čítajú hodnotu elementu pomocou zápisu so znakom % – napríklad %PARAM | VAL%. Príklad:
<VAL>Černá</VAL> <VAL>XL</VAL>

Cesta PARAM | VAL vráti hodnotu „Černá“, pretože ide o prvý výskyt.

Ako Mergado zapisuje do viacnásobných elementov?#

Pokiaľ pravidlo zapisuje do viacnásobného elementu bez ďalšieho upresnenia, Mergado zapíše novú hodnotu do všetkých jeho výskytov (pozícií). Ak chcete cieliť iba na konkrétnu hodnotu, je nutné cestu upresniť pomocou podmienky. Príklad: PARAM { PARAM_NAME = "Barva" } | VAL

Tento zápis upraví hodnotu elementu VAL iba pri parametroch „Barva“. Pokiaľ má produkt viac parametrov „Barva“, zmena sa vykoná pri všetkých týchto výskytoch.

Prečo je potrebné používať podmienky pri viacnásobných elementoch?#

Podmienky fungujú ako filter, ktorý určuje, na ktoré hodnoty sa pravidlo vzťahuje. Bez podmienky by pravidlo zasiahlo všetky hodnoty elementu. Podmienky sa zapisujú do zložených zátvoriek { } a môžu obsahovať buď zanorený element, alebo špeciálny atribút.

Ako používať zanorený element v podmienke?#

Cielenie pomocou zanoreného elementu je najspoľahlivejšie, pretože sa opiera o obsah, nie o poradie.
Príklad: PARAM { PARAM_NAME = "Barva" } | VAL

Tento zápis znamená:
„Nájdite element PARAM, ktorý má potomka PARAM_NAME s hodnotou Barva, a upravte hodnotu jeho potomka VAL.“ Tento spôsob funguje bez ohľadu na poradie elementov a je odporúčaný v praxi.

Kedy použiť atribút @@POSITION?#

Atribút @@POSITION slúži na cielenie podľa poradia hodnoty v rámci elementu. Každá hodnota má svoju pozíciu – prvá = 1, druhá = 2 atď. Príklad: IMGURL_ALTERNATIVE { @@POSITION > 1 }

Cieli na všetky obrázky okrem prvého. Používajte ho tam, kde poradie hodnôt zodpovedá významu (napr. alternatívne obrázky). Slabina: @@POSITION sa odkazuje iba na poradie, nie na obsah. Pokiaľ sa poradie hodnôt líši medzi produktmi, výsledky nemusia byť konzistentné.

Kedy použiť atribút @@VALUE?#

Atribút @@VALUE odkazuje na skutočnú hodnotu elementu a umožňuje cieliť podľa obsahu namiesto poradia. Používa sa hlavne pri elementoch, ktoré nemajú potomkov (napr. CATEGORY, IMGURL_ALTERNATIVE). Príklad: CATEGORY { @@VALUE != "Hračky" }

Tento zápis vyberie všetky hodnoty elementu CATEGORY okrem „Hračky“. @@VALUE je vhodný tam, kde sa poradie hodnôt môže meniť alebo nie je podstatné.

Ako kombinovať podmienky a špeciálne atribúty?#

V jednej ceste možno kombinovať viac podmienok a atribútov. Podmienky môžu obsahovať logické operátory (AND, OR) alebo dotazy v jazyku MQL. Príklad:
VARIANTS | VARIANT { @@POSITION = 2 } | PARAMETERS | PARAMETER { NAME = "Velikost" } | VALUE

Znamená: „Nájdite druhý variant produktu, ktorý obsahuje parameter Velikost, a pracujte s jeho hodnotou VALUE.“

Ako Mergado vytvára nové hodnoty pri zápise?#

Pokiaľ element, na ktorý cielite, neexistuje, Mergado ho pri zápise automaticky vytvorí. To platí pre všetky podmienky obsahujúce operátor = alebo spojku AND.
Príklad:
FLAGS | FLAG { CODE = "action" } | ACTIVE

Pokiaľ flag „action“ neexistuje, Mergado vytvorí nový element FLAG s potomkom CODE = "action" a pridá k nemu ACTIVE s hodnotou 0.
Tento mechanizmus umožňuje automaticky pridávať nové parametre, varianty alebo štruktúrované dáta.

Ako predísť chybám pri práci s viacnásobnými hodnotami?#

  • Overte, či element, s ktorým pracujete, skutočne obsahuje viac hodnôt.
  • Používajte podmienky { } na presné cielenie.
  • Vyhnite sa spoliehaniu na @@POSITION, pokiaľ sa poradie hodnôt líši medzi produktmi.
  • Pred zápisom skontrolujte, či cesta neovplyvní viac hodnôt, než je žiaduce.
  • Využívajte nástroj Cesta k elementu na overenie, kam pravidlo cieli.

6. Atribúty v elementoch#

Čo sú atribúty#

Atribút je súčasť elementu, ktorá upresňuje jeho význam alebo vlastnosť. Zatiaľ čo element nesie samotné dáta, atribút poskytuje doplňujúcu informáciu o týchto dátach. Atribúty tak fungujú ako rozšírenie hodnôt elementu a často pomáhajú opísať podrobnosti, ktoré by sa inak do štruktúry nevmestili.

Ako sa atribúty zapisujú v XML#

V XML je atribút vždy uvedený v otváracom tagu elementu a má svoj názov a hodnotu. Hodnota atribútu musí byť uzavretá v úvodzovkách alebo apostrofoch.

Príklad XML zápisu:

<person gender=“female”>
<firstname>Pavlína</firstname> <lastname>Nováková</lastname> </person>

V tomto príklade je

  • person element,
  • gender je atribút
  • female hodnota atribútu.

Atribút gender teda upresňuje informáciu o osobe – že ide o ženu.

Rovnakú informáciu je teoreticky možné vyjadriť aj inak, pomocou samostatného zanoreného elementu:

<person>
<gender>female</gender>
<firstname>Pavlína</firstname> <lastname>Nováková</lastname> </person>

Oba zápisy sú správne – líšia sa iba štruktúrou dát. Použitie atribútov sa obvykle volí tam, kde dopĺňajú alebo upresňujú význam hlavného elementu.

Na čo atribúty slúžia#

V produktových feedoch majú atribúty praktický význam – umožňujú presnejšie opísať produkt alebo jeho vlastnosti. Niektoré reklamné portály alebo e-shopové platformy priamo vyžadujú, aby určité dáta boli uvedené formou atribútov.

Príklady využitia atribútov v rôznych systémoch#

  • Ceneo
    • Používa atribúty na opis výrobcu alebo iných vlastností, napríklad:
      • <attrs>
        <a name=“Producent”>Nike</a> </attrs>
  • Heureka (Dostupnostný feed)
    • Vyžaduje atribúty na doplnenie časových údajov:
      • <delivery_time orderDeadline=“2023-04-17 12:00”>2023-04-26 12:00</delivery_time>
  • Shoptet
    • Používa atribúty napríklad pri obrázkoch:
      • <IMAGE description=“Columbia Squish N’ Stuff (Barva Zelená, Velikost L)”>https://cdn.myshoptet.com/obrazek.jpg</IMAGE>
  • Google Nákupy
    • Nepoužíva rozlíšenie medzi elementmi a atribútmi, ale všetky označuje ako atribúty v rámci svojho systému.

Správne použitie atribútov v Mergade vám umožní splniť požiadavky týchto portálov a zaistiť, že váš feed bude prijatý bez chýb.

Ako s atribútmi pracovať v Mergado Editore#

Mergado Editor je navrhnutý tak, aby vedel s atribútmi plnohodnotne pracovať. Atribúty sú jedným zo základných typov elementov a je s nimi možné pracovať v celom prostredí Editora – v pravidlách, výberoch, premenných aj MQL dotazoch.

Identifikácia atribútov#

Atribúty v Mergade poznáte podľa zavináča @ na začiatku názvu.

  • @id – atribút identifikátora produktu,
  • @description – atribút opisujúci obrázok,
  • @availability – atribút opisujúci stav alebo dostupnosť.

Okrem bežných atribútov existujú aj špeciálne atribúty, ktoré začínajú dvoma zavináčmi @@. Tie sa používajú v jazyku Element-Path a slúžia na presné cielenie – typicky @@POSITION (pozícia hodnoty) a @@VALUE (hodnota elementu).

Tip! Špeciálne atribúty slúžia iba na cielenie na hodnoty elementov a bežných atribútov v rámci element-path a nikdy sa neexportujú do samotného feedu, na rozdiel od bežných atribútov, ktoré vo feede nájdete.

Cielenie na atribúty pomocou Element-Path#

Na prácu s atribútmi sa používa jazyk Element-Path. Cesta k atribútu sa zapisuje pomocou zavináča @ pred názvom atribútu.

Príklad cielenia podľa atribútu:

1. V pravidle cielime na element CODE jedného konkrétneho variantu, ktorý v atribúte 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 vyzerať nasledovne: VARIANTS | VARIANT { @id ~ “idvariant3” } | CODE.

2. Na stránke Produkty hľadáme produkt s východiskovou kategóriou s atribútom @id = 123:

<CATEGORIES>
<DEFAULT_CATEGORY id=“123”>Spotrebice</DEFAULT_CATEGORY> <CATEGORY id=“456”>Elektronika</CATEGORY> </CATEGORIES>

Podmienka pre výber bude vyzerať nasledovne: CATEGORIES | DEFAULT_CATEGORY | @id = “123”.

Prakticky: vytvorenie, prepísanie a odstránenie atribútu#

Vytvorenie atribútu#

Atribút možno vytvoriť priamo na stránke Elementy.

  1. Otvorte stránku Elementy a zvoľte možnosť Nový element.
  2. Zadajte názov a zvoľte typ atribut.
  3. Pokiaľ do názvu pridáte zavináč @, Editor automaticky rozpozná, že chcete vytvoriť atribút.
  4. Ak chcete vytvoriť zanorený atribút, použite ikonu „+“ pri rodičovskom elemente a zvoľte typ atribut.

Po vytvorení je atribút prázdny (nemá hodnoty). Naplníte ho napríklad pomocou pravidla Prepísať.

Prepísanie hodnoty atribútu#

Atribúty možno upravovať rovnako ako bežné elementy – napríklad pravidlom Prepísať.

Cielenie:
V poli Element uveďte cestu k atribútu, napr.:

IMAGE | @description
SHOPITEM | @id
PARAM { @@VALUE = “Barva” } | @lang

Postup:
Na stránke Pravidla vytvorte nové pravidlo typu Prepísať, vyberte výber produktov, zadajte cestu k atribútu a do poľa Nový obsah uveďte novú hodnotu.

Odstránenie atribútu#

Atribúty možno odstrániť dvoma spôsobmi:

  1. Manuálne – na stránke Elementy možno ručne vytvorené atribúty zmazať pomocou ikony koša. Zmažú sa tak hodnoty aj samotný atribút
  2. Pomocou pravidiel – pri atribútoch, ktoré pochádzajú zo vstupného alebo výstupného formátu, je možné odstrániť iba hodnoty, a to pravidlom (napr. Prepísať s prázdnou hodnotou).

Atribúty definované cieľovým formátom (tzv. systémové) nemožno premenovať ani odstrániť, pretože sú súčasťou špecifikácie výstupného feedu.

Zhrnutie#

Atribúty dopĺňajú význam elementov a umožňujú detailnejšie opísať dáta vo feede. V Mergado Editore s nimi môžete pracovať rovnako ako s bežnými elementmi – vytvárať ich, meniť ich hodnoty aj cieliť na ne v pravidlách.

Správna práca s atribútmi je dôležitá najmä pre feedy, ktoré smerujú na portály vyžadujúce presne definovanú štruktúru, ako sú Google, Heureka, Ceneo alebo Shoptet.

FAQ#

Čo je atribút v kontexte XML a produktových feedov?#

Atribút je súčasť elementu, ktorá upresňuje jeho význam alebo vlastnosť. Zatiaľ čo element nesie samotné dáta, atribút poskytuje doplňujúcu informáciu o týchto dátach – napríklad jednotku, stav alebo typ hodnoty. V XML je atribút vždy uvedený v otváracom tagu elementu a má svoj názov aj hodnotu, ktorá musí byť uzavretá v úvodzovkách alebo apostrofoch. Príklad:
<person gender="female">
<firstname>Pavlína</firstname> <lastname>Nováková</lastname> </person>

Tu je person element, gender je atribút a jeho hodnota je "female".

Na čo atribúty slúžia v produktových feedoch?#

Atribúty majú praktický význam – umožňujú presnejšie opísať produkt alebo jeho vlastnosti. Niektoré reklamné portály a e-shopové platformy vyžadujú, aby určité údaje boli uvedené práve formou atribútov.
Príklady využitia:

  • Ceneo: používa atribúty na určenie výrobcu (<a name="Producent">Nike</a>).
  • Heureka (Dostupnostný feed): atribúty dopĺňajú časové údaje (<delivery_time orderDeadline="2023-04-17 12:00">…</delivery_time>).
  • Shoptet: atribút description opisuje obrázky (<IMAGE description="Columbia Squish N’ Stuff…">…</IMAGE>).

Používanie atribútov v Mergade zaistí, že feed splní požiadavky cieľového systému a bude prijatý bez chýb.

Ako sa atribúty zapisujú v XML?#

Atribút je súčasťou otváracej značky elementu: <element atribut="hodnota">obsah elementu</element>

Hodnota atribútu musí byť uzavretá v úvodzovkách alebo apostrofoch. Príklad: <product available="true">Zimní bunda</product>

Tu atribút available dopĺňa informáciu o dostupnosti produktu.

Ako Mergado Editor identifikuje atribúty?#

Atribúty v Mergado Editore poznáte podľa zavináča @ na začiatku názvu.

  • @id – identifikátor hodnoty elementu,
  • @description – popis hodnoty elementu,
  • @lang – jazyk hodnoty elementu.

Okrem týchto bežných atribútov existujú tiež špeciálne atribúty, ktoré začínajú dvoma zavináčmi @@ (napr. @@POSITION, @@VALUE). Tie sa používajú výhradne v jazyku Element-Path a nikdy sa neexportujú do výstupného feedu.

Ako cieliť na atribúty pomocou jazyka Element-Path?#

Na prácu s atribútmi (čítanie, úpravu, filtrovanie) sa používa jazyk Element-Path. Cesta k atribútu sa zapisuje pomocou zavináča @ pred jeho názvom. Príklady cielenia:

Pri filtrovaní produktov:
Nájdite produkty, ktorých id hlavnej kategórie sa rovná 123:

  • CATEGORIES | DEFAULT_CATEGORY | @id = "123"

V pravidle pri cielení na konkrétny element:
Nájdite CODE variantu, ktorého atribút @id obsahuje text idvariant3:

  • VARIANTS | VARIANT { @id ~ "idvariant3" } | CODE

Atribúty možno používať aj v podmienkach (v zátvorkách { }), kde filtrujú konkrétne hodnoty.

Aký je rozdiel medzi bežnými a špeciálnymi atribútmi?#

V Mergade rozlišujeme dva typy atribútov:

Typ atribútu Zápis Použitie
Štandardné atribúty (XML) @id, @description, @availability Sú súčasťou XML štruktúry a určujú význam elementu.
Špeciálne atribúty (Element-Path) @@POSITION, @@VALUE Slúžia na cielenie v podmienkach pri práci s viacnásobnými elementmi. Nie sú súčasťou výstupného feedu.

Na čo slúžia špeciálne atribúty @@POSITION a @@VALUE?#

@@POSITION – zodpovedá poradiu hodnoty elementu, na ktorý sa viaže. Používa sa hlavne pri viacnásobných elementoch (napr. obrázky, varianty). Príklad:

IMGURL_ALTERNATIVE { @@POSITION > 1 }

  • Tento zápis cieli na všetky alternatívne obrázky okrem prvého.

@@VALUE – predstavuje obsah hodnoty elementu. Používa sa pri elementoch, kde sa poradie hodnôt mení alebo nie je dôležité. Príklad:

CATEGORY { @@VALUE != "Hračky" }

  • Tento zápis vyberie všetky kategórie okrem „Hračky“.

Ako vytvoriť nový atribút v Mergade?#

Nový atribút možno vytvoriť na stránke Elementy.

  1. Kliknite na Nový element.
  2. Zadajte názov atribútu začínajúci znakom @.
  3. Mergado automaticky rozpozná, že vytvárate atribút.
  4. Ak chcete vytvoriť zanorený atribút, použite ikonu „+“ pri rodičovskom elemente.

Novo vytvorený atribút je prázdny a možno ho naplniť pomocou pravidla Prepísať.

Ako upraviť alebo prepísať hodnotu atribútu?#

Atribúty možno prepisovať rovnako ako bežné elementy. V pravidle Prepísať stačí v poli Element uviesť cestu k atribútu. Príklady:

  • IMAGE | @description
  • SHOPITEM | @id
  • PARAM { @@VALUE = “Barva” } | @value

Do poľa Nová hodnota potom zadajte požadovanú novú hodnotu.

Ako odstrániť atribút?#

Atribúty možno odstrániť dvoma spôsobmi:

  • Manuálne: pri ručne vytvorených atribútoch na stránke Elementy kliknutím na ikonu koša pri atribúte.
  • Pomocou pravidla: napr. pravidlom Prepísať s prázdnou hodnotou.

Atribúty, ktoré sú súčasťou zdrojového alebo cieľového formátu, nemožno odstrániť, iba zmazať ich hodnoty.

Aký je vzťah medzi atribútmi a elementmi v Mergade?#

V Mergade sú atribúty považované za špeciálny typ elementov. Možno ich používať v pravidlách, výberoch, premenných aj automatizáciách rovnako ako bežné elementy. Rozdiel spočíva iba v spôsobe zápisu (so znakom @) a v ich umiestnení v rámci štruktúry feedu.

Prečo je dôležité pracovať s atribútmi správne?#

Správna práca s atribútmi je kľúčová pre feedy smerujúce na portály, ktoré vyžadujú presnú dátovú štruktúru – ako Google, Heureka, Ceneo alebo Shoptet. Chybne uvedené alebo chýbajúce atribúty môžu spôsobiť zamietnutie feedu alebo neúplné zobrazenie produktov. Vďaka nástrojom Mergado Editora možno atribúty pridávať, meniť aj kontrolovať s vysokou presnosťou.


7. Jazyk Element-Path#

Čo je Element-Path#

Element-Path je jazyk vyvinutý spoločnosťou Mergado, ktorý slúži na zapisovanie ciest k elementom a ich hodnotám. Pomocou Element-Path určujete, na ktoré hodnoty vo feede chcete cieliť – či ich budete čítať, alebo do nich zapisovať.

Mergado Editor pracuje s elementmi rovnako ako XML feed – v stromovej štruktúre. Aby bolo možné v tejto štruktúre presne určiť, s ktorými dátami chcete pracovať, je potrebné poznať ich cestu. Práve to umožňuje jazyk Element-Path.

Čo znamená „cesta k elementu“#

Cesta k elementu je zápis, ktorý vyjadruje, kde sa v dátovej štruktúre nachádza hodnota (hodnoty), s ktorou chcete pracovať. Pomocou tejto cesty Mergadu oznamujete, že chcete buď:

  1. hodnotu prečítať – teda použiť ju ako vstup (napr. v pravidle alebo výbere), alebo
  2. hodnotu zmeniť – teda do nej zapísať nové dáta.

Príklad:

  • Ak chcete cieliť na hodnotu elementu NAME, cesta bude jednoducho: NAME

Mergado Editor si túto cestu prečíta a použije hodnotu uvedenú v elemente NAME.

Poznámka:
V praxi sa bežne používa pojem „cesta k elementu“, aj keď presnejšie povedané ide vždy o „cestu k hodnote elementu“. Pri jednoduchých elementoch sa však oba pojmy významovo zhodujú.

Zanorené cesty#

Zanorenosť (vnorenosť) sa v jazyku Element-Path zapisuje pomocou zvislej čiary |, ktorá vyjadruje vzťah rodiča a potomka.

  • Syntax:
    Ak chcete cieliť na zanorený element, pridáte pred jeho názov rodiča a oddelíte ich zvislou čiarou.
  • Čítanie:
    Zvislú čiaru čítame ako „a pod ním zanorený“ alebo „a jeho potomok“.

Príklad:
Cesta

PARAM | VAL

  • znamená: „Nájdite element PARAM a pod ním zanorený element VAL.“
  • Dôležité pravidlo: Medzera pred a za zvislou čiarou musí byť zachovaná – zápis PARAM | VAL je správne, PARAM|VAL nie.

Slovná zásoba a syntax Element-Path#

Element-Path má svoju vlastnú „slovnú zásobu“ a pravidlá syntaxe.
Základnými prvkami jazyka sú:

  1. Názvy elementov – všetky názvy, ktoré sa v projekte vyskytujú.
  2. Zvislá čiara (|) – označuje zanorenie (rodič → potomok).
  3. Podmienky ({ }) – filtrujú hodnoty podľa zadaných kritérií.
  4. Špeciálne atribúty (@@…) – umožňujú cieliť napr. podľa pozície (@@POSITION), hodnoty (@@VALUE), alebo na poslednú hodnotu (@@MAX_POSITION).
  5. MQL (Mergado Query Language) – môžete ho používať v podmienkach na pokročilé filtrovanie (napr. s operátormi AND, OR a pod.).

Nápoveda pri písaní ciest#

V Mergado Editore je práca s Element-Path uľahčená niekoľkými funkciami:

  • Našepkávanie: Editor ponúka dostupné elementy, operátory aj hodnoty.
  • Validácia: Pokiaľ sa napísaný element v projekte nenachádza, zvýrazní sa červene; validná cesta je zvýraznená zelene.
  • Našepkávanie dopravcov a parametrov: Pri niektorých typoch feedov Editor ponúka konkrétne názvy (napr. dopravcu, parametre) a automaticky doplní celú cestu.

Kde sa Element-Path používa#

Cesty k elementom sa používajú takmer vo všetkých častiach Mergado Editora – všade tam, kde je potrebné určiť, s akými dátami pracovať.

  • V pravidlách – napr. Prepísať, Nájsť a nahradiť, Hromadné skopírovanie hodnôt, Výpočet. Cesta k elementu určuje, s akými hodnotami má pravidlo pracovať.
  • Vo výberoch – pri vytváraní výberov na stránke Produkty alebo pri písaní vlastného MQL dotazu.
  • V premenných – na čítanie hodnôt z konkrétnych elementov a zápis hodnôt do elementov.
  • V importoch – v elementoch importných súborov, ktoré sa spracovávajú cez pravidlo Import dátového súboru.
  • Na stránke Produkty – na radenie, filtrovanie a prehľad hodnôt elementov.
  • V automatizácii – pri nastavovaní pravidiel a podmienok pre automatické akcie.

Prakticky: práca so zápisom a podmienkami#

Element-Path je kľúčový najmä pri zanorených a viacnásobných elementoch. Správne zapísanie cesty rozhoduje o tom, ktoré hodnoty Mergado číta alebo upravuje.

1. Základná cesta bez podmienky#

Pokiaľ použijete zanorenú cestu bez podmienky, Mergado zacieli na všetky hodnoty v danej štruktúre.

Príklad:

  • PARAM | VAL

Táto cesta označuje všetky hodnoty VAL všetky výskyty elementu PARAM. Pokiaľ má produkt parametre Barva, Velikost a Materiál, cesta PARAM | PARAM_NAME vedie k trom hodnotám. Pri čítaní Mergado použije prvú z nich; pri zápise sa zmena prejaví pri všetkých zodpovedajúcich hodnotách.

2. Presné cielenie pomocou podmienok#

Podmienky sa zapisujú do zložených zátvoriek { } a vždy sa viažu k elementu, ktorý stojí naľavo. Slúžia na obmedzenie cielenia na konkrétne hodnoty.

Cielenie na konkrétnu hodnotu zanoreného elementu

Ak chcete pracovať iba s parametrom „Barva“, použite podmienku, ktorá filtruje cez zanorený element PARAM_NAME:

PARAM { PARAM_NAME = “Barva” } | VAL

Tento zápis znamená: „Nájdite element PARAM, ktorý má potomka PARAM_NAME s hodnotou Barva, a v ňom upravte hodnotu elementu VAL.“

Tento spôsob je najbezpečnejší, pretože funguje bez ohľadu na poradie parametrov vo feede.

Cielenie na pozíciu viacnásobného elementu

Pomocou špeciálneho atribútu @@POSITION môžete cieliť na hodnotu podľa jej pozície. Každá hodnota má vlastné poradové číslo (1, 2, 3 …).

Príklad:

  • IMAGES | IMAGE { @@POSITION = 3 }

Táto cesta cieli na tretí obrázok. Je vhodná tam, kde má poradie hodnôt pevný význam. Je však potrebné pamätať, že @@POSITION nerieši obsah – pokiaľ sa poradie líši naprieč produktmi, môže dôjsť k nechcenému výberu inej hodnoty.

Cielenie na hodnotu viacnásobného elementu

Atribút @@VALUE odkazuje na hodnotu elementu.
Používa sa pri elementoch, ktoré nemajú potomkov, a umožňuje cieliť podľa konkrétnej hodnoty bez ohľadu na jej pozíciu.

Príklad:

CATEGORIES | CATEGORY { @@VALUE != “Hračky” }

Tento zápis vyberie všetky CATEGORY, ktorých hodnota sa nerovná „Hračky“.
Podmienky možno kombinovať aj s MQL operátormi (AND, OR, NOT a pod.), čo umožňuje veľmi presné filtrovanie.

Zhrnutie#

Element-Path je základný jazyk pre prácu s dátami v Mergado Editore.
Vďaka nemu možno presne určiť, odkiaľ hodnoty pochádzajú, kam sa majú zapisovať a v akom kontexte sa nachádzajú.

Správne pochopenie štruktúry a syntaxe Element-Path vám umožní tvoriť bezpečné pravidlá, efektívne výbery a automatizácie, ktoré spoľahlivo pracujú aj s komplexnými XML a CSV feedmi.

FAQ#

Čo je jazyk Element-Path a na čo slúži?#

Element-Path je jazyk vyvinutý spoločnosťou Mergado. Slúži na zapisovanie ciest k elementom a ich hodnotám – teda na určenie, s akými dátami vo feede chcete pracovať. Pomocou Element-Path môžete:

  • čítať hodnoty z feedu (napr. pre výbery, výpočty alebo podmienky),
  • zapisovať nové hodnoty (napr. pomocou pravidiel ako Prepísať alebo Nájsť a nahradiť)..

Čo znamená „cesta k elementu“?#

Cesta k elementu určuje, kde sa nachádza konkrétna hodnota v dátovej štruktúre feedu. Pomocou cesty oznamujete Mergadu, na aký prvok má pravidlo alebo výber cieliť.
Príklad: NAME

  • Tento zápis hovorí, že chceme pracovať s hodnotou elementu NAME.

Poznámka: Technicky vzaté ide o „cestu k hodnote elementu“, pretože cieľom je vždy konkrétna hodnota, nie samotný tag elementu.

Ako sa zapisuje zanorenie v Element-Path?#

Zanorenie vyjadruje vzťah rodiča a potomka a zapisuje sa pomocou zvislej čiary |.
Syntax: RODIČ | POTOMOK

  • Čítanie: „Nájdite element RODIC a pod ním zanorený element POTOMEK.“
  • Dôležité: Medzera pred a po zvislej čiare je povinná.
    • Správne: PARAM | VAL
    • Chybne: PARAM|VAL

Príklad:
<PARAM>
<PARAM_NAME>Barva</PARAM_NAME> <VAL>Černá</VAL> </PARAM>

Cesta k hodnote VAL je PARAM | VAL.

Aká je slovná zásoba a syntax Element-Path?#

Element-Path má svoju vlastnú „gramatiku“. Zahŕňa tieto základné prvky:

Prvok Popis Príklad
Názov elementu Označuje konkrétny prvok vo feede. ITEM_ID
**Zvislá čiara ( )** Vyjadruje zanorenie (rodič → potomok).
Podmienky ( { } ) Slúžia ako filter pre presné cielenie. `PARAM { PARAM_NAME = “Barva” }
Špeciálne atribúty ( @@ ) Cielia podľa pozície (@@POSITION) alebo hodnoty (@@VALUE). IMGURL_ALTERNATIVE { @@POSITION = 2 }
MQL syntax Umožňuje logické operácie (AND, OR, NOT…) v rámci podmienok. PARAM { PARAM_NAME = "Barva" AND VAL = "Černá" }

Aké nástroje pomáhajú pri písaní ciest v Mergade?#

Mergado Editor ponúka pokročilé funkcie pre prácu s Element-Path:

  • Našepkávanie: Editor ponúka dostupné elementy, atribúty aj operátory.
  • Validácia: Pokiaľ element neexistuje, zvýrazní sa červene; validné cesty sa zvýraznia zelene.
  • Našepkávanie parametrov a dopravcov: Editor automaticky dopĺňa konkrétne názvy a vytvára kompletné cesty.

Kde všade sa Element-Path používa?#

Cesty k elementom sa používajú naprieč celým Mergado Editorom – všade tam, kde je potrebné presne určiť, s akými dátami pracujete.

  • V pravidlách: napr. Prepísať, Nájsť a nahradiť, Výpočet, Hromadné skopírovanie hodnôt.
  • Vo výberoch: v Onelineri aj v MQL dotazoch.
  • V premenných: pri čítaní alebo zápise hodnôt.
  • V importoch: v hlavičkách importných súborov.
  • Na stránke Produkty: na zobrazenie, radenie a filtrovanie hodnôt.
  • V automatizácii: pri nastavovaní pravidiel a podmienok automatických akcií.

Čo sú podmienky a ako fungujú?#

Podmienky slúžia ako filter, ktorý obmedzuje, na ktoré hodnoty má cesta mieriť. Zapisujú sa do zložených zátvoriek { } a viažu sa vždy k elementu naľavo od nich. Príklad:
PARAM { PARAM_NAME = "Barva" } | VAL

Tento zápis vyberie iba hodnoty VAL pri parametroch, kde je PARAM_NAME rovné „Barva“. Podmienky sú nevyhnutné pri viacnásobných elementoch, kde sa rovnaké názvy môžu opakovať (napr. rôzne parametre pri jednom produkte).

Ako sa dajú v podmienkach používať logické operátory MQL?#

Element-Path podporuje celú slovnú zásobu jazyka MQL (Mergado Query Language). V podmienkach možno používať logické operátory ako AND, OR, NOT, IN, CONTAINS a pod.
Príklad zložitej podmienky:
VARIANTS | VARIANT { PARAMETERS | PARAMETER { NAME = "Velikost" } | VALUE = "M" AND PARAMETERS | PARAMETER { NAME = "Materiál" } | VALUE = "Bavlna" } | STOCK | WAREHOUSES | WAREHOUSE | NAME

Tento zápis vyberie názov skladu (NAME) pri variantoch, ktoré majú veľkosť „M“ a materiál „Bavlna“.

Aké špeciálne atribúty Element-Path používa?#

Špeciálne atribúty začínajú vždy dvoma zavináčmi @@ a používajú sa v podmienkach. Slúžia na jednoduchšie cielenie pri viacnásobných elementoch.

Atribút Popis Príklad použitia
@@POSITION Cieli podľa poradia hodnoty (1, 2, 3…). `VARIANTS
@@VALUE Cieli podľa obsahu hodnoty. CATEGORY { @@VALUE != "Hračky" }

@@POSITION sa používa tam, kde poradie hodnôt zodpovedá významu (napr. obrázky).
@@VALUE je istejší tam, kde sa poradie môže meniť.

Ako sa používajú podmienky s viacerými úrovňami zanorenia?#

Podmienky možno kombinovať aj medzi rôznymi úrovňami elementov. Príklad viacúrovňového zanorenia:
VARIANTS | VARIANT { @@POSITION = 2 } | PARAMETERS | PARAMETER { NAME = "Velikost" } | VALUE

Tento zápis cieli na hodnotu parametra „Velikost“ pri druhom variante produktu.

Aké sú najčastejšie chyby pri písaní ciest?#

  • Vynechané medzery okolo zvislej čiary (|).
  • Nesprávne umiestnenie zložených zátvoriek { }.
  • Chybné názvy elementov (neexistujúce v projekte).
  • Použitie @@POSITION pri elementoch, kde sa poradie líši medzi produktmi.
  • Cesta končiaca rodičom namiesto potomka (napr. PARAM namiesto PARAM | VAL).

Mergado Editor chyby automaticky detekuje v poli na zadanie cesty – nevalidná cesta sa zobrazí červene.

Ako Element-Path pomáha s presnosťou a bezpečnosťou pravidiel?#

Správne používanie Element-Path zaisťuje, že pravidlá, výbery aj automatizácie pracujú iba s relevantnými dátami. Vďaka presne definovanej ceste možno:

  • bezpečne čítať a upravovať hodnoty,
  • cieliť len na vybrané podmienky,
  • predísť chybám spôsobeným zmenou štruktúry feedu.

8. Podmienky v ceste k elementu#

Čo sú podmienky#

Podmienky v ceste k elementu fungujú ako filter, ktorý umožňuje cieliť iba na vybrané hodnoty a tým spresniť prácu s dátami. Sú neoddeliteľnou súčasťou jazyka Element-Path a používajú sa najmä pri práci s viacnásobnými a zanorenými elementmi.

Podmienky sa vždy viažu k elementu, ktorý stojí naľavo od nich, a môžu filtrovať iba hodnoty jeho zanorených potomkov.

Ako sa podmienky zapisujú#

Podmienky sa zapisujú do zložených zátvoriek { }, ktoré sa viažu k príslušnému elementu.

Základná šablóna zápisu:

Element { Potomok Operátor Hodnota } | Ďalší_potomok

Príklad:

  • PARAM { PARAM_NAME = “Barva” } | VAL

Táto cesta hovorí: „Nájdite element PARAM, ktorý má potomka PARAM_NAME s hodnotou Barva, a v ňom zacieľte na zanorený element VAL.“

Pravidlá zápisu#

  • Medzery sú dôležité – nemožno ich vynechať. Platí to ako vnútri podmienky, tak pred a po nej (napr. PARAM { PARAM_NAME = "Barva" } | VAL je správne, PARAM{PARAM_NAME="Barva"}|VAL je chybne).
  • Zátvorky { } sa na českej klávesnici píšu pomocou klávesovej skratky Alt + B (option + 9) (ľavá) a Alt + N (option + 0) (pravá).
  • Podmienky môžu obsahovať ľubovoľne zložité výrazy, vrátane operátorov AND, OR, NOT, alebo aj viac úrovní zanorenia.

Použitie MQL v podmienkach#

Podmienky v Element-Path podporujú plnú syntax Mergado Query Language (MQL). To znamená, že do nich môžete písať rovnaké výrazy ako do formulára pre vlastné dotazy.

Napríklad:

  • PARAM { PARAM_NAME = “Velikost” AND VAL = “M” }

alebo zložitejšiu variantu s viacerými úrovňami:

  • VARIANT { PARAMETERS | PARAM { PARAM_NAME = “Materiál” AND VAL = “Bavlna” } }

Tento prístup umožňuje kombinovať podmienky a cieliť na veľmi presne definované skupiny hodnôt.

Na čo podmienky slúžia#

Podmienky spresňujú cestu k elementu a umožňujú cieliť na konkrétne podskupiny hodnôt. Používajú sa predovšetkým na:

  1. Cielenie na konkrétne hodnoty viacnásobných elementov.
    1. Napríklad pri práci s parametrami, dopravcami alebo obrázkami, kde by cesta bez podmienky viedla k viacerým hodnotám. Podmienka zaistí, že sa pravidlo použije iba na tú správnu.
  2. Štruktúrové pridávanie hodnôt
    1. Pri zápise do feedu platí, že všetko, čo je uvedené v podmienke s operátorom = alebo AND, Mergado vytvorí, pokiaľ to ešte neexistuje.
    2. Vďaka tomu možno podmienkami vytvárať aj nové zanorené štruktúry (napr. nový parameter alebo flag).
  3. Použitie špeciálnych atribútov
    1. Podmienky slúžia tiež na prácu so špeciálnymi atribútmi ako @@POSITION (poradie hodnoty) a @@VALUE (hodnota elementu).

Kedy majú a nemajú zmysel#

Kedy majú zmysel#

Podmienky majú zmysel pri viacnásobných elementoch, kde sa jeden typ informácie môže opakovať viackrát.

Najčastejšie sa používajú pri práci s:

  • parametrami (PARAM),
  • dopravou (DELIVERY),
  • variantmi (VARIANT),
  • obrázkami (IMAGE),
  • kategóriami (CATEGORY).

Príklad:

  • PARAM { PARAM_NAME = “Barva” } | VAL

Tento zápis zaistí, že sa zmena vykoná iba pri parametri „Barva“, bez ohľadu na jeho pozíciu vo feede. V tomto prípade je to bezpečnejšie než použitie atribútu @@POSITION, ktorý sa môže líšiť naprieč produktmi.

Kedy nemajú zmysel#

  1. Jednoduché elementy
    1. Pri jednoduchých elementoch (napr. ITEM_ID, PRICE_VAT) má element vždy jedinú hodnotu, takže podmienka je zbytočná.
  2. Cielenie na všetky hodnoty
    1. Pokiaľ chcete pracovať so všetkými hodnotami elementu, podmienku nepoužívajte. Napríklad: IMAGES | IMAGE
    2. Táto cesta cieli na všetky obrázky daného produktu.

Prakticky: filtrovanie hodnôt pomocou podmienky#

Príklad cesty#

  • PARAM { PARAM_NAME = “Barva” } | VAL

Ako Mergado túto cestu vyhodnocuje#

  1. PARAM – označuje rodičovský, viacnásobný element.
  2. { PARAM_NAME = "Barva" } – je podmienka, ktorá hovorí: „Zaujímajú nás iba tie elementy PARAM, ktorých potomok PARAM_NAME má hodnotu Barva.“
  3. | VAL – určuje, že pracujeme s potomkom VAL, teda s konkrétnou hodnotou parametra.

Výsledkom je, že Mergado vyberie iba tie hodnoty VAL, ktoré patria k parametru s názvom „Barva“.

Porovnanie s cielením podľa pozície#

Podmienka

  • PARAM { PARAM_NAME = “Barva” } | VAL

je spoľahlivejšia než zápis

  • PARAM { @@POSITION = 2 } | VAL

Pretože cielenie podľa názvu parametra funguje bez ohľadu na jeho poradie v rámci produktu. Pri parametroch s rôznym poradím sa tak predíde nesprávnemu priradeniu hodnôt.

Zhrnutie#

Podmienky v jazyku Element-Path sú kľúčovým nástrojom pre presné a bezpečné cielenie na konkrétne hodnoty. Umožňujú filtrovať dáta, vytvárať nové štruktúry a pracovať s viacnásobnými aj zanorenými elementmi bez rizika chybného prepisu. Správne používanie podmienok vám pomôže predísť chybám, udržať poriadok v pravidlách a zaistiť, že Mergado upraví vždy len tie dáta, ktoré skutočne chcete meniť.

FAQ#

Čo sú podmienky v jazyku Element-Path a prečo sa používajú?#

Podmienky sú filter, ktorý spresňuje cestu k elementu. Pomocou nich určujete, na ktoré konkrétne hodnoty má Mergado cieliť – teda ktoré čítať, upraviť alebo vytvoriť. Používajú sa hlavne pri viacnásobných a zanorených elementoch, kde sa hodnoty opakujú alebo zdieľajú rovnaký názov. Podmienky pomáhajú:

  • presne cieliť na vybranú hodnotu (napr. konkrétny parameter),
  • zabrániť chybám pri prepise nesúvisiacich dát,
  • vytvárať nové štruktúry priamo v pravidlách.

Ako sa podmienky zapisujú (syntax)?#

Podmienky sa zapisujú do zložených zátvoriek { }, ktoré sa viažu k elementu stojacemu naľavo od nich. Základný tvar zápisu:

  • ELEMENT { POTOMEK = "Hodnota" } | DALŠÍ_POTOMEK

Príklad:

  • PARAM { PARAM_NAME = "Barva" } | VAL

Tento zápis hovorí: „Nájdite element PARAM, ktorého zanorený element PARAM_NAME má hodnotu Barva, a v ňom zacieľte na VAL.“

Dôležité zásady zápisu:

  • Medzery sú povinné – nemožno ich vynechať ani vnútri podmienky, ani pred a po nej.
  • Zátvorky { } sa na českej klávesnici píšu kombináciou Alt + B (ľavá) a Alt + N (pravá).
  • Podmienky môžu obsahovať viac kritérií prepojených logickými operátormi AND, OR, NOT.

Ako funguje väzba podmienok v ceste?#

Podmienka sa vzťahuje vždy k elementu naľavo od nej. Filtrovať možno iba cez potomkov (zanorené elementy) tohto elementu.
Príklad:
VARIANT { PARAMETERS | PARAMETER { NAME = "Velikost" } | VALUE = "M" } | STOCK

Tento zápis znamená: „Nájdite variant, ktorý má parameter s názvom Velikost a hodnotou M, a v ňom pracujte s elementom STOCK.“

Ako sa podmienky využívajú pri práci s viacnásobnými elementmi?#

Podmienky sú kľúčové pri práci s elementmi, ktoré sa v rámci jedného produktu opakujú (napr. PARAM, DELIVERY, CATEGORY, IMAGE, VARIANT).
Bez podmienky:

  • PARAM | VAL - cieli na všetky hodnoty VAL v rámci všetkých parametrov. Pri čítaní Mergado použije prvú hodnotu, pri zápise zmení všetky.

S podmienkou:

  • PARAM { PARAM_NAME = "Barva" } | VAL - cieli iba na hodnotu VAL, ktorá patrí k parametru „Barva“. Tento zápis je bezpečný a jednoznačný – nezáleží na poradí elementov.

Aké operátory možno v podmienkach použiť?#

Podmienky podporujú všetky bežné operátory z jazyka MQL (Mergado Query Language).
Vďaka tomu možno vytvárať aj veľmi presné a komplexné filtre.

Typ operátora Príklad Význam
= PARAM_NAME = "Barva" Rovnosť hodnoty
!= @@VALUE != "Hračky" Nerovnosť
> / < @@POSITION > 1 Porovnanie číselných hodnôt
~ @id ~ "variant" Obsahuje
AND PARAM_NAME = "Barva" AND VAL = "Černá" A zároveň
OR @@VALUE = "XL" OR @@VALUE = "L" Alebo
NOT NOT (VAL = "M") Negácia

Ako sa v podmienkach používa MQL syntax?#

Do podmienok možno písať celé MQL dotazy – jazyk Mergado Query Language je plne integrovaný do Element-Path. Tým je možné kombinovať viacnásobné filtre, rôzne úrovne zanorenia aj zložitú logiku.
Príklad komplexnej podmienky:
VARIANTS | VARIANT { PARAMETERS | PARAMETER { NAME = "Materiál" AND VAL = "Bavlna" } AND PARAMETERS | PARAMETER { NAME = "Velikost" AND VAL = "M" } } | PRICE

Tento zápis vyberie cenu (PRICE) pri variante, ktorý má parametre Materiál = Bavlna a Velikost = M.

Čo keď element nemá zanorených potomkov?#

Pri elementoch, ktoré nemajú žiadne zanorené elementy, sa v podmienkach používajú špeciálne atribúty:

  • @@POSITION – cieli podľa poradia hodnoty,
  • @@VALUE – cieli podľa obsahu hodnoty.

Príklady:

  • IMAGES | IMAGE { @@POSITION = 3 } – tretí obrázok,
  • CATEGORY { @@VALUE != "Hračky" } – všetky kategórie okrem „Hračky“.

Aký je rozdiel medzi podmienkou a cielením podľa pozície?#

Cielenie podľa pozície (@@POSITION) odkazuje iba na poradie hodnoty. Cielenie pomocou podmienky naopak zohľadňuje obsah.
Porovnanie:

  • PARAM { @@POSITION = 2 } | VAL – cieli na druhý parameter v poradí.
  • PARAM { PARAM_NAME = "Barva" } | VAL – cieli na parameter s názvom „Barva“, bez ohľadu na jeho pozíciu.

Cielenie podľa obsahu je spoľahlivejšie, pretože funguje aj vtedy, keď sa poradie hodnôt líši medzi produktmi.

Ako podmienky pomáhajú pri zápise nových dát?#

Pri zápise dát do feedu platí pravidlo: Pokiaľ podmienka pri elemente obsahuje iba operátory = a AND s pod-elementmi, ktorých hodnoty neexistujú, tak Mergado tieto hodnoty automaticky vytvorí.
Tento princíp umožňuje tzv. štruktúrové pridávanie hodnôt – napríklad pridanie nového parametra, variantu alebo flagu.
Príklad:
FLAGS | FLAG { CODE = "action" } | ACTIVE

Pokiaľ flag s kódom action neexistuje, Mergado ho automaticky vytvorí a nastaví ACTIVE na 0.

Kedy má zmysel podmienky používať?#

Podmienky majú zmysel najmä pri viacnásobných alebo zanorených elementoch, ako sú:

  • PARAM alebo g:attribute_detail (parametre produktu),
  • DELIVERY (doprava),
  • VARIANT (varianty),
  • IMAGE (obrázky),
  • CATEGORY (kategórie).

Napríklad cesta:
PARAM { PARAM_NAME = "Barva" } | VAL

Zaistí, že sa úprava týka iba hodnoty parametra „Barva“, nie iných parametrov.

Kedy podmienky nemajú zmysel?#

Podmienky nemajú zmysel v týchto prípadoch:

  • Jednoduché elementy – majú iba jednu hodnotu (ITEM_ID, PRICE_VAT).
  • Cielenie na všetky hodnoty – pokiaľ chcete pracovať so všetkými výskytmi elementu (napr. IMAGES | IMAGE), nie je potrebné podmienku pridávať.

Ako overiť správnosť cesty s podmienkou?#

V Mergado Editore je k dispozícii nástroj Cesta k elementu, ktorý umožňuje:

  • otestovať zápis cesty (vrátane podmienok),
  • zobraziť, kam cesta skutočne vedie,
  • validovať, či elementy v ceste existujú.

Okrem toho pole na zápis cesty ponúka:

  • našepkávanie (elementov, atribútov, operátorov, hodnôt),
  • farebné zvýraznenie syntaxe,
  • varovanie pri neplatnej alebo neúplnej ceste.

Aké sú najčastejšie chyby pri písaní podmienok?#

  • Chýbajúce medzery okolo zložených zátvoriek { }.
  • Použitie podmienky pri elemente, ktorý žiadnych potomkov nemá.
  • Zámena názvu elementu (napr. PARAM_NAME vs. NAME).
  • Vynechané zložené zátvorky alebo zlé umiestnenie podmienky v ceste.
  • Použitie @@POSITION namiesto názvu elementu tam, kde sa poradie líši.

Mergado na tieto chyby automaticky upozorňuje zvýraznením chybného zápisu.


9. Špeciálne atribúty v Element-Path#

Čo sú špeciálne atribúty#

Špeciálne atribúty predstavujú pokročilý nástroj v Mergado Editore a jazyku Element-Path. Slúžia na presné cielenie pri viacnásobných elementoch a umožňujú rozlišovať medzi jednotlivými hodnotami daného elementu.

Každý špeciálny atribút:

  • začína dvoma zavináčmi (@@),
  • viaže sa na konkrétny element,
  • používa sa vnútri podmienok v cestách k elementom (v zložených zátvorkách { }),
  • rozširuje možnosti cielenia a filtrovania v Element-Path.

V Mergade sú v súčasnosti k dispozícii tieto špeciálne atribúty:

  1. @@POSITION – pozícia hodnoty,
  2. @@VALUE – obsah hodnoty.
  3. @@MAX_POSITION – číslo určujúce najvyššiu pozíciu hodnôt daného elementu pri konkrétnom produkte.

@@POSITION – cielenie podľa pozície#

Atribút @@POSITION zodpovedá poradiu hodnoty elementu, na ktorý sa viaže. Umožňuje cieliť na konkrétnu pozíciu alebo rozsah pozícií vnútri viacnásobného elementu.

  • Každá hodnota má svoju pozíciu, vyjadrenú prirodzeným číslom (1, 2, 3 …).
  • Pri jednoduchých elementoch má vždy hodnota pozíciu 1.
  • Iba pri viacnásobných elementoch (IMAGE, PARAM, DELIVERY a pod.) môže byť pozícia vyššia než 1.

Príklad:

  • IMAGES | IMAGE { @@POSITION = 3 }

Čítame ako: „Nájdite element IMAGES a zacieľte na jeho potomka IMAGE s hodnotou na tretej pozícii.“

Slabina:
@@POSITION pracuje iba s poradím a nezohľadňuje obsah hodnoty. Pokiaľ sa poradie hodnôt líši naprieč produktmi, môže cielenie dopadnúť na inú hodnotu, než očakávate.

@@VALUE – cielenie podľa obsahu hodnoty#

Atribút @@VALUE reprezentuje hodnotu elementu, na ktorý sa viaže, a umožňuje cieliť podľa jej obsahu. Používa sa v podmienkach pri elementoch, ktoré nemajú potomkov (alebo tam, kde nepotrebujeme cieliť na zanorenú štruktúru).

Kedy @@VALUE použiť

  1. Pri elementoch bez potomkov – napríklad IMGURL_ALTERNATIVE, CATEGORY.
  2. Pri viacnásobných elementoch – umožňuje cieliť na hodnotu bez ohľadu na jej pozíciu.
  3. Pri meniacom sa poradí hodnôt – nahrádza menej spoľahlivé cielenie pomocou @@POSITION.

Príklad:

  • CATEGORIES | CATEGORY { @@VALUE != “Hračky” }

Tento zápis vyberie všetky kategórie okrem „Hračky“. Cielenie pomocou @@VALUE je vhodné tam, kde sa poradie hodnôt môže líšiť medzi produktmi.

@@MAX_POSITION – pomocný špeciálny atribút#

Pomocný špeciálny atribút @@MAX_POSITION predstavuje pozíciu hodnoty s najvyšším poradím daného elementu pri konkrétnom produkte. Inými slovami – označuje poslednú pozíciu, na ktorej sa daný element v rámci produktu nachádza.

Príklad:

<IMAGE>www.image1.jpg</IMAGE> …@@POSITION = 1
<IMAGE>www.image2.jpg</IMAGE> …@@POSITION = 2
<IMAGE>www.image3.jpg</IMAGE> …@@POSITION = 3

V tomto prípade je @@MAX_POSITION = 3, pretože najvyššia existujúca pozícia elementu IMAGE je práve 3. Pri rôznych produktoch môže mať rovnaký element rozdielnu hodnotu @@MAX_POSITION, pretože počet hodnôt sa môže líšiť.

Kedy @@MAX_POSITION použiť

1. Pridávanie nových viacnásobných hodnôt

Ak chcete pridať novú hodnotu na koniec existujúcich hodnôt, aby sa žiadna neprepísala, použite konštrukciu: ELEMENT {@@POSITION = @@MAX_POSITION + 1}

Príklad:

Chcete zapísať novú URL obrázka www.image4.jpg do elementu IMAGE na ďalšiu voľnú pozíciu.

  • Použite pravidlo Prepísať
  • Do poľa Element vložte: IMAGE {@@POSITION = @@MAX_POSITION + 1}
  • Do poľa Nová hodnota zapíšeme novú url: www.image4.jpg

Výsledok:

<IMAGE>www.image1.jpg</IMAGE>
<IMAGE>www.image2.jpg</IMAGE>
<IMAGE>www.image3.jpg</IMAGE>
<IMAGE>www.image4.jpg</IMAGE>

2. Kopírovanie hodnôt na koniec existujúceho zoznamu

Pri kopírovaní hodnôt medzi viacnásobnými elementmi môžete @@MAX_POSITION využiť na kopírovanie „až na koniec“ bez prepísania pôvodných hodnôt.

Príklad:

Vo feede máme tieto dva viacná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 skopírovať všetky CONTEXT_IMAGE do IMAGE, bez toho, aby sa pôvodné obrázky prepísali.

  • Použite pravidlo Hromadné skopírovanie hodnôt
  • Do poľa Zdrojový element zadajte: CONTEXT_IMAGE
  • Do poľa Cílový element zadajte: IMAGE {@@POSITION = @@MAX_POSITION + 1}

Výsledok:

<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>

Kedy ktorý atribút použiť#

Cieľ cielenia @@POSITION (podľa pozície) @@VALUE (podľa hodnoty) Odporúčaný prístup
Obrázky alebo kategórie (bez potomkov) Vhodné, pokiaľ je poradie pevné (napr. 2. obrázok). Vhodné, pokiaľ sa poradie mení. Ľubovoľné podľa situácie
Parametre (so zanorením) Menej bezpečné – cielenie na poradie. Nevhodné, pretože rodič PARAM nemá hodnotu. Najbezpečnejšie je cieliť cez potomka (PARAM_NAME = "Barva")

Pravidlá pre voľbu:

  1. Pri jednoduchých elementoch pozíciu uvádzať nemusíte – je vždy rovná 1.
  2. Pri viacnásobných elementoch bez potomkov môžete použiť @@POSITION alebo @@VALUE.
  3. Pri zanorených štruktúrach (napr. parametre) je najbezpečnejšie použiť podmienku s názvom zanoreného elementu, napr. PARAM_NAME = "Barva".

Indexácia (#)#

Okrem špeciálnych atribútov umožňuje Element-Path tiež indexáciu, ktorá sa zapisuje pomocou znaku #. Indexácia = výskyt elementu. Zatiaľ čo @@POSITION pracuje s poradím hodnôt vnútri viacnásobného elementu (napr. 3. obrázok v IMAGE), indexácia pomocou # umožní vybrať konkrétny opakovaný výskyt rovnakého elementu (napr. druhý parameter „Barva“), aj keď sa jeho poradie naprieč produktmi líši. Indexácia rozširuje možnosti cielenia tam, kde @@POSITION nestačí.

Indexáciu je nutné použiť iba v prípadoch, keď cesta k elementu vracia viac než jednu hodnotu a špeciálny atribút @@POSITION nemožno využiť, pretože hodnoty sa pri jednotlivých produktoch nachádzajú na odlišných pozíciách.

Použitie indexácie ako náhrady za @@POSITION v situáciách, keď to nie je nevyhnutné, je nevhodné a môže viesť k degradácii výkonu.

Ako indexáciu použiť krok za krokom#

  1. Ujasnite si, ktorý výskyt chcete cieliť (1., 2., 3., …) a podľa čoho ho poznáte (napr. parameter s názvom „Barva“).
  2. Otvorte miesto, kde s dátami pracujete – indexáciu možno použiť vo výberoch aj pravidlách, v poliach pre Element-Path a tiež v MQL (Mergado Query Language).
  3. Doplňte indexáciu do cesty pomocou # v tvare: <element> #{ poradie }
  4. Uložte a aplikujte pravidlo alebo výber. Mergado potom bude pracovať iba s určeným výskytom.
  • Syntax: PARAM { NAME = "Barva" } #{ 2 } | VALUE
  • Význam: Cieli na druhý výskyt elementu PARAM | VALUE s názvom parametra „Barva“.
  • Použitie: Indexácia je vhodná najmä pri podmienených elementoch, pri ktorých nemožno použiť @@POSITION.
  • Odporúčanie: Pokiaľ funguje bežné cielenie podľa pozície, je @@POSITION rýchlejšie a prehľadnejšie.

Príklad:

Vo feede máme 2 produkty s parametrom Barva. Oba produkty majú parameter Barva 2x s rôznymi hodnotami, na rôznych pozíciá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 prípade, že chceme zacieliť práve na druhú hodnotu parametra Barva pri každom produkte, nemôžeme použiť špeciálny atribút @@POSITION, pretože hodnoty sú na rôznych pozíciách. Pomôže nám práve Indexácia.

Správny zápis cesty s použitím indexácie:

  • g:product_detail { g:attribute_name = "Barva" } #{ 2 } | g:attribute_value

Tipy pre indexáciu#

  • Kde ju použiť: vo výberoch aj pravidlách (Element-Path, prípadne aj MQL).
  • Kedy po nej siahnuť: keď potrebujete cieliť na konkrétny výskyt rovnakého elementu (napr. „druhá barva“) a @@POSITION nestačí.
  • Pri zlučovaní: indexácia vám dá kontrolu nad tým, z ktorého výskytu skladáte výslednú hodnotu.
  • Keď to nie je nutné: pokiaľ vám stačí pevné poradie hodnôt, je jednoduchšie a rýchlejšie použiť @@POSITION.

Praktické príklady použitia špeciálnych atribútov#

1. Cielenie na rozsah pozícií pomocou @@POSITION#

Cesta pre alternatívne obrázky od pozície 3 do 8:

  • IMGURL_ALTERNATIVE { @@POSITION >= 3 AND @@POSITION <= 8 }

2. Kombinácia pozície a hodnoty pre cielenie na varianty#

Cesta pre parameter „Velikost“ pri druhom variante:

  • VARIANTS | VARIANT { @@POSITION = 2 } | PARAMETERS | PARAMETER { NAME = “Velikost” } | VALUE

3. Cielenie na atribút pomocou hodnoty elementu @@VALUE#

Cesta pre atribút @value pri parametroch s hodnotou „Barva“:

  • PARAM { @@VALUE = “Barva” } | @value

V tomto prípade @@VALUE nahrádza element PARAM_NAME pre cielenie na hodnotu „Barva“.

4. Cielenie na všetky hodnoty okrem jednej#

Cesta pre kategórie okrem „Dětská hřiště“:

  • CATEGORIES | CATEGORY { @@VALUE NOT CONTAINS “Dětská hřiště” }

5. Indexácia vo výberoch – podmienka na konkrétny výskyt#

Chcete vybrať produkty, kde má parameter „Velikost“ druhý výskyt a jeho hodnota je „XL“.

Príklad podmienky (Element-Path):

  • PARAM { NAME = “Velikost” } #{ 2 } | VAL = “XL”

Tento zápis zaistí, že vyhodnocujete práve druhý výskyt parametra „Velikost“, nie ľubovoľnú hodnotu „XL“ v parametroch.

Zhrnutie#

Špeciálne atribúty rozširujú možnosti cielenia v Element-Path a umožňujú pracovať s viacnásobnými elementmi na úrovni jednotlivých hodnôt.
@@POSITION a @@MAX_POSITION cielia na poradie, @@VALUE na obsah, a indexácia # umožňuje adresovať konkrétne výskyty.

Ich správne použitie zaistí, že budete v Mergade cieliť na presné dáta a úpravy vykonáte bezpečne a kontrolovane aj v komplexných feedoch.

FAQ#

Čo sú špeciálne atribúty a prečo existujú?#

Špeciálne atribúty sú rozširujúci nástroj jazyka Element-Path, ktorý umožňuje presné cielenie pri viacnásobných elementoch. Pomáhajú rozlíšiť jednotlivé hodnoty podľa ich poradia alebo obsahu a používajú sa vnútri podmienok (v zložených zátvorkách { }).
Každý špeciálny atribút:

  • začína dvoma zavináčmi @@,
  • viaže sa na konkrétny element,
  • rozširuje možnosti cielenia a filtrovania,
  • nikdy sa neexportuje do feedu (na rozdiel od bežných XML atribútov).

V súčasnosti Mergado podporuje tieto hlavné špeciálne atribúty:

  • @@POSITION – cielenie podľa poradia,
  • @@MAX_POSITION – cielenie podľa najvyššej existujúcej pozície,
  • @@VALUE – cielenie podľa obsahu hodnoty.

Aký je rozdiel medzi špeciálnymi a bežnými XML atribútmi?#

Typ atribútu Zápis Popis
Štandardný atribút (XML) @id, @description Je súčasťou XML štruktúry a dopĺňa význam elementu.
Špeciálny atribút (Element-Path) @@POSITION, @@VALUE Patrí do jazyka Element-Path a slúži na filtrovanie a presné cielenie v podmienkach.

Bežné XML atribúty sa exportujú do výstupného feedu, zatiaľ čo špeciálne atribúty existujú iba pre internú logiku Mergada pri práci s pravidlami, výbermi alebo premennými.

Čo robí atribút @@POSITION a kedy ho použiť?#

@@POSITION cieli na poradie hodnoty elementu, ku ktorému sa vzťahuje. Každá hodnota vo feede má svoju pozíciu (1, 2, 3 …), ktorá určuje, v akom poradí sa vo viacnásobnom elemente nachádza.
Použitie:

  • Vhodné pri viacnásobných elementoch s pevným poradím (napr. obrázky, varianty).
  • Pri jednoduchých elementoch (s jedinou hodnotou) nie je potrebné – ich pozícia je vždy 1.

Príklad:

  • IMGURL_ALTERNATIVE { @@POSITION = 3 }

Tento zápis hovorí: „Pracujem s treťou hodnotou elementu IMGURL_ALTERNATIVE.″

Aká je slabina @@POSITION?#

@@POSITION nepracuje s obsahom hodnoty, iba s jej poradím. Pokiaľ sa poradie hodnôt líši naprieč produktmi, môže dôjsť k chybnému zacieleniu. Príklad problému:

  • Pri jednom produkte je pozícia 2 = „Objem“,
  • pri inom produkte je pozícia 2 = „Dekor“.

Cesta PARAM { @@POSITION = 2 } | VAL tak pri druhom produkte vyberie zlú hodnotu.

Riešenie: Použite namiesto toho cielenie podľa názvu potomka, napr.

  • PARAM { PARAM_NAME = "Objem" } | VAL

Čo robí atribút @@VALUE a kedy ho použiť?#

@@VALUE predstavuje obsah hodnoty elementu. Používa sa na filtrovanie podľa hodnoty namiesto poradia.
Vhodné použitie:

  • pri elementoch, ktoré nemajú potomkov (napr. CATEGORY, IMGURL_ALTERNATIVE),
  • pri viacnásobných elementoch s meniacim sa poradím hodnôt,
  • tam, kde chcete cieliť podľa obsahu, nie podľa pozície.

Príklad:

  • CATEGORY { @@VALUE != "Hračky" }

Tento zápis vyberie všetky hodnoty elementu CATEGORY okrem „Hračky“. Oproti @@POSITION je táto metóda spoľahlivejšia, pretože funguje bez ohľadu na zmenu poradia.

6. Ako vybrať medzi @@POSITION, @@VALUE a podmienkou s potomkom

Cieľ cielenia @@POSITION @@VALUE Podmienka s potomkom
Obrázky, kategórie (bez potomkov) ✅ Pokiaľ je poradie pevné ✅ Pokiaľ sa poradie mení
Parametre (so zanorením) ⚠️ Menej spoľahlivé 🚫 Nevhodné – PARAM nemá hodnotu ✅ Najbezpečnejšie (PARAM_NAME = "Barva")

Odporúčanie:

  • Pri jednoduchých elementoch pozíciu neuvádzajte.
  • Pri viacnásobných elementoch bez potomkov môžete použiť oba prístupy (@@POSITION aj @@VALUE).
  • Pri zanorených štruktúrach vždy preferujte cielenie cez názov potomka (napr. PARAM_NAME).

Čo je indexácia # a ako sa líši od @@POSITION?#

Indexácia je doplnkový nástroj jazyka Element-Path, ktorý umožňuje presne určiť konkrétny výskyt elementu bez ohľadu na jeho poradie. Zapisuje sa pomocou znaku #.

Indexáciu môžete používať nielen v cestách Element-Path, ale aj vo filtroch a podmienkach vo výberoch pomocou MQL (Mergado Query Language). Princíp zostáva rovnaký – vyberáte konkrétny výskyt opakovaného elementu.

Syntax: PARAM { NAME = "Barva" } #{ 2 }

Tento zápis cieli na druhý výskyt elementu PARAM s názvom „Barva“.
Možnosti:

  • možno uviesť rozsah pozícií: { 1 – 4 },
  • vhodné pri podmienených elementoch, kde nemožno použiť @@POSITION.

Poznámka: Pokiaľ postačí bežné cielenie podľa pozície, @@POSITION je rýchlejšie a prehľadnejšie.

Ako kombinovať @@POSITION a @@VALUE v jednej ceste?#

Špeciálne atribúty možno kombinovať v rámci jednej podmienky alebo s ďalšími filtrami pomocou logických operátorov.
Príklad 1 – cielenie na rozsah pozícií:
IMGURL_ALTERNATIVE { @@POSITION >= 3 AND @@POSITION <= 8 }

  • Cieli na alternatívne obrázky od 3. do 8. pozície.

Príklad 2 – kombinácia s ďalšími elementmi:
VARIANTS | VARIANT { @@POSITION = 2 } | PARAMETERS | PARAMETER { NAME = "Velikost" } | VALUE

  • Vyberie parameter „Velikost“ pri druhom variante.

Príklad 3 – cielenie podľa hodnoty:
CATEGORIES | CATEGORY { @@VALUE NOT CONTAINS "Dětská hřiště" }

  • Vyberie všetky kategórie okrem tých, ktoré obsahujú „Dětská hřiště“.

Môžem pomocou špeciálnych atribútov cieliť aj na atribúty elementov?#

Áno. Špeciálne atribúty možno použiť aj v kombinácii s bežnými XML atribútmi. Napríklad:
PARAM { @@VALUE = "Barva" } | @value

Tento zápis cieli na atribút @value pri parametroch, ktorých hodnota je „Barva“. Tu @@VALUE nahrádza potrebu používať element PARAM_NAME.

Aké sú najčastejšie chyby pri práci so špeciálnymi atribútmi?#

  • Použitie @@POSITION pri elementoch, kde sa poradie líši naprieč produktmi.
  • Snažiť sa použiť @@VALUE pri elementoch, ktoré samy o sebe nenesú hodnotu (napr. PARAM).
  • Zámena jedného zavináča @ (bežný XML atribút) za dva @@ (špeciálny atribút).
  • Chybné umiestnenie špeciálneho atribútu mimo podmienku.

Na všetky chyby Mergado automaticky upozorní v editore farebným zvýraznením alebo chybovým hlásením pri validácii.

Aký je rozdiel medzi @@POSITION a @@MAX_POSITION?#

Atribút Popis Použitie
@@POSITION Odkazuje na konkrétnu pozíciu hodnoty v rámci elementu. Cielenie na existujúcu hodnotu.
@@MAX_POSITION Udáva najvyššiu pozíciu (poslednú hodnotu) pri danom elemente. Vhodný na pridávanie nových hodnôt „na koniec“.

Kedy má zmysel @@MAX_POSITION použiť?#

  • Pri pridávaní novej hodnoty do viacnásobného elementu, aby sa neprepísala žiadna existujúca.
  • Pri kopírovaní hodnôt z jedného viacnásobného elementu do druhého (napr. obrázky, alternatívne obrázky, kontextové obrázky).

Ako prehodiť prvý a posledný výskyt viacnásobného elementu?#

@@MAX_POSITION možno použiť aj na výmenu dvoch konkrétnych pozícií — typicky prvý a posledný výskyt viacnásobného elementu. Pretože @@MAX_POSITION vracia najvyššiu existujúcu pozíciu pre každý produkt zvlášť, postup sa prispôsobí aj feedom, kde má jeden produkt 2 výskyty a iný 5.

Pokiaľ má viacnásobný element zanorenú štruktúru (napríklad RELATED_FILES | RELATED_FILE s podelementmi TEXT a URL), je potrebné prehodiť každý podelement zvlášť — pomocou dočasných pomocných elementov.

Postup v pravidle Prepísať:

  1. Vytvorte pomocný element pre každý podelement, ktorého hodnotu chcete prehodiť (napr. HELPER_TEXT, HELPER_URL).
  2. V pravidle Prepísať pridajte riadky v tomto poradí:
    • uložte hodnotu z prvej pozície do pomocného elementu,
    • prepíšte prvú pozíciu hodnotou z poslednej ({ @@POSITION = @@MAX_POSITION }),
    • prepíšte poslednú pozíciu ({ @@POSITION = @@MAX_POSITION }) hodnotou z pomocného elementu.
  3. Zopakujte pre každý podelement (TEXT a URL) samostatne.

Obmedzenie: Táto metóda umožňuje prehodiť iba dve konkrétne pozície. Pokiaľ chcete presunúť hodnotu na prvé miesto a ostatné za ňu len odsunúť so zachovaním ich vzájomného poradia, prehodenie prvej a poslednej pozície túto potrebu nepokryje.

Bol tento článok užitočný?