Checkout Blocks 块支持的 Liquid 语法
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 的代码片段示例
以下是 Checkout Blocks 支持的一些 Liquid 代码片段示例。
检查结账是否为 B2B
只有当结账为 B2B 时才显示内容。
{%- if customer.b2b -%}
B2B
{%- endif -%}
解析 JSON
您可以解析 JSON 值,例如来自订单项目属性(属性)或元字段。
{%- assign complex_json = checkout.metafields.checkoutblocks.complex | json -%}
设置货币格式
Checkout Blocks 完全支持多币种结账。只需传递货币筛选条件,解析并使用有效货币格式设置货币格式。这不会自动转换货币。
{{ checkout.total_price | money }}
购物车备注
您可以显示购物车备注的值,例如购物车中输入的值。
{{ checkout.note }}
购物车属性
若要显示特定购物车属性的值(例如配送日期),您可以使用此代码片段。请务必更改配送日期键,使其与您的日期相符。
{% 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 天后(432000 秒)的日期,然后进行格式设置。
您可以返回格式为“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 -%}