はじめに
商品フィードを自前生成すると聞くと、「Shopifyの商品データをそのままXMLにするだけでは?」と思われるかもしれません。ところが、ここが一番の腕の見せどころなんです。
ECの商品データとGoogle Merchant Center(GMC)が求めるフィード仕様は、項目名も書式も別物です。この2つの世界をつなぐ変換ルール——それがマッピング設計です。
この記事では、タイトルやGTIN、カテゴリ、在庫状態といった主要な属性を、どう考えてGMC仕様へ変換したのかを解説します。
GMCが求める必須属性を押さえる
まずは「必須」を落とさない
GMCには、商品ごとに必ず入れなければならない属性があります。ここが欠けると、その商品はまるごと不承認になり、掲載されません。土台として、まずは必須属性を確実に埋めることが出発点です。
バリアント単位で1商品として出す
Googleショッピングでは、色やサイズといったバリアント(種類)ごとに1つの商品として扱うのが基本です。「ジャケットA」ではなく「ジャケットA / 黒 / Mサイズ」という粒度ですね。
そのため、Shopifyの1商品を、バリアントの数だけXMLの塊に展開します。同じ親商品から生まれたバリアントは item_group_id で束ねることで、Googleが「これらは同じ商品の色違い・サイズ違い」だと理解してくれます。
識別子とカテゴリの扱い
GTINとbrandで「何の商品か」を伝える
GTIN(JANコードなどの国際的な商品識別番号)とbrand(ブランド名)は、Googleが「これは実在するどの商品か」を照合するための重要な手がかりです。ここが揃っていると、検索へのマッチ精度が上がります。
バリアントのバーコード欄からGTINを取得
値が正しい桁数なら gtin 属性へセット
GTINがない商品は identifier_exists を false にして明示
GTINが取れない商品もあります。その場合は無理に埋めず、「識別子は存在しない」と正直に伝えるのが正解です。中途半端な値を入れるほうが、かえって不承認を招きます。
google_product_categoryを割り当てる
google_product_category は、Googleが用意した商品カテゴリの分類体系です。「アパレル&アクセサリー > 衣料品 > アウターウェア」のような階層で、自社商品がどこに属すかを指定します。
自社のコレクションや商品タイプから、この分類へ対応づけるルールを持たせておきます。カテゴリが適切だと、Googleが検索意図に合わせて商品を出し分けてくれるので、地味ですが効いてくる部分です。
書式の落とし穴を避ける
価格と通貨、在庫状態の書式
同じ「価格」でも、ECの内部データとGMCの書式は微妙に違います。GMCは価格に通貨コードを添えることを求めますし、在庫状態も自由な文字列ではなく決められた値でなければなりません。
価格は数値だけ、在庫は「残り3点」といった表示用テキスト。GMCが解釈できず不承認に
価格は「12000 JPY」、在庫は在庫数から in stock / out of stock に変換。素直に承認される
説明文からHTMLとノイズを除く
商品説明はHTMLタグを含んでいることが多く、そのまま渡すとタグがそのまま表示されてしまったり、不要な装飾が混じったりします。
マッピングの段階でHTMLタグを除去し、余計な空白や改行を整えます。GMCの説明文には文字数の上限もあるため、長すぎる場合は要点を保ったまま切り詰めます。地味な処理ですが、これを怠ると見栄えの悪い掲載になってしまうんですよね。
まとめ
マッピング設計は、ECの商品データとGMC仕様という「別々の世界」をつなぐ翻訳作業です。
- 必須属性を落とさない:id・title・price・availabilityなどを確実に埋める
- バリアント単位で展開し、item_group_idで束ねる
- GTIN・brand・カテゴリで「何の商品か」を正確に伝える
- 書式を仕様に合わせる:価格の通貨表記、在庫状態の変換、説明文のHTML除去
このマッピングが土台にあってはじめて、フィードのキャッシュとヘルスチェックや品質管理が活きてきます。全体像は商品フィードの自動生成のハブ記事でまとめています。