Mergado 2: Element-Path
Představujeme vám Element-Path, jazyk kompletně vytvořený ze strany Mergada. Je navrhnutý tak, aby uživatelé mohli v pravidlech a výběrech naplno využít všechny nové možnosti Mergada 2. Přečtěte si, jak tato novinka funguje.
Co je Element-Path
- jazyk pro specifikaci hodnot produktových elementů v Mergadu – cesta k elementu nebo atributu
- používá se v pravidlech a výběrech produktů
- cesta k elementu (nebo taky element-path s malými počátečními písmeny) označuje výraz napsaný pomocí Element-Path jazyku
- výsledkem jedné cesty k elementu (element-path) může být více hodnot a můžeme ji využít v pravidlech pro jednoduchou úpravu vícenásobných elementů.
Rozdíly mezi Mergadem a Mergadem 2
Jak pracuje Mergado (aktuální verze):
- produkty jsou zapsány v tabulce
- jeden řádek = jeden produkt
- jeden sloupec = jeden element
- cesta k elementu (element-path) = výběr jednoho sloupce v tabulce
- MQL je pak výběr konkrétních řádků v tabulce
Jak funguje Mergado 2:
- produkty jsou seznamy stromů
- jeden produkt = jeden strom ze seznamu
- jedna hodnota elementu = jeden uzel ve stromu
- jeden element = množina uzlů ve stromu se stejným názvem elementu
- cesta k elementu (element-path) = výběr libovolného počtu uzlů se stejným názvem elementu
- MQL = výběr konkrétních stromů ze seznamu
Rozdíly Mergado vs. Mergado 2.
Příklad na konkrétním produktu:
Produkt:
1. <ITEM id="1">
2. <NAME>Ukázkový produkt</NAME>
3. <IMAGE>https://www.imgurl.cz/1/</IMAGE>
4. <IMAGE>https://www.imgurl.cz/2/</IMAGE>
5. <IMAGE>https://www.imgurl.cz/3/</IMAGE>
6. <PRICE>987 Kč</PRICE>
7. <DESCRIPTION lang="cz">
8. Vhodný pro názornou ukázku správného použití Element-Path
9. </DESCRIPTION>
10. <DESCRIPTION lang="sk">
11. Vhodný pre názornú ukážku správneho použitia Element-Path
12. </DESCRIPTION>
13. <PARAM>
14. <NAME>Barva</NAME>
15. <VAL>černá</VAL>
16. </PARAM>
17. <PARAM>
18. <NAME>Materiál</NAME>
19. <VAL>100% bavlna</VAL>
20. </PARAM>
21 </ITEM>
Různé cesty k hodnotám elementů (element-path):
-
NAME
vrátí hodnotu z řádku2.
-
ID
vrátí hodnotu z řádku1.
-
IMAGE
vrátí hodnoty z řádků3.
,4.
,5.
-
IMAGE { @@POSITION = 2 }
vrátí hodnotu z řádku4.
-
IMAGE { @@POSITION = 4 }
nevrátí nic -
DESCRIPTION { @lang = "cz" }
vrátí hodnotu z řádku8.
-
DESCRIPTION | @lang
vrátí hodnoty z řádků7.
,10.
-
PARAM { NAME = "Barva" } | VAL
vrátí hodnotu z řádku15.
-
PARAM { @@POSITION = 2 OR NAME = "Barva" } | VAL
vrátí hodnoty z řádků15.
,19.
-
PARAM { VAL = "100% bavlna" } | VAL
vrátí hodnotu z řádku19.
-
PARAM | NAME
vrátí hodnoty z řádků14.
,18.
-
PARAM | NAME { @@POSITION = 1 }
vrátí hodnoty z řádků14.
,18.
-
PARAM | NAME { @@POSITION = 2 }
nevrátí nic
Specifika Element-Path
- víceslovné názvy elementů musíte obalit hranatými závorkami:
[Objem motoru] = "2 l"→ ! obalte vždy pouze název jednoho elementu
- velké množství elementů ve výběru je nežádoucí
ID = 1 nebo ID = 2 nebo ID = 3 → ID ~ “^(1|2|3)$”
- číselné konstanty se převádí na číslo → problém s 0 na začátku
ID = “0021”
- neexistence elementu se testuje pomocí rovnosti na prázdný string
- u vícenásobných elementů stačí, aby jediná hodnota splňovala podmínku
Schématický popis pomocí bezkontextové gramatiky
V případě, že vás zajímá i technický popis, můžete se podívat níže.
Popis
Schématický popis pomocí bezkontextové gramatiky
Terminály:
-
FIELD: název elementu uveden v hranatých závorkách, v případě že název elementu neobsahuje mezery, je možné hranaté závorky vynechat.
- Příklady:
[Název produktu]
,NAME
, …
- Příklady:
-
ATTRIBUTE: název atributu začínající na znak
@
.- Příklady:
@id
,@lang
, …
- Příklady:
-
SPECIAL: speciální vyhrazený atribut začínají na
@@
.- Aktuálně povolené hodnoty: -
@@MERGADO_ID
- ID produktu v Mergadu. -
@@POSITION
- pozice hodnoty konkrétního elementu v produktu v kontextu stejného rodiče.
- Aktuálně povolené hodnoty: -
-
STRING: hodnota ve feedu rovná textu obaleného v uvozovkách.
- Příklady:
"$120"
,"<h3>Sleva 20%</h3>"
, …
- Příklady:
-
DECIMAL: hodnota ve feedu rovná číslu.
- Příklady:
42
,123.456
, …
- Příklady:
Operátory a jiné funkční znaky:
-
(
,)
: Závorky pro ohraničení seznamu hodnot a nebo určení precedence u vyhodnocení výpočtů a logických operátor. -
=
,!=
: Operátory pro vyhodnocení (ne)rovnosti dvou hodnot (maximálně jeden z operátorů může být konstanta). -
~
,!~
: Operátory pro rozhodnutí, zda-li hodnota (ne)vyhovuje zadanému regulárnímu výrazu (maximálně jeden z operátorů musí být konstanta). -
in
,not in
: Operátory pro test (ne)přítomnosti hodnoty v seznamu hodnot. -
<
,>
,<=
,>=
: Matematické operátory pro porovnání velikostí dvou čísel. -
+
,-
,*
,/
: Matematické operátory pro výpočet. -
and
,or
,not
: Logické operátory. -
{
,}
: Závorky ohraničující podmínku pro potomky konkrétního elementu. -
|
: Operátor pro zanoření, nebo-li pro specifikaci konkrétního přímého potomka k zadanému elementu (atribut elementu je jeho přímí potomek). -
;
: Oddělovač hodnot v seznamu hodnot.
Neterminály s přepisovacími pravidly:
-
elementPath:
-
FIELD
{
query}
|
element -
FIELD
{
query}
-
FIELD
|
element - ATTRIBUTE
- FIELD
-
FIELD
-
element:
- elementPath
- SPECIAL
-
query:
-
query
and
subquery -
query
or
subquery - subquery
-
query
-
subquery:
- operation
-
not
operation -
(
query)
-
not
(
query)
-
operation:
-
math
<
math -
math
>
math -
math
<=
math -
math
>=
math -
math
=
math -
math
!=
math -
operand
~
operand -
operand
!~
operand -
operand
in
(
list)
-
operand
not in
(
list)
-
math
-
list:
-
operand
;
list - operand
-
operand
-
math:
-
math
+
submath -
math
-
submath - submath
-
math
-
submath:
-
submath
*
operand -
submath
/
operand - operand
-
submath
-
operand:
- element
- DECIMAL
-
-
DECIMAL - STRING
- ( math )
-
-
( math )
Máte otázky ohledně nastavení nebo přesunu Mergada 2? Kontaktujte naši podporu a sledujte kategorii na fóru, kde najdete aktuální informace.