Variáveis e Líquido
Tudo o que é dinâmico nesta aplicação é escrito em Liquid - a mesma linguagem de modelos utilizada pelos temas dShopify. Basta escrever um marcador de posição e a aplicação preenche-o no momento do envio.
Os espaços de nomes
| Espaço de nomes | De onde provém o valor | Disponível em |
|---|---|---|
{{ variables.key }} |
O campo «Variáveis (JSON)» na ação Shopify Flow | Assunto e corpo do e-mail, URL HTTP, cabeçalhos e corpo |
{{ secrets.key }} |
A página «Segredos» | O mesmo, além do nome de utilizador e da palavra-passe SMTP |
{{ shop.name }}, {{ shop.domain }}, {{ shop.email }} |
A sua loja | Ações de e-mail e HTTP |
{{ language }} |
A língua indicada na etapa «Shopify Flow», caso contrário, a língua principal do layout | Assunto do e-mail, texto de pré-visualização e corpo do e-mail - consulte Envie e-mails na língua do seu cliente |
{{ unsubscribe_link }}, {{ unsubscribe_url }} |
O link para cancelar a subscrição do destinatário, apenas em modelos de marketing | Corpo do e-mail; vazio nos modelos transacionais - ver abaixo |
{{ flow.key }} |
The raw payload in Shopify Flow format | Apenas pedidos HTTP |
O separador «Variáveis do sistema» no editor apresenta os valores da loja com o seu conteúdo atual; ao clicar num deles, este é copiado.
Passagem de variáveis a partir de umShopify Flow
Na ação «Shopify Flow», insira um objeto JSON no campo «Variáveis (JSON)»:
{
"firstName": "{{ customer.firstName }}",
"orderNumber": "{{ order.name }}",
"total": "{{ order.totalPriceSet.shopMoney.amount }}"
}
Em seguida, faça referência a elas em qualquer parte do layout:
Hi {{ variables.firstName }}, your order {{ variables.orderNumber }} is on its way.
A escolha das chaves cabe-lhe a si. O nome que indicar à esquerda é o que deverá utilizar após variables., respeitando exatamente a ortografia e as maiúsculas.
Não é necessário escrever este JSON manualmente. Cada layout dispõe de um cartão «Use in Shopify Flow» com o JSON correto, pronto a ser copiado - consulte Transmissão de dados a partir de Shopify Flow.
Filtros
Os filtros «Standard Liquid» funcionam. O mais útil é o default, que o protege contra valores nulos:
Hi {{ variables.firstName | default: "there" }}
Outros comportam-se tal como seria de esperar:
{{ variables.productTitle | upcase }}
{{ variables.total | round: 2 }}
{{ variables.note | truncate: 100 }}
Quando uma variável é apresentada em branco
Um envio em tempo real que atribua o valor «nulo» a qualquer variável referenciada recebe um emblema de «Variáveis vazias» no Histórico. Ao abrir a entrada, estas recebem um nome e separam-se em dois problemas distintos:
- Enviado por Shopify Flow, mas vazio - a chave constava no seu JSON, mas o Shopify Flow não produziu qualquer valor. Normalmente, trata-se de um caminho de propriedade incorreto ou de um campo que está efetivamente vazio nesse registo (um checkout como convidado não tem o nome próprio do cliente).
- Não foi enviado pelo Shopify Flow de forma alguma - a chave está completamente ausente do seu JSON.
Ao adicionar um valor alternativo | default:, o espaço em branco é considerado intencional e a aplicação deixa de apresentar avisos a esse respeito.
Condicionais e loops
Utilize o bloco HTML/Código para expressões condicionais:
{% if variables.isVip %}
<p>As a VIP you get free shipping on this order.</p>
{% else %}
<p>Spend a little more to unlock free shipping.</p>
{% endif %}
Utilize o bloco «Loop» para repetir um processo ao longo de um tabular, por exemplo, itens de linha de um pedido:
{% for item in variables.items %}
<tr>
<td>{{ item.title }}</td>
<td>{{ item.quantity }}</td>
<td>{{ item.price }}</td>
</tr>
{% endfor %}
Envie o array do Shopify Flow como JSON:
{
"items": [
{ "title": "Classic White T-Shirt", "quantity": 2, "price": "29.00" },
{ "title": "Eco Water Bottle", "quantity": 1, "price": "19.00" }
]
}
Para pré-visualizar um ciclo no construtor, introduza o mesmo array JSON que o valor na separador «Testar variáveis».
Os objetos comportam-se de forma diferente no e-mail e no HTTP
Esta é a única aresta afiada que vale a pena conhecer.
- Numa solicitação HTTP, a interpolação de um objeto ou de um array serializa-o automaticamente para JSON.
{{ variables.records }}torna-se um array JSON válido no corpo da solicitação. Está também disponível um filtrojson, caso pretenda ser explícito. - Num e-mail, essa conversão não ocorre. Ao interpolar um objeto completo, o texto literal
[object Object]é apresentado.
Assim, nos e-mails, recorra sempre ao objeto em vez de o escrever:
Wrong: {{ variables.customer }}
Right: {{ variables.customer.firstName }} {{ variables.customer.lastName }}
Ou percorra um array em vez de o apresentar na íntegra.
Segredos nos modelos
Para aceder a um segredo armazenado, proceda da mesma forma:
Authorization: Bearer {{ secrets.airtableAccessToken }}
Utilize a sintaxe exata {{ secrets.keyName }}. As seguintes opções não funcionam:
{{ secret.keyName }}- singular{{ secrets['keyName'] }}- sintaxe de parênteses
Os nomes das chaves distinguem maiúsculas de minúsculas. Consulte Segredos.
Substituição do corpo para pedidos HTTP
O campo «variáveis» da ação HTTP dispõe de um segundo modo. Se passar uma chave body, esta substitui na íntegra o corpo da solicitação guardado:
{
"body": { "anything": "you like", "shaped": ["however"] }
}
Isto é útil quando a forma do payload é determinada por uma etapa anterior do Shopify Flow. A única exceção: se o próprio corpo guardado fizer referência a {{ variables.body }}, este é tratado como uma variável comum.
A testar o que escreveu
A pré-visualização na página não avalia o Liquid - mostra as tags tal como estão escritas. Para ver os valores resolvidos:
- No caso dos e-mails, utilize a opção «Enviar e-mail de teste» no editor de layout.
- No caso das solicitações HTTP, utilize o botão «Testar», que apresenta o «URL resolvido» e o «Corpo resolvido» juntamente com a resposta.
O link para cancelar a subscrição nos modelos de marketing
Um layout cujo tipo de e-mail seja «Marketing» dispõe de mais duas variáveis. Cada destinatário de um e-mail de marketing tem o seu próprio link para cancelar a subscrição, e estas variáveis inserem-no:
{{ unsubscribe_link }}exibe uma ligação com o texto «Cancelar subscrição» da secção «Definições» (ou o texto próprio do layout).{{ unsubscribe_url }}apresenta o endereço simples, para um botão ou uma âncora que o senhor próprio definir.
<p>No longer interested? <a href="{{ unsubscribe_url }}">Unsubscribe here</a>.</p>
Não é necessário utilizá-las: de qualquer forma, todos os e-mails de marketing incluem um rodapé com a opção de cancelamento de subscrição. Quando o corpo do e-mail já contém o link, o rodapé omite a frase relativa ao cancelamento de subscrição e apresenta apenas os dados da empresa. No assunto e no texto de pré-visualização, ambas as variáveis não exibem qualquer conteúdo e, num layout transacional, estão sempre vazias. Consulte E-mails de marketing e cancelamentos de subscrição.
Relacionado
- Transmissão de dados a partir de Shopify Flow - o campo «Variáveis (JSON)» em pormenor.
- Criar um layout de e-mail - onde é que estas variáveis vão.
- E-mails de marketing e cancelamentos de subscrição - os modelos de marketing, o rodapé de cancelamento de subscrição e a lista de cancelamento de subscrição.
- Segredos - armazenar as credenciais de forma segura.
- Efetue um pedido HTTP a partir de Shopify Flow - variáveis numa solicitação real.

