Cas d’utilisation de la personnalisation : e-mail d’abandon de panier personalization-use-case-helper-functions
Sur cette page : suivez un cas d’utilisation d’abandon de panier qui personnalise le corps d’un e-mail à l’aide des fonctions d’assistant upperCase, each et if dans Adobe Journey Optimizer.
Dans cet exemple, vous allez personnaliser le corps d’un e-mail. Ce message cible les clients qui ont laissé des articles dans leur panier mais n’ont pas effectué leur achat.
Vous utiliserez ces types de fonctions helper :
- La fonction de chaîne
upperCasepermettant d’insérer le prénom du client en majuscules. En savoir plus. - La fonction helper
eachpermettant de répertorier les articles qui se trouvent dans le panier. En savoir plus. - La fonction helper
ifpermettant d’insérer une note spécifique au produit si le produit associé se trouve dans le panier. En savoir plus.
➡️ Découvrez comment utiliser les fonctions d’assistance dans cette vidéo.
Avant de commencer, vérifiez que vous savez comment configurer ces éléments :
- Un événement unitaire. En savoir plus.
- Un parcours commençant par un événement. En savoir plus.
- Un e-mail dans votre parcours. En savoir plus
- Le corps d’un email. En savoir plus.
Procédez comme suit :
Étape 1 : créer l’événement initial et le parcours associé create-context
Le contenu du panier est une information contextuelle provenant du parcours. Par conséquent, vous devez ajouter un événement initial et l’e-mail à un parcours avant de pouvoir ajouter des informations spécifiques au panier à l’e-mail.
-
Créez un événement dont le schéma inclut le tableau
productListItems. -
Définissez tous les champs de ce tableau comme champs de payload pour cet événement.
En savoir plus sur le type de données d’élément de liste de produit dans la documentation d’Adobe Experience Platform.
-
Créez un parcours commençant par cet événement.
-
Ajoutez une activité E-mail au parcours.
Étape 2 : créer l’e-mail configure-email
-
Dans l’activité E-mail, cliquez sur Modifier le contenu, puis cliquez sur concepteur d’e-mail.
-
Dans la palette gauche de la page d’accueil du concepteur d’e-mail, effectuez un glisser-déposer de trois composants de structure dans le corps du message.
-
Effectuez un glisser-déposer d’un composant de contenu HTML dans chaque nouveau composant de structure.
Étape 3 : insérer le prénom du client en majuscules uppercase-function
-
Sur la page d’accueil du concepteur d’e-mail, cliquez sur le composant HTML dans lequel vous souhaitez ajouter le prénom du client.
-
Dans la barre d’outils contextuelle, cliquez sur Afficher le code source.
-
Dans la fenêtre Modifier le code HTML, ajoutez la fonction de chaîne
upperCase:-
Dans le menu de gauche, sélectionnez Fonctions d’assistance.
-
Utilisez le champ de recherche pour trouver « upper case ».
-
À partir des résultats de la recherche, ajoutez la fonction
upperCase. Pour ce faire, cliquez sur le signe plus (+) en regard de{%= upperCase(string) %}: string.L’éditeur d’expression affiche cette expression :
code language-handlebars {%= upperCase(string) %}
-
-
Supprimez l’espace réservé « string » de l’expression.
-
Ajoutez le jeton de prénom :
-
Dans le menu de gauche, sélectionnez Attributs de profil.
-
Sélectionnez Personne > Nom complet.
-
Ajoutez le jeton Prénom à l’expression.
L’éditeur d’expression affiche cette expression :
code language-handlebars {%= upperCase(profile.person.name.firstName) %}
En savoir plus sur le type de données de nom de personne dans la documentation d’Adobe Experience Platform.
-
-
Cliquez sur Valider, puis sur Enregistrer.
-
Enregistrez le message.
Étape 4 : insérer la liste des articles du panier each-helper
Cette étape illustre l’itération sur les données d’événement. Pour obtenir des exemples complets d’itération sur différentes sources de données (événements, réponses d’action personnalisée et autres données contextuelles), consultez Itérer sur des données contextuelles avec Handlebars.
-
Rouvrez le contenu du message.
-
Sur la page d’accueil du concepteur d’e-mail, cliquez sur le composant HTML dans lequel vous souhaitez répertorier le contenu du panier.
-
Dans la barre d’outils contextuelle, cliquez sur Afficher le code source.
-
Dans la fenêtre Modifier le code HTML, ajoutez la fonction helper
each:-
Dans le menu de gauche, sélectionnez Fonctions d’assistance.
-
Utilisez le champ de recherche pour trouver « each ».
-
À partir des résultats de la recherche, ajoutez la fonction helper
each.L’éditeur d’expression affiche cette expression :
code language-handlebars {{#each someArray as |variable|}} {{/each}}
-
-
Ajoutez le tableau
productListItemsà l’expression :-
Supprimez l’espace réservé « someArray » de l’expression.
-
Dans le menu de gauche, sélectionnez Attributs contextuels.
Les attributs contextuels ne sont disponibles qu’une fois que le contexte du parcours a été transmis au message.
-
Sélectionnez Journey Optimizer > Événements > event_name, puis développez le nœud productListItems.
Dans cet exemple, event_name représente le nom de votre événement.
-
Ajoutez le jeton Produit à l’expression.
L’éditeur d’expression affiche cette expression :
code language-handlebars {{#each context.journey.events.event_ID.productListItems.product as |variable|}} {{/each}}Dans cet exemple, event_ID représente l’identifiant de votre événement.
-
Modifiez l’expression :
- Supprimez la chaîne « .product ».
- Remplacez l’espace réservé « variable » par « product ».
Cet exemple illustre l’expression modifiée :
code language-handlebars {{#each context.journey.events.event_ID.productListItems as |product|}}
-
-
Collez ce code entre la balise
{{#each}}d’ouverture et la balise{{/each}}de fermeture :code language-html <table> <tbody> <tr> <td><b>#name</b></td> <td><b>#quantity</b></td> <td><b>$#priceTotal</b></td> </tr> </tbody> </table> -
Ajoutez les jetons de personnalisation pour le nom de l’article, la quantité et le prix :
- Supprimez l’espace réservé « #name » du tableau HTML.
- À partir des résultats de recherche précédents, ajoutez le jeton Nom à l’expression.
Répétez deux fois ces étapes :
- Remplacez l’espace réservé « #quantity » par le jeton Quantité.
- Remplacez l’espace réservé « #priceTotal » par le jeton Prix total.
Cet exemple illustre l’expression modifiée :
code language-handlebars {{#each context.journey.events.event_ID.productListItems as |product|}} <table> <tbody> <tr> <td><b>{{product.name}}</b></td> <td><b>{{product.quantity}}</b></td> <td><b>${{product.priceTotal}}</b></td> </tr> </tbody> </table> {{/each}} -
Cliquez sur Valider, puis sur Enregistrer.
Étape 5 : insérer une note spécifique au produit if-helper
-
Sur la page d’accueil du concepteur d’e-mail, cliquez sur le composant HTML dans lequel vous souhaitez insérer la note.
-
Dans la barre d’outils contextuelle, cliquez sur Afficher le code source.
-
Dans la fenêtre Modifier le code HTML, ajoutez la fonction helper
if:-
Dans le menu de gauche, sélectionnez Fonctions d’assistance.
-
Utilisez le champ de recherche pour trouver « if ».
-
À partir des résultats de la recherche, ajoutez la fonction helper
if.L’éditeur d’expression affiche cette expression :
code language-handlebars {%#if condition1%} render_1 {%else if condition2%} render_2 {%else%} default_render {%/if%}
-
-
Supprimez cette condition de l’expression :
code language-handlebars {%else if condition2%} render_2Cet exemple illustre l’expression modifiée :
code language-handlebars {%#if condition1%} render_1 {%else%} default_render {%/if%} -
Ajoutez le jeton de nom de produit à la condition :
-
Supprimez l’espace réservé « condition1 » de l’expression.
-
Dans le menu de gauche, sélectionnez Attributs contextuels.
-
Sélectionnez Journey Orchestration > Événements > event_name, puis développez le nœud productListItems.
Dans cet exemple, event_name représente le nom de votre événement.
-
Ajoutez le jeton Nom à l’expression.
L’éditeur d’expression affiche cette expression :
code language-handlebars {%#if context.journey.events.`event_ID`.productListItems.name%} render_1 {%else%} default_render {%/if%}
-
-
Modifiez l’expression :
-
Dans l’éditeur d’expression, indiquez le nom du produit après le jeton
name.Utilisez cette syntaxe, où product_name représente le nom de votre produit :
code language-javascript = "product_name"Dans cet exemple, le nom du produit est « Juno Jacket » :
code language-handlebars {%#if context.journey.events.`event_ID`.productListItems.name = "Juno Jacket" %} render_1 {%else%} default_render {%/if%} -
Remplacez l’espace réservé « render_1 » par le texte de la note.
Exemple :
code language-handlebars {%#if context.journey.events.`event_ID`.productListItems.name = "Juno Jacket" %} Due to longer than usual lead times on the Juno Jacket, please expect item to ship two weeks after purchase. {%else%} default_render {%/if%} -
Supprimez l’espace réservé « default_render » de l’expression.
-
-
Cliquez sur Valider, puis sur Enregistrer.
-
Enregistrez le message.
Étape 6 : tester et publier le parcours test-and-publish
-
Activez le bouton d’activation/désactivation Test, puis cliquez sur Déclencher un événement.
-
Dans la fenêtre Configuration de l’événement, saisissez les valeurs d’entrée, puis cliquez sur Envoyer.
Le mode test fonctionne uniquement avec les profils de test.
L’e-mail est envoyé à l’adresse du profil de test.
Dans cet exemple, l’e-mail contient la note relative à Juno Jacket, car ce produit se trouve dans le panier :
-
Vérifiez qu’il n’y a pas d’erreur et publiez le parcours.
Rubriques connexes related-topics
Fonctions Handlebars handlebars
Cas d’utilisation use-case
Vidéo pratique video
Découvrez comment utiliser les fonctions d’assistance.
This section contains structured knowledge intended to support interpretation, retrieval, and question answering related to this topic.
For complete understanding, this information should be combined with the documentation on this page. Neither source is intended to stand alone; the page describes the feature, while this section provides additional context that helps disambiguate terminology, intent, applicability, and constraints.
- TL;DR: This page walks through a cart abandonment email use case using three helper functions —
upperCase,each, andif— to display a customer’s first name in capitals, list cart items, and insert a product-specific shipping note conditionally.
Intents:
- Create a journey event whose schema includes the
productListItemsarray - Insert a customer’s first name in uppercase using
{%= upperCase(profile.person.name.firstName) %} - List cart items by iterating over
context.journey.events.event_ID.productListItemswith{{#each}} - Display a product-specific note conditionally using
{%#if context.journey.events.\event_ID`.productListItems.name = “product_name” %}` - Test the journey in test mode using a test profile with event payload, then publish
Glossary:
upperCase: A PQL string function that converts a string to uppercase; called with{%= upperCase(string) %}. (product-specific)eachhelper: A Handlebars block helper ({{#each array as |alias|}} ... {{/each}}) that iterates over an array such asproductListItems. (product-specific)ifhelper: A conditional block helper ({%#if condition%} ... {%else%} ... {%/if%}) that renders content only when the specified condition is true.productListItems: A standard XDM array representing cart contents, with fields includingname,quantity, andpriceTotal. (product-specific)- Test mode: A journey feature that enables sending test messages to test profile addresses to verify journey and message behavior before publication. (product-specific)
Guardrails:
- Contextual attributes (including journey event data) are available in the personalization editor only after the message has been placed inside a journey that includes the relevant event.
- Test mode works only with test profiles.
Terminology:
- Canonical name: cart abandonment email — variants: cart abandonment use case
- Do not confuse:
context.journey.events.event_ID.productListItems(event-sourced array, accessed via Contextual attributes) ≠profile.*attributes (profile-sourced, always available)
FAQ:
- Q: What helper functions are used in this use case? — Three:
upperCase(renders first name in capitals),each(iterates over the cart items array), andif(conditionally displays a product-specific shipping note). - Q: Where does the cart item data come from in the personalization expression? — From the journey event’s
productListItemsarray, accessed via Contextual attributes atcontext.journey.events.event_ID.productListItems. - Q: Can contextual attributes be used before placing the message inside a journey? — No. Contextual attributes are available in the personalization editor only after the message is placed inside a journey that includes the relevant event.
- Q: How do I test the email with cart data? — Turn on the Test toggle in the journey, click Trigger an event, and enter the input values in the Event configuration window, then click Send. The email is sent to the test profile’s address.