Shopifyの商品データ設計:バリアント/メタフィールド/プロパティの使い分け(AI時代の発見性まで)
Shopifyでストアを作るとき、意外と後回しにされがちなのが「商品の情報を、どこに・どう持たせるか」という設計です。色やサイズはバリアント、素材やケア方法はメタフィールド、名入れやギフトメッセージはラインアイテムプロパティ——同じ「商品ページに載る情報」でも、適した“入れ物”はそれぞれ違います。
ここを最初に間違えると、バリアントが爆発して管理不能になったり、本来「表示するだけ」でよい情報を購入時に選べてしまったり、といった事故につながります。しかも最近は、AIエージェント(ChatGPTやShopのAI)が商品を発見・購入する時代に入り、商品データの構造そのものが「AIに見つけてもらえるか」を左右し始めています。
この記事では、「〇〇をするにはこのメタフィールド」という個別レシピではなく、「こういう種類のデータだから、これで持つ」という判断の原則を、アパレルの具体例と公式ドキュメントをもとに整理します。例外は多々ありますが、まずは“標準の考え方”として押さえておくと、設計の迷いが大きく減ります。
商品情報の「入れ方」は大きく3種類
Shopifyで商品に情報を持たせる方法は、性格の異なる次の3つに分けて考えると整理しやすくなります。
- バリアント(オプションで作る):色・サイズなど「買う対象そのもの」を分ける値。在庫・価格・SKU・画像をそれぞれ独立して持つ
- メタフィールド:素材・原産国・スペックなど「商品を説明する」付加情報。表示専用で、購入では選ばせない
- ラインアイテムプロパティ:名入れ・ギフトメッセージなど「お客様がその場で入力する」値。注文単位で保持される
それぞれの性格の違いを1枚にまとめると、次のようになります。同じ商品ページの中でも、要素ごとに“持たせる場所”が違うのがポイントです。
同じ商品ページ上の ①②③ が、3種のデータにそのまま対応する
判断の原則:「在庫・価格・SKUが変わるか」で切り分ける
迷ったときの基準はシンプルです(例外はありますが、まずはこの原則で)。
| 問い | 使うもの | アパレルTの例 |
|---|---|---|
| 在庫・価格・SKUが変わる?(別の購入単位) | バリアント | カラー(黒/白)× サイズ(S/M/L) |
| 表示するだけの付加情報? | メタフィールド | 素材・原産国・ケア方法/サイズ別の実寸 |
| 購入時に指定するが在庫管理は不要? | ラインアイテムプロパティ | 名入れ・ギフトメッセージ・ラッピング |
やりがちなNG:「素材」や「実寸」をオプション(=バリアントの軸)にすると、色 × サイズ × 素材…と組み合わせが掛け算で増殖し、バリアントが爆発します。名入れをバリアントで作るのも同様で、組み合わせが無限に必要になります。表示するだけの情報はメタフィールド、購入時の入力はプロパティ、と切り分けるのが基本です。
それぞれの性格と設定方法
判断基準・各設定方法・注意点の一覧
① バリアント ― 「買う対象そのもの」を分ける
在庫・価格・SKU・画像をそれぞれ独立して持つ購入単位です。管理画面の「バリエーション」でオプション(色・サイズ)を設定すると、その組み合わせが1件ずつのバリアントになります。オプションは3軸まで、バリアントは最大2,048(2025年10月に100から拡張。ただし既定は100のままのストアも多い)という上限があります。「在庫や価格が分かれる/別在庫で管理したい」ものだけをバリアントにするのが鉄則です。
② メタフィールド ― 「商品を説明する」付加情報
在庫・価格・SKUは持たない表示専用のデータです。設定 → メタフィールド定義で枠を作り、各商品(またはバリアント)に値を入力して、テーマ側で表示します。全バリアント共通なら商品メタフィールド、バリアントごとに変わるならバリアントメタフィールドを使います(例:素材は商品メタ、サイズ別の実寸はバリアントメタ)。「購入時に選ばせたい」ものには不向きで、あくまで情報として見せるだけ、という点が性格の核です。
③ ラインアイテムプロパティ ― 「お客様がその場で入力する」値
バリアントを増やさずに、購入時の入力を受け取る仕組みです。入力内容はカート・チェックアウト・注文確認メール・管理画面の注文詳細まで引き継がれます。実装は、テーマの商品フォームに入力欄 properties[...] を追加するだけで、コアShopifyの機能なのでアプリは不要です(コードを書きたくない、あるいは条件分岐・追加課金・ライブプレビューが要る場合はアプリが便利)。なお _(アンダースコア)で始まるプロパティは表側に表示されず、内部データ(印刷用ファイルURLなど)として使えます。在庫・SKUは管理されない点だけ注意です。
AI時代は「商品データの構造」が発見性を左右する
この設計は、いま急速に立ち上がっているエージェンティックコマース(AIが商品を探して買う流れ)でも効いてきます。ShopifyのグローバルカタログやUCP(Universal Commerce Protocol)は、UPID(共通商品ID)で「同じ商品」を名寄せし、複数販売元のオファーを束ねて返す仕組みです。ここから、現時点での“ベストな持ち方”が見えてきます。
- 「バリアントごとに別商品」ではなく「1商品+バリアント」に寄せる:色・サイズを1つの商品にバリアントとして束ねておくと、AIは「赤のMが欲しい」という意図を正しいバリアントに解決できます。バリアントごとに商品を分割すると、カタログが断片化し、名寄せ・ランキング・レビューといったシグナルが分散して不利になりがちです。
- “探せる属性”はメタフィールドで構造化する:AIが検索・推薦で使うのは、素材・用途・対象・そしてカテゴリ(Shopifyの標準商品分類/カテゴリメタフィールド)などの構造化データです。ここを整えるほど「まず候補に入る」確度が上がります。
- 購入単位は明快に:UCPは発見からカート・決済まで通すため、購入対象(在庫・価格・SKU)がバリアントとして明快だと、エージェント経由の購入が成立しやすくなります。
つまり「バリアントで持つべきか、メタで持つべきか」を正しく構造化しておくこと自体が、AIに発見・理解される土台になります。ここは仕様が進化し続けている領域なので「現時点のベスト」ではありますが、方向性としては“きれいな商品データ”が有利、という点は変わらなさそうです。
まとめ
商品情報をどこに持たせるかは、「在庫・価格・SKUが変わる?→バリアント」「表示するだけ?→メタフィールド」「購入時に入力・在庫不要?→ラインアイテムプロパティ」で切り分けるのが基本です。最初にここを整理しておくと、バリアント爆発や“選べてはいけないものが選べる”事故を防げ、さらにAIチャネルでの発見性の土台にもなります。
今回はアパレルを例にしましたが、食品・コスメ・家具など商材ごとに“最適な持ち方”は変わります。別の商材パターンは、また改めて掘り下げていく予定です。
参考リンク
- Shopify公式: Data modeling with metafields and metaobjects(データ設計の考え方)
- Shopify公式: メタフィールド / バリアント上限2,048
- Managing Large Product Variants(StarApps)(バリアントにすべき属性の判断)
- Line Item Properties Complete Reference(プロパティの性格)