Conditions dans Shopify Flow

Les conditions permettent à un flux de travail de se poursuivre lorsque certaines règles sont respectées, comme au début d’une instruction si-alors. Lorsque vous définissez une condition, vous choisissez des critères parmi les champs de l’API Admin GraphQL (par exemple, product.title), un opérateur logique (par exemple, égal à) et une valeur à vérifier (par exemple, Blue jeans). Lorsqu’un flux de travail évalue une condition, Flow compare la valeur définie dans le flux de travail à la valeur renvoyée pour votre boutique, puis affiche les résultats dans l’exécution du flux de travail. Pour mieux comprendre les champs et les valeurs disponibles pour définir des conditions, découvrez comment prévisualiser les données de la boutique.

En savoir plus sur les principes de base des conditions.

Types de données utilisés avec Flow

Lorsque vous définissez une condition, vous choisissez un critère parmi les champs disponibles dans l’API Admin et Flow l’évalue par rapport à la valeur renvoyée pour votre boutique.

Flow prend en charge les types de données suivants :

  • Flottant : les valeurs flottantes sont des nombres avec une décimale. Par exemple, 4,25.
  • Entier : les valeurs entières sont des nombres entiers qui n’ont pas de décimale. Par exemple, 42.
  • Date : les valeurs de date sont une représentation numérique de la date. Par exemple, 01012021.
  • Chaîne : les valeurs de chaîne sont du texte. Les comparaisons qui utilisent des valeurs de chaîne ne sont pas sensibles à la casse.
  • Booléen : les valeurs booléennes sont « vrai » ou « faux ».
  • Énumération : les valeurs d’énumération sont des ensembles de données qui permettent à une variable d’être un ensemble de constantes prédéfinies.

Opérateurs logiques

Les opérateurs logiques définissent la manière dont votre condition est appliquée. Les conditions peuvent vérifier des propriétés simples, par exemple si le total d’une commande est supérieur à un certain montant ou si un client accepte le marketing. Les opérateurs logiques peuvent également vérifier des propriétés plus complexes.

Les opérateurs peuvent être soit des opérateurs au niveau du champ, tels que égal à ou différent de, soit des opérateurs de liste, tels que au moins un parmi ou aucun parmi.

Opérateurs au niveau du champ

Les opérateurs au niveau du champ sont utilisés pour comparer deux valeurs. Flow peut utiliser les opérateurs suivants :

Liste des opérateurs au niveau du champ disponibles dans Shopify Flow.
OpérateurDescriptionExemple
Égal à Compare des valeurs pour vérifier si elles sont identiques. La valeur de order.currentTotalDiscountsSet.shopMoney.amount est extraite des données de votre boutique et comparée à la deuxième valeur, 50.

Si le montant total des réductions de la commande est exactement égal à 50, la condition est vraie.
Différent de Compare des valeurs pour vérifier si elles ne sont pas identiques. La valeur de order.currentTotalDiscountsSet.shopMoney.amount est extraite des données de votre boutique et comparée à la deuxième valeur, 50.

Si le montant total des réductions de la commande n’est pas exactement égal à 50, la condition est vraie.
Supérieur à et Supérieur ou égal à Compare des valeurs pour vérifier si la première valeur est supérieure ou supérieure ou égale à la deuxième valeur. La valeur de order.currentTotalDiscountsSet.shopMoney.amount est extraite des données de votre boutique et comparée à la deuxième valeur, 50.

Si le montant total des réductions de la commande est de 137, la condition est vraie, car 137 est supérieur à 50.
Inférieur à et Inférieur ou égal à Compare des valeurs pour vérifier si la première valeur est inférieure ou inférieure ou égale à la deuxième valeur. La valeur de order.currentTotalDiscountsSet.shopMoney.amount est extraite des données de votre boutique et comparée à la deuxième valeur, 50.

Si le montant total des réductions de la commande est de 47, la condition est vraie, car 47 est inférieur ou égal à 50.
Au moins un parmi Vérifie si le champ est égal à l’une des valeurs de la liste fournie. Les valeurs doivent être saisies individuellement et en appuyant sur la touche Entrée après chacune d’elles (comme pour les balises). L’utilisation sur un tableau vide donne lieu à une évaluation fausse. La valeur de order.lineitem.product.title est comparée à : pineapple, guava, kiwi.

Si le titre de produit de l’article est guava, la condition est vraie, car « guava » est inclus dans la liste que vous avez fournie.
Aucun parmi Vérifie si le champ n’est égal à aucune des valeurs de la liste fournie. La valeur de order.lineitem.product.title est comparée à : pineapple, guava, kiwi.

Si le titre de produit de l’article est raspberry, la condition est vraie, car « raspberry » n’est pas inclus dans la liste que vous avez fournie.
Contient Compare les valeurs pour vérifier si la première valeur saisie contient les données de la deuxième valeur saisie. La valeur de order.lineitem.product.title est comparée à : berry.

Si le titre de produit de l’article est strawberry, la condition est vraie, car « berry » est inclus dans « strawberry ».
Ne contient pas Compare les valeurs pour vérifier si la première valeur saisie ne contient pas les données de la deuxième valeur saisie. La valeur de order.lineitem.product.title est comparée à : berry.

Si le titre de produit de l’article est apple, alors la condition est vraie, car « berry » n’est pas inclus dans « apple ».
Commence par Compare des valeurs pour vérifier si la première valeur commence par les données de la deuxième valeur. La valeur de order.shippingAddress.country est comparée à : United.

Si le pays de l’adresse de livraison de la commande est United Kingdom, alors la condition est vraie, car « United Kingdom » commence par « United ».
Ne commence pas par Compare des valeurs pour vérifier si la première valeur ne commence pas par les données de la deuxième valeur. La valeur de order.shippingAddress.country est comparée à : United.

Si le pays de l’adresse de livraison de la commande est Canada, alors la condition est vraie, car « United Kingdom » ne commence pas par « Canada ».
Se termine par Compare des valeurs pour vérifier si la première valeur se termine par les données de la deuxième valeur. La valeur de order.lineitems.product.title est comparée à : pie.

Si le titre de produit de l’article est key lime pie, alors la condition est vraie, car « key lime pie » se termine par « pie ».
Ne se termine pas par Compare des valeurs pour vérifier si la première valeur ne se termine pas par les données de la deuxième valeur. La valeur de order.lineitems.product.title est comparée à : pie.

Si le titre de produit de l’article est chocolate cake, alors la condition est vraie, car « chocolate cake » ne se termine pas par « pie ».

Opérateurs de valeur nulle ou vide

Liste des opérateurs de valeur nulle et vide dans les conditions de Shopify Flow.
OpérateurDescriptionCondition Vrai/Faux
Est vide ou n’existe pasVérifie si un champ est vide (n’a aucune valeur) ou s’il n’existe pas (est null). Renvoie vrai lorsque le champ est vide ou null, et faux s’il est présent.
N’est pas vide et existeVérifie si un champ est présent et s’il n’est pas vide ou null. Renvoie vrai lorsque le champ n’est pas vide et qu’il existe, et faux lorsqu’il est vide.

Opérateurs de liste

Les opérateurs de liste sont combinés avec des opérateurs au niveau du champ pour vous permettre de vérifier des conditions sur les données incluses dans des listes.

Comme dans l’exemple « au moins un », vous pouvez vouloir vérifier si une commande contient un produit spécifique (situé dans order.lineItems) avec une balise spécifique (une liste sous order.lineItems.product.tags). Dans les deux cas, l’exemple utilise l’opérateur de liste au moins un parmi.

Flow fournit 3 opérateurs pour travailler avec les listes : Au moins un parmi, Aucun parmi et Tous les.

Tableau des opérateurs de liste dans les conditions de Shopify Flow.
OpérateurDescriptionExemple d’utilisation
Au moins un parmiVérifie si un élément de la liste correspond à la condition spécifiée.

Renvoie true (vrai) si au moins un élément de la liste correspond. Si la liste est vide ou si aucun élément ne correspond, renvoie false (faux).
Vérifiez si une commande contient un produit avec une balise spécifique en utilisant At least one of order line items.product.tags is equal to tagname.
Aucun parmiVérifie qu’aucun des éléments de la liste ne correspond à la condition spécifiée.

Renvoie true si aucun des éléments ne correspond à la condition. Si la liste est vide, renvoie true.
Vérifiez si un produit ne possède pas la balise presale en utilisant None of product tags is equal to presale.

Une erreur fréquente consiste à essayer de rendre l’opérateur négatif en utilisant is not equal to. L’utilisation de cette double négation, None of product tags is not equal to presale, rend la condition difficile à comprendre et non valide.
Tous lesVérifie que tous les éléments de la liste correspondent à la condition spécifiée.

Renvoie true si chaque élément de la liste correspond à la condition.
Vérifiez si tous les articles d’une commande ont un fournisseur de produits spécifique appelé Acme en utilisant All of order line items have a product.vendor equal to Acme.

Ordre des conditions

Vous pouvez créer des flux de travail qui comportent plusieurs conditions, chacune pouvant entraîner des actions différentes. L’ordre des conditions est important. La vérification des conditions commence au début du flux de travail et se poursuit systématiquement pour chaque condition. La vérification s’arrête lorsqu’une condition est remplie.

Cet exemple utilise plusieurs conditions pour vérifier si un client est admissible à un programme de fidélité en fonction du montant total qu’il a dépensé dans la boutique. Les conditions sont vérifiées dans l’ordre dans lequel elles sont affichées :

  1. Si le prix total est supérieur à 1 000 $ et que le client accepte de recevoir du marketing, la balise Gold lui est ajoutée.
  2. Si le prix total est inférieur à 1 000 $, mais supérieur à 500 $ et que le client accepte de recevoir du marketing, la balise Silver lui est ajoutée.
  3. Si le prix total est inférieur à 500 $, mais supérieur à 200 $ et que le client accepte de recevoir du marketing, la balise Bronze lui est ajoutée.

Exemple d’un flux de travail qui vérifie le montant total des dépenses d’un client et ajoute des balises

Combinaison de plusieurs critères en une seule condition

Lorsque vous créez une condition, vous pouvez définir plusieurs critères. Vous pouvez choisir la manière dont ces critères distincts doivent être combinés pour déterminer si la condition globale est vraie ou fausse.

Si tous les critères sont remplis

La sélection de ET n’entraîne une réponse vraie que si chaque critère que vous définissez est vrai.

Par exemple, vous créez un flux de travail pour baliser les clients qui se trouvent au Canada et qui dépensent plus de 500 $ sur une seule commande.

Exemple de flux de travail qui utilise la condition ET

Le flux de travail balise le client uniquement si celui-ci se trouve au Canada et qu’il dépense plus de 500 $ dans la commande. Si l’une de ces conditions est fausse, le client n’est pas balisé.

Si l’un des critères est rempli

La sélection de OU donne une réponse « vrai » si l’un des critères que vous définissez est vrai.

Par exemple, vous créez un flux de travail pour baliser les commandes avec une recommandation liée au risque Annuler ou Examiner. Tant que l’une de ces conditions est vraie, la commande est balisée.

Exemple de flux de travail qui utilise la condition OU

Données statiques et dynamiques dans les conditions

Généralement, la deuxième valeur d’une condition est une valeur statique saisie manuellement (telle que product.title == "votre titre"). Cette valeur reste la même à chaque exécution du flux de travail.

Vous pouvez également utiliser des valeurs dynamiques si le champ de la deuxième valeur affiche une icône Modifier le code. Les valeurs dynamiques sont extraites des données de votre boutique à chaque exécution du flux de travail. Pour utiliser une valeur dynamique, cliquez sur l’icône Modifier le code et sélectionnez la valeur par rapport à laquelle vous souhaitez effectuer la vérification. Les valeurs dynamiques ne sont pas disponibles pour tous les champs.

Par exemple, vous pouvez créer un flux de travail qui balise une commande si le pays de l’adresse de facturation de la commande correspond au pays de son adresse de livraison.

Exemple d’un flux de travail qui balise une commande en vérifiant que le pays de facturation et le pays d’expédition d’un client sont les mêmes.

Dans cet exemple, la première et la deuxième valeur sont extraites des données de votre boutique, plutôt que de spécifier manuellement une chaîne statique à vérifier pour la deuxième valeur. Si le pays de l’adresse de facturation fourni par le client est le même que le pays que le client a fourni dans l’adresse de livraison, la condition est vraie et la commande est balisée.

Vous devrez peut-être parfois utiliser des données dynamiques qui ne sont pas du bon type. Par exemple, vous pourriez avoir besoin de comparer un nombre stocké sous forme de chaîne avec un autre nombre. Dans ce cas, vous pouvez utiliser l’option Exécuter le code pour convertir les données au type approprié.

Modèles

La plupart des modèles de la bibliothèque de modèles contiennent une condition.

Exemples de conditions

Vérifier si au moins un article d’une liste correspond à une condition

Cet exemple affiche une condition typique qui vérifie si au moins un article d’une liste correspond à une certaine valeur.

Dans ce cas, la condition vérifie si l’un des produits d’une commande a une balise presale. Pour créer cette condition, vous devez choisir order / lineItems / product / tags. Par défaut, Flow choisit au moins un de comme opérateur logique :

Exemple du panneau de configuration d’une condition, affichant une vérification pour au moins une balise de produit.

Les parties au moins un de sont des opérateurs de liste et sont utilisées pour gérer la correspondance sur plusieurs articles de la liste. La partie est égal à est un opérateur au niveau du champ qui détermine si un seul article de la liste correspond.

Vérifier si aucun article d’une liste ne correspond à une condition

Cet exemple affiche une condition typique qui vérifie si aucun des articles d’une liste ne correspond à une certaine valeur. Un problème courant à prendre en compte est que les listes peuvent être vides. Lorsqu’une liste est vide, la condition est gérée par l’opérateur de liste (dans ce cas, aucun de).

Dans ce cas, la condition vérifie si aucune des balises de produit n’est égale à foo :

Exemple du panneau de configuration d’une condition, affichant une vérification pour l’absence de balise de produit.

La condition renverra vrai si (1) il n’y a aucune balise de produit ou si (2) aucune des balises n’est foo. Sinon, elle renverra faux.

Vérifier si un article d’une liste correspond à plusieurs critères

Cet exemple affiche une condition typique qui vérifie si au moins un article d’une liste correspond à deux critères distincts.

Dans ce cas, la condition vérifie si l’un des produits d’une commande possède une balise presale et si son productType est clothing.

Exemple du panneau de configuration d’une condition, affichant une vérification d’au moins une balise de produit et d’un productType.

Pour créer cette condition, vous devez :

  1. Choisissez order / lineItems / product / tags pour le premier critère.
  2. Choisissez Ajouter des critères pour le même article sur la liste lineItems. Remarque : choisir le mauvais article de la liste est une erreur courante.
  3. Choisissez lineItems_item comme objet de niveau supérieur, puis product / productType` pour le deuxième critère. Remarque : choisir le mauvais objet ici est également une erreur courante.
  4. Choisissez ET pour combiner les deux critères.
  5. Saisissez les valeurs presale et clothing pour les deux critères.