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):
NAMEvrátí hodnotu z řádku2.IDvrátí hodnotu z řádku1.IMAGEvrátí hodnoty z řádků3.,4.,5.IMAGE { @@POSITION = 2 }vrátí hodnotu z řádku4.IMAGE { @@POSITION = 4 }nevrátí nicDESCRIPTION { @lang = "cz" }vrátí hodnotu z řádku8.DESCRIPTION | @langvrátí hodnoty z řádků7.,10.PARAM { NAME = "Barva" } | VALvrátí hodnotu z řádku15.PARAM { @@POSITION = 2 OR NAME = "Barva" } | VALvrátí hodnoty z řádků15.,19.PARAM { VAL = "100% bavlna" } | VALvrátí hodnotu z řádku19.PARAM | NAMEvrá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
andsubquery - query
orsubquery - subquery
- query
- subquery:
- operation
notoperation(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.
