Cú pháp Liquid được hỗ trợ cho khối trong Checkout Blocks

Checkout Blocks hỗ trợ một số cú pháp Liquid mà bạn có thể sử dụng trong nhiều loại khối có sẵn để cá nhân hóa tùy chỉnh trang thanh toán dựa trên các biến.

Các biến Liquid được hỗ trợ

Các danh sách sau đây bao gồm mọi biến Liquid được hỗ trợ có thể dùng trong khối Nội dung động hoặc khối Nội dung mục hàng. Một số biến chỉ có thể truy cập được trên các trang thanh toán nhất định và một số biến khác chỉ có thể được đưa vào các loại khối cụ thể.

Tham khảo tài liệu về đối tượng Liquid của Shopify để biết thông tin chi tiết về từng biến.

Biến Liquid trên trang thanh toán

Các biến Liquid sau đây được hỗ trợ cho trang thanh toán:

  • 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

Biến Liquid về khách hàng

Các biến Liquid sau đây được hỗ trợ cho khách hàng:

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

Biến Liquid về bản địa hóa

Các biến Liquid sau đây được hỗ trợ cho thị trường:

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

Biến Liquid về đơn hàng

Các biến Liquid sau đây được hỗ trợ cho đơn hàng:

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

Biến Liquid về cửa hàng

Các biến Liquid sau đây được hỗ trợ cho thông tin cửa hàng:

  • shop.name
  • shop.url

Biến Liquid về mục hàng

Biến mục hàng chỉ có thể truy cập được trong khối Nội dung mục hàng.

Các biến Liquid sau đây được hỗ trợ cho mục hàng:

  • 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

Ví dụ về đoạn mã dùng Liquid

Sau đây là một số ví dụ về đoạn mã Liquid được Checkout Blocks hỗ trợ.

Kiểm tra xem trang thanh toán có phải là B2B không

Bạn chỉ có thể hiển thị nội dung khi trang thanh toán là B2B.

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

Phân tích cú pháp JSON

Bạn có thể phân tích cú pháp giá trị JSON, chẳng hạn như từ các thuộc tính mục hàng hoặc trường siêu dữ liệu.

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

Định dạng tiền tệ

Checkout Blocks hỗ trợ toàn diện tính năng thanh toán đa tiền tệ. Bạn chỉ cần dùng bộ lọc tiền để phân tích cú pháp và định dạng tiền theo định dạng tiền tệ đang dùng. Thao tác này sẽ không tự động chuyển đổi tiền tệ.

{{ checkout.total_price | money }}

Ghi chú giỏ hàng

Bạn có thể hiển thị giá trị của ghi chú giỏ hàng, chẳng hạn như nội dung đã nhập vào giỏ hàng.

{{ checkout.note }}

Thuộc tính giỏ hàng

Để hiển thị giá trị của thuộc tính giỏ hàng cụ thể, chẳng hạn như ngày giao hàng, bạn có thể dùng đoạn mã này. Nhớ đổi khóa Delivery date cho khớp với khóa của bạn.

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

Delivery Date: {{ delivery_date }}

Hiển thị toàn bộ nội dung Liquid của trang thanh toán

Nếu cần xem lại các giá trị có trên đối tượng thanh toán, bạn có thể dùng bộ lọc JSON để tuần tự hóa. Thao tác này chỉ nên dùng cho mục đích gỡ lỗi.

{{ checkout | json }}

Trường siêu dữ liệu trang thanh toán

Bạn có thể hiển thị trường tùy chỉnh đã lưu vào trang thanh toán trên trang cảm ơn và trang trạng thái đơn hàng bằng cách tham chiếu trường siêu dữ liệu trang thanh toán. Tìm hiểu thêm về cách truy cập trường siêu dữ liệu.

Hãy thay your-namespace bằng không gian tên của bạn và your-custom-field-key bằng khóa trường tùy chỉnh như được xác định trong khối:

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

Định dạng ngày

Trong ví dụ này, chúng tôi tạo một ngày sau đó 4 ngày (432.000 giây) rồi định dạng ngày đó.

Bạn có thể trả về ngày được định dạng là "02/24/2025":

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

Hoặc bạn có thể định dạng ngày là "Feb 24, 2025":

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

Tìm hiểu thêm về cách định dạng ngày trong Liquid.

Tùy chỉnh nội dung mục hàng

Sau đây là một số ví dụ về đoạn mã Liquid bạn có thể dùng trên khối Nội dung mục hàng.

Hiển thị giá so sánh theo điều kiện

Bạn có thể dùng đoạn mã này để hiển thị giá so sánh của mục hàng theo điều kiện.

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

Hiển thị nội dung dựa trên thẻ sản phẩm

Bạn có thể hiển thị nội dung mục hàng theo điều kiện dựa trên thẻ sản phẩm (phân biệt chữ hoa chữ thường).

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

Thuộc tính mục hàng

Bạn có thể lặp qua thuộc tính mục hàng (còn gọi là đặc tính mục hàng) để hiển thị thông tin như ước tính thời gian vận chuyển, đơn hàng đặt trước, v.v.

{%- 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 -%}

Hiển thị giá trị "yếu tố kích hoạt trường siêu dữ liệu"

Đoạn mã sau sẽ chứa giá trị của yếu tố kích hoạt.

{{ line_item.trigger }}

Hiển thị tổng định kỳ cho mục hàng

Nếu cần hiển thị tổng định kỳ cho mục hàng đăng ký trước khi áp dụng khoản chiết khấu một lần, bạn có thể dùng giá trị 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 -%}