Element-Path

 
V tomto příspěvku se dozvíme:

Mergado Editor vnímá elementy stejně, jako je vnímají XML feedy. Od toho se pak odvíjí veškerá práce s elementy, kde se setkáváme např. se zanořeností nebo vícenásobností elementů. A abychom mohli upravovat konkrétní hodnoty elementů, potřebujeme mít způsob, jak budeme na tyto hodnoty cílit. Od toho tu máme Element-Path.

Co je Element-Path?

Element-Path je jazyk, jehož autorem jsme my (Mergado) a pomocí kterého se zapisují cesty k elementům (a jejich hodnotám).

Co je cesta k elementu?

Cesta k elementu je nástroj, pomocí kterého cílíme na hodnoty elementu. Cílením je myšleno to, že chceme buď hodnotu z elementu vzít a dále s ní pracovat třeba někde jinde, anebo do ní zapisovat a upravovat ji.

Příklad: Pokud chceme cílit na název produktu (např. na hodnotu elementu NAME), cesta bude “NAME”. Tuto cestu si Mergado Editor přečte a podle ní ví, do jakého elementu se má dívat a jakou hodnotu má vzít/upravit.

:information_source:  V MERGADU 1 jazyk Element-Path používat nešlo, jelikož v této verzi neexistovala ani žádná vícenásobnost nebo struktura elementů.

Slovní zásoba a gramatika Element-Path

Jelikož je Element-Path jazyk, tak i Element-Path, jako běžné jazyky, má svoji slovní zásobu (prvky, které se mohou používat v cestách k elementům) a gramatiku (soubor pravidel, jak se cesty píší).

Příklad: Pokud jazyk Element-Path přirovnáme k češtině, pak cesta k elementu je analogií k větě:

  • Různé věty o různém obsahu v sobě používají slova a gramatiku jazyku čeština.
  • Různé cesty k různým elementům v sobě používají slova a gramatiku jazyku Element-Path.

Názvy všech elementů

Do slovní zásoby Element-Path patří názvy všech elementů. Nejjednodušší cesta je taková, která se skládá pouze ze samotného názvu daného elementu.

Příklad: Možná už jste někdy pomocí pravidla Přepsat upravovali popis produktu, tedy jste přepisovali hodnotu elementu DESCRIPTION. To znamená, že jste v poli pro element uvedli text “DESCRIPTION”.

Zanořenost

Pokud chceme cílit na zanořený element, přidáme před něj do cesty i název rodiče daného elementu a svislítko | (další přírůstek do slovní zásoby).

Příklad: Chceme zacílit na informační parametr – element NAME zanořený pod elementem INFORMATION_PARAMETER.

element_path_1

Jelikož pro informační parameter je element NAME zanořený pod elementem INFORMATION_PARAMETER (a ten je zanořený pod INFORMATION_PARAMETERS), tak cesta k jeho hodnotám vypadá následovně:

element_path_2

Mergado Editor si cestu přečte tak, že má nejprve jít do elementu INFORMATION_PARAMETERS, pak do jeho potomků, kde v rámci elementu INFORMATION_PARAMETER přepíše hodnotu elementu NAME.

Podmínky

Podmínky v cestě k elementu jsou filtrem, který nám v rámci dané cesty umožňuje filtrovat hodnoty u vícenásobných elementů. Zapisují se do složených závorek { }. Podmínky jsou důležitou součástí Element-Path a proto vám doporučujeme přečíst si podrobný příspěvek o podmínkách v cestě k elementu.

Příklad: Chceme upravit hodnotu informačního parametru Materiál.
element_path_3

Jedná se o zanořený element VALUE a cesta vypadá takto:

NAME | INFORMATION_PARAMETERS | NAME | VALUE

Akorát, že cesta cílí na všechny hodnoty elementu VALUE

element_path_4

a my chceme upravit pouze hodnotu u Materiálu. Pomůžeme si proto podmínkou. Finální cesta tedy bude:

NAME | INFORMATION_PARAMETERS { NAME = "Material" } | VALUE

element_path_5

Speciální atributy

Existují speciální atributy @@POSITION a @@VALUE. Tyto atributy se dají používat v podmínkách. Více si o nich můžete přečíst v jednotlivých příspěvcích.

Příklad: IMGURL_ALTERNATIVE { @@POSITION >= 2 }

Příklad: CATEGORIES | CATEGORY { @@VALUE != "Hračky" }

:bulb: Pokud vás napadne další speciální atribut, který byste použili, napište nám!

MQL v Element-Path

U speciálních atributů nekončíme. Do podmínek můžeme psát totiž úplně všechno, co do MQL dotazu. Tímto nám do slovní zásoby Element-Path přibývá celá slovní zásoba jazyka MQL. Opět doporučujeme přečíst si podrobný příspěvek o podmínkách v cestě k elementu.

Příklad:
VARIANTS | VARIANT { PARAMETERS | PARAMETER { NAME = "Velikost" } | VALUE = "M" AND PARAMETERS | PARAMETER { NAME = "Materiál" } | VALUE = "Bavlna" } | STOCK | WAREHOUSES | WAREHOUSE | NAME

Syntaktické chyby

Tak jako v češtině se dají dělat pravopisné nebo gramatické chyby, tak v cestách k elementům se dají dělat syntaktické chyby. Pokud uděláme v našem zápisu nějakou syntaktickou chybu, většinou nás na to Mergado Editor upozorní. Jako příklad uvádíme vynechání ukončovacích uvozovek v podmínce v cestě k elementu:

image

:bulb: Přečtěte si příspěvek přímo věnovaný chybám v cestách k elementům.

Cesta k elementu nebo k hodnotám?

V celém příspěvku píšeme cesta k elementu, ale možná jste někde někdy narazili i na cestu k hodnotě elementu, případně podobné jiné tvary. Všechny tyto tvary jsou v pořádku. Pravidla ohledně psaní cest žádná nejdou – vždy záleží na úsudku autora a kontextu celého textu.

Obecně je tvar cesta k hodnotě elementu, tedy se slovem hodnota, přesnější, protože cesta cílí na hodnotu elementu, ne na element samotný.

Nicméně pokud mluvíme o jednoduchých elementech, tak tvar cesta k elementu je dostatečně srozumitelný, jelikož element má pouze jednu hodnotu. Víme tedy, že cesta cílí na tuto jednu hodnotu. Ale v případě, že mluvíme o vícenásobných elementech, které mají hodnot více, je vhodnější a přesnější použít tvar se slovem hodnota, pokud cesta cílí pouze na jednu konkrétní hodnotu.

Uvádíme několik příkladů:

  • cesta k elementu/atributu,
  • element/atribut,
  • element IMGURL,
  • cesta k elementu IMGURL,
  • cesta k hodnotě 69 elementu PRICE_VAT,
  • cesta k hodnotě parametru,
  • cesta pro element,
  • elementová cesta,
  • element, jehož cesta,
  • hodnota, jejíž cesta,
  • pro hodnotu 69 je cesta,
  • cesta
  • a mnoho dalších.

Jak číst cestu?

Pravidla pro čtení cest k elementům nejsou vyloženě daná, ale doporučujeme se řídit následujícími principy, abychom lépe pochopili fungování samotných cest, tj. na jaké hodnoty ve výsledku cesty cílí.

Principy čtení cest:

  1. Čteme postupně zleva doprava.
  2. Názvy elementů a speciální atributy čteme intuitivně, jak nám přijdou na jazyk. Např. “element ITEM_ID” nebo jen “ITEM_ID” apod.
  3. U nezanořených elementů stačí číst “zacílíme na element” (případně na hodnotu elementu nebo na všechny hodnoty elementu).
  4. U cest se zanořenými elementy začínáme slovem “vezmeme”, případně jiným synonymem.
  5. Svislítko čteme jako “a pod ním zanořený” nebo “a jeho potomka” apod.
  6. U posledního zanořeného elementu říkáme “a (v takovém elementu) zacílíme na pod ním zanořený element” nebo “a (v takovém elementu) zacílíme na jeho potomka” apod.
  7. Podmínky: levou složenou závorku čteme jako “jehož pod ním zanořený element” nebo “jehož potomek” apod.

Příklad 1: ITEM_ID
“Zacílíme na element ITEM_ID.”

Příklad 2: INFORMATION_PARAMETERS | INFORMATION_PARAMETER { NAME = "Materiál" } | VALUE
Můžeme ji přečíst třeba takto:

  • “Vezmeme element INFORMATION_PARAMETERS a pod ním zanořený element INFORMATION_PARAMETER, jehož pod ním zanořený element NAME má hodnotu rovnající se Materiál, a v takovém elementu INFORMATION_PARAMETER zacílíme na pod ním zanořený element VALUE.”
  • “Vezmeme INFORMATION_PARAMETERS a jeho potomka INFORMATION_PARAMETER, jehož potomek NAME má hodnotu rovnající se Materiál, a v takovém INFORMATION_PARAMETER zacílíme na jeho potomka VALUE.”
  • atd.

e5baf07797fc90c0214b66c1af85a4bbd526bd87

Příklad 3: CATEGORIES | CATEGORY { @@VALUE != "Hračky" }
Přečteme ji např. takto:

  • “Vezmeme element CATEGORIES a zacílíme na jeho potomka CATEGORY, jehož hodnota se nerovná Hračky.”
  • “Vezmeme CATEGORIES a zacílíme na pod ním zanořený CATEGORY, jehož hodnota se nerovná Hračky.”

K čemu slouží Element-Path?

Pomocí Element-Path se zapisují cesty k elementům, kterými pak cílíme na hodnoty elementů.

Kde cílíme na hodnoty elementů?

Cílení na hodnoty elementů (tedy i Element-Path) použijeme při práci v Mergado Editoru nejen v poli pro zadávání cesty k elementu, tj. na mnoha místech, obecně všude, kde pracujeme s elementy:

  1. V jednoduchém formuláři výběrů - Onelineru - na stránce Produkty při vytváření podmínek. V první nebo třetí části podmínky je možné psát cesty k elementům.

  2. Ve formuláři pro vlastní MQL dotaz.

  3. Při řazení produktů na stránce Produkty.

  4. V tabulkovém zobrazení produktů při přidávání sloupců.
    5e9d8819a359ce7a31daaed35745e3c085d1446f

  5. Ve formuláři některých pravidel v poli pro element – týká se pravidel 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, Zkrácení hodnoty, Změna velikosti písmen, Zaokrouhlit číslo, Odstranit diakritiku, Nastavit UTM parametry, Odstranit HTML značky, Výpočet a Přidat hodnotu vícenásobného elementu.
    6443cfcb2c63985d2a714b3e8fcd99b075ec5d6c

  6. V hlavičkách importních souborů, které nahráváme přes pravidlo Import datového souboru.

  7. Na stránce hodnot konkrétního elementu (po rozkliknutí na stránce Elementy).

  8. Při vytváření a úpravách proměnných.
    75870419ff8b41ea9232b6d80c5b98b6722c48b9

  9. Při nastavování automatizace.

Příklady cílení

Desítkám příkladů cílení pro různé formáty jsme se věnovali v samostatném příspěvku Element-Path: Příklady cílení (Heureka, Google, Shoptet).

Shrnutí

  • Co je Element-Path?
    Element-Path je jazyk, pomocí kterého se zapisují cesty k elementům.
     
  • Co je cesta k elementu?
    Cesta k elementu je nástroj, pomocí kterého cílíme na hodnoty elementu.
     
  • Jak se cesta k elementu zapisuje?
    • V cestě můžeme psát názvy elementů.
    • Zanořenost se značí svislítkem.
    • K upřesnění cesty slouží podmínky, které se zapisují do složených závorek.
       
  • Kde využijeme cesty k elementu?
    Cesty využijeme téměř po celém Mergado Editoru, zkrátka všude tam, kde pracujeme a cílíme na elementy a jejich hodnoty.