商品情報にスキップ
1 1
公開日:2026.05.06

【Horizon】バリエーションごとに設定したコメント(HTMLタグもOK)を商品ページに表示するブロック

【Horizon】バリエーションごとに設定したコメント(HTMLタグもOK)を商品ページに表示するブロック

用途

  • 商品情報管理・編集
詳細を表示する

Horizonテーマで、バリエーションごとに任意のメタフィールド(HTMLタグを含む自由なテキスト)を商品ページに表示するテーマブロックを新規追加する設定例です。サイズごとの寸法・着用感・素材説明など、バリエーション切替に連動した補足情報を表示できます。

バリエーション切替で異なるコメントが表示される様子

仕組み

Horizon純正の variant-picker.js はバリエーション切替時にページ全体を fetch しますが、 morph で書き換える対象は <variant-picker> 自身だけで、同じセクション内の他ブロックは自動再描画されません。そのため、バリエーション連動の表示を実現するブロックは独自に切替を検知してDOMを差し替える必要があります。

本ブロックは以下の構成になっています。

◆初期表示
closest.product.selected_or_first_available_variant.metafields.custom.variant_comment.value を最初のレンダリング時に出力。Horizon純正の 'spacing-padding''typography-style' snippet を経由するため、純正の「説明」ブロックと同じ typography/余白UIが利用できます。

◆動的更新
・全variantのコメントとオプション値を JSON で DOM に埋め込み
・ラジオの change イベントを capture phase で先取りし、現在の選択オプション値から対応variantを特定して innerHTML を即時差し替え
・Horizon純正の1.2秒のページ全体fetchを待たないため体感が速い
・純正の variant:update イベントも reconciliation 経路として listen(ラジオ以外で variant が変わった場合の保険)

追加・修正するファイル

ファイルパス 操作
blocks/variant-comment.liquid 新規作成(全体)
locales/ja.schema.json names セクションに product_variant_comment を追加
locales/en.default.schema.json names セクションに product_variant_comment を追加

設定手順 ① バリアントメタフィールドの定義を追加し、対象商品のバリエーション詳細でメタフィールドを編集

管理画面 → 設定 → カスタムデータ → バリアント → 定義を追加 → 名前「バリアントコメント」、namespace.key = custom.variant_comment、タイプ = 複数行のテキスト。各バリエーションの詳細画面下部のメタフィールド欄からコメント文を入力(HTMLタグ可)。

バリアントメタフィールドの定義と編集画面

設定手順 ② ブロックファイルを新規作成

blocks フォルダ配下に variant-comment.liquid ファイルを新規作成します。VS Code 等のエディタで blocks フォルダを右クリックし、「New File...」を選んで variant-comment.liquid という名前で作成してください。

VS Code で blocks フォルダを右クリックして新規ファイルを作成する手順

設定手順 ③ サンプルコードを貼り付け

本記事下部のサンプルコードを blocks/variant-comment.liquid の中にそのまま貼り付け、保存します。あわせて locales/ja.schema.jsonlocales/en.default.schema.jsonnames セクションにブロック表示名のローカライズキー product_variant_comment を追加してください。

blocks/variant-comment.liquid 全体

設定手順 ④ 商品テンプレートにブロックを追加

テーマエディタで商品ページのテンプレートを開き、「商品情報」>「詳細」ブロック内の「ブロックを追加」から、カテゴリ「商品」配下にある「バリエーションコメント」を選択して配置します。配置後は右パネルから typography・余白などを純正テキスト系ブロックと同じUIで調整できます。

テーマエディタで商品詳細ブロック配下にバリエーションコメントブロックを追加

注意事項

本ブロックは純正ファイル blocks/_product-details.liquid 等のスキーマには手を入れず、@theme ブロックスロット経由で配置されるテーマブロックとして実装しています。ベンダーファイルへの直接的な書き換えはありません。

一方、ブロック名のローカライズキー t:names.product_variant_commentlocales/ja.schema.jsonlocales/en.default.schema.jsonnames セクションに追加する必要があります。テーマアップデートで該当キーが消えることはありませんが、複数言語ストアでは他のロケールファイルにも同様にキーを追加してください。

関連: 同等の趣旨を Dawn テーマで実装した TIPS → Shopifyのテーマ「Dawn」でバリアントごとに設定したコメント(HTMLタグもOK)を表示する方法

ご購入(すべて¥0です)いただくと、サンプルコードをご覧いただけるようになります。

すでにご購入済みの方はこちらからログインしてください。

サンプルコード

動作検証済テーマ:Horizon 3.5.1

blocks/variant-comment.liquid(新規作成)