Operadores
Liquid admite muchos operadores que se pueden utilizar en tus sentencias condicionales. Esta página cubre los operadores que admite Liquid y proporciona casos de uso de cómo puedes utilizarlos en tus mensajes.
Esta tabla enumera los operadores compatibles. Ten en cuenta que los paréntesis son caracteres no válidos en Liquid e impiden que tus etiquetas funcionen.
| Sintaxis | Descripción del operador |
|---|---|
| == | equivale a |
| != | no equivale a |
| > | superior a |
| < | menos de |
| >= | mayor o igual que |
| <= | inferior o igual a |
| o | condición A o condición B |
| y | condición A y condición B |
| contiene | comprueba si una cadena o matriz de cadenas contiene una cadena |
Los operadores se pueden utilizar en sentencias condicionales (if, elsif, unless), pero no enassignsentencias ,forbucles, sentenciascasewhen / ni corchetes de acceso a matrices. Para obtener información detallada, consulta Dónde utilizar operadores y filtros para filtrar.
Agrupación de condiciones sin paréntesis
Liquid no admite paréntesis para agrupar expresiones. Para evaluar lógicas booleanas complejas como (a and b) or c, utiliza sentencias ifanidadas o variables intermedias.
Por ejemplo, para comprobar si un valor cumple una condición compuesta, asigna una variable intermedia:
1
2
3
4
5
6
7
8
9
10
{% assign qualifies = false %}
{% if points > 100 %}
{% assign qualifies = true %}
{% elsif points == 100 and member_level == 'gold' %}
{% assign qualifies = true %}
{% endif %}
{% if qualifies %}
You qualify for a reward!
{% endif %}
Tutoriales
Veamos algunos tutoriales para aprender a utilizar estos operadores en tus campañas de marketing:
Elige un mensaje con un atributo personalizado entero.
Enviemos notificaciones push con descuentos promocionales personalizados a los usuarios que hayan o no realizado compras. La notificación push utilizará un atributo personalizado entero llamado total_spend para comprobar el gasto total de un usuario.
- Escribe una sentencia condicional utilizando el operador mayor que (
>) para comprobar si el gasto total de un usuario es mayor que0, lo que indica que ha realizado una compra. A continuación, crea un mensaje para enviarlo a esos usuarios.
1
2
{% if {{custom_attribute.${total_spend}}} >0 %}
Surprise! We added a 15% discount code to your account that automatically applies to your next order.
2. Añade la etiqueta {% else %} para capturar a los usuarios cuyo gasto total sea igual a 0 o no exista. A continuación, crea un mensaje para enviarlo a esos usuarios.
1
2
{% else %}
Need a sign to update your wardrobe? We added a 15% discount code to your account that will automatically apply to your first order.
3. Cierra la lógica condicional con la etiqueta {% endif %}.
1
{% endif %}

Full Liquid code
1
2
3
4
5
{% if {{custom_attribute.${total_spend}}} >0 %}
Surprise! We added a 15% discount code to your account that automatically applies to your next order.
{% else %}
Need a sign to update your wardrobe? We added a 15% discount code to your account that will automatically apply to your first order.
{% endif %}
Ahora, si el atributo personalizado «Gasto total» de un usuario es superior a 0, recibirás el mensaje:
1
Surprise! We added a 15% discount code to your account that automatically applies to your next order.
Si el atributo personalizado “Gasto total” de un usuario no existe o es igual a 0, recibirá el siguiente mensaje:
1
Need a sign to update your wardrobe? We added a 15% discount code to your account that will automatically apply to your first order.
Elige un mensaje con un atributo personalizado de cadena.
Enviemos notificaciones push a los usuarios y personalicemos el mensaje en función del juego más reciente de cada usuario. Esto utilizará un atributo personalizado de cadena llamado recent_game para comprobar a qué juego ha jugado por última vez un usuario.
- Escribe una sentencia condicional utilizando el operador igual (
==) para comprobar si el juego más reciente de un usuario es Awkward Dinner Party. A continuación, crea un mensaje para enviarlo a esos usuarios.
1
2
{% if {{custom_attribute.${recent_game}}} == 'Awkward Dinner Party' %}
You are formally invited to our next dinner party. Log on next week for another round of delectable dishes and curious conversations.
2. Utiliza la etiqueta elsif con el operador igual (==) para comprobar si el juego más reciente del usuario es Proxy War 3: Guerra de sed. A continuación, crea un mensaje para enviarlo a esos usuarios.
1
2
{% elsif {{custom_attribute.${recent_game}}} == 'Proxy War 3: War of Thirst' %}
Your fleet awaits your next orders. Log on when you're ready to rejoin the war for hydration.
3. Utiliza laelsifetiqueta con los operadores «no es igual a» (!=) y «y» (and) para comprobar si el usuario tiene un juego reciente (es decir, si el valor no está en blanco) y si el juego no es Awkward Dinner Party o Proxy War 3: Guerra de sed. A continuación, crea un mensaje para enviarlo a esos usuarios.
1
2
{% elsif {{custom_attribute.${recent_game}}} != blank and {{custom_attribute.${recent_game}}} != 'Awkward Dinner Party' and {{custom_attribute.${recent_game}}} != 'Proxy War 3: War of Thirst' %}
Limited Time Deal! Get 15% off our best-selling classics!
4. Añade la etiqueta {% else %} para capturar a los usuarios que no tienen un juego reciente. A continuación, crea un mensaje para enviarlo a esos usuarios.
1
2
{% else %}
Hey! I've got a deal for you. Buy 2 of our newest releases and get 10% off!
5. Cierra la lógica condicional con la etiqueta {% endif %}.
1
{% endif %}
Full Liquid code
1
2
3
4
5
6
7
8
9
{% if {{custom_attribute.${recent_game}}} == 'Awkward Dinner Party' %}
You are formally invited to our next dinner party. Log on next week for another round of delectable dishes and curious conversations.
{% elsif {{custom_attribute.${recent_game}}} == 'Proxy War 3: War of Thirst' %}
Your fleet awaits your next orders. Log on when you're ready to rejoin the war for hydration.
{% elsif {{custom_attribute.${recent_game}}} != blank and {{custom_attribute.${recent_game}}} != 'Awkward Dinner Party' and {{custom_attribute.${recent_game}}} != 'Proxy War 3: War of Thirst' %}
Limited Time Deal! Get 15% off our best-selling classics!
{% else %}
Hey! I've got a deal for you. Buy 2 of our newest releases and get 10% off!
{% endif %}

Ahora, si un usuario ha jugado por última vez a Awkward Dinner Party, recibirá este mensaje:
1
You are formally invited to our next dinner party. Log on next week for another round of delectable dishes and curious conversations.
Si el juego más reciente de un usuario es Proxy War 3: Guerra de Sed, recibirán este mensaje:
1
Your fleet awaits your next orders. Log on when you're ready to rejoin the war for hydration.
Si un usuario ha jugado recientemente a un juego que no fuera Awkward Dinner Party o Proxy War 3: Guerra de sed, recibirán este mensaje:
1
Limited Time Deal! Get 15% off our best-selling classics!
Si un usuario no ha jugado a ningún juego o ese atributo personalizado no existe en su perfil, recibirá este mensaje:
1
Hey! I've got a deal for you. Buy 2 of our newest releases and get 10% off!
Mensaje de cancelación basado en la ubicación
Puedes abortar un mensaje basándote en casi cualquier cosa. Abortemos un mensaje si un usuario no reside en una zona especificada, ya que podría no cumplir los requisitos para la promoción, el espectáculo o la entrega.
- Escribe una sentencia condicional utilizando el operador igual (
==) para comprobar si la zona horaria del usuario esAmerica/Los_Angeles, y luego crea un mensaje para enviar a esos usuarios.
1
2
{% if {{${time_zone}}} == 'America/Los_Angeles' %}
Stream now!
2. Para evitar enviar mensajes a usuarios fuera de la zona horaria America/Los_Angeles, envuelve las etiquetas {% else %} y {% endif %} alrededor de una etiqueta {% abort_message () %}.
1
2
3
{% else %}
{% abort_message () %}
{% endif %}
Full Liquid code
1
2
3
4
5
{% if {{${time_zone}}} =='America/Los_Angeles' %}
Stream now!
{% else %}
{% abort_message () %}
{% endif %}

También puede abortar mensajes basados en Contenido conectado.
Solución de problemas
La vista previa puede forzar incorrectamente los tipos de propiedades.
Al realizar la vista previa de un mensaje en el panel, la mayoría de las variables (como los atributos personalizados) se convierten al tipo correcto. Sin embargo, algunas variables no tienen un tipo definido que la vista previa pueda buscar:
api_trigger_propertiescanvas_entry_propertiescontext
Para estas propiedades, la vista previa intenta deducir el tipo a partir del valor. Esto significa que un valor que pretendes que sea una cadena podría interpretarse erróneamente como un número. Por ejemplo, si el valor de una propiedad es una cadena "3", la vista previa puede convertirlo en un entero 3, lo que puede provocar un comportamiento inesperado en operaciones con cadenas comocontains o split.
Si observas resultados de vista previa inesperados al utilizar estos tipos de propiedades, ten en cuenta que la inferencia de tipos de la vista previa puede no coincidir con lo que ocurre en el momento del envío. En el momento del envío, se conservan los tipos de datos reales del evento que desencadena o de la llamada a la API.
Para forzar un tipo específico en la vista previa, puedes convertir explícitamente el valor:
1
2
3
4
5
{% comment %} Force a value to be treated as a number {% endcomment %}
{% assign orders = {{canvas_entry_properties.${number_of_orders}}} | plus: 0 %}
{% comment %} Force a value to be treated as a string {% endcomment %}
{% assign code = {{api_trigger_properties.${promo_code}}} | append: "" %}
Editar esta página en GitHub