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.