[Mode d’emploi] Répéter un bloc d’éléments dans vos emails à l’aide des boucles for

Brevo propose deux méthodes pour répéter un bloc d’éléments dans vos emails : en utilisant un bloc Contenu dynamique dans l’éditeur d’email Drag & Drop ou en saisissant les boucles for manuellement.
Cet article traite de la méthode manuelle. Si vous préférez utiliser un bloc Contenu dynamique, consultez notre article dédié Comprendre le bloc de contenu dynamique.

Utilisez une boucle for pour afficher dynamiquement tous les éléments d'un tableau. Cela est particulièrement utile lorsque le nombre d’éléments du tableau est inconnu, comme une liste d’articles de blog hebdomadaires ou un reçu pour les produits achetés.

Vous pouvez utiliser une boucle for en fonction de différents critères :

  • Données d’événement
    Personnalisez le contenu en fonction des actions que vos contacts ont (ou n’ont pas) effectuées. Par exemple, vous pouvez afficher un bloc promotionnel uniquement aux contacts qui n’ont jamais passé de commande.
  • Flux de données
    Personnalisez le contenu à l’aide des données en temps réel de flux externes. Par exemple, vous pouvez proposer des recommandations de produits personnalisées, une tarification en direct ou des informations d'une boutique localisée en fonction de données externes.
  • Flux produit
    Personnalisez le contenu à l’aide des informations sur les produits de votre site web d'eCommerce. Par exemple, vous pouvez présenter vos produits les plus vendus ou des recommandations de produits personnalisées.

Qu'est-ce qu'une boucle for ?

Une boucle for est une structure de programmation utilisée pour répéter un bloc de code pour chaque élément d'un tableau. Au lieu de faire référence manuellement à chaque index, la boucle parcourt le tableau et affiche chaque élément automatiquement. 

Dans les templates d’email, les boucles for vous permettent d’afficher dynamiquement des contenus tels que les suivants :

  • Un reçu répertoriant tous les articles qu’un client a achetés.
  • Un email de rappel indiquant les articles qu'un client a laissés dans son panier.
  • Une campagne RSS affichant les derniers articles de blog.
  • Un email personnalisé avec des recommandations de produits à jour provenant d’un flux de données externe.

Structure et syntaxe d'une boucle for

La syntaxe d'une boucle for peut varier en fonction du type d'élément répété. Dans nos exemples, remplacez placeholder, array et variable par les données appropriées pour l’élément que vous souhaitez répéter, comme expliqué dans le tableau suivant :

  Données d'événement Flux de données Flux produit
placeholder

Utilisez le nom exact du tableau dans votre structure JSON, mais au singulier

Pour les flux de données, le placeholder est toujours item. Pour les flux produit, le placeholder est toujours item.
array

Utilisez params.array et remplacez array par le nom exact du tableau dans votre structure JSON.

Utilisez feedname.array et remplacez :

Utilisez feed.productfeedname.products et remplacez productfeedname par le nom de votre flux produit tel qu’affiché sur la page Flux produit

variable

Utilisez la variable d'événement correspondante pour afficher l'élément souhaité.

Pour en savoir plus, consultez notre section dédiée dans l’article [Mode d’emploi] Personnaliser vos messages avec du contenu dynamique (langage de template de Brevo). 

Utilisez les variables de flux de données correspondantes telles qu’elles sont affichées dans votre fichier de source de données externe.

Utilisez les variables de flux produit correspondantes telles qu’elles sont affichées sur votre site web d'eCommerce. 

for, in

Affiche tous les éléments d’un tableau sous forme de liste.

Syntaxe
{% for placeholder in array %}
variable
{% endfor %}

Ouvrez l'onglet correspondant au type de données que vous souhaitez afficher :

Données d'événement Flux de données Flux produit
Exemple d'entrée
{% for item in params.items %}
{{ item.name }} - {{ item.currency }}{{ item.price }}
{% endfor %}
Exemple de sortie

Chaussures noires - 99 €

Chemise blanche - 20 €

Pantalon rouge - 49 €

else

Affiche un bloc de remplacement si un tableau est vide.

Syntaxe
{% for placeholder in array %}
variable
{% else %}
Ajoutez votre contenu de remplacement ici
{% endfor %}

Exemple d'entrée
{% for user in params.users %}
{{ user.username }}
{% else %}
Aucun utilisateur trouvé
{% endfor %}
Exemple de sortie

Aucun utilisateur trouvé

limit

Limite la boucle au nombre d'itérations spécifié.

Syntaxe
{% for placeholder in array limit:# %}
variable
{% endfor %}
Exemple d'entrée
{% for item in params.items limit:2 %}
{{ item.name }}
{% endfor %}
Exemple de sortie

Produit a

Produit b

reversed

Inverse l'ordre d'impression des articles de votre tableau.

Syntaxe
{% for placeholder in array reversed %}
{% endfor %}
Exemple d'entrée
{% for country in params.countries reversed %}
{% endfor %}
Exemple de sortie

Zimbabwe

Suède

Mexique

Allemagne

Argentine

Counter

Se définit sur un entier représentant le nombre d'itérations de la boucle, à partir de 1. Cela est utile pour numéroter les éléments d'une boucle, par exemple.

Syntaxe
{% for placeholder in array %}
{{ forloop.Counter }}. variable
{% endfor %}
Exemple d'entrée
{% for product in params.products %}
{{ forloop.Counter }}. {{ product.name }}
{% endfor %}
Exemple de sortie

1. Produit a

2. Produit b

3. Produit c

Counter0

Se définit sur un entier représentant le nombre d'itérations de la boucle, en commençant par 0. 

Syntaxe
{% for placeholder in array %}
{{ forloop.Counter0 }}. variable
{% endfor %}
Exemple d'entrée
{% for product in params.products %}
{{ forloop.Counter0 }}. {{ product.name }}
{% endfor %}
Exemple de sortie

0. Produit a

1. Produit b

2. Produit c

Revcounter

Se définit sur un entier représentant le nombre d'éléments restant dans la boucle. Il commence par le nombre total d'éléments et arrive à 1 lors de la dernière itération.

Syntaxe
{% for placeholder in array %}
{{ forloop.Revcounter }}. variable
{% endfor %}
Exemple d'entrée
{% for product in params.products %}
{{ forloop.Revcounter }}. {{ product.name }}
{% endfor %}
Exemple de sortie

5. Produit e

4. Produit d

3. Produit c

2. Produit b

1. Produit a

Revcounter0

Se définit sur un entier représentant le nombre d'éléments restant dans la boucle. Il commence par le nombre total d'éléments et arrive à 0 lors de la dernière itération.

Syntaxe
{% for placeholder in array %}
{{ forloop.Revcounter0 }}. variable
{% endfor %}
Exemple d'entrée
{% for product in params.products %}
{{ forloop.Revcounter0 }}. {{ product.name }}
{% endfor %}
Exemple de sortie

4. Produit e

3. Produit d

2. Produit c

1. Produit b

0. Produit a

if

Affiche une liste d’éléments en fonction de conditions spécifiques.

Syntaxe
{% for placeholder in array %}
{% if condition}
variable
{% endif %}
{% endfor %}
Exemple d'entrée
{% for product in params.products %}
{% if product.price > 50 %}
{{ product.name }} - ${{ product.price }}
{% endif %}
{% endfor %}
Exemple de sortie

Produit a : 89 €

Produit c : 105 €

Produit e : 54 €

➡️ Pour en savoir plus sur les instructions if, consultez notre article dédié [Mode d'emploi] Afficher ou masquer le contenu de vos emails avec des instructions if.

forloop.First

Un booléen défini sur True sur la première itération de la boucle. Cela est utile pour gérer le premier élément différemment, par exemple en appliquant le filtre "majuscules" uniquement au premier produit d’une liste.

Syntaxe
{% for placeholder in array %}
{{ forloop.Counter }}.
{% if forloop.First %}
variable1
{% else %}
variable2
{% endif %}

{% endfor %}
Exemple d'entrée
{% for product in params.products %}
{{ forloop.Counter }}.
{% if forloop.First %}
{{ product.name|upper }}
{% else %}
{{ product.name }}
{% endif %}
{% endfor %}
Exemple de sortie

1. PREMIER PRODUIT

2. Deuxième produit

3. Troisième produit

forloop.Last

Un booléen défini sur True sur la dernière itération de la boucle.  Cela est utile pour gérer l’élément final différemment, par exemple en omettant une virgule de fin dans une liste.

Syntaxe
{% for placeholder in array %}
variable{% if not forloop.Last %},{% endif %}
{% endfor %}
Exemple d'entrée
{% for product in params.products %}
{{ product.name }}{% if not forloop.Last %},{% endif %}
{% endfor %}
Exemple de sortie

Produit a, Produit b, Produit c

forloop.Parentloop

Fait référence à l'objet forloop de la boucle parente dans les boucles imbriquées.

Syntaxe
{% for placeholder in array %}
Pays n° {{ forloop.Counter }}: variable
{% for placeholder in array %}
Ville n° {{ forloop.Counter }}: variable
{% endfor %}
{% endfor %}
Exemple d'entrée
{% for country in countries %}
Pays n° {{ forloop.Counter }}: {{ country.name }}
{% for city in country.city_list %}
Ville n° {{ forloop.Counter }}: {{ city }}
{% endfor %}
{% endfor %}
Exemple de sortie

Pays n° 1 : États-Unis

Ville n° 1 : New York

Ville n° 2 : Los Angeles

Ville n° 3 : Chicago

Pays n° 2 : Allemagne

Ville n° 1 : Berlin

Ville n° 2 : Munich

Ville n° 3 : Hambourg

⏭️ Et après ?

🤔 Vous avez des questions ?

Pour toute question, n’hésitez pas à contacter notre service client en créant un ticket à partir de votre compte. Si vous n’avez pas encore de compte, vous pouvez nous contacter ici.

Si vous avez besoin d'aide pour un projet impliquant Brevo, nous pouvons vous mettre en relation avec une agence partenaire Brevo.

💬 Cet article vous a-t-il été utile ?

Utilisateurs qui ont trouvé cela utile : 5 sur 17