Při tvorbě obsahu do šablony se může stát, že chcete vypsat několik prvků z vybraného objektu (např. produkty z opuštěného košíku), ale prvků je více a šlo by o dlouhý zápis. V takovém případě můžete využít 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á zápisem *|EACH:NAZEVMERGETAGU|*, kdy NAZEVMERGETAGU nahraďte názvem z objektu, z kterého se prvky mají vypisovat, a končí vždy tagem *|END|*.
Smyčku lze využít na pole (merge tag) z:
a) transakce (ECM_LAST_BOUGHT)
b) opuštěný košíku (ECM_BASKET),
c) vlastní pole (název vašeho merge tagu)
d) v transakčních e-mailech.
Níže v nápovědě naleznete jednotlivé příklady pro použití.
Proměnné, které má smyčka propisovat, se 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.
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.
❕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.
Viz PrntSc:
2. Způsob validního zápisu JSON a merge tagy
V rámci Ecomailu máte možnost skrze smyčku vypisovat 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ů.
Níže naleznete, jaké tvary JSONu lze do Ecomailu zasílat 👇
Zápis bez názvu pro array
Merge tag | *|EACH:NAZEVMERGETAGU|* |
JSON zápis | [{"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}] |
Zápis merge tagů v šabloně | *|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:NAZEVMERGETAGU.product|* |
JSON zápis | {"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}]} |
Zápis merge tagů v šabloně | *|EACH:NAZEVMERGETAGU.product|* *|loop_var.name|* *|loop_var.description|* *|loop_var.price|* *|END|* |
Nested a název pro array
Merge tag | *|EACH:NAZEVMERGETAGU.products|* |
JSON zápis | {"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}}]} |
Zápis merge tagů v šabloně | *|EACH:NAZEVMERGETAGU.products|* *|loop.var.price.price1|* *|END|* |
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|*
Výpis produktů z opuštěného košíku pak v ostré rozesílce může vypadat například takto:
! POZOR: Obsah se bude vypisovat pod sebou - pořadí nelze ovlivnit.
b. Příklad smyčky pro vlastní pole
Smyčku je možné využít i na JSON uvedeném ve vlastním poli kontaktu. Nejprve je třeba si vytvořit vlastní pole typu JSON:
Do takto vytvořeného pole můžete nahrávat obsah ve formátu JSON. Možnosti zápisu naleznete v kapitole "Způsob zapsání validního záznamu".
Příklad z detailu kontaktu:
Takto vložený JSON je možné vypsat za pomocí následujících merge tagů v šabloně:
Jak bude výpis vypadat po ostré rozesílce:
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 "global_merge_vars" 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.