Mergado 2: Element-Path

Mergado 2: Element-Path

We are introducing Element-Path, a language completely created by Mergado. It is designed for users to take full advantage of all the new features of Mergado 2 in the rules and queries. Read how this innovation works

:woman_teacher: What is Element-Path

  • a language for specifying values ​​of product elements in Mergado - path to an element or an attribute
  • it is used in rules and product queries
  • it denotes an expression written using the Element-Path language
  • the result of one element-path can be multiple values, ​​and we can use it in rules for simple modification of multiple elements

:question: Differences between Mergado and Mergado 2

How the current version of Mergado works:

  • the products are listed in a table
  • one line = one product
  • one column = one element
  • element-path (element name) = query of one column in the table
  • MQL is then the query of specific rows in the table

How the new Mergado 2 works:

  • products are lists of trees
  • one product = one tree from the list
  • one element value = one node in the tree
  • one element = set of nodes in the tree with the same element name
  • element-path = a query of any number of nodes with the same element name
  • MQL = a query of specific trees from the list

Preview of differences between Mergado vs. Mergado 2.

:point_right: Example of using element-path on a sample product::

Product:

1. <ITEM id="1">
2. <NAME>Sample product</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>30 EUROS</PRICE>
7. <DESCRIPTION lang="en">
8. Suitable for demonstrating the correct use of Element-Path
9. </DESCRIPTION>
10. <DESCRIPTION lang="de">
11. Sample german language value.
12. </DESCRIPTION>
13. <PARAM>
14. <NAME>Color</NAME>
15. <VAL>black</VAL>
16. </PARAM>
17. <PARAM>
18. <NAME>Material</NAME>
19. <VAL>100% cotton</VAL>
20. </PARAM>
21 </ITEM>

:woman_technologist: Different element-paths:

  • NAME: returns the value from line 2.
  • ID: returns the value from line 1.
  • IMAGE: returns values from lines 3., 4., 5.
  • IMAGE { @@POSITION = 2 }: returns the value from line 4.
  • IMAGE { @@POSITION = 4 }: returns nothing
  • DESCRIPTION { @lang = β€œen” }: returns the value from line 8.
  • DESCRIPTION | @lang: returns values from lines 7., 10.
  • PARAM { NAME = β€œColor” } | VAL: returns value from line 15.
  • PARAM { @@POSITION = 2 or NAME = β€œColor” } | VAL: returns values from lines 15., 19.
  • PARAM { VAL = β€œ100% cotton” } | VAL: returns the value from line 19.
  • PARAM | NAME: returns values from lines 14., 18.
  • PARAM | NAME { @@POSITION = 1 }: returns values from lines 14., 18.
  • PARAM | NAME { @@POSITION = 2 }: returns nothing

:clipboard: Element-Path Specifics

  • you must wrap multi-word element names in square brackets:

[Engine capacity] = β€œ2 l”→ ! wrap only one element name at a time

  • a large number of elements in the query is undesirable

ID = 1 or ID = 2 or ID = 3 β†’ ID ~ β€œ^(1|2|3)$”

  • numerical constants are converted to a number β†’ problem with 0 at the beginning

ID = β€œ0021”

  • the non-existence of an element is tested using equality to an empty string
  • for multiple elements, it is sufficient that a single value satisfies the condition

Do you have any questions regarding element-path or Mergado 2? Contact our support and follow this forum thread for the latest information.

1 Like