Přeskočit na hlavní obsah
Personalizace pomocí smyčky 'loop'

Ulehčete si práci automatickým vypsání všech prvků z objektu.

Jakub Filounek avatar
Autor: Jakub Filounek
Aktualizováno před více než 10 měsíci

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.

Dostali jste odpověď na svou otázku?