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は、複数通貨のチェックアウトに完全に対応しています。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コンテンツ全体を表示する

checkoutオブジェクトにどのような値が存在するかを確認する必要がある場合は、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 -%}

「metafield trigger」の値を表示する

以下のコードには、トリガーの値が含まれます。

{{ line_item.trigger }}

項目の定期的な合計金額を表示する

1回限りのディスカウントが適用される前の、定期購入項目の定期的な合計金額を表示するには、 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 -%}