Condicions a Shopify Flow
Les condicions continuen un flux de treball quan es compleixen certes regles, com ara l'inici d'una sentència condicional de tipus "si/llavors" (if-then). En configurar una condició, tries els criteris a partir dels camps de la GraphQL Admin API (com ara product.title), un operador lògic (com ara és igual a) i un valor de referència per fer la comprovació (com ara Texans blaus). Quan un flux de treball avalua una condició, Flow comprova si el valor definit al flux de treball coincideix amb el valor de la botiga i, a continuació, mostra els resultats a l'execució del flux de treball. Per entendre millor els camps i els valors disponibles a l'hora de definir les condicions, descobreix com previsualitzar les dades de la botiga.
Més informació sobre com entendre els conceptes bàsics de les condicions.
En aquesta pàgina
Tipus de dades que s'utilitzen amb Flow
En configurar una condició, tries un criteri a partir dels camps disponibles a l'Admin API i Flow l'avalua respecte al valor de la botiga.
Flow és compatible amb els tipus de dades següents:
- Flotant: els valors flotants són números amb xifres decimals. Per exemple, 4,25.
- Enter: els valors enters són números sencers que no tenen xifres decimals. Per exemple, 42.
- Data: els valors de data són la representació numèrica de la data. Per exemple, 01012021.
- Cadena: els valors de cadena són text. Les comparacions que fan servir valors de cadena no distingeixen entre majúscules i minúscules.
- Booleà: els valors booleans són vertader o fals.
- Enum: els valors enumerats (enum) són conjunts de dades que permeten que una variable sigui un conjunt de constants predefinides.
Operadors lògics
Els operadors lògics defineixen com s'aplica la condició. Les condicions poden comprovar propietats senzilles, com ara si el total d'una comanda és superior a una quantitat determinada o si un client accepta el màrqueting. Els operadors lògics també poden comprovar propietats més complexes.
Els operadors poden ser operadors de nivell de camp, com ara igual a o diferent de, o bé operadors de llista, com ara almenys un de o cap de.
Operadors de nivell de camp
Els operadors de nivell de camp s'utilitzen per comparar dos valors. Flow pot utilitzar els operadors següents:
| Operador | Descripció | Exemple |
|---|---|---|
| Igual a | Compara valors per comprovar si són iguals. |
El valor d'order.currentTotalDiscountsSet.shopMoney.amount s'obté de les dades de la botiga i es compara amb el segon valor, 50.Si els descomptes totals de la comanda són exactament 50, la condició serà certa. |
| Diferent de | Compara valors per comprovar si no són iguals. |
El valor d'order.currentTotalDiscountsSet.shopMoney.amount s'obté de les dades de la botiga i es compara amb el segon valor, 50.Si els descomptes totals de la comanda no són exactament 50, la condició serà certa. |
| Major que i Major o igual a | Compara valors per comprovar si el primer valor és més gran, o més gran o igual, que el segon. |
El valor d'order.currentTotalDiscountsSet.shopMoney.amount s'obté de les dades de la botiga i es compara amb el segon valor, 50.Si el valor dels descomptes totals de la comanda és 137, la condició serà certa, perquè 137 és més gran que 50. |
| Menor que i Menor o igual a | Compara valors per comprovar si el primer valor és més petit, o més petit o igual, que el segon. |
El valor d'order.currentTotalDiscountsSet.shopMoney.amount s'obté de les dades de la botiga i es compara amb el segon valor, 50.Si els descomptes totals de la comanda són 47, la condició serà certa, perquè 47 és més petit o igual a 50. |
| Almenys un de | Comprova si el camp és igual a algun dels valors de la llista proporcionada. Els valors s'han d'introduir individualment i anar seguits de la tecla de retorn (de manera semblant a les etiquetes). Si s'utilitza en una matriu en blanc, el resultat de l'avaluació és fals. |
El valor d'order.lineitem.product.title es compara amb: pinya, guaiava, kiwi.Si el nom del producte de la partida és guaiava, la condició serà certa, perquè "guaiava" s'inclou a la llista que has proporcionat. |
| Cap de | Comprova si el camp no és igual a cap dels valors de la llista proporcionada. |
El valor d'order.lineitem.product.title es compara amb: pinya, guaiava, kiwi.Si el nom del producte de la partida és gerd, la condició serà certa, perquè "gerd" no s'inclou a la llista que has proporcionat. |
| Inclou | Compara valors per comprovar si alguna part de l'entrada del primer valor inclou les dades de l'entrada del segon valor. |
El valor d'order.lineitem.product.title es compara amb: mòbil.Si el nom del producte de la partida és automòbil, la condició serà certa, perquè "mòbil" s'inclou a "automòbil". |
| No inclou | Compara valors per comprovar si alguna part de l'entrada del primer valor no inclou les dades de l'entrada del segon valor. |
El valor d'order.lineitem.product.title es compara amb: mòbil.Si el nom del producte de la partida és bicicleta, la condició serà certa, perquè "mòbil" no s'inclou a "bicicleta". |
| Comença per | Compara valors per comprovar si el primer valor comença per les dades del segon valor. |
El valor d'order.shippingAddress.country es compara amb: Regne.Si el país de l'adreça d'enviament de la comanda és Regne Unit, la condició serà certa, perquè "Regne Unit" comença per "Regne". |
| No comença per | Compara valors per comprovar si el primer valor no comença per les dades del segon valor. |
El valor d'order.shippingAddress.country es compara amb: Regne.Si el país de l'adreça d'enviament de la comanda és Canadà, la condició serà certa, perquè "Canadà" no comença per "Regne". |
| Acaba en | Compara valors per comprovar si el primer valor acaba en les dades del segon valor. |
El valor d'order.lineitems.product.title es compara amb: llimona.Si el nom del producte de la partida és pastís de llimona, la condició serà certa, perquè "pastís de llimona" acaba en "llimona". |
| No acaba en | Compara valors per comprovar si el primer valor no acaba en les dades del segon valor. |
El valor d'order.lineitems.product.title es compara amb: llimona.Si el nom del producte de la partida és pastís de xocolata, la condició serà certa, perquè "pastís de xocolata" no acaba en "llimona". |
Operadors nuls o buits
| Operador | Descripció | Condició certa/falsa |
|---|---|---|
| Buit o no existeix | Comprova si un camp està buit (no té cap valor) o si no existeix (és null). |
Retorna cert quan el camp està buit o és null, i fals si està present.
|
| No està buit i existeix | Comprova si un camp està present i no està buit ni és null. | Retorna cert quan el camp no està buit i existeix, i fals quan està buit. |
Operadors de llista
Els operadors de llista es combinen amb operadors de nivell de camp per permetre't comprovar les condicions de les dades incloses a les llistes.
Com en l'exemple "almenys un", és possible que vulguis comprovar si una comanda conté un producte específic (ubicat a order.lineItems) amb una etiqueta específica (una llista a order.lineItems.product.tags). En ambdós casos, l'exemple utilitza l'operador de llista almenys un de.
Flow proporciona 3 operadors per treballar amb llistes: Almenys un de, Cap de i Tots els.
| Operador | Descripció | Exemple d'ús |
|---|---|---|
| Almenys un de | Comprova si algun article de la llista coincideix amb la condició especificada. Retorna true si algun article de la llista hi coincideix. Si la llista està buida o no hi ha cap article que hi coincideixi, retorna false. | Comprova si una comanda conté un producte amb una etiqueta específica utilitzant At least one of order line items.product.tags is equal to tagname. |
| Cap de | Comprova que cap dels articles de la llista coincideixi amb la condició especificada. Retorna true si cap dels articles coincideix amb la condició. Si la llista està buida, retorna true. | Comprova si un producte no té l'etiqueta presale utilitzant None of product tags is equal to presale.Un error freqüent és intentar negar l'operador utilitzant no és igual a. L'ús d'aquesta doble negació, None of product tags is not equal to presale, fa que la condició sigui invàlida i difícil d'entendre.
|
| Tots els | Comprova que tots els articles de la llista coincideixin amb la condició especificada. Retorna true si tots els articles de la llista coincideixen amb la condició. | Comprova si tots els articles d'una comanda tenen un proveïdor específic anomenat Acme utilitzant All of order line items have a product.vendor equal to Acme. |
Ordre de les condicions
Pots crear fluxos de treball amb diverses condicions i que cadascuna doni lloc a accions diferents. L'ordre de les condicions és important. La comprovació de les condicions comença a l'inici del flux de treball i avança de forma sistemàtica a través de cada condició. La comprovació s'atura quan es compleix una condició.
Aquest exemple utilitza diverses condicions per comprovar si un client compleix els requisits per a un programa de fidelització en funció de l'import total que ha gastat a la botiga. Les condicions es comproven en l'ordre en què es mostren:
- Si el preu total és superior a 1000 $ i el client accepta rebre màrqueting, afegeix-li l'etiqueta
Gold. - Si el preu total és inferior a 1000 $ però superior a 500 $ i el client accepta rebre màrqueting, afegeix-li l'etiqueta
Silver. - Si el preu total és inferior a 500 $ però superior a 200 $ i el client accepta rebre màrqueting, afegeix-li l'etiqueta
Bronze.

Combinació de diversos criteris en una condició
En crear una condició, pots establir diferents criteris. Pots triar com s'han de combinar aquests criteris independents per determinar si la condició general és certa o falsa.
Si es compleixen tots els criteris
Seleccionar AND dona com a resultat una resposta certa només si tots els criteris que has establert són certs.
Per exemple, crees un flux de treball per etiquetar els clients que es troben al Canadà i que gasten més de 500 $ en una sola comanda.

El flux de treball etiqueta el client només si es troba al Canadà i gasta més de 500 $ a la comanda. Si qualsevol d'aquestes condicions és falsa, no s'etiqueta el client.
Si es compleix algun criteri
Seleccionar OR dona com a resultat una resposta certa si algun dels criteris que has establert és cert.
Per exemple, crees un flux de treball per etiquetar les comandes amb un nivell de risc suggerit de Cancel·lar o Investigar. Sempre que una d'aquestes condicions sigui certa, la comanda s'etiquetarà.

Dades estàtiques i dinàmiques a les condicions
Normalment, el segon valor d'una condició és un valor estàtic introduït manualment (com ara product.title == "your title"). Aquest valor continua sent el mateix cada vegada que s'executa el flux de treball.
També pots utilitzar valors dinàmics si al camp del segon valor hi apareix una icona . Els valors dinàmics s'extreuen de les dades de la botiga cada cop que s'executa el flux de treball. Per utilitzar un valor dinàmic, fes clic a la icona
i selecciona el valor que vols comparar. Els valors dinàmics no estan disponibles en tots els camps.
Per exemple, crees un flux de treball que etiqueta una comanda si el país de l'adreça de facturació de la comanda coincideix amb el país de la seva adreça d'enviament.

En aquest exemple, tant el primer com el segon valor s'extreuen de les dades de la botiga, en lloc d'especificar manualment una cadena estàtica per comparar el segon valor. Si el país de l'adreça de facturació que proporciona el client és el mateix que el país que el client ha proporcionat a l'adreça d'enviament, la condició és certa i s'etiqueta la comanda.
És possible que de vegades necessitis utilitzar dades dinàmiques que siguin del tipus incorrecte. Per exemple, és possible que necessitis comparar un número emmagatzemat com a cadena amb un altre número. En aquest cas, pots utilitzar l'opció Executa el codi per convertir les dades al tipus correcte.
Plantilles
La majoria de plantilles de la biblioteca de plantilles contenen una condició.
Exemples de condicions
Comprova si almenys un element d'una llista compleix una condició
Aquest exemple mostra una condició típica que comprova si almenys un element d'una llista coincideix amb un valor determinat.
En aquest cas, la condició comprova si un dels productes d'una comanda té una etiqueta presale. Per crear aquesta condició, has de triar order / lineItems / product / tags. Per defecte, Flow tria almenys un de com a operador lògic:

Les parts d'almenys un de són operadors de llista i s'utilitzen per gestionar les coincidències en diversos elements de la llista. La part d'és igual a és un operador de camp que determina si un únic element de la llista coincideix.
Comprova si cap dels elements d'una llista compleix una condició
Aquest exemple mostra una condició típica que comprova si cap dels elements d'una llista coincideix amb un valor determinat. Un problema comú que cal tenir en compte és que les llistes poden estar buides. Quan una llista està buida, la condició serà gestionada per l'operador de llista (en aquest cas, cap de).
En aquest cas, la condició comprova si cap de les etiquetes de producte és igual a foo:

La condició retornarà true si (1) no hi ha etiquetes de producte o (2) cap de les etiquetes és foo. En cas contrari, retornarà false.
Comprova si un element d'una llista compleix diversos criteris
Aquest exemple mostra una condició típica que comprova si almenys un element d'una llista compleix dos criteris diferents.
En aquest cas, la condició comprova si un dels productes d'una comanda té una etiqueta presale i si té un productType de tipus clothing.

Per crear aquesta condició, has de fer el següent:
- Tria order / lineItems / product / tags per al primer criteri.
- Tria Add criteria for same item a la llista lineItems. Nota: triar un element de llista equivocat en aquest pas és un error comú.
- Tria lineItems_item com a objecte de nivell superior i, a continuació, product / productType` per al segon criteri. Nota: triar l'objecte equivocat en aquest pas també és un error comú.
- Tria AND per combinar els dos criteris.
- Introdueix els valors
presaleiclothingper als dos criteris.