Condições no Shopify Flow

No Shopify Flow, as condições determinam se uma ação será tomada ou não depois que um acionador inicia um fluxo de trabalho. Para definir uma condição, basta escolher um valor retirado dos dados da loja, um operador lógico e determinar manualmente um valor que servirá de base para a verificação.

Tipos de dados usados com o Flow

O primeiro valor em uma condição do Flow vem de dados da loja e é retirado da API Admin GraphQL.

O Flow é compatível com estes tipos de dados:

  • Flutuantes: valores com uma parte decimal. Por exemplo, 4,25.
  • Inteiros: valores em números inteiros que não têm uma parte decimal. Por exemplo, 42.
  • Datas: valores que representam numericamente uma data. Por exemplo, 01012021.
  • Strings: valores compostos por texto. As comparações que usam valores de string não diferenciam entre letras maiúsculas e minúsculas.
  • Booleanos: valores definidos como "true" (verdadeiro) ou "false" (falso).
  • Enumerações: conjuntos de dados que permitem que uma variável seja um conjunto de constantes predefinidas.

Operadores lógicos usados no Flow

Os operadores lógicos definem como a condição é aplicada. As condições verificam propriedades simples, como se o total de um pedido está acima de um determinado valor ou se o cliente aceita marketing. É importante lembrar que os operadores lógicos também podem verificar propriedades mais complexas.

O Flow pode usar os seguintes operadores:

É igual a

É igual a compara valores para determinar se são iguais. No exemplo abaixo, o valor de order.currentTotalDiscountsSet.shopMoney.amount é recuperado dos dados da loja e comparado com o segundo valor, 50.

Exemplo de fluxo de trabalho que usa o operador lógico

Se o primeiro valor for igual a 50, a condição será verdadeira e o pedido será cancelado.

Não é igual a

Não é igual a compara valores para determinar se são iguais ou não. No exemplo abaixo, o valor de order.currentTotalDiscountsSet.shopMoney.amount é recuperado dos dados da loja e comparado com o segundo valor, 50.

Exemplo de fluxo de trabalho que usa o operador lógico

Se o primeiro valor for igual a 93, a condição será verdadeira e o pedido será cancelado.

Maior que e Maior ou igual a

Maior que e Maior ou igual a comparam valores para determinar se o primeiro é maior ou maior ou igual ao segundo valor. No exemplo abaixo, o valor de order.currentTotalDiscountsSet.shopMoney.amount é recuperado dos dados da loja e comparado com o segundo valor, 50.

Exemplo de fluxo de trabalho que usa o operador lógico

Se o valor retirado da loja for 137, a condição será verdadeira, pois 137 é maior que 50, e o pedido será cancelado.

Menor que e Menor ou igual a

Menor que e Menor ou igual a comparam valores para determinar se o primeiro é menor ou menor ou igual ao segundo valor. No exemplo abaixo, o valor de order.currentTotalDiscountsSet.shopMoney.amount é recuperado dos dados da loja e comparado com o segundo valor, 50.

Exemplo de fluxo de trabalho que usa o operador lógico

Se o valor retirado da loja for 47, a condição será verdadeira, pois 47 é menor ou igual a 50, e o pedido será cancelado.

É algum de

É algum de compara valores em uma matriz de dados para ver se o primeiro valor contém algum dos dados do segundo valor. Os valores a serem verificados precisam ser inseridos um de cada vez, seguidos pela tecla Enter. É importante destacar que o uso desse operador em uma matriz em branco resulta em uma avaliação falsa. No exemplo abaixo, o valor de order.lineitem.product.title é recuperado dos dados da loja e comparado com o segundo conjunto de valores (pineapple, guava, kiwi).

Exemplo de fluxo de trabalho que usa o operador lógico

Se o valor retirado da loja for "guava", a condição será verdadeira, pois ele está incluído na matriz "pineapple, guava, kiwi", e o pedido será cancelado.

Não é algum de

Não é algum de compara valores em uma matriz de dados para verificar se o primeiro valor não contém nenhum dos dados do segundo valor. Vale lembrar que os valores a serem verificados precisam ser inseridos um de cada vez, seguidos pela tecla Enter. No exemplo abaixo, o valor de order.lineitem.product.title é recuperado dos dados da loja e comparado com o segundo conjunto de valores (pineapple, guava, kiwi).

Exemplo de fluxo de trabalho que usa o operador lógico

Se o valor retirado da loja for "raspberry", a condição será verdadeira, pois ele não está incluído na matriz "pineapple, guava, kiwi", e o pedido será cancelado.

Inclui

Inclui compara valores para determinar se o primeiro valor inclui os dados do segundo valor. No exemplo abaixo, o valor de order.lineitem.product.title é recuperado dos dados da loja e comparado com o segundo valor, scrape.

Exemplo de fluxo de trabalho que usa o operador lógico

Se o valor recebido dos dados da loja for "skyscraper", a condição será verdadeira, pois a string exata "scrap" está incluída na string "skyscraper", e o pedido será cancelado.

Não inclui

Não inclui compara valores para determinar se o primeiro valor não inclui os dados do segundo valor. No exemplo abaixo, o valor de order.lineitem.product.title é recuperado dos dados da loja e comparado com o segundo valor, scrape.

Exemplo de fluxo de trabalho que usa o operador lógico

Se o valor retirado dos dados da loja for "scrap-metal", a condição será verdadeira, já que a string exata "scrape" não está incluída na string "scrap-metal". Logo, o pedido será cancelado.

Começa com

Começa com compara valores para determinar se o primeiro valor inicia com os dados incluídos no segundo valor. No exemplo abaixo, o valor de order.shippingAddress.country é recuperado dos dados da loja e comparado com o segundo valor, United.

Exemplo de fluxo de trabalho que usa o operador lógico

Se o valor retirado dos dados da loja for "United Kingdom", a condição será verdadeira, pois a string "United" inicia a string "United Kingdom", e o pedido será cancelado.

Não começa com

Não começa com compara valores para determinar se o primeiro valor não inicia com os dados incluídos no segundo valor. No exemplo abaixo, o valor de order.shippingAddress.country é recuperado dos dados da loja e comparado com o segundo valor, United.

Exemplo de fluxo de trabalho que usa o operador lógico

Se o valor retirado da loja for "Canada", a condição será verdadeira, pois essa string não inicia a string "United Kingdom", e o pedido será cancelado.

Termina com

Termina com compara valores para determinar se o primeiro valor termina com os dados incluídos no segundo valor. No exemplo abaixo, o valor de order.lineitems.product.title é recuperado dos dados da loja e comparado com o segundo valor, last-available.

Exemplo de fluxo de trabalho que usa o operador lógico

Se o valor retirado da loja for "athletic socks last-available", a condição será verdadeira, pois essa string termina com "last-available", e o pedido será cancelado.

Não termina com

Não termina com compara valores para determinar se o primeiro valor não termina com os dados do segundo valor. No exemplo abaixo, o valor de order.lineitems.product.title é recuperado dos dados da loja e comparado com o segundo valor, last-available.

Exemplo de fluxo de trabalho que usa o operador lógico

Se o valor retirado da loja for "athletic socks new", a condição será verdadeira, uma vez que a string não termina com "last-available". Logo, o pedido será cancelado.

Ordenação de condições

É possível criar fluxos de trabalho que tenham várias condições, cada uma podendo resultar em ações diferentes. Vale lembrar que a ordem das condições é importante, pois a verificação delas começa no início do fluxo de trabalho e avança sistematicamente por cada uma. Quando uma condição é atendida, a verificação é interrompida.

Atender a várias condições

Ao criar uma condição, é possível definir vários critérios e determinar qual critério o Flow usará para considerar a condição verdadeira: se todas as condições forem atendidas ou se alguma das condições for atendida.

If all conditions are met ("Se todas as condições forem atendidas")

Se o operador If all conditions are met ("Se todas as condições forem atendidas") for selecionado, a resposta será verdadeira apenas se todos os critérios definidos forem verdadeiros.

Por exemplo, digamos que você crie um fluxo de trabalho para marcar com tags os clientes que estão localizados no Canadá e gastam mais de US$ 500 em um único pedido.

Exemplo de um fluxo de trabalho que usa a condição

O fluxo de trabalho marca com tags apenas os clientes que estiverem no Canadá e gastarem mais de US$ 500 no pedido. Se alguma dessas condições for falsa, o cliente não será marcado.

If any conditions are met ("Se alguma condição for atendida")

A seleção da opção If any conditions are met ("Se alguma condição for atendida") resulta em uma resposta verdadeira se algum dos critérios definidos for verdadeiro.

Por exemplo, digamos que você crie um fluxo de trabalho para marcar com tag os pedidos considerados de risco alto ou médio.

Exemplo de um fluxo de trabalho que usa a condição

O fluxo de trabalho o marca o pedido com tags se a condição de risco alto ou médio for verdadeira.

Combinar condições e ações

É possível combinar condições para criar uma condição mais complexa, porém ela só será verdadeira se todas as condições que a compõem forem atendidas. Caso contrário, a condição inteira será falsa. No exemplo abaixo, o cliente precisa aceitar materiais de marketing e o preço total do pedido precisa atender a um determinado limite.

Exemplo de um fluxo de trabalho que verifica o valor total de gasto de um cliente e adiciona tags

Também é possível combinar ações para que várias delas sejam realizadas. O exemplo abaixo usa diversas condições para verificar se um cliente se qualifica para um programa de fidelidade conforme o valor total gasto na loja. No exemplo acima, as seguintes condições são verificadas na ordem em que aparecem:

  1. Se a soma dos preços for maior que US$ 1 mil e o cliente concordou em receber marketing, marque-o com a tag Gold;
  2. Se a soma dos preços for menor que US$ 1 mil e maior que US$ 500 e o cliente concordou em receber marketing, marque-o com a tag Silver;
  3. Se o cliente gastou mais de US$200 e o cliente concordou em receber marketing, marque-o com a tag Bronze.

Dados estáticos e dinâmicos em condições

Em geral, o segundo valor de uma condição é um valor estático inserido manualmente. Ele permanece o mesmo em todas as execuções do fluxo de trabalho.

No entanto, também é possível usar valores dinâmicos se o campo do segundo valor exibir o símbolo </>. Esses valores são retirados dos dados da loja sempre que o fluxo de trabalho for executado. Para usar um valor dinâmico, clique no símbolo </> e selecione o valor que servirá de base para a verificação. Vale lembrar que os valores dinâmicos não estão disponíveis para todos os campos.

Por exemplo, digamos que você crie um fluxo de trabalho que marca com tags um pedido se o país que consta no endereço de faturamento é igual ao país do endereço de entrega.

Exemplo de um fluxo de trabalho que marca com tags um pedido e usa dados RHS para verificar se o país de faturamento e o país de frete de um cliente são iguais.

Neste exemplo, o primeiro e o segundo valores são retirados dos dados da loja, ao invés de uma string estática ser especificada manualmente para verificar o segundo valor. Se o país do endereço de faturamento informado pelo cliente for igual ao país do endereço de entrega, a condição será verdadeira e o pedido será marcado com tags.

Tudo pronto para começar a vender com a Shopify?

Experimente de graça