Przejdź do głównej zawartości

Personalizacja za pomocą pętli „loop”

Ułatw sobie pracę, automatycznie wypisując wszystkie elementy z obiektu.

Napisane przez Weronika Bonczková
Zaktualizowano w tym tygodniu

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?

  1. Jak pracować z pętlą

  2. Sposób poprawnego zapisu JSON i merge tagi

  3. Konkretne przykłady użycia

    1. przykład pętli dla porzuconego koszyka

    2. przykład pętli dla własnego pola

  4. 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]

Czy to odpowiedziało na twoje pytanie?