Variáveis no Shopify Flow

As variáveis são marcadores de posição substituídos por valores quando um fluxo de trabalho é executado e descrevem os atributos de clientes, pedidos e produtos envolvidos. Por exemplo, há variáveis de modelo para número do pedido, preço do pedido, nome do cliente e assim por diante.

O Flow usa outra versão do Liquid, diferente dos temas da Shopify, além de ter acesso a todas as variáveis disponibilizadas na API GraphQL Admin.

Os nomes da maioria das variáveis são autodescritivos. Por exemplo, a variável que exibe o nome do produto é {{ product.title }}. Vale lembrar que, após o envio da mensagem, a variável é substituída pelo nome do produto pedido: Large Coffee Mug.

Adicionar variáveis às ações

É possível incluir variáveis em campos de texto que contenham o link Add variable ("Adicionar variável"). Clique nesse link, logo abaixo do campo relevante, e escolha uma opção da lista.

As variáveis na lista Add variable ("Adicionar variável") são filtradas, portanto você verá apenas aquelas aplicáveis ao acionador selecionado. Depois que você escolher uma variável, ela será formatada corretamente e adicionada à caixa de texto.

O Flow é compatível com quase todos os campos da API Admin GraphQL.

Variáveis do Liquid

Pessoas com experiência em desenvolvimento no código Liquid podem usá-lo para escrever variáveis ou editar aquelas inseridas pelo link Adicionar variável. Para saber mais, consulte a Referência da API GraphQL Admin.

Tags condicionais e de iteração

Adicione manualmente tags de variáveis do Liquid às mensagens do fluxo de trabalho. É bom usá-las para incluir mais informações nas mensagens.

Por exemplo, você pode usar um objeto for loop para iteração por meio de uma lista de objetos, como itens de linha, em um pedido. Com essas tags, você pode criar mensagens que contenham dados, como o título do produto, SKU, preço e quantidade para cada item de linha em um pedido, e poupar seus destinatários de terem que procurar essas informações no admin da Shopify.

O Flow é compatível com estas tags condicionais do Liquid (ou de controle de fluxo):

O Flow também é compatível com estas tags de iteração do Liquid:

Filtros

O Flow é compatível com os seguintes filtros do Liquid:

Filtros do Liquid compatíveis com o Flow
Nome do filtro Tipo de filtro
abs Math
append String
at_least Math
at_most Math
capitalize String
ceil Math
concat Array
date Adicional
padrão Adicional
divided_by Math
downcase String
escape String
primeiro Array
floor Math
join Array
last Array
lstrip String
map Array
minus Math
modulo Math
newline_to_br String
plus Math
prepend String
remover String
remove_first String
replace String
replace_first String
reverse Array
round Math
rstrip String
tamanho Array
slice String
organizar Array
split String
strip String
strip_html String
strip_newlines String
times Math
truncate String
truncatewords String
uniq Array
upcase String
url_encode String
onde Array

Exemplos de variáveis

Por exemplo, digamos que você queira criar um fluxo de trabalho para enviar um e-mail a um funcionário quando um cliente gastar mais de R$ 500 em um pedido. Para isso, crie um fluxo com o acionador Order created ("Pedido criado"), defina uma condição que seja verdadeira se o total do pedido for superior a R$ 500 e use a ação Send internal email ("Enviar e-mail interno"). A seção Message ("Mensagem") dessa ação permite o uso das variáveis abaixo.

Exemplo de uso de variáveis para fornecer informações do cliente.
Entrada Saída
Envie uma nota pessoal de agradecimento a {{ order.customer.firstName }} {{ order.customer.lastName }}({{ order.customer.email }}) pelo pedido de R$ {{ order.totalPriceSet.shopMoney.amount }} realizado. Envie uma nota pessoal de agradecimento a Jane Oliveira (jane@exemplo.com.br) pelo pedido de R$ 763,42 realizado.

Você decide que precisa informar um membro da equipe quando o estoque de produtos estiver baixo e for necessário fazer um pedido para reabastecê-lo. Para isso, crie um fluxo de trabalho que inicie com o acionador Inventory quantity changed ("Volume de estoque alterado") e defina uma condição que seja verdadeira se o volume anterior for menor ou igual a 10. Na seção Message ("Mensagem") da ação Send internal email ("Enviar e-mail interno"), use as variáveis abaixo.

Exemplo de uso de variáveis para fornecer informações de itens.
Entrada Saída
Por favor, renove o estoque de {{ product.title }}. Envie um e-mail para titular@loja.com.br para confirmar se o pedido de compra foi recebido. Por favor, renove o estoque de Leggings cintura alta - preto. Envie um e-mail para titular@loja.com.br para confirmar se o pedido de compra foi recebido.

Você quer cancelar pedidos que tenham um nível de risco alto, mas prefere que a equipe faça o cancelamento manual. Para isso, crie um fluxo de trabalho que inicie com o acionador Order created ("Pedido criado") e defina uma condição que seja verdadeira se o nível de risco do pedido for igual a "High" ("Alto"). Na seção Message ("Mensagem") da ação Send internal email ("Enviar e-mail interno"), use as variáveis abaixo.

Exemplo de uso de variáveis para fornecer informações sobre um pedido fraudulento.
Entrada Saída
Nossa loja da Shopify recebeu um pedido com alto risco de fraude. Queremos cancelá-lo imediatamente, antes que ele seja enviado para produção:

{{ order.name }}
{{ order.billingAddress.lastName }}, {{ order.billingAddress.firstName }}
{{ order.email }}

Por favor, confirme o novo status do pedido. Obrigado!
Nossa loja da Shopify recebeu um pedido com risco alto de fraude. Queremos cancelá-lo imediatamente, antes que ele seja enviado para produção:

nº 1001
Oliveira, Joana
joana@exemplo.com.br

Por favor, confirme o novo status do pedido. Obrigado!

Exemplos de loops for

Quando um pedido é recebido, pode ser útil enviar uma mensagem que contenha os produtos solicitados. Para isso, use for loop, que executa repetidamente um bloco de código. Os campos de texto compatíveis com variáveis também aceitam for loops e o objeto forloop.

Por exemplo, digamos que você queira criar um fluxo de trabalho que retorne uma lista de todas as SKUs e quantidades de um pedido. Na seção Message ("Mensagem") da ação Send internal email ("Enviar e-mail interno"), use as variáveis abaixo.

Exemplo de uso de loop para fornecer informações do pedido.
Entrada Saída
Resumo do pedido:
{% for a in order.lineItems %}
SKU: {{a.sku}} ( {{a.quantity}} ),
{% endfor %}
Resumo do pedido:
8987097979 (50)
8877778887 (3)
888998888B (1)

Você decide adicionar mais dados ao e-mail, incluindo nome do produto, SKUs, preço por item e informações de frete do cliente. Na seção Message ("Mensagem") da ação Send internal email ("Enviar e-mail interno"), use as variáveis abaixo.

Exemplo de uso de loop for para fornecer informações de pedido mais detalhadas.
Entrada Saída
Resumo do pedido:
{% for a in order.lineItems %}
Produto: {{a.title}}
SKU: {{a.sku}}
Preço (por unidade): R$ {{a.originalUnitPriceSet.shopMoney.amount}}
Quantidade: {{a.quantity}}
{% endfor %}
Resumo do pedido:
Produto: Leggings de cintura alta - preto
SKU: 8987097979
Preço (por unidade): R$ 8,49
Quantidade: 5
Produto: Meias esportivas - azul
SKU: 88898898B
Preço (por unidade): R$ 5,61
Quantidade: 2

Você precisa rastrear os itens vendidos que são fornecidos por um fabricante específico. Na seção Message ("Mensagem") da ação Send internal email ("Enviar e-mail interno"), use as variáveis abaixo e inclua uma instrução if em for loop.

Exemplo de loop for e uso da instrução "if" para fornecer informações do pedido a fornecedores específicos.
Entrada Saída
Produto Acme vendido:
{% for x in order.lineItems %}
{% if x.vendor == 'acme-vendor' %}
Nome do produto: {{x.title}}
SKU: {{x.sku}}
{% endif %}
{% endfor %}
Produto Acme vendido:
Nome do produto: Leggings de cintura alta - preto
SKU: 8987097979

Objetos de dados complexos no Shopify Flow

O Shopify Flow não é compatível com a saída de matrizes e objetos pelos seguintes motivos:

  • A saída de dados desnecessários está obsoleta para a API GraphQL e cria consultas extensas que causam falha no fluxo de trabalho.
  • Com a introdução de novos recursos, novos campos da API são adicionados, o que pode quebrar seu fluxo de trabalho.

O fluxo de trabalho falha quando muitos dados são enviados automaticamente. Em vez de chamar matrizes e objetos diretamente, repita matrizes e inclua apenas os campos desejados.

Por exemplo, em vez de chamar diretamente {{ order.lineItems }}, use o formato a seguir para chamar campos específicos. Esses exemplos incluem todos os campos que seriam incluídos ao chamar a matriz ou o objeto diretamente. Copie e cole os campos necessários.

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

Experimente de graça