Variables Liquid dans Shopify Flow

Les variables sont des paramètres fictifs qui sont remplacés par des valeurs lors de l’exécution d’un flux de travail. Ces variables décrivent les attributs des clients, commandes et produits impliqués dans vos flux de travail. Par exemple, il existe des variables pour le numéro de la commande, le prix de la commande, le nom du/de la client(e), etc. Vous pouvez utiliser ces variables dans des conditions, de manière à contrôler la logique de votre flux de travail ou pour produire les données d’une action.

À propos de Liquid

Liquid est un langage de modélisation utilisé pour accéder aux variables incluses dans des actions et pour rédiger du code dans Flow. Flow utilise une variante de Liquid qui suit de près la bibliothèque open source. Les thèmes Shopify utilisent une autre variante de Liquid, mais cette variante de Liquid est spécifique aux thèmes et comprend beaucoup plus de filtres et de balises que ne prend en charge Flow, ainsi qu’une syntaxe différente pour l’accès aux variables.

Variables Liquid

Vous pouvez ajouter des variables Liquid à n’importe quel champ de texte contenant le lien Ajouter une variable. Cliquez sur le lien Ajouter une variable sous le champ concerné, puis choisissez une variable dans la liste.

image montrant les champs qui acceptent Liquid

Les variables de la liste Ajouter une variable sont filtrées, de sorte que vous ne voyez que le retour des variables par les étapes précédant l’étape en cours, telles que les déclencheurs. Par exemple, le déclencheur Commande créée fournit des ressources de commande et de boutique qui vous permettent ensuite d’utiliser toutes les variables reliées à la commande ou aux paramètres de votre boutique, qui sont accessibles dans l’API Admin GraphQL. Une fois que vous avez choisi une variable dans la liste, cette variable est formatée correctement et ajoutée à la zone de texte pour vous.

Vous pouvez également rédiger le code Liquid directement dans le bloc de texte. Par exemple, vous pouvez utiliser la variable {{ order.name }} pour afficher la chaîne de commande qui apparaît dans l’interface administrateur Shopify, p. ex. commande-123.

Étant donné que Flow utilise l’API Admin GraphQL pour récupérer les données que vous utilisez dans Liquid, la syntaxe de la variable utilise « camel case » (étui sable). Par exemple, pour accéder à la date de création d’un produit, saisissez {{ product.createdAt }}. Si vous utilisez la syntaxe Liquid dans un thème Shopify, vous devez ensuite saisir {{ product.created_at }}.

Balises Liquid de condition et d’itération

Il se peut que vous souhaitiez utiliser des balises Liquid pour effectuer les actions suivantes :

  • Rédiger des énoncés de conditions, par exemple pour déterminer si le montant total d’une commande est supérieur à 100 USD
  • Itérer par le biais d’une liste d’objets, par exemple la production de données pour chaque rubrique d’une commande

Vous pouvez utiliser des balises Liquid pour rédiger ces énoncés et les itérer par le biais d’objets.

Par exemple, le code Liquid suivant affiche le numéro de la commande si le total de la commande est supérieur à 100 USD :

{% if order.totalPriceSet.shopMoney.amount > 100 %}
  Order number: {{ order.name }}
{% endif %}

Vous pouvez également utiliser une balise for loop pour itérer par le biais d’une liste d’objets tels que les rubriques d’une commande. Par exemple, le code Liquid suivant affiche le nom de chacune des rubriques d’une commande :

{% for li in order.lineItems %}
  {{ li.title }}
{% endfor %}

Flow prend en charge les balises Liquid conditionnelles (ou de contrôle du flux) suivantes :

Flow prend également en charge les balises d’itération Liquid suivantes :

Filtres

Les filtres vous permettent de transformer les données en code Liquid. Flow prend en charge tous les filtres Liquid open source.

Par exemple, le code Liquid suivant supprime un préfixe dans un nom de commande et sort ce qui reste : {{ order.name | remove: "Order-" }}

En plus des filtres Liquid standard, Flow fournit des filtres de date pour obtenir une date mise en rapport avec une autre date afin de prendre en charge le déclencheur Date/heure prévues et les fonctionnalités Obtenir les données. Ces filtres sont les suivants : date_minus et date_plus.

Pour renvoyer une date un jour dans le futur :{{ "now" | date_plus: "1 day" }}

Pour renvoyer une date un jour dans le passé :{{ "now" | date_minus: "1 day" }}

Ces filtres acceptent second, minute, day, week, month et year comme unité de durée, à la fois au singulier (p. ex. second) et au pluriel (p. ex. seconds). En plus de ce format, vous pouvez également fournir un nombre entier (nombre de secondes). Par exemple :{{ "now" | date_minus: 3600 }}

Vous pouvez aussi fournir une chaîne de durée ISO8601, où P1Y2D signifie 1 an et 2 jours :{{ "now" | date_minus: "P1Y2D" }}

Considérations sur l’utilisation de variables Liquid dans les filtres

  • Flow ne prend pas en charge la notation par point disponible pour certains filtres. Par exemple, Flow prend en charge {{ order.lineItems | size }}, mais pas {{ order.lineItems.size }}.
  • Flow ne prend pas en charge la notation par point pour les champs méta. Par exemple, vous ne pouvez pas utiliser {{ order.metafields.custom.hold_note }}. Au lieu de cela, vous devez faire une boucle sur les champs méta tel qu’indiqué dans les exemples.
  • Flow ne prend pas en charge l’utilisation d’index pour accéder aux éléments d’une liste. Par exemple, vous ne pouvez pas utiliser {{ order.lineItems[0].title }}. Au lieu de cela, vous devez faire une boucle sur les rubriques tel qu’indiqué dans les exemples.

Exemples

Pour mieux comprendre comment utiliser les variables Liquid, prenons les exemples suivants.

Sortie d’une valeur de champ méta

Vous souhaitez sortir la valeur d’un champ méta de commande dans un e-mail. Le champ méta est une chaîne et possède un espace de nom de custom et une clé de hold_note. La valeur de ce champ méta est Please wait to deliver this order until April 1.. Vous créez un flux de travail avec le déclencheur Commande créée et vous utilisez l’action Envoyer un e-mail interne. Dans la section Message de l’action Envoyer un e-mail interne, vous utilisez les variables suivantes.

Exemple d’utilisation de variable pour produire un champ méta de commande.
Entrée Sortie
{% assign hold_note = order.metafields | where: "namespace", "custom" | where: "key", "hold_note" | first %}
La commande a une note de mise en attente de : {{ hold_note.value }}
La commande a une note de mise en attente : Veuillez attendre jusqu’au 1er avril pour livrer cette commande.

Convertir une liste de balises en champ méta

Vous souhaitez convertir un ensemble de balises en un champ méta qui est une liste de champs de texte à une seule ligne. Vous créez un flux de travail à l’aide du déclencheur Produit ajouté à la boutique et utilisez l’action Mettre à jour un champ méta de produit. Dans la section Valeur de l’action Mettre à jour un champ méta de produit, vous ajoutez le code Liquid suivant. Cet exemple considère que vous ne devez définir les valeurs qu’une seule fois lors de la création du produit et que celui-ci possède deux balises pertinentes : color:red et color:orange.

Exemple de texte Liquid pour définir la liste d’un champ de texte à seule ligne.
Entrée Sortie
{% capture mf_value %}
{%- for tags_item in product.tags -%}
{%- if tags_item contains "color:" -%}
"{{- tags_item | remove_first: "color:" | strip -}}",
{%- endif -%}
{%- endfor -%}
{% endcapture -%}
[{{mf_value | remove_last: ","}}]
["red","orange"]

Rédiger un e-mail dynamique pour une commande

Vous souhaitez créer un flux de travail pour envoyer un e-mail à un employé lorsqu’un client dépense plus de 500 USD sur une commande. Vous créez un flux de travail en utilisant le déclencheur Commande créée, puis vous définissez une condition « vraie » si le total de la commande dépasse 500 USD et vous utilisez l’action Envoyer un e-mail interne. Dans la section Message de l’action Envoyer un e-mail interne, vous utilisez les variables suivantes.

Exemple de variable utilisée pour fournir des détails sur le client.
Entrée Sortie
Veuillez envoyer un message de remerciement personnel à {{ order.customer.firstName }} {{ order.customer.lastName }}({{ order.customer.email }}) pour avoir passé une commande de {{ order.totalPriceSet.shopMoney.amount }}$. Veuillez envoyer un message de remerciement personnel à Jeanne Dupont (jeanne@example.com) pour avoir passé une commande de 763,42 $.

Rédiger un e-mail dynamique pour un produit dont le stock est bas

Vous décidez que vous devez informer un employé lorsque le stock de produit est en baisse et qu’une commande doit être passée pour en avoir plus. Créez un flux de travail qui commence par le déclencheur quantité de stock modifiée et définissez une condition vraie si la quantité de stock avant est inférieure ou égale à 10. Dans la section message de l’action envoyer un e-mail interne, vous utilisez les variables suivantes.

Exemple d'utilisation de variable pour fournir des détails sur l'article.
Entrée Sortie
Veuillez renouveler la commande {{ product.title }}. Envoyez un e-mail à owner@store.com pour vérifier qu’il a reçu le bon de commande. Veuillez renouveler la commande de leggings taille haute - noir. Envoyez un e-mail à owner@example.com pour vérifier qu’il a reçu le bon de commande.

Rédiger un e-mail dynamique pour avertir les employés d’une commande frauduleuse

Vous souhaitez annuler des commandes qui ont un niveau de risque élevé, mais préférez que vos employés annulent la commande manuellement. Créez un flux de travail qui commence par le déclencheur commande créée et définissez une condition qui est vraie si le niveau de risque de la commande est égal à élevé. Dans la section message de l’action envoyer un e-mail interne, vous utilisez les variables suivantes.

Exemple de variable utilisée pour fournir des informations sur une commande frauduleuse.
Entrée Sortie
Notre boutique Shopify a reçu une commande avec un risque élevé de fraude. Nous aimerions annuler cette commande immédiatement, avant son envoi à la production :

{{ order.name }}
{{ order.billingAddress.lastName }}, {{ order.billingAddress.firstName }}
{{ order.email }}

Veuillez confirmer le statut de la nouvelle commande. Merci !
Notre boutique Shopify a reçu une commande avec un risque élevé de fraude. Nous aimerions annuler cette commande immédiatement, avant son envoi à la production :

#1001
Dupont, Jeanne
jeanne@example.com

Veuillez confirmer le statut de la nouvelle commande. Merci !

Sortie des rubriques d’une commande à l’aide d’une boucle for

Lorsqu’une commande est reçue, il peut être utile d’envoyer un message contenant les produits commandés. Pour ce faire, vous pouvez utiliser for loop, qui exécutent de façon répétée un bloc de code. Les champs de texte qui prennent en charge les variables prennent également en charge les boucles for et l’objet forloop.

Par exemple, vous souhaitez créer un flux de travail qui retourne une liste de tous les SKU et les quantités d’une commande. Dans la section message de l’action envoyer un e-mail interne, vous utilisez les variables suivantes.

Exemple d’utilisation de boucle for pour fournir des informations sur la commande.
Entrée Sortie
Résumé de la commande :
{% for a in order.lineItems %}
unités de gestion de stock : {{a.sku}} ( {{a.quantity}} ),
{% endfor %}
Résumé de la commande :
8987097979 (50)
8877778887 (3)
8889988988B (1)

Sortie des rubriques d’une commande à l’aide d’une boucle for avec des informations supplémentaires

Vous décidez d’ajouter plus d’informations à l’e-mail, notamment le nom du produit, les SKU, le prix par article et les informations d’expédition du client. Dans la section message de l’action envoyer un e-mail interne, vous utilisez les variables suivantes.

Exemple d’utilisation de boucle for pour fournir de plus amples informations sur la commande.
Entrée Sortie
Résumé de la commande :
{% for a in order.lineItems %}
produit : {{a.title}}
unité de gestion de stock : {{a.sku}}
(par unité) : $ {{a.originalUnitPriceSet.shopMoney.amount}}
quantité : {{a.quantity}}
{% endfor %}
Résumé de la commande :
Produit : leggings taille haute - Noir
Unité de gestion de stock : 8987097979
Prix (à l’unité) : 8,49 $
Quantité : 5
Produit : Chaussettes de sport – Bleu
Unité de gestion de stock : 88899889898B
Prix (à l’unité) : 5,61 $
Quantité : 2

Sortie de certaines rubriques en combinant une boucle for et une condition si

Vous devez suivre les articles vendus fournis par un fournisseur spécifique. Dans la section messages de l’action envoyer un e-mail interne, vous utilisez les variables suivantes et incluez un énoncé if dans votre for loop.

Exemple de boucle for et d'énoncé si utilisé pour fournir des informations sur la commande pour des fournisseurs spécifiques.
Entrée Sortie
Produit Acme vendu :
{% for x in order.lineItems %}
{% if x.vendor == 'acme-vendor' %}
Nom du produit : {{x.title}}
Unité de gestion de stock : {{x.sku}}
{% endif %}
{% endfor %}
Produit Acme vendu :
Nom du produit : Leggings taille haute
Unité de gestion de stock : 8987097979

Objets de données complexes dans Shopify Flow

Flow vous permet d’accéder à presque toutes les données de l’API GraphQL Admin. Cela inclut des objets de données complexes, tels que des listes et des objets. Toutefois, il existe certaines limites à ce que vous pouvez faire avec ces objets. Cette section décrit ces restrictions et explique comment les utiliser.

Au lieu d’appeler directement des listes et des objets, faites une boucle sur la liste et incluez uniquement les champs que vous souhaitez.

Par exemple, au lieu d’appeler directement {{ order.lineItems }}, utilisez le format suivant pour appeler des champs spécifiques. Ces exemples comprennent tous les champs qui seraient inclus en appelant directement la liste ou l’objet. Copiez et collez les champs dont vous avez besoin.

Prêt(e) à commencer à vendre avec Shopify ?

Essayez gratuitement