Поддерживаемый синтаксис Liquid для блоков в Checkout Blocks

Checkout Blocks поддерживает подмножество синтаксиса Liquid, который можно использовать в нескольких доступных типах блоков для персонализации настроек оформления заказа на основе переменных.

Поддерживаемые переменные Liquid

В следующих списках перечислены все поддерживаемые переменные Liquid, которые можно использовать в блоке «Динамический контент» или «Контент позиции». Некоторые переменные доступны только на определённых страницах оформления заказа, а другие могут быть включены только в определённые типы блоков.

Подробные сведения о каждой переменной см. в документации Shopify по объектам Liquid.

Переменные Liquid для оформления заказа

Для оформления заказа поддерживаются следующие переменные Liquid:

  • checkout.attributes
  • checkout.currency
  • checkout.has_selling_plan
  • checkout.item_count
  • checkout.line_items_subtotal_price
  • checkout.locale
  • checkout.market
  • checkout.metafields
  • checkout.note
  • checkout.requires_shipping
  • checkout.shipping_price
  • checkout.tax_price
  • checkout.total_price

Переменные Liquid для клиентов

Для клиентов поддерживаются следующие переменные Liquid:

  • customer.id
  • customer.b2b
  • customer.full_name
  • customer.first_name
  • customer.last_name
  • customer.email
  • customer.phone

Переменные Liquid для локализации

Для рынков поддерживаются следующие переменные Liquid:

  • localization.market
    • localization.market.id
    • localization.market.handle

Переменные Liquid для заказов

Для заказов поддерживаются следующие переменные Liquid:

  • checkout.order.id
  • checkout.order.legacyResourceId
  • checkout.order.name

Переменные Liquid для магазина

Для информации о магазине поддерживаются следующие переменные Liquid:

  • shop.name
  • shop.url

Переменные Liquid для позиций

Переменные позиции доступны только в блоке контента для позиции.

Для позиций поддерживаются следующие переменные Liquid:

  • line_item.attributes
  • line_item.gift_card
  • line_item.has_selling_plan
  • line_item.line_price
  • line_item.line_level_discount_allocations
  • line_item.line_level_total_discount
  • line_item.options_with_values
  • line_item.price
  • line_item.product
    • line_item.product.is_gift_card
    • line_item.product.product_type
    • line_item.product.requires_selling_plan
    • line_item.product.tags
    • line_item.product.vendor
  • line_item.quantity
  • line_item.requires_shipping
  • line_item.sku
  • line_item.subtitle
  • line_item.title
  • line_item.trigger
  • line_item.type
  • line_item.variant
    • line_item.variant.available_for_sale
    • line_item.variant.barcode
    • line_item.variant.compare_at_price
    • line_item.variant.id
    • line_item.variant.price
      • line_item.variant.price.amount
      • line_item.variant.price.currency_code
    • line_item.variant.requires_shipping
    • line_item.variant.sku
    • line_item.variant.title
    • line_item.variant.unit_price
    • line_item.variant.weight
    • line_item.variant.weight_unit
  • line_item.variant_id
  • line_item.vendor

Примеры фрагментов с использованием Liquid

Ниже приведены несколько примеров фрагментов Liquid, поддерживаемых в Checkout Blocks.

Проверка на B2B

Вы можете отображать контент, только если оформление заказа относится к B2B.

{%- if customer.b2b -%}
B2B
{%- endif -%}

Парсинг JSON

Вы можете выполнять парсинг значений JSON, например из атрибутов позиции (свойств) или метаполей.

{%- assign complex_json = checkout.metafields.checkoutblocks.complex | json -%}

Форматирование валюты

Checkout Blocks полностью поддерживает мультивалютное оформление заказа. Просто передайте фильтр money, чтобы выполнить парсинг и форматирование суммы в соответствии с форматом активной валюты. Это не означает автоматическую конвертацию валюты.

{{ checkout.total_price | money }}

Примечание к заказу

Вы можете отобразить значение примечания к заказу, например то, что было введено в корзине.

{{ checkout.note }}

Атрибуты корзины

Чтобы отобразить значение определённого атрибута корзины, например даты доставки, можно использовать этот фрагмент. Обязательно замените ключ Delivery date на собственный.

{% assign delivery_date = '' %}
{% for attribute in checkout.attributes %}
  {% if attribute.key == 'Delivery date' %}
    {% assign delivery_date = attribute.value %}
  {% endif %}
{% endfor %}

Delivery Date: {{ delivery_date }}

Отображение всего содержимого Liquid для оформления заказа

Если вам нужно проверить, какие значения существуют в объекте оформления заказа, вы можете использовать фильтр JSON для их сериализации. Эту возможность следует использовать только для отладки.

{{ checkout | json }}

Метаполя оформления заказа

Вы можете отображать пользовательские поля, сохранённые при оформлении заказа, на страницах благодарности и статуса заказа, обращаясь к метаполям оформления заказа. Подробнее о доступе к метаполям.

Замените your-namespace на ваше пространство имён, а your-custom-field-key — на ключ вашего пользовательского поля, как определено в блоке:

{{ checkout.metafields.your-namespace.your-custom-field-key.value }}

Форматирование даты

В этом примере мы создаём дату на 4 дня вперёд (432 000 секунд), а затем форматируем её.

Можно вернуть дату в формате «02/24/2025»:

{% assign future_date = "now" | date: "%s" | plus: 432000 %}
{{ future_date | date: "%m/%d/%Y" }}

Кроме того, можно отформатировать дату в виде «Feb 24, 2025»:

{% assign future_date = "now" | date: "%s" | plus: 432000 %}
{{ future_date | date: "%b %d, %Y" }}

Подробнее о форматировании дат в Liquid.

Настройки контента для позиции

Ниже приведены несколько примеров фрагментов Liquid, которые можно использовать в блоках контента для позиции.

Условное отображение цены для сравнения

С помощью этого фрагмента вы можете настроить условное отображение цены для сравнения для позиции.

{%- if line_item.variant.compare_at_price.amount -%}
On sale. Originally {{ line_item.variant.compare_at_price.amount | times: line_item.quantity | money }}
{%- endif -%}

Отображение контента на основе тегов товара

Вы можете настроить условное отображение контента для позиции на основе тегов товара, которые чувствительны к регистру.

{%- if line_item.product.tags contains 'final-sale' -%}
Final sale
{%- endif -%}

Атрибуты (свойства) позиции

Вы можете перебирать атрибуты позиции, также известные как свойства позиции, и отображать такую информацию, как предполагаемые сроки доставки, предварительные заказы и многое другое.

{%- assign first_line_attribute = line_item.attributes | first  -%}
{%- assign first_attribute_value =  first_line_attribute.value | json_parse  -%}
{%- assign message =  first_attribute_value.message -%}
{%- if message -%}
  {{ message }}
{%- endif -%}

Отображение значения «триггера метаполя»

Следующий код будет содержать значение триггера.

{{ line_item.trigger }}

Отображение периодической итоговой суммы для позиции

Если вам нужно показать периодическую итоговую сумму для позиции с подпиской до применения разовых скидок, вы можете использовать значение line_level_total_discount .

{%- if line_item.line_level_total_discount > 0 and line_item.has_selling_plan -%}
Recurring total: {{ line_item.line_price | plus: line_item.line_level_total_discount | money }}
{%- endif -%}