Podczas tworzenia treści w szablonie może się zdarzyć, że chcesz wypisać kilka elementów z wybranego obiektu (np. produkty z porzuconego koszyka), ale elementów jest więcej i zapis byłby długi. W takim przypadku możesz skorzystać z pętli (loop), aby wszystkie elementy wypisały się automatycznie. Jak pracować z pętlą, dowiesz się w tym przewodniku.
Personalizacja za pomocą pętli „loop”
Co znajdziesz w pomocy?
Jak pracować z pętlą
Sposób poprawnego zapisu JSON i merge tagi
Konkretne przykłady użycia
przykład pętli dla porzuconego koszyka
przykład pętli dla własnego pola
Wykorzystanie pętli loop w mailach transakcyjnych
1. Jak pracować z pętlą?
Uwaga! Pętla działa tylko w automatyzacjach i mailach transakcyjnych.
Pętla w szablonie zaczyna się od zapisu:
*|EACH:NAZWAMERGETAGU|*
gdzie NAZWAMERGETAGU zastępujesz nazwą obiektu, z którego mają zostać wypisane elementy, i kończy się tagiem:
*|END|*
Pętlę można stosować na polach (merge tag) z:
a) transakcji (ECM_LAST_BOUGHT)
b) porzuconego koszyka (ECM_BASKET)
c) własnego pola (nazwa Twojego merge tagu)
d) w mailach transakcyjnych
Poniżej w pomocy znajdziesz konkretne przykłady użycia.
Zmienne, które pętla ma wypisywać, zapisuje się tak samo jak merge tag + element obiektu, który chcesz wyświetlić. W szablonie zapis będzie wyglądał np. tak:
*|EACH:ECM_LAST_BOUGHT|*
*|loop_var.name|*
*|loop_var.description|*
*|loop_var.price|*
*|END|*
Pojedyncze elementy wypisywane przez pętlę zapisuje się jako loop_var.nazwaparametru. W powyższym przykładzie wypisujemy nazwę, opis i cenę.
Pętla wykona się tyle razy, ile razy dany kontakt ma występujący obiekt. Jeśli kontakt ma np. 3 produkty w porzuconym koszyku, pętla wykona się 3 razy, a zawartość zostanie wyświetlona trzykrotnie.
❕Formatowanie tekstu dziedziczy format merge tagu. Jeśli chcesz powiększyć nazwę produktu, najpierw powiększ czcionkę merge tagu — formatowanie zostanie zastosowane również do zmiennej.
2. Sposób poprawnego zapisu JSON i merge tagi
W Ecomail możesz za pomocą pętli wypisywać zawartość w formacie JSON. Dane te mogą pochodzić z własnych pól kontaktu, transakcji lub maili transakcyjnych.
Poniżej przykłady poprawnego zapisu JSON w Ecomail:
Zapis bez nazwy dla tablicy
Merge tag:
*|EACH:NAZWAMERGETAGU|*
JSON:
[{"name": "Krzesło", "description": "Drewniane krzesło do siedzenia", "price": 899}, {"name": "Stół", "description": "Stół do odkładania rzeczy", "price": 1499}]Szablon:
*|EACH:NAZWAMERGETAGU|*
*|loop_var.name|*
*|loop_var.description|*
*|loop_var.price|*
*|END|*
NAZWAMERGETAGU zastępujesz odpowiednim merge tagiem (np. dla porzuconego koszyka lub własnego pola).
Zapis z nazwą tablicy
Merge tag:
*|EACH:NAZWAMERGETAGU.product|*
JSON:
{"product": [{"name": "Krzesło", "description": "Drewniane krzesło do siedzenia", "price": 899}, {"name": "Stół", "description": "Stół do odkładania rzeczy", "price": 1499}]}Szablon:
*|EACH:NAZWAMERGETAGU.product|*
*|loop_var.name|*
*|loop_var.description|*
*|loop_var.price|*
*|END|*
Zagnieżdżone i nazwa tablicy
Merge tag:
*|EACH:NAZWAMERGETAGU.products|*
JSON:
{"products":[{"name":"Produkt 1","price":{"price1":19.99,"price2":29.99}},{"name":"Produkt 2","price":{"price1":29.99,"price2":39.99}},{"name":"Produkt 3","price":{"price1":14.99,"price2":24.99}},{"name":"Produkt 4","price":{"price1":9.99,"price2":19.99}},{"name":"Produkt 5","price":{"price1":39.99,"price2":49.99}}]}Szablon:
*|EACH:NAZWAMERGETAGU.products|*
*|loop_var.price.price1|*
*|END|*
3. Konkretne przykłady użycia
a. Pętla dla porzuconego koszyka
Elementy w koszyku to np.: name, price, description, img_url. W szablonie zapisujemy je za loop_var:
*|EACH:ECM_BASKET|*
*|loop_var.name|*
*|loop_var.price|* zł
*|loop_var.description|*
*|END|*
Wyświetlenie produktów w mailu transakcyjnym może wyglądać np. tak:
Uwaga: Zawartość będzie wypisywana jeden pod drugim – kolejność nie jest możliwa do zmiany.
b. Pętla dla własnego pola
Pętlę można również wykorzystać na JSON zapisanym w własnym polu kontaktu. Najpierw tworzysz własne pole typu JSON, do którego możesz wprowadzać dane w formacie JSON (szczegóły w sekcji „Sposób poprawnego zapisu”).
Przykład z danych kontaktu:
Własne pole: JSON z produktami lub innymi elementami
W szablonie używasz merge tagów w następujący sposób:
*|EACH:NAZWAPOLA|*
*|loop_var.nazwa|*
*|loop_var.cena|*
*|END|*
W mailu finalnym dane zostaną wyświetlone zgodnie z JSON-em w polu.
4. Wykorzystanie loop w mailach transakcyjnych
Pętlę można użyć także w mailu transakcyjnym korzystając z szablonu Ecomail (endpoint: Send transactional template). W API przesyłasz dane w polu global_merge_vars:
"global_merge_vars": [
{
"product": [
{
"name": "Krzesło",
"description": "Drewniane krzesło do siedzenia",
"price": 899
},
{
"name": "Stół",
"description": "Stół do odkładania rzeczy",
"price": 1499
}
]
}
]
Zamiast "product" możesz użyć dowolnej nazwy, którą następnie odwołasz w szablonie:
*|EACH:product|*
*|loop_var.name|*
*|loop_var.description|*
*|loop_var.price|*
*|END|*
W mailu zostaną wyświetlone wszystkie produkty oraz wartości zmiennych.
❓
Masz pytanie? Napisz do nas na [email protected]
