# 「バリエーション（親）」にメタフィールド（カスタムデータ）を設定したい。

**URL:** <https://community.shopify.com/t/topic/278496>\
**Category:** 技術的なQ＆A\
**Tags:** html\
**Created:** [December 19, 2023, 8:56am UTC](https://community.shopify.com/t/topic/278496 "2023-12-19T08:56:18Z")\
**Posts on this page:** 6\
**Page:** 1

## AI-generated summary

商品のバリエーション設定において、個別の選択肢（S、M、Lなど）ではなく、バリエーショングループ全体（「サイズ」「カラー」など）にメタフィールドを追加したいという相談。

**具体的な要望：**
- 各バリエーション（S、M、L）ではなく、親要素の「サイズ」自体に注釈を付けたい
- 例：「サイズ」→「※サイズによって素材が異なる場合があります」
- 「カラー」→「※カラーによって商品重量が異なります」

**提案された解決策：**
- バリエーションへの直接的なメタフィールド紐付けは困難
- Liquidテンプレートの条件分岐で代替可能
- Dawnテーマの場合、`main-product.liquid`内の`{%- for option in product.options_with_values -%}`に条件分岐コードを挿入することで実装可能

**結果：**
提案されたコードで概ね実装に成功。質問者は解決策に感謝し、カスタマイズを継続中。

<div class="post-metadata">

**Author:** ![mr\_front\_lern](https://avatars.discourse-cdn.com/v4/letter/m/e68b1a/32.png) [@mr\_front\_lern](https://community.shopify.com/u/mr_front_lern)\
**Post date:** [December 19, 2023, 8:56am UTC](https://community.shopify.com/t/topic/278496/1 "2023-12-19T08:56:18Z")

</div>

## 相談内容

設定 ＞ カスタムデータ

から、「商品 ＞ バリエーション」にメタフィールドを追加することは出来ると思います。

しかしこちらで追加したものは、

各商品ページの「各バリエーション（選択肢1つ1つ）」に対して追加されます。

今回は、そうではなくその親にメタフィールドを追加したいです。

例えば通常であれば、

===

サイズ

S M L

===

とあるとして、

「商品 ＞ バリエーション」に追加したフィールドは、

各「S M L」の中で設定できます。

そうではなく、

「サイズ」に対してメタフィールドを設定したい、と考えております。

## 理由

例えば「サイズ」「カラー」というバリエーションがあったとします。

その中で、

「サイズ」→「※サイズによって素材が異なる場合があります。」

「カラー」→「※カラーによって商品重量が異なります。」

というように、そのバリエーション（親）に対しての注釈を付けたい、

という部分でございます。

（こちらの用途を達成できるのであれば、メタフィールドでなくても構いません）

分かりづらい内容で大変恐れ入りますが、

ご教示いただけますと幸いです。

---

<div class="post-metadata">

**Author:** ![improv](https://yyz1.discourse-cdn.com/shopifyforum/user_avatar/community.shopify.com/improv/32/59666_2.png) [@improv](https://community.shopify.com/u/improv)\
**Post date:** [December 19, 2023, 12:54pm UTC](https://community.shopify.com/t/topic/278496/2 "2023-12-19T12:54:41Z")

</div>

バリエーションにメタフィールドを紐づけるのは難しいかと思います。

メタオブジェクトを利用するなどいくつか代案はありますが

下記コードをliquidテンプレート内に挿入することで

特定のオプションがあった場合に、注釈をいれることは実現可能です。

```markup
{% for option in product.options %}
    
      {% if option == 'サイズ' %}
        

※サイズによって素材が異なる場合があります。

      {% elsif option == 'カラー' %}
        

※カラーによって商品重量が異なります。

      {% endif %}
    

  {% endfor %}

```

---

<div class="post-metadata">

**Author:** ![mr\_front\_lern](https://avatars.discourse-cdn.com/v4/letter/m/e68b1a/32.png) [@mr\_front\_lern](https://community.shopify.com/u/mr_front_lern)\
**Post date:** [December 20, 2023, 1:06am UTC](https://community.shopify.com/t/topic/278496/3 "2023-12-20T01:06:42Z")

</div>

追記：

最も理想形は、添付画像のように、

「各バリエーションに属した感じで注釈を表示」としたい感じです。

（※以下の画像はDevツールで手動でDOMを書き換えたイメージになります）

 ![mr_front_lern_0-1703034320951.png](https://canada1.discourse-cdn.com/shopifyforum/original/3X/0/7/071d417d9a59937beef288ec34cc4924b1018ccf.png)

---

<div class="post-metadata">

**Author:** ![mr\_front\_lern](https://avatars.discourse-cdn.com/v4/letter/m/e68b1a/32.png) [@mr\_front\_lern](https://community.shopify.com/u/mr_front_lern)\
**Post date:** [December 20, 2023, 1:08am UTC](https://community.shopify.com/t/topic/278496/4 "2023-12-20T01:08:24Z")

</div>

御指南ありがとうございます！

そうですよね、、、

でもLiquidの条件分岐で代替できる旨、

そしてコードまで、ありがとうございます。

こちらの案もバックアップとして使いたいと思います。

心強いコメントに感謝いたします。

メタオブジェクト

というものについて少し調べてみます。

---

<div class="post-metadata">

**Author:** ![improv](https://yyz1.discourse-cdn.com/shopifyforum/user_avatar/community.shopify.com/improv/32/59666_2.png) [@improv](https://community.shopify.com/u/improv)\
**Post date:** [December 20, 2023, 3:13am UTC](https://community.shopify.com/t/topic/278496/5 "2023-12-20T03:13:23Z")

</div>

状況把握いたしました。

例えばDawnですと、main-product.liquid の

{%- for option in product.options\_with\_values -%} の中に下記コードを挿入すると

イメージ通りの表示が可能です。

```markup
{% if option.name == 'サイズ' %}
      

※サイズによって素材が異なる場合があります。

    {% elsif option.name == 'カラー' %}
      

※カラーによって商品重量が異なります。

    {% endif %}

```

他テンプレートの場合も、バリエーションごとにinputを生成している部分のコードを

探してその中に、オプションの名前ごとに表示を変更する、という分岐を

書けば実現できます。

---

<div class="post-metadata">

**Author:** ![mr\_front\_lern](https://avatars.discourse-cdn.com/v4/letter/m/e68b1a/32.png) [@mr\_front\_lern](https://community.shopify.com/u/mr_front_lern)\
**Post date:** [December 20, 2023, 3:18am UTC](https://community.shopify.com/t/topic/278496/6 "2023-12-20T03:18:33Z")

</div>

続けてご指南いただきありがとうございます！

概ね、頂いた内容で実装できました！

より理想系にするため引き続きカスタムしますが、

考え方と記述法を知れたおかげで次に繋がりました。

本当にありがとうございます！
