Las variables son marcadores de posición que se reemplazan por valores cuando se ejecuta un flujo de trabajo. Estas variables describen los atributos de los clientes, pedidos y productos que están involucrados en tus flujos de trabajo. Por ejemplo, hay variables para el número de pedido, el precio del pedido, el nombre del cliente, entre otros. Las variables pueden usarse en condiciones para controlar la lógica en tu flujo de trabajo o para generar datos en una acción.
Liquid es un lenguaje de plantilla que se usa para acceder a variables en acciones y para escribir código en Flow. Flow usa una variante de Liquid que sigue de cerca la biblioteca de código abierto. Los temas de Shopify usan otra variante de Liquid que es específica para los temas e incluye muchos más filtros y etiquetas que los que admite Flow, así como una sintaxis diferente para acceder a las variables.
Variables de Liquid
Puedes agregar variables de Liquid a cualquier campo de texto que contenga el enlace Agregar variable. Haz clic en el enlace Agregar variable debajo del campo correspondiente y luego selecciona una variable de la lista.
Las variables en la lista Agregar una variable se filtran, de modo que solo ves que las variables regresan por pasos antes del paso actual, como los activadores. Por ejemplo, el activador Pedido creado proporciona recursos de los pedidos y de la tienda, lo que luego te permite usar cualquier variable relacionada con el pedido o la configuración de la tienda que esté disponibles en la GraphQL Admin API. Después de elegir una variable de la lista, se le da el formato correcto y se agrega al cuadro de texto por ti.
También puedes escribir el liquid directamente en el bloque de texto. Por ejemplo, puedes usar la variable {{ order.name }} para mostrar la cadena de pedido que se muestra en el panel de control de Shopify, como el pedido-123.
Como Flow usa la GraphQL Admin API para recuperar los datos que usas en Liquid, la sintaxis de variables usa combinación de mayúsculas y minúsculas, estilo "camel case". Por ejemplo, para acceder a la fecha en que se creó un producto, introduce {{ product.createdAt }}. Si usas la sintaxis de Liquid en un tema de Shopify, introduciríamos {{ product.created_at }}.
Etiquetas condicionales y de iteración de Liquid
Quizás deseas usar etiquetas Liquid para hacer cosas como:
Escribir declaraciones condicionales, como determinar si el total de un pedido es mayor que $100
Iterar a través de una lista de objetos, como generar datos para cada línea de artículo en un pedido
Puedes usar etiquetas de Liquid para escribir estas declaraciones e iterar objetos.
Por ejemplo, en el siguiente Liquid se muestra el número de pedido si el total es mayor que $100:
También puedes usar un bucle "for" para iterar en una lista de objetos, como líneas de artículo para un pedido. Por ejemplo, en el siguiente Liquid se muestra el nombre de cada línea de artículo de un pedido:
Flow admite las siguientes etiquetas condicionales (o de flujo de control) de Liquid:
Los filtros te permiten transformar datos en Liquid. Flow es compatible con todos los filtros de código abierto de Liquid.
Por ejemplo, el siguiente Liquid elimina un prefijo del nombre del pedido y genera lo que queda: {{ order.name | remove: "Order-" }}
Además de los filtros estándar de Liquid, Flow proporciona filtros de fecha para obtener una fecha relativa a otra fecha para admitir el activador de hora programada y activar funciones de obtención de datos. Estos filtros son: date_minus y date_plus.
Para devolver una fecha un día después:{{ "now" | date_plus: "1 day" }}
Para devolver una fecha un día en el pasado:{{ "now" | date_minus: "1 day" }}
Estos filtros aceptan second, minute, day, week, monthy year como la unidad de duración, tanto singular (como second) y plural (como seconds). Además de este formato, también puedes suministrar un número entero (número de segundos). Por ejemplo:{{ "now" | date_minus: 3600 }}
También puedes suministrar una cadena de duración ISO8601, en la que P1Y2D significa 1 año y 2 días:{{ "now" | date_minus: "P1Y2D" }}
Consideraciones para usar variables de Liquid en filtros
Flow no admite la notación de puntos que está disponible para algunos filtros. Por ejemplo, Flow admite {{ order.lineItems | size }} pero no {{ order.lineItems.size }}.
Flow no admite la notación de puntos para metacampos. Por ejemplo, no puedes usar {{ order.metafields.custom.hold_note }}. En su lugar, debes hacer un bucle sobre los metacampos como se describe en los ejemplos.
Flow no admite el uso de menús para acceder a los artículos de una lista. Por ejemplo, no puedes usar {{ order.lineItems[0].title }}. En su lugar, debes hacer un bucle sobre las líneas de artículos como se describe en los ejemplos.
Ejemplos
Para tener una mejor idea de cómo usar las variables de Liquid, ten en cuenta los siguientes ejemplos.
Extraer URL para recursos
Es preciso extraer las URL del cliente, el pedido y el producto que están involucrados en un flujo de trabajo.
Convertir una lista de etiquetas en un metacampo
Deseas convertir un conjunto de etiquetas en un metacampo que es una lista de campos de texto de una sola línea. Creas un flujo de trabajo con el activador Producto agregado a la tienda y usas la acción Actualizar metacampo del producto. En la sección Valor de la acción Actualizar metacampo del producto, agregas el siguiente código de Liquid. Este ejemplo supone que solo debes establecer los valores una vez cuando se crea el producto y que este tiene dos etiquetas relevantes: color:red y color:orange.
Ejemplo de Liquid para establecer la lista de un campo de texto de una sola línea.
Escribir un mensaje de correo electrónico dinámico para un pedido
Deseas crear un flujo de trabajo para enviar un correo electrónico a un empleado cuando un cliente gaste más de $500 en un pedido. Creas un flujo de trabajo con el activador Pedido creado, estableces una condición que sea verdadera si el total del pedido es superior a $500 y usas la acción Enviar correo electrónico interno. En la sección Mensaje de la acción Enviar correo electrónico interno, usas las siguientes variables.
Ejemplo del uso de variables para proporcionar detalles del cliente
Entrada
Salida
Envía una nota de agradecimiento personal a {{ order.customer.firstName }} {{ order.customer.lastName }}({{ order.customer.email }}) por realizar un pedido de $ {{ order.totalPriceSet.shopMoney.amount }}.
Envía una nota de agradecimiento personal a Jeanne Dupont (jeanne@example.com) por realizar un pedido de $ 763,42.
Escribir un mensaje de correo electrónico dinámico para un producto con pocas existencias
Decides que es necesario informar a un empleado cuando el inventario de productos esté bajando y sea necesario realizar un pedido para ampliar las existencias. Creas un flujo de trabajo que se inicia con el activador Cantidad de inventario cambiada y estableces una condición que sea verdadera si la cantidad de inventario anterior es inferior o igual a 10. En la sección Mensaje de la acción Enviar correo electrónico interno, usas las siguientes variables.
Ejemplo del uso de variables para proporcionar detalles del artículo.
Entrada
Salida
Solicita de nuevo {{ product.title }}. Envía a owner@store.com un correo electrónico para verificar que ha recibido la orden de compra.
Solicita de nuevo los leggings de cintura alta negros. Envía a owner@example.com un correo electrónico para verificar que ha recibido la orden de compra.
Escribir un mensaje de correo electrónico dinámico para informar a los empleados sobre un pedido fraudulento
Deseas cancelar los pedidos que tengan un nivel de riesgo alto, pero prefieres que tus empleados cancelen el pedido manualmente. Creas un flujo de trabajo que se inicia con el activador Pedido creado y estableces una condición que sea verdadera si el nivel de riesgo del pedido es elevado. En la sección Mensaje de la acción Enviar correo electrónico interno, usas las siguientes variables.
Ejemplo del uso de variables para proporcionar información sobre un pedido fraudulento
Entrada
Salida
Nuestra tienda Shopify ha recibido un pedido con un alto riesgo de fraude. Nos gustaría cancelar este pedido de inmediato, antes de enviarlo a producción:
Nuestra tienda Shopify ha recibido un pedido con un alto riesgo de fraude. Nos gustaría cancelar este pedido de inmediato, antes de enviarlo a producción:
#1001 Dupont, Jeanne jeanne@example.com
Confirma el nuevo estado del pedido. ¡Gracias!
Extraer las líneas de artículo de un pedido usando un bucle for
Cuando se recibe un pedido, puede ser útil enviar un mensaje que contenga los productos solicitados. Puedes hacer esto usando for loop, que ejecuta repetidamente un bloque de código. Los campos de texto que admiten variables también admiten bucles "for" y el objeto "forloop".
Por ejemplo, deseas crear un flujo de trabajo que devuelva una lista de todos los SKU y cantidades de un pedido. En la sección Mensaje de la acción Enviar correo electrónico interno, usas las siguientes variables.
Ejemplo de uso de bucle for para proporcionar información de pedido
Entrada
Salida
Resumen del pedido: {% for a in order.lineItems %} SKU: {{a.sku}} ({{a.quantity}}), {% endfor %}
Resumen del pedido: 8987097979 (50) 8877778887 (3) 888998898B (1)
Extraer las líneas de artículo de un pedido usando un bucle for con información adicional
Decides agregar más información al correo electrónico, incluyendo el nombre del producto, los SKU, el precio por artículo y la información de envío del cliente. En la sección Mensaje de la acción Enviar correo electrónico interno, usas las siguientes variables.
Ejemplo de uso de bucle for para proporcionar información de pedidos más extensa
Entrada
Salida
Resumen del pedido: {% for a in order.lineItems %} Producto: {{a.title}} SKU: {{a.sku}} Precio (por unidad): $ {{a.originalUnitPriceSet.shopMoney.amount}} Cantidad: {{a.quantity}} {% endfor %}
Extraer algunas líneas de artículos mediante la combinación de un bucle for y un enunciado if
Debes hacer seguimiento de los artículos vendidos que suministra un proveedor específico. En la sección Mensaje de la acción Enviar correo electrónico interno, usas las variables siguientes e incluyes una instrucción if en for loop.
Ejemplo de uso del bucle for e instrucción if para proporcionar información de pedidos a proveedores específicos
Entrada
Salida
Producto de Acme vendido: {% for x in order.lineItems %} {% if x.vendor == 'acme-vendor' %} Nombre del producto: {{x.title}} SKU: {{x.sku}} {% endif %} {% endfor %}
Producto de Acme vendido: Nombre del producto: leggings de cintura alta negros SKU: 8987097979
Objetos de datos complejos en Shopify Flow
Flow te permite acceder a casi cualquier dato que esté en la Admin API de GraphQL, incluidos los objetos de datos complejos, como listas y objetos. Sin embargo, hay ciertas limitaciones sobre lo que puedes hacer con estos objetos. La sección describe estas limitaciones y proporciona ejemplos de cómo trabajar con ellas.
En lugar de llamar a listas y objetos directamente, debes hacer un bucle en la lista e incluir solo los campos que desees.
Por ejemplo, en lugar de llamar a {{ order.lineItems }} directamente, usa el siguiente formato para llamar a campos específicos. Estos ejemplos incluyen todos los campos que se incluirían al llamar directamente a la lista u objeto. Copia y pega los campos que necesites.
Textjson
¿No encuentras las respuestas que estás buscando? Estamos aquí para ayudarte.