Personalizace pomocí smyčky 'loop'

Ulehčete si práci automatickým vypsání prvků.

Jakub Filounek avatar
Autor: Jakub Filounek
Aktualizováno před více než týdnem

Může se stát, že chcete vypsat několik prvků z daného objektu (např. produkty z opuštěného košíku) ale těchto prvků je příliš na dlouhé vypisování. Využijte tak smyčky (neboli loop) a nechte si vypsat všechny prvky automaticky. Jak lze se smyčkou pracovat, se dozvíte v této nápovědě.

Co v nápovědě naleznete?


1. Jak pracovat se smyčkou?

POZOR! Se smyčkou lze pracovat pouze v automatizacích a transakčních e-mailech.

Smyčka v šabloně začíná merge tagem *|EACH:POLE|*, 'POLE' zde nahraďte názvem z jakého objektu se prvky mají vypisovat, a končí vždy merge tagem *|END|*.

Smyčku lze využít na pole z transakce(ECM_LAST_BOUGHT), opuštěný košík(ECM_BASKET), vlastní pole(název merge tagu) nebo v transakčních e-mailech. Níže v nápovědě naleznete jednotlivé příklady pro použití.

Místo "POLE" se pak zadává název merge tagu, ve kterém je uložen JSON. Jak do vlastních polí ke kontaktům JSON ukládat, naleznete níže v nápovědě.


Proměnné, které má smyčka propisovat, se pak zapisují stejně jako merge tag + prvek objektu, který chcete vypsat. V šabloně pak bude zápis vypadat například takto 👇

*|EACH:ECM_LAST_BOUGHT|*
*|loop_var.name|*
*|loop_var.description|*
*|loop_var.price|*
*|END|*

Jednotlivé prvky, které smyčka vypisuje, se pak zapisují jako loop_var.nazevparametru. V ukázce výše tedy vypisujeme název, popis a cenu.

❕Formátování textu se přebírá z formátu merge tagů. Pokud chcete tedy název produktu zvětšit, zvyšte nejprve velikost písma u merge tagu. Formátování se přenese i na proměnnou.

2. Způsob validního zápisu JSON a merge tagy

V rámci Ecomailu máte možnost skrze smyčku vypisovat také obsah JSON. Tyto hodnoty lze vkládat jak přes vlastní pole ke kontaktu, ale setkáte se s ním taktéž v rámci transakcí, či transakčních e-mailů.

Zápis bez názvu pro array

Merge tag: *|EACH:nazevmergetagu|*

Podoba JSON zápisu:

[{"name": "Židle", "description": "Dřevěná židle na sezení", "price": 899}, {"name": "Stůl", "description": "Stůl na pokládání věcí", "price": 1499}]

Obsah jednotlivých polí pak získáte následujícím zápisem do šablony:

*|EACH:nazevmergetagu|*
*|loop_var.name|*
*|loop_var.description|*
*|loop_var.price|*
*|END|*

Namísto "nazevmergetagu" pak vložte název merge tagu(ať už se jedná o merge tag pro opuštěný košík, anebo vlastní pole).

Obsah bude kontaktu zaslán následujícím způsobem:

Použití názvu pro array

Merge tag: *|EACH:MERGETAGNAME.product|*

JSON:

{"product": [{"name": "Židle", "description": "Dřevěná židle na sezení", "price": 899}, {"name": "Stůl", "description": "Stůl na pokládání věcí", "price": 1499}]}

Nested a název pro array

Merge tag: *|EACH:MERGETAGNAME.products|* & *|loop.var.price.price1|*

JSON:

{"products":[{"name":"Product 1","price":{"price1":19.99,"price2":29.99}},{"name":"Product 2","price":{"price1":29.99,"price2":39.99}},{"name":"Product 3","price":{"price1":14.99,"price2":24.99}},{"name":"Product 4","price":{"price1":9.99,"price2":19.99}},{"name":"Product 5","price":{"price1":39.99,"price2":49.99}}]}

3. Konkrétní příklady pro použití

a. Příklad smyčky pro opuštěný košík

Prvky z košíku jsou například name, price, description, img_url atp. Napíšeme je tedy za loop_var:

*|EACH:ECM_BASKET|*
*|loop_var.name|*
*|loop_var.price|* Kč
*|loop_var.description|*
*|END|*

Smyčka proběhne tolikrát, kolikrát se u daného kontakt vyskytuje hledaný objekt. Pokud by měl kontakt například 3 produkty v opuštěném košíku, je to informace pro smyčku, že má proběhnout právě 3krát. Náš obsah bude pak vypsán také 3krát.

Vypadalo by to ve výsledku následovně:

POZOR: Obsah se bude vypisovat pod sebou - pořadí nelze ovlivnit.

Využití loop v transakčních emailech

Pokud chcete využít funkci loop v transakčním emailu, postupujte v šabloně podle návodu výše a k requestu přiložte patřičná data v poli následujícím způsobem:

       "global_merge_vars": [
{
"product": [
{
"name": "Židle",
"description": "Dřevěná židle na sezení",
"price": 899
},
{
"name": "Stůl",
"description": "Stůl na pokládání věcí",
"price": 1499
}
]
}
]


💭 V případě dotazů nás neváhejte kontaktovat na chatu, anebo na e-mailu support@ecomail.cz.

Dostali jste odpověď na svou otázku?