Выражения сравнения

При сравнении доступны следующие операторы:

== равенство
!= неравенство
<> неравенство
< меньше
> больше
>= больше либо равно
<= меньше либо равно
contains строка слева содержит строку справа
and логическое и
or логическое и

Для вызова фильтров при сравнении надо использовать ".", а не "|"'. Так можно использовать только фильтры с одним аргументом.

 {% if array.size > 10 %}   - правильно
 {% if array | size > 10 %} - неправильно

Обратите внимание на отсутствие оператора отрицания; если вам нужно отрицание, надо либо преобразовать условие, либо использовать else, а основную ветку оставить пустой.

  {% if product.title contains 'asus' %}
...

  {% else %}

  ...

  {% end %}

При сравнении объектов разного типа, например, чисел со строками, всегда возвращается false.

 

  {% if products.size == 0 %}    - правильно

  {% if products.size == '0'  %} - неправильно

При обращении к несуществующим методам тоже возвращается false.

  {% if products.size == 0 %}    - правильно

  {% if products.empty %}        - не вернет ошибку, но будет всегда возвращать false 

Список значений, которые при приведении к Boolean становятся false в языке Liquid, совпадает с языком ruby, который сильно отличается от аналогичного списка в PHP.

False
false
nil


True - все остальное
“”
0
“0”
“false”