Variables y líquido
Todo lo dinámico de esta aplicación está escrito en Liquid, el mismo lenguaje de plantillas que utilizan los temShopify. Usted escribe un marcador de posición y la aplicación lo rellena en el momento del envío.
Los espacios de nombres
| Espacio de nombres | De dónde proviene el valor | Disponible en |
|---|---|---|
{{ variables.key }} |
El campo «Variables (JSON)» de la acción Shopify Flow | Asunto y cuerpo del correo electrónico, URL HTTP, encabezados y cuerpo |
{{ secrets.key }} |
La página «Secretos» | Lo mismo, además del nombre de usuario y la contraseña de SMTP |
{{ shop.name }}, {{ shop.domain }}, {{ shop.email }} |
Su tienda | Acciones de correo electrónico y HTTP |
{{ language }} |
El idioma que haya enviado el paso «Shopify Flow», o, en su defecto, el idioma principal de la maquetación | Asunto del correo electrónico, texto de vista previa y cuerpo del mensaje: consulte Envíe correos electrónicos en el idioma de sus clientes |
{{ unsubscribe_link }}, {{ unsubscribe_url }} |
El enlace para darse de baja del destinatario, únicamente en los diseños de marketing | Cuerpo del correo electrónico; vacío en los diseños transaccionales - véase más abajo - |
{{ flow.key }} |
The raw payload of Shopify Flow | Solo solicitudes HTTP |
La pestaña «Variables del sistema» del editor muestra una lista de los valores de la tienda con su contenido actual; al hacer clic en uno de ellos, se copia.
Pasar variables desde Shopify Flow
En la acción «Shopify Flow», introduzca un objeto JSON en el campo «Variables (JSON)»:
{
"firstName": "{{ customer.firstName }}",
"orderNumber": "{{ order.name }}",
"total": "{{ order.totalPriceSet.shopMoney.amount }}"
}
A continuación, haga referencia a ellos en cualquier parte de la maquetación:
Hi {{ variables.firstName }}, your order {{ variables.orderNumber }} is on its way.
Usted mismo elige las claves. Lo que indique a la izquierda es lo que deberá utilizar después de variables., respetando exactamente la ortografía y las mayúsculas.
No es necesario que escriba este JSON a mano. Cada diseño cuenta con una ficha «Usar en Shopify Flow» que incluye el JSON correcto, listo para copiar; consulte Pasar datos desde Shopify Flow.
Filtros
Los filtros de líquido estándar funcionan. El más útil es default, que le protege de los valores vacíos:
Hi {{ variables.firstName | default: "there" }}
Otros se comportan tal y como cabría esperar:
{{ variables.productTitle | upcase }}
{{ variables.total | round: 2 }}
{{ variables.note | truncate: 100 }}
Cuando una variable se muestra en blanco
Un envío en directo que convierte cualquier variable a la que se haga referencia en «nada» recibe la insignia «Variables vacías» en el Historial. Al abrir la entrada, estas se nombran y se distinguen dos problemas diferentes:
- Enviado por Shopify Flow pero vacío: la clave figuraba en su JSON, pero Shopify Flow no generó ningún valor. Normalmente se debe a una ruta de propiedad incorrecta o a un campo que está realmente vacío en ese registro (una pantalla de pago para invitados no incluye el nombre de pila del cliente).
- Shopify Flow no lo ha enviado en absoluto: la clave no aparece en absoluto en su JSON.
Al añadir una alternativa | default:, se indica que el espacio en blanco es intencionado y la aplicación deja de mostrar avisos al respecto.
Condicionales y bucles
Utilice el bloque de HTML/código para las condiciones:
{% 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 %}
Utilice el bloque «Bucle» para repetir una operación sobre una matriz; por ejemplo, los artículos de un pedido:
{% for item in variables.items %}
<tr>
<td>{{ item.title }}</td>
<td>{{ item.quantity }}</td>
<td>{{ item.price }}</td>
</tr>
{% endfor %}
Pase la matriz desde Shopify Flow en formato JSON:
{
"items": [
{ "title": "Classic White T-Shirt", "quantity": 2, "price": "29.00" },
{ "title": "Eco Water Bottle", "quantity": 1, "price": "19.00" }
]
}
Para obtener una vista previa de un bucle en el generador, introduzca la misma matriz JSON que figura como valor en la pestaña «Variables de prueba».
Los objetos se comportan de forma diferente en el correo electrónico y en HTTP
Esta es la única arista afilada que conviene conocer.
- En una solicitud HTTP, al interpolar un objeto o una matriz, estos se serializan automáticamente a JSON.
{{ variables.records }}se convierte en una matriz JSON válida en el cuerpo de la solicitud. También dispone de un filtrojsonsi desea hacerlo de forma explícita. - En un correo electrónico, no se produce dicha conversión. Al interpolar un objeto completo, el texto que se muestra es
[object Object].
Por lo tanto, en los correos electrónicos, utilice siempre el objeto en lugar de escribirlo:
Wrong: {{ variables.customer }}
Right: {{ variables.customer.firstName }} {{ variables.customer.lastName }}
O bien, recorra una matriz en lugar de mostrarla completa.
Secretos en las plantillas
Para hacer referencia a un secreto almacenado, proceda de la misma manera:
Authorization: Bearer {{ secrets.airtableAccessToken }}
Utilice la sintaxis exacta {{ secrets.keyName }}. Las siguientes opciones no funcionan:
{{ secret.keyName }}- singular{{ secrets['keyName'] }}- sintaxis de los corchetes
Los nombres de las claves distinguen entre mayúsculas y minúsculas. Consulte Secretos.
Anulación del cuerpo de las solicitudes HTTP
El campo «variables» de la acción HTTP cuenta con un segundo modo. Si se pasa una clave body, esta sustituye por completo el cuerpo de la solicitud guardado:
{
"body": { "anything": "you like", "shaped": ["however"] }
}
Esto resulta útil cuando la forma del payload viene determinada por un paso anterior de Shopify Flow. La única excepción es que, si el propio cuerpo guardado hace referencia a {{ variables.body }}, este se trata como una variable ordinaria.
Comprobación de lo que ha escrito
La vista previa en la página no evalúa el código Liquid, sino que muestra las etiquetas tal y como están escritas. Para ver los valores resueltos:
- En el caso de los correos electrónicos, utilice la opción «Enviar correo electrónico de prueba» del editor de diseños.
- Para las solicitudes HTTP, utilice el botón «Probar», que muestra la «URL resuelta» y el «Cuerpo resuelto» junto con la respuesta.
El enlace para darse de baja en las plantillas de marketing
Una plantilla cuyo tipo de correo electrónico sea «Marketing» cuenta con dos variables adicionales. Cada destinatario de un correo electrónico de marketing dispone de su propio enlace para darse de baja, y estas variables lo insertan:
{{ unsubscribe_link }}muestra un enlace con el texto «Cancelar suscripción» de la sección «Configuración» (o el propio del diseño).{{ unsubscribe_url }}muestra la dirección tal cual, para un botón o un enlace al que usted mismo aplique un estilo.
<p>No longer interested? <a href="{{ unsubscribe_url }}">Unsubscribe here</a>.</p>
No es necesario que las utilice: de todos modos, todos los correos electrónicos de marketing incluyen un pie de página con la opción de darse de baja. Cuando el cuerpo del mensaje ya contiene el enlace, el pie de página omite la frase de baja y solo añade los datos de la empresa. En el asunto y en el texto de vista previa, ambas variables no muestran ningún contenido, y en un diseño transaccional siempre están vacías. Consulte Correos electrónicos de marketing y bajas de la lista de suscriptores.
Relacionado
- Pasar datos desde Shopify Flow - El campo «Variables (JSON)» en detalle.
- Crear un diseño de correo electrónico - dónde van estas variables.
- Correos electrónicos de marketing y bajas de la lista de suscriptores - las plantillas de marketing, el pie de página para darse de baja y la lista de baja.
- Secretos - el almacenamiento seguro de las credenciales.
- Realice una solicitud HTTP desde Shopify Flow - variables de una solicitud real.

