Conditions dans Shopify Flow

Dans Shopify Flow, les conditions sont utilisées pour déterminer le chemin à suivre dans un flux de travail, généralement pour contrôler si une action est effectuée. Lorsque vous définissez une condition, vous choisissez un champ de données à vérifier (tel qu’un titre de produit), un opérateur logique (tel que equal to), et une valeur à vérifier (Blue jeans).

Exemples d’états

Vérifiez 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 possède une balise de presale. Pour créer cette condition, vous choisirez une order / lineItems / product / tags. Par défaut, Flow choisit au moins un des comme opérateur logique :

If at least one of order / lineItems:
  If at least one of lineItem_item / product / tags
    tags_item
    is equal to
    presale

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

Vérifiez si aucun des articles 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. L’un des problèmes courants à prendre en compte est que les listes peuvent être vides. Lorsqu’une liste est vide, la condition sera traitée par l’opérateur de la liste (dans ce cas, aucun des).

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

If none of product / tags:
  tag_item
  is equal to
  foo

La condition renverra true si (1) il n’y a pas de balises de produit ou si (2) aucune des balises n’est « foo ». Sinon, elle renverra false.

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 de presale et s’il a un type de produit de clothing.

If at least one of order / lineItems:
  If at least one of lineItem_item / product / tags
    tags_item
    is equal to
    presale
  AND
  If lineItem_item / product
    productType
    is equal to
    clothing

Pour créer cette condition, vous devez :

  1. Choisir order / lineItems / product / tags pour les premiers critères.
  2. Choisir Ajouter des critères pour le même article dans la liste lineItems. Remarque : le choix du mauvais élément de la liste ici est une erreur courante.
  3. Choisir lineItems_item comme premier niveau, puis product / productType pour le deuxième critère. Remarque : choisir le mauvais objet ici est aussi une erreur courante.
  4. Choisir ET pour combiner les deux critères.
  5. Saisir les valeurs presale et clothing pour les deux critères.

Types de données utilisés avec Flow

La première valeur d'une condition de Flow représente les données provenant de votre boutique, issues de l’API Admin GraphQL.

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

  • Float: les valeurs float sont des chiffres dont le montant est décimal. Par exemple, 4,25.
  • Entier : les valeurs entier sont des nombres entiers qui n’ont pas de montant décimal. Par exemple, 42.
  • Date : les valeurs date sont une représentation numérique de la date. Par exemple, 01012021.
  • Chaîne : les valeurs chaîne sont du texte. Les comparaisons utilisant les valeurs chaîne ne sont pas sensibles à la casse.
  • Booléen : les valeurs booléen sont vraies ou fausses.
  • Énumération: les valeurs é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 comment la condition est appliquée. Les conditions peuvent vérifier les propriétés simples telles que si le total d’une commande dépasse un certain montant ou si un client accepte les communications marketing. Les opérateurs logiques peuvent également vérifier des propriétés plus complexes.

Les opérateurs peuvent être des opérateurs de champ, tels que égal à ou pas égal à, ou des opérateurs de liste, tels que au moins un des ou aucun des.

Opérateurs de champ

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

Égal à

Égal à compare les valeurs pour voir si elles sont identiques. Dans l’exemple suivant, la valeur de order.currentTotalDiscountsSet.shopMoney.amount est récupérée dans les données de la boutique et comparée à la deuxième valeur, 50.

Exemple de flux de travail utilisant l’opérateur logique est pas égal à pour annuler une commande si les données récupérées sont pas égales à 50

Si la première valeur est égale à 50, alors la condition est vraie. La commande est annulée.

N'est pas égal à

N’est pas égal à compare des valeurs pour voir si elles ne sont pas identiques. Dans l’exemple suivant, la valeur de order.currentTotalDiscountsSet.shopMoney.amount est récupérée dans les données de la boutique et comparée à la deuxième valeur, 50.

Exemple de flux de travail utilisant l’opérateur logique N'est pas égal à pour annuler une commande si les données récupérées ne sont pas égales à 50

Si la première valeur est égale à 93, alors la condition est vraie. La commande est annulée.

Supérieur à et supérieur ou égal à

Supérieur à et supérieur ou égal à compare les valeurs pour vérifier si la première valeur est supérieure à, ou supérieure ou égale à la seconde valeur. Dans l’exemple suivant, la valeur de order.currentTotalDiscountsSet.shopMoney.amount est récupérée dans les données de la boutique et comparée à la deuxième valeur, 50.

Exemple de flux de travail utilisant l’opérateur logique supérieur à et supérieur ou égal à pour annuler une commande si les données récupérées sont supérieures à 50

Si la valeur provenant de la boutique est de 137, alors la condition est vraie, car 137 est supérieur à 50. La commande est annulée.

Inférieur à ou inférieur ou égal à

Inférieur à et inférieur ou égal à comparent les valeurs pour voir si la première valeur est inférieure ou inférieure ou égale à la seconde valeur. Dans l’exemple suivant, la valeur de order.currentTotalDiscountsSet.shopMoney.amount est récupérée dans les données de la boutique et comparée à la deuxième valeur, 50.

Exemple de flux de travail utilisant l'opérateur logique inférieur à ou égal à pour annuler une commande si les données récupérées sont inférieures ou égales à 50

Si la valeur provenant de la boutique est de 47, la condition est vraie, car 47 est inférieur ou égal à 50. La commande est annulée.

Au moins un des

L’opérateur Au moins un des vérifie si le champ est égal à n’importe quelle valeur dans la liste fournie. Les valeurs à cocher doivent être saisies individuellement et suivies de la clé d’entrée (similaires aux balises). L’utilisation de Au moins un des pour une série vide entraîne une évaluation erronée. Dans l’exemple suivant, la valeur pourorder.lineitem.product.title est récupérée à partir des données de votre boutique et comparée au deuxième ensemble de valeurs : ananas, goyave, kiwi.

Exemple de flux de travail utilisant l’opérateur logique Au moins un(e) parmi pour annuler une commande si les données récupérées incluent ananas, guava ou kiwi

Si la valeur provenant de la boutique est goyave, la condition est vraie, car elle est comprise dans la série ananas, goyave, kiwi. La commande est annulée.

Pas un de ces

L’opérateur Pas un de ces vérifie si le champ n’est égal à aucune des valeurs de la liste fournie. Les valeurs à cocher doivent être saisies individuellement et suivies de la clé d’entrée (similaires aux balises). Dans l’exemple suivant, la valeur pourorder.lineitem.product.title est récupérée à partir des données de votre boutique et comparée au deuxième ensemble de valeurs : ananas, goyave, kiwi.

Exemple d'un flux de travail qui utilise l'opérateur logique aucun pour annuler une commande si les données récupérées ne contiennent pas ananas, goyave ou kiwi.

Si la valeur provenant de la boutique est framboise, alors la condition est vraie, car elle ne fait pas partie de la série ananas, guava, kiwi. La commande est annulée.

Comprend

Contient compare les valeurs pour voir si l’une des premières entrées de valeur comprend les données de la deuxième entrée de valeur. Dans l’exemple suivant, la valeur de order.lineitem.product.title est récupérée dans les données de la boutique et comparée à la deuxième valeur, gratte.

Exemple de flux de travail utilisant l’opérateur logique pour annuler une commande si les données récupérées incluent la chaîne gratte

Si la valeur issue des données de la boutique est gratte-ciel, alors la condition est vraie, car la chaîne exacte gratte est comprise dans la chaîne gratte-ciel. La commande est annulée.

Ne comprend pas

Ne contient pas compare les valeurs pour vérifier si l’une des premières entrées ne contient pas les données de la deuxième. Dans l’exemple suivant, la valeur de order.lineitem.product.title est récupérée dans les données de la boutique et comparée à la deuxième valeur, gratte.

Exemple d'un flux de travail qui utilise l'opérateur logique ne comprend pas pour annuler une commande si les données récupérées ne contiennent pas la chaîne gratte.

Si la valeur extraite des données de votre boutique est « rebut de métal », alors la condition est vraie, car la chaîne exacte « rebut » n’est pas incluse dans la chaîne « rebut de métal ». La commande est annulée.

Commence par

Commence par compare les valeurs pour voir si la première valeur commence par les données de la deuxième valeur. Dans l’exemple suivant, la valeur de order.shippingAddress.country est récupérée dans les données de la boutique et comparée à la deuxième valeur, United.

Exemple de flux de travail utilisant l'opérateur logique commence par pour annuler une commande si les données récupérées commencent par la chaîne Royaume

Si la valeur provenant de la boutique est Royaume-Uni, alors la condition est vraie, car la chaîne royaume est au début de la chaîne Royaume-Uni. La commande est annulée.

Ne commence pas par

Ne commence pas par compare les valeurs pour voir si la première valeur ne commence pas par les données de la deuxième valeur. Dans l’exemple suivant, la valeur de order.shippingAddress.country est récupérée dans les données de la boutique et comparée à la deuxième valeur, United.

Exemple d'un flux de travail qui utilise l'opérateur logique ne commence pas par pour annuler une commande si les données récupérées ne commencent pas par la chaîne Royaume.

Si la valeur provenant de la boutique est Canada, alors la condition est vraie, car le terme Canada n'apparaît pas au début de la chaîne Royaume-Uni. La commande est annulée.

Se termine par

Se termine par compare les valeurs pour voir si la première valeur se termine par les données de la deuxième valeur. Dans l’exemple suivant, la valeur de order.lineitems.product.title est récupérée dans les données de la boutique et comparée à la deuxième valeur, dernière en stock.

Exemple d'un flux de travail qui utilise l'opérateur logique se termine par pour annuler une commande si les données récupérées se terminent par la chaîne dernières en stock.

Si la valeur provenant de la boutique est chaussettes de sport dernières en stock, alors la condition est vraie, car chaussettes de sport dernières en stock se termine par la chaîne dernières en stock. La commande est annulée.

Ne se termine pas par

Ne se termine pas par compare les valeurs pour vérifier si la première valeur ne se termine pas par les données de la deuxième valeur. Dans l’exemple suivant, la valeur de order.lineitems.product.title est récupérée dans les données de la boutique et comparée à la deuxième valeur, dernière en stock.

Exemple de flux de travail utilisant l'opérateur logique ne termine pas par pour annuler une commande si les données récupérées ne terminent pas par la chaîne dernières en stock

Si la valeur provenant de votre boutique est « chaussettes de sport neuves », la condition est vraie, car la « chaîne chaussettes de sport neuves » ne se termine pas par la chaîne « dernières en stock ». La commande est annulée.

Opérateurs nuls ou vides

Vide ou n’existe pas

Certains champs de vos données peuvent être vides. Par exemple, order.cancelReason renverra null si une commande n’est pas annulée. Utilisez vide ou n’existe pas si vous souhaitez renvoyer true lorsqu’un champ est vide ou null et false s’il est présent.

Pas vide et existe

Certains champs de vos données peuvent être vides. Par exemple, order.cancelReason renverra null si une commande n’est pas annulée. Utilisez Pas vide et existe si vous souhaitez renvoyer true quand un champ n’est pas vide et false s’il est vide.

Liste des opérateurs

Les opérateurs de liste sont combinés à des opérateurs de champ pour vous permettre de vérifier les conditions sur les données incluses aux listes.

Comme dans l’exemple « au moins un », vous pouvez 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 des.

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

Au moins un des

La plupart des conditions avec des listes souhaiteront utiliser Au moins un des. Cet opérateur renverra true si l’un des articles de la liste correspond à la condition. Par exemple, si vous souhaitez vérifier si une commande contient un produit avec une balise spécifique, vous utiliserez Au moins un des. Lorsque la liste est vide ou si la condition n’est pas remplie, la condition renvoie false.

Aucun

Dans certains cas, vous voudrez peut-être vérifier si une liste ne contient pas d’article. Le meilleur moyen de créer cette condition est de changer l’opérateur de liste en Aucun des. Cet opérateur renverra true si aucun des articles de la liste ne correspond à la condition. Et plus important encore, si la liste est vide, elle renvoie également true. Par exemple, si vous souhaitez vérifier si un produit ne contient pas la balise presale, vous utiliserez None of product tags is equal to presale.

Tous les

Dans certains cas, vous voudrez peut-être vérifier si tous les éléments d’une liste correspondent à une condition. Par exemple, vous voudrez peut-être vérifier si tous les articles d’une commande ont un fournisseur de produit spécifique appelé Acme. Pour cela, vous utiliserez All of order line items have a product.vendor equal to Acme.

Conditions de commande

Vous pouvez créer des flux de travail avec plusieurs conditions, dont chacune peut 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 passe systématiquement par chaque condition. La vérification s'interrompt lorsqu’une condition est remplie.

Combinaison de plusieurs critères dans une même condition

Lors de la création d’une condition, vous pouvez définir plusieurs critères. Vous pouvez choisir comment ces critères distincts doivent être combinés.

Si toutes les conditions sont remplies

En sélectionnant Si toutes les conditions sont remplies, vous ne répondez à vos critères que si tous les critères que vous définissez sont exacts. Il s’agit d’une déclaration AND en programmation.

Par exemple, vous créez un flux de travail pour baliser les clients situés au Canada et dépenser plus de 500 $ pour une seule commande.

Exemple d'un flux de travail qui utilise la condition et

Le flux de travail ne balise le client que s’il se trouve au Canada et qu’il dépense plus de 500 $ dans la commande. Si l’une de ces conditions est erronée, le client n’est pas balisé.

Si des conditions sont remplies

Sélectionner Si des conditions sont remplies, entraîne une réponse vraie si l’un des critères que vous fixez est vrai. C’est comme une déclaration OR en programmation.

Par exemple, vous créez un flux de travail pour baliser les commandes qui sont considérées comme à risque élevé ou moyen.

Exemple de flux de travail utilisant la ou condition

Le flux de travail balise la commande s’il s’agit d’un risque élevé ou moyen. Tant que l’une de ces conditions est vraie, la commande est balisée.

Combinaison de conditions et d’actions

Il est possible de combiner plusieurs conditions pour en créer une seule plus importante. Lorsqu'elles sont combinées, les conditions doivent toutes être satisfaites pour que la condition totale soit vraie. Il suffit d'une condition non satisfaite pour que la condition totale soit fausse. Dans l'exemple suivant, le client doit accepter des supports marketing et le prix total de la commande doit atteindre un certain seuil.

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

De même, vous pouvez combiner des actions pour que plusieurs actions s’exécutent. L’exemple suivant utilise plusieurs conditions pour vérifier si un(e) client(e) est éligible pour participer à un programme de fidélité en fonction du montant total dépensé dans la boutique. Dans l’exemple ci-dessus, les conditions suivantes sont vérifiées par ordre d’apparition :

  1. Si le prix total est supérieur à 1 000 $ et que le/la client(e) accepte le démarchage marketing, alors il/elle est identifié(e) par la balise de fidélité Gold (Or).
  2. Si le prix total est compris entre 500 $ et 1 000 $ et que le/la client(e) accepte le démarchage marketing, il/elle est alors identifié(e) par la balise de fidélité Silver (Argent).
  3. Si le/la client(e) a dépensé plus se 200 $ et qu'il/elle accepte le démarchage marketing, alors il/elle est identifié(e) par la balise de fidélité Bronze.

Données statiques et dynamiques dans des conditions

En règle générale, la deuxième valeur d’une condition est une valeur statique, saisie manuellement (telle que product.title == "your title"). Cette valeur reste la même à chaque fois que le flux de travail s’exécute.

Vous pouvez également utiliser des valeurs dynamiques si le champ de la deuxième valeur affiche un symbole </> valeur. Les valeurs dynamiques proviennent des données de la boutique chaque fois que le flux de travail s’exécute. Pour utiliser une valeur dynamique, cliquez sur le symbole </> et sélectionnez la valeur que vous souhaitez vérifier. Les valeurs dynamiques ne sont pas disponibles pour tous les champs.

Par exemple, vous créez un flux de travail qui balise une commande si le pays de l’adresse de facturation de la commande correspond au pays dans son adresse d’expédition.

Exemple de flux de travail qui balise une commande à l’aide des données RHS pour vérifier que le pays de facturation et d’expédition d’un client est le même.

Dans cet exemple, les deux premières valeurs proviennent des données de la boutique au lieu de spécifier manuellement une chaîne statique à vérifier pour la deuxième valeur. Si le pays indiqué sur l’adresse de facturation fournie par le client est le même que celui fourni par le client à l’adresse d’expédition, alors la condition est vraie et la commande est balisée.

Il se peut que vous devrez parfois utiliser des données dynamiques qui ne sont pas du bon type. Par exemple, vous devrez peut-être comparer un nombre stocké en tant que chaîne à un autre numéro. Dans ce cas, vous pouvez utiliser l’option Exécuter le code pour convertir les données dans le bon type.

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

Essayez gratuitement