Opérateurs
Liquid prend en charge de nombreux opérateurs que vous pouvez utiliser dans vos instructions conditionnelles. Cette page présente les opérateurs pris en charge par Liquid et fournit des cas d’utilisation pour les intégrer dans vos messages.
Ce tableau répertorie les opérateurs pris en charge. Notez que les parenthèses sont des caractères non valides dans Liquid et empêchent vos balises de fonctionner.
| Syntaxe | Description de l’opérateur |
|---|---|
| == | est égal à |
| != | n’est pas égal à |
| > | supérieur à |
| < | inférieur à |
| >= | supérieur ou égal à |
| <= | inférieur ou égal à |
| or | condition A ou condition B |
| and | condition A et condition B |
| contains | vérifie si une chaîne de caractères ou un tableau de chaînes contient une chaîne de caractères |
Les opérateurs peuvent être utilisés dans les instructions conditionnelles (if, elsif, unless) mais pas dans les instructions assign, les boucles for, les instructions case/when ou les crochets d’accès aux tableaux. Pour une explication complète, consultez Où utiliser les opérateurs et les filtres.
Regrouper des conditions sans parenthèses
Liquid ne prend pas en charge les parenthèses pour regrouper les expressions. Pour évaluer une logique booléenne complexe telle que (a and b) or c, utilisez des instructions if imbriquées ou des variables intermédiaires.
Par exemple, pour vérifier si une valeur satisfait une condition composée, assignez une variable intermédiaire :
1
2
3
4
5
6
7
8
9
10
{% assign qualifies = false %}
{% if points > 100 %}
{% assign qualifies = true %}
{% elsif points == 100 and member_level == 'gold' %}
{% assign qualifies = true %}
{% endif %}
{% if qualifies %}
You qualify for a reward!
{% endif %}
Tutoriels
Passons en revue quelques tutoriels pour apprendre à utiliser ces opérateurs dans vos campagnes marketing :
Choisir un message avec un attribut personnalisé de type entier
Envoyons des notifications push avec des réductions promotionnelles personnalisées aux utilisateurs qui ont ou n’ont pas effectué d’achats. La notification push utilisera un attribut personnalisé de type entier appelé total_spend pour vérifier les dépenses totales d’un utilisateur.
- Écrivez une instruction conditionnelle en utilisant l’opérateur supérieur à (
>) pour vérifier si les dépenses totales d’un utilisateur sont supérieures à0, indiquant qu’il a effectué un achat. Ensuite, créez un message à envoyer à ces utilisateurs.
1
2
{% if {{custom_attribute.${total_spend}}} >0 %}
Surprise! We added a 15% discount code to your account that automatically applies to your next order.
- Ajoutez la balise
{% else %}pour cibler les utilisateurs dont les dépenses totales sont égales à0ou n’existent pas. Ensuite, créez un message à envoyer à ces utilisateurs.
1
2
{% else %}
Need a sign to update your wardrobe? We added a 15% discount code to your account that will automatically apply to your first order.
- Fermez la logique conditionnelle avec la balise
{% endif %}.
1
{% endif %}

Code Liquid complet
1
2
3
4
5
{% if {{custom_attribute.${total_spend}}} >0 %}
Surprise! We added a 15% discount code to your account that automatically applies to your next order.
{% else %}
Need a sign to update your wardrobe? We added a 15% discount code to your account that will automatically apply to your first order.
{% endif %}
Maintenant, si l’attribut personnalisé « Total Spend » d’un utilisateur est supérieur à 0, il recevra le message :
1
Surprise! We added a 15% discount code to your account that automatically applies to your next order.
Si l’attribut personnalisé « Total Spend » d’un utilisateur n’existe pas ou est égal à 0, il recevra le message suivant :
1
Need a sign to update your wardrobe? We added a 15% discount code to your account that will automatically apply to your first order.
Choisir un message avec un attribut personnalisé de type chaîne de caractères
Envoyons des notifications push aux utilisateurs et personnalisons le message en fonction du dernier jeu auquel chaque utilisateur a joué. Cela utilisera un attribut personnalisé de type chaîne de caractères appelé recent_game pour vérifier à quel jeu un utilisateur a joué en dernier.
- Écrivez une instruction conditionnelle en utilisant l’opérateur d’égalité (
==) pour vérifier si le jeu le plus récent d’un utilisateur est Awkward Dinner Party. Ensuite, créez un message à envoyer à ces utilisateurs.
1
2
{% if {{custom_attribute.${recent_game}}} == 'Awkward Dinner Party' %}
You are formally invited to our next dinner party. Log on next week for another round of delectable dishes and curious conversations.
- Utilisez la balise
elsifavec l’opérateur d’égalité (==) pour vérifier si le jeu le plus récent de l’utilisateur est Proxy War 3: War of Thirst. Ensuite, créez un message à envoyer à ces utilisateurs.
1
2
{% elsif {{custom_attribute.${recent_game}}} == 'Proxy War 3: War of Thirst' %}
Your fleet awaits your next orders. Log on when you're ready to rejoin the war for hydration.
- Utilisez la balise
elsifavec les opérateurs « n’est pas égal à » (!=) et « et » (and) pour vérifier si l’utilisateur a un jeu récent (c’est-à-dire que la valeur n’est pas vide), et que le jeu n’est ni Awkward Dinner Party ni Proxy War 3: War of Thirst. Ensuite, créez un message à envoyer à ces utilisateurs.
1
2
{% elsif {{custom_attribute.${recent_game}}} != blank and {{custom_attribute.${recent_game}}} != 'Awkward Dinner Party' and {{custom_attribute.${recent_game}}} != 'Proxy War 3: War of Thirst' %}
Limited Time Deal! Get 15% off our best-selling classics!
- Ajoutez la balise
{% else %}pour cibler les utilisateurs qui n’ont pas de jeu récent. Ensuite, créez un message à envoyer à ces utilisateurs.
1
2
{% else %}
Hey! I've got a deal for you. Buy 2 of our newest releases and get 10% off!
- Fermez la logique conditionnelle avec la balise
{% endif %}.
1
{% endif %}
Code Liquid complet
1
2
3
4
5
6
7
8
9
{% if {{custom_attribute.${recent_game}}} == 'Awkward Dinner Party' %}
You are formally invited to our next dinner party. Log on next week for another round of delectable dishes and curious conversations.
{% elsif {{custom_attribute.${recent_game}}} == 'Proxy War 3: War of Thirst' %}
Your fleet awaits your next orders. Log on when you're ready to rejoin the war for hydration.
{% elsif {{custom_attribute.${recent_game}}} != blank and {{custom_attribute.${recent_game}}} != 'Awkward Dinner Party' and {{custom_attribute.${recent_game}}} != 'Proxy War 3: War of Thirst' %}
Limited Time Deal! Get 15% off our best-selling classics!
{% else %}
Hey! I've got a deal for you. Buy 2 of our newest releases and get 10% off!
{% endif %}

Maintenant, si un utilisateur a joué en dernier à Awkward Dinner Party, il recevra ce message :
1
You are formally invited to our next dinner party. Log on next week for another round of delectable dishes and curious conversations.
Si le jeu le plus récent d’un utilisateur est Proxy War 3: War of Thirst, il recevra ce message :
1
Your fleet awaits your next orders. Log on when you're ready to rejoin the war for hydration.
Si un utilisateur a récemment joué à un jeu qui n’était ni Awkward Dinner Party ni Proxy War 3: War of Thirst, il recevra ce message :
1
Limited Time Deal! Get 15% off our best-selling classics!
Si un utilisateur n’a joué à aucun jeu ou si cet attribut personnalisé n’existe pas dans son profil, il recevra ce message :
1
Hey! I've got a deal for you. Buy 2 of our newest releases and get 10% off!
Annuler un message en fonction de la localisation
Vous pouvez annuler un message en fonction de pratiquement n’importe quel critère. Annulons un message si un utilisateur ne se trouve pas dans une zone spécifique, car il pourrait ne pas être éligible à la promotion, au spectacle ou à la livraison.
- Écrivez une instruction conditionnelle en utilisant l’opérateur d’égalité (
==) pour vérifier si le fuseau horaire de l’utilisateur estAmerica/Los_Angeles, puis créez un message à envoyer à ces utilisateurs.
1
2
{% if {{${time_zone}}} == 'America/Los_Angeles' %}
Stream now!
- Pour éviter d’envoyer des messages aux utilisateurs en dehors du fuseau horaire
America/Los_Angeles, encadrez les balises{% else %}et{% endif %}autour d’une balise{% abort_message () %}.
1
2
3
{% else %}
{% abort_message () %}
{% endif %}
Code Liquid complet
1
2
3
4
5
{% if {{${time_zone}}} =='America/Los_Angeles' %}
Stream now!
{% else %}
{% abort_message () %}
{% endif %}

Vous pouvez également annuler des messages en fonction du Contenu connecté.
Résolution des problèmes
La prévisualisation peut convertir incorrectement les types de propriétés
Lors de la prévisualisation d’un message dans le tableau de bord, la plupart des variables (comme les attributs personnalisés) sont converties dans le type correct. Cependant, certaines variables n’ont pas de type défini que la prévisualisation peut rechercher :
api_trigger_propertiescanvas_entry_propertiescontext
Pour ces propriétés, la prévisualisation tente de déduire le type à partir de la valeur. Cela signifie qu’une valeur que vous souhaitez traiter comme une chaîne de caractères pourrait être interprétée à tort comme un nombre. Par exemple, si la valeur d’une propriété est la chaîne "3", la prévisualisation peut la convertir en entier 3, ce qui peut provoquer un comportement inattendu dans les opérations sur les chaînes comme contains ou split.
Si vous observez des résultats de prévisualisation inattendus avec ces types de propriétés, gardez à l’esprit que l’inférence de type de la prévisualisation peut ne pas correspondre à ce qui se passe au moment de l’envoi. Au moment de l’envoi, les types de données réels provenant de l’événement déclencheur ou de l’appel API sont préservés.
Pour forcer un type spécifique dans la prévisualisation, vous pouvez convertir explicitement la valeur :
1
2
3
4
5
{% comment %} Force a value to be treated as a number {% endcomment %}
{% assign orders = {{canvas_entry_properties.${number_of_orders}}} | plus: 0 %}
{% comment %} Force a value to be treated as a string {% endcomment %}
{% assign code = {{api_trigger_properties.${promo_code}}} | append: "" %}