Condicións de Shopify Flow

As condicións continúan un fluxo de traballo cando se cumpren certas regras, como o inicio dunha instrución if-then. Cando defines unha condición, escolles os criterios desde os campos da GraphQL Admin API (como product.title), un operador lóxico (como equal to) e un valor para realizar a comprobación (como Blue jeans). Cando un fluxo de traballo avalía unha condición, Flow comproba o valor definido no fluxo de traballo co valor que obtén da túa tenda, despois, mostra os resultados na execución do fluxo de traballo. Para comprender mellor os campos e valores dispoñibles para definir as condicións, consulta como previsualizar os datos da tenda.

Obtén máis información sobre como comprender os conceptos básicos das condicións.

Tipos de datos que se usan con Flow

Cando defines unha condición, escolles os criterios desde os campos dispoñibles da Admin API e Flow avalíaos usando o valor que obtén da túa tenda.

Flow admite os seguintes tipos de datos:

  • Float: Os valores flotantes son números cunha cantidade decimal. Por exemplo, 4,25.
  • Integer: Os valores enteiros son números sans que non teñen cantidade decimal. Por exemplo, 42.
  • Date: Os valores de data son representacións numéricas da data. Por exemplo, 01012021.
  • String: Os valores de cadea son texto. As comparacións nas que se usan valores de cadea non distinguen entre maiúsculas e minúsculas.
  • Boolean: Os valores booleanos son "true" (verdadeiro) ou "false" (falso).
  • Enum: Os valores enumerados son conxuntos de datos que permiten que unha variable sexa un conxunto de constantes predefinidas.

Operadores lóxicos

Os operadores lóxicos definen como se aplica a condición. As condicións poden comprobar propiedades sinxelas, como se o total dun pedido é superior a un determinado importe ou se un cliente acepta o márketing. Os operadores lóxicos tamén poden comprobar propiedades máis complexas.

Os operadores poden ser operadores a nivel de campo, como é igual a ou non é igual a, ou operadores de lista, como polo menos un de ou ningún de.

Operadores a nivel de campo

Os operadores a nivel de campo utilízanse para comparar dous valores. Flow pode utilizar os seguintes operadores:

Lista de operadores a nivel de campo dispoñibles en Shopify Flow.
OperadorDescriciónExemplo
É igual a Compara valores para comprobar se son iguais. O valor para order.currentTotalDiscountsSet.shopMoney.amount recupérase dos datos da tenda e compárase co segundo valor, 50.

Se os descontos totais do pedido son exactamente iguais a 50, a condición é verdadeira.
Non é igual a Compara valores para comprobar se non son iguais. O valor para order.currentTotalDiscountsSet.shopMoney.amount recupérase dos datos da tenda e compárase co segundo valor, 50.

Se os descontos totais do pedido non son exactamente iguais a 50, a condición é verdadeira.
É maior que e É maior ou igual a Compara valores para comprobar se o primeiro valor é maior que o segundo valor, ou maior ou igual a este. O valor para order.currentTotalDiscountsSet.shopMoney.amount recupérase dos datos da tenda e compárase co segundo valor, 50.

Se o valor total dos descontos do pedido é 137, a condición é verdadeira, porque 137 é maior que 50.
É menor que e É menor ou igual a Compara valores para comprobar se o primeiro valor é menor que o segundo valor, ou menor ou igual a este. O valor para order.currentTotalDiscountsSet.shopMoney.amount recupérase dos datos da tenda e compárase co segundo valor, 50.

Se o valor dos descontos totais do pedido é 47, a condición é verdadeira, porque 47 é menor ou igual a 50.
Polo menos un de Comproba se o campo é igual a calquera valor na lista proporcionada. Os valores deben introducirse de xeito individual e ir seguidos da tecla Intro (parecido ás etiquetas). O seu uso nunha matriz en branco dá como resultado unha avaliación falsa. O valor para order.lineitem.product.title compárase con: piña, goiaba, kiwi.

Se o título do produto do artigo de liña é goiaba, a condición é verdadeira, porque "goiaba" está incluída na lista que proporcionaches.
Ningún de Comproba se o campo non é igual a ningún dos valores da lista proporcionada. O valor para order.lineitem.product.title compárase con: piña, goiaba, kiwi.

Se o título do produto do artigo de liña é framboesa, a condición é verdadeira, porque "framboesa" non está incluída na lista que proporcionaches.
Inclúe Compara valores para comprobar se algunha das entradas do primeiro valor inclúe os datos da entrada do segundo valor. O valor para order.lineitem.product.title compárase con: choco.

Se o título do produto do artigo de liña é chocolate, a condición é verdadeira, porque "choco" está incluído en "chocolate".
Non inclúe Compara valores para comprobar se algunha das entradas do primeiro valor non inclúe os datos da entrada do segundo valor. O valor para order.lineitem.product.title compárase con: choco.

Se o título do produto do artigo de liña é mazá, a condición é verdadeira, porque "choco" non está incluído en "mazá".
Comeza por Compara valores para comprobar se o primeiro valor comeza polos datos do segundo valor. O valor para order.shippingAddress.country compárase con: Reino.

Se o país do enderezo de envío do pedido é Reino Unido, a condición é verdadeira, porque "Reino Unido" comeza por "Reino".
Non comeza por Compara valores para comprobar se o primeiro valor non comeza polos datos do segundo valor. O valor para order.shippingAddress.country compárase con: Reino.

Se o país do enderezo de envío do pedido é Canadá, a condición é verdadeira, porque "Canadá" non comeza por "Reino".
Remata en Compara valores para comprobar se o primeiro valor remata cos datos do segundo valor. O valor para order.lineitems.product.title compárase con: mazá.

Se o título do produto do artigo de liña é torta de mazá, a condición é verdadeira, porque "torta de mazá" remata en "mazá".
Non remata en Compara valores para comprobar se o primeiro valor non remata cos datos do segundo valor. O valor para order.lineitems.product.title compárase con: mazá.

Se o título do produto do artigo de liña é tarta de chocolate, a condición é verdadeira, porque "tarta de chocolate" non remata en "mazá".

Operadores nulos ou baleiros

Lista de operadores nulos e baleiros nas condicións de Shopify Flow.
OperadorDescriciónCondición verdadeira/falsa
Baleiro ou non existeComproba se un campo está baleiro (non ten valor) ou non existe (é null). Devolve verdadeiro cando o campo está baleiro ou é null, e falso se está presente.
Non está baleiro e existeComproba se hai un campo presente e non está baleiro nin é null. Devolve verdadeiro cando o campo non está baleiro e existe, e falso cando está baleiro.

Operadores de lista

Os operadores de lista combínanse con operadores a nivel de campo para permitirche comprobar condicións en datos incluídos en listas.

Como no exemplo "polo menos un", é posible que queiras comprobar se un pedido contén un produto específico (situado en order.lineItems) cunha etiqueta específica (unha lista en order.lineItems.product.tags). En ambos os casos, o exemplo usa o operador de lista polo menos un de.

Flow ofrece tres operadores para traballar con listas: Polo menos un de, Ningún de e Todos os.

Táboa de operadores de lista nas condicións de Shopify Flow.
OperadorDescriciónExemplo de uso
Polo menos un deComproba se algún artigo da lista coincide coa condición especificada.

Devolve true se algún artigo da lista coincide. Se a lista está baleira ou ningún artigo coincide, devolve false.
Comproba se un pedido contén un produto cunha etiqueta específica usando Polo menos un de order line items.product.tags é igual a tagname.
Ningún deComproba que ningún dos artigos da lista coincida coa condición especificada.

Devolve true se ningún dos artigos coincide coa condición. Se a lista está baleira, devolve true.
Comproba se un produto non ten a etiqueta presale usando Ningún de product tags é igual a presale.

Un erro habitual é tentar negar o operador usando non é igual a. O uso desta dobre negación, Ningún de product tags non é igual a presale, fai que a condición sexa difícil de entender e incorrecta.
Todos osComproba que todos os artigos da lista coincidan coa condición especificada.

Devolve true se cada artigo da lista coincide coa condición.
Comproba se todos os artigos dun pedido teñen un provedor específico chamado Acme usando Todos os order line items teñen un product.vendor igual a Acme.

Ordenación de condicións

Podes crear fluxos de traballo que teñan varias condicións, e cada unha delas pode dar lugar a accións diferentes. A orde das condicións é importante. A comprobación das condicións comeza ao principio do fluxo de traballo e avanza sistematicamente por cada unha delas. A comprobación detense cando se cumpre unha condición.

Este exemplo usa varias condicións para comprobar se un cliente cumpre os requisitos para un programa de fidelidade baseándose no importe total que gastou na tenda. As condicións compróbanse na orde na que se mostran:

  1. Se o prezo total é superior a 1000 USD e o cliente acepta recibir mercadotecnia, engádelle a etiqueta Gold.
  2. Se o prezo total é inferior a 1000 USD, pero superior a 500 USD, e o cliente acepta recibir mercadotecnia, engádelle a etiqueta Silver.
  3. Se o prezo total é inferior a 500 USD, pero superior a 200 USD, e o cliente acepta recibir mercadotecnia, engádelle a etiqueta Bronze.

Exemplo dun fluxo de traballo que comproba o importe de gasto total dun cliente e engade etiquetas

Combinación de varios criterios nunha soa condición

Ao crear unha condición, podes definir varios criterios. Podes escoller como deben combinarse estes criterios independentes para determinar se a condición xeral é verdadeira ou falsa.

Se se cumpren todos os criterios

Ao seleccionar AND, obtense unha resposta verdadeira só se todos os criterios definidos son verdadeiros.

Por exemplo, podes crear un fluxo de traballo para engadir unha etiqueta aos clientes situados en Canadá que gastan máis de 500 USD nun único pedido.

Exemplo dun fluxo de traballo que usa a condición and

O fluxo de traballo engade a etiqueta ao cliente só se se atopa en Canadá e gasta máis de 500 USD no pedido. Se algunha destas condicións é falsa, non se etiqueta ao cliente.

Se se cumpre algún criterio

Ao seleccionar OR, obtense unha resposta verdadeira se algún dos criterios que definiches é verdadeiro.

Por exemplo, podes crear un fluxo de traballo para etiquetar os pedidos cunha recomendación de risco de Cancelar ou Investigar. Sempre que se cumpra unha desas condicións, etiquetarase o pedido.

Exemplo dun fluxo de traballo que usa a condición or

Datos estáticos e dinámicos nas condicións

Normalmente, o segundo valor dunha condición é un valor estático que se introduce de forma manual (como product.title == "your title"). Este valor segue sendo o mesmo cada vez que se executa o fluxo de traballo.

Tamén podes usar valores dinámicos se o campo do segundo valor mostra unha icona de Editar código. Os valores dinámicos extráense dos datos da túa tenda cada vez que se executa o fluxo de traballo. Para usar un valor dinámico, fai clic na icona de Editar código e selecciona o valor co que queiras facer a comprobación. Os valores dinámicos non están dispoñibles para todos os campos.

Por exemplo, podes crear un fluxo de traballo que etiquete un pedido se o país do enderezo de facturación do pedido coincide co país do seu enderezo de envío.

Exemplo dun fluxo de traballo que etiqueta un pedido usando datos RHS para comprobar que o país de facturación e de envío dun cliente é o mesmo.

Neste exemplo, tanto o primeiro como o segundo valor extráense dos datos da túa tenda, no canto de especificar manualmente unha cadea estática para comprobar o segundo valor. Se o país do enderezo de facturación facilitado polo cliente é igual ao país que o cliente proporcionou no enderezo de envío, entón a condición é verdadeira e o pedido etiquétase.

Ás veces podes ter que usar datos dinámicos que son do tipo incorrecto. Por exemplo, poderías ter que comparar un número almacenado como unha cadea con outro número. Neste caso, podes usar a opción Executar código para converter os datos ao tipo correcto.

Modelos

A maioría dos modelos da biblioteca de modelos conteñen unha condición.

Exemplos de condicións

Comprobar se un artigo dunha lista como mínimo cumpre unha condición

Este exemplo mostra unha condición típica que comproba se un artigo dunha lista como mínimo coincide cun valor determinado.

Neste caso, a condición comproba se un dos produtos dun pedido ten a etiqueta presale. Para crear esta condición, terías que escoller order / lineItems / product / tags. Por defecto, Flow escolle polo menos un dos como operador lóxico:

Exemplo dun panel de configuración dunha condición no que se mostra unha comprobación de como mínimo unha etiqueta de produto.

As partes polo menos un dos son operadores de lista e utilízanse para xestionar as coincidencias en varios artigos da lista. A parte é igual a é un operador de nivel de campo que determina se hai algunha coincidencia nun único artigo da lista.

Comprobar se ningún artigo dunha lista cumpre unha condición

Este exemplo mostra unha condición típica que comproba se ningún dos artigos da lista coincide cun valor determinado. Un problema común que hai que ter en conta é que as listas poden estar baleiras. Cando unha lista está baleira, a condición será xestionada polo operador da lista (neste caso ningún de).

Neste caso, a condición comproba se ningunha das etiquetas de produto é igual a foo:

Exemplo dun panel de configuración dunha condición no que se mostra que ningunha é unha etiqueta de produto.

A condición devolverá o valor true se (1) non hai etiquetas de produtos ou se (2) ningunha das etiquetas é foo. En caso contrario, devolverá o valor false.

Comprobar se un artigo dunha lista cumpre varios criterios

Este exemplo mostra unha condición típica que comproba se como mínimo un artigo dunha lista cumpre dous criterios distintos.

Neste caso, a condición comproba se un dos produtos nun pedido ten a etiqueta presale e se o productType é clothing.

Exemplo de panel de configuración dunha condición no que se mostra unha comprobación de como mínimo unha etiqueta de produto e un productType.

Para crear esta condición, debes:

  1. Escolle order / lineItems / product / tags para o primeiro criterio.
  2. Escolle Engadir criterio para o mesmo artigo na lista lineItems. Nota: escoller o artigo de lista incorrecto é un erro frecuente.
  3. Escolle lineItems_item como obxecto de nivel superior e despois product / productType` para o segundo criterio. Nota: escoller o obxecto incorrecto aquí tamén é un erro frecuente.
  4. Escolle AND para combinar os dous criterios.
  5. Introduce os valores presale e clothing para os dous criterios.