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 filtro json, 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.

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