Esta página foi impressa em Sep 07, 2024. Para a versão mais recente, acesse https://help.shopify.com/pt-BR/manual/shopify-flow/reference/variables.
As variáveis são marcadores de posição que são substituídas por valores quando um fluxo de trabalho é executado. Elas descrevem os atributos dos clientes, pedidos e produtos envolvidos no fluxo. Há variáveis, por exemplo, para o número do pedido, o preço do pedido, o nome do cliente e assim por diante. É possível usá-las em condições para controlar a lógica no fluxo de trabalho ou gerar dados em uma ação.
É uma linguagem usada para acessar variáveis em ações e escrever código no Flow. A plataforma usa uma variante do Liquid que é mais próxima da biblioteca de código aberto. Já os temas da Shopify usam outra, que é específica e inclui muito mais filtros e tags do que o permitido pelo Flow, além de uma sintaxe diferente para acessar variáveis.
Variáveis do Liquid
É 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 da lista Add a variable ("Adicionar uma variável") são filtradas, ou seja, você só vê o retorno dos itens por etapas antes da etapa atual, como acionadores. O acionador Order created ("Pedido criado"), por exemplo, oferece recursos para pedidos e lojas que permitem usar variáveis relacionadas às configurações do pedido ou da loja acessíveis na API GraphQL Admin. Depois de escolher um item na lista, ele é formatado e adicionado à caixa de texto para você.
Também é possível escrever o código do Liquid direto no bloco de texto. Use a variável {{ order.name }}, por exemplo, para mostrar a string do pedido exibida no admin da Shopify, como order-123.
Como o Flow usa a API GraphQL Admin para recuperar os dados utilizados no Liquid, a sintaxe da variável segue o padrão "camel case". Para acessar a data de criação de um produto, por exemplo, insira {{ product.createdAt }}. Se você usa a sintaxe do Liquid em um tema da Shopify, insira {{ product.created_at }}.
Tags condicionais e de iteração do Liquid
A linguagem também permite usar tags para realizar as seguintes ações:
Escrever declarações condicionais, como saber se o total de um pedido é maior que R$ 100
Fazer iterações por uma lista de objetos, como gerar dados para cada item de linha em um pedido
O código a seguir, por exemplo, mostra o número de pedido se o total é maior que R$ 100:
Também é possível usar um for loop para fazer iterações por uma lista de objetos, como itens de linha de um pedido. No código abaixo, há instruções para mostrar o nome de cada item de linha de um pedido:
O Flow é compatível com estas tags condicionais do Liquid (ou de controle de fluxo):
Os filtros permitem transformar dados no Liquid. O Flow é compatível com todos os filtros de código aberto do Liquid.
O código a seguir, por exemplo, remove um prefixo do nome de um pedido e gera o texto restante: {{ order.name | remove: "Order-" }}
Além dos filtros-padrão, o Flow oferece filtros de data para indicar uma data em relação a outra, úteis para o acionador Scheduled time ("Horário agendado") e os recursos Get data ("Coletar dados"): date_minus e date_plus.
Para retornar uma data um dia no futuro, use:{{ "now" | date_plus: "1 day" }}
Se quer retornar uma data um dia antes, utilize:{{ "now" | date_minus: "1 day" }}
Esses filtros aceitam second, minute, day, week, month e year como unidade de duração, tanto singular (como second) quanto plural (como seconds). Também é possível indicar um número inteiro (no caso de segundos), por exemplo:{{ "now" | date_minus: 3600 }}
Outra opção é usar uma string de duração ISO8601, em que P1Y2D significa 1 ano e 2 dias:{{ "now" | date_minus: "P1Y2D" }}
Informações sobre o uso de variáveis do Liquid em filtros
No Flow, não é permitido usar a notação de ponto disponível para alguns filtros. É possível utilizar, por exemplo, {{ order.lineItems | size }}, mas não {{ order.lineItems.size }}.
O mesmo vale para metacampos: em vez de usar {{ order.metafields.custom.hold_note }}, por exemplo, é preciso recorrer a loops, como indicado na próxima seção.
O Flow não é compatível com o uso de índices para acessar itens de uma lista. Por exemplo, não é possível usar {{ order.lineItems[0].title }}. Em vez disso, é necessário recorrer a loops sobre os itens de linha, como descrito nos exemplos.
Exemplos
Para ter uma noção melhor de como usar variáveis do Liquid, veja os exemplos abaixo.
URLs de saída para recursos
Você quer exibir URLs de cliente, pedido e produto envolvidos em um fluxo de trabalho.
Converter uma lista de tags em um metacampo
Você quer converter um conjunto de tags em um metacampo que é uma lista de campos de texto de linha única. Para isso, você cria um fluxo de trabalho com o acionador Product added to store ("Produto adicionado à loja") e usa a ação Update product metafield ("Atualizar metacampo do produto"). Na seção Value ("Valor") da ação Update product metafield ("Atualizar metacampo do produto"), você adiciona o código do Liquid abaixo. Este exemplo pressupõe que você só precisa definir os valores uma vez quando o produto é criado e que o item tem duas tags relevantes: color:red e color:orange.
Exemplo de Liquid para definir a lista de um campo de texto de linha única.
Escrever uma mensagem de e-mail dinâmico para um pedido
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"). 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 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.
Escrever uma mensagem de e-mail dinâmico para um produto com estoque baixo
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.
Escrever uma mensagem de e-mail dinâmico para notificar os membros da equipe sobre um pedido fraudulento
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:
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!
Gerar os itens de linha de um pedido com um loop 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)
Gerar os itens de linha de um pedido com um loop for com informações adicionais
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
Gerar alguns itens de linha pela combinação de um loop for com uma instrução if
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 Flow permite que você acesse quase todos os dados que estão na API Admin GraphQL, incluindo objetos de dados complexos como listas e objetos. No entanto, existem algumas limitações relacionadas às ações permitidas nesses objetos. Esta seção descreve as limitações e apresenta exemplos de como trabalhar com elas.
Em vez de chamar listas e objetos diretamente, use um loop 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 lista ou o objeto diretamente. Copie e cole os campos necessários.