Shopifyでセール価格を設定するとき、Variant Compare At Price(通常価格)とVariant Price(販売価格)の関係をGoogle Merchant Centerのpriceとsale_priceに正しく反映させる必要があります。通貨コードの表記、税込み・税抜きの扱い、セール期間の開始・終了タイミングのズレなど、両プラットフォーム間で確認すべき項目を整理します。
ShopifyとMerchant Centerの価格属性の対応関係
まず、Shopifyの商品CSV・管理画面の価格項目が、Merchant Centerのフィード属性とどう対応するかを押さえておきます。
| Shopifyの項目 | CSV列名 | Merchant Center属性 | 意味 |
|---|---|---|---|
| 価格(販売価格) | Variant Price |
sale_price(セール時)または price(通常時) |
顧客が実際に支払う金額 |
| 割引前価格 | Variant Compare At Price |
price(セール時) |
セール前の通常価格。セール中でなければ空欄 |
セールを実施している間は、ShopifyのVariant Compare At PriceがMerchant Centerのprice属性に、Variant Priceがsale_price属性に送られるのが基本です。セールが終了してCompare at Priceを空欄に戻すと、Variant PriceがMerchant Centerのpriceとして送られ、sale_priceは空になります。
通貨コードと価格フォーマット
日本国内向けに運用している場合、両プラットフォームで通貨の扱いを統一する必要があります。
| 確認項目 | Shopify側 | Merchant Center側 | 注意点 |
|---|---|---|---|
| 通貨コード | ストア設定でJPY |
フィードまたは手動入力でJPY |
異なる通貨コードを混在させると不承認になる |
| 小数点の有無 | 2980または2980.00 |
2980 JPY(通貨コード付き推奨) |
Shopifyは小数なしでも可。Merchant Centerは数値+通貨コードの形式 |
| 税込み・税抜き | ストア設定で「税を含む」かどうかを指定 | フィード仕様上は税抜・税込どちらも可だが、表示と整合させる | Shopifyが税込価格を送信しているのにMerchant Center側で税抜として扱うとズレる |
| カンマ区切り | カンマなし(2980) |
カンマなし(2980) |
2,980のようにカンマを含めるとパースエラーになる |
日本のストアでは、Shopifyの設定で「価格に税を含める」を有効にしていることが多く、その場合はCSVのVariant Priceも税込金額として扱われます。Merchant Center側でも同じ税込金額がそのままpriceやsale_priceに渡るため、税抜き金額と混同しないように注意してください。
セール期間のタイミングズレ
Merchant Centerではsale_price_effective_date属性でセールの開始日時と終了日時を指定できます。一方、Shopify側ではセール価格の開始・終了を自動セール(自動ディスカウント)や手動価格変更で管理します。この2つのタイミングがずれると、次のような問題が起きます。
Shopify側が先にセール価格になってしまった場合
ShopifyではすでにVariant Priceがセール価格に切り替わっているのに、Merchant Centerのフィード更新が追いついていないと、広告には通常価格が表示される一方で、ショップにはセール価格が表示されるというズレが生じます。顧客が広告をクリックしてショップに来たとき、期待した価格と違う印象を与える可能性があります。
Merchant Center側の期間が先に終了してしまった場合
sale_price_effective_dateの終了日時が過ぎると、Merchant Centerは自動的にsale_priceを無効化しpriceだけの表示に戻ります。しかしShopify側ではまだセール価格のままである場合、広告に通常価格が表示され、ショップではセール価格が継続している状態になります。
推奨する期間設定の考え方
sale_price_effective_dateの開始日時は、Shopifyでセール価格を設定する時刻と同じか、少し遅らせて設定する- 終了日時は、Shopify側で価格を戻す時刻と同じか、少し早めに設定する
- フィードの取得頻度(毎日・毎時など)を考慮し、最低でもフィード取得間隔分の余裕を持たせる
Compare at Priceのマッピングで起こりやすい間違い
ShopifyのVariant Compare At PriceとMerchant Centerの属性の対応で、よくある設定ミスをいくつか挙げます。
| よくある間違い | 何が起きるか | 正しい対応 |
|---|---|---|
Compare at Priceを設定していないのにsale_priceを送っている |
Merchant Centerで「通常価格がないのにセール価格がある」という警告、またはpriceとsale_priceが同額のまま不承認 |
sale_priceを送るなら必ずprice(通常価格)も送る。Shopify側でCompare at Priceを必ず設定する |
| セール終了後もCompare at Priceを残したままにしている | Merchant Centerがセールが継続中と判断し、広告にセール価格として表示され続ける | セール終了時にCompare at Priceを空欄に戻す |
| PriceとCompare at Priceが同額 | Shopifyの画面ではセール扱いにならず、Merchant Center側でもpriceとsale_priceが同額になり警告が出る |
Compare at Price > Price の関係を保つ |
CSVのVariant Price列に通貨記号を含める |
Shopifyのインポートで数値として認識されずエラー | 数字のみ(2980)で入力する |
セール終了時の価格の扱い
セールが終了したあとの価格の扱いは、運用フローの中で見落とされがちです。セール終了時に確認すべきことを整理します。
- Compare at Priceを空欄に戻す: Shopify管理画面またはCSVで、
Variant Compare At Priceをクリアする。これを忘れるとMerchant Centerはセール継続中と判断する。 - Variant Priceを通常価格に戻す: 自動ディスカウントを使っている場合は自動的に戻るが、手動で価格を下げていた場合は手動で元に戻す必要がある。
- フィードの次回取得タイミングを確認する: Merchant Centerのフィードが次に取得されるまで、広告上の価格表示に反映されない。急ぐ場合は手動でフィードを取得する。
- Merchant Centerの「価格」診断を確認する: 終了後も
sale_priceが残っている商品がないか、Merchant Center管理画面の診断で確認する。
自動で確認できる項目と人の判断が必要な項目
自動でチェックできる項目
スプレッドシートの関数やスクリプトで機械的に確認できる項目です。
| チェック項目 | 確認方法 | 期待される結果 |
|---|---|---|
Variant Priceが数値のみ |
正規表現 ^[0-9]+(.[0-9]{1,2})?$ |
通貨記号やカンマを含まない数値 |
Variant Compare At Price > Variant Price |
両列の数値を比較 | Compare at Priceの方が常に大きい |
| 通貨コードの一致 | Shopifyストア設定とMerchant Centerフィード設定を照合 | 両方でJPY |
sale_priceがpriceより小さい |
Merchant Centerフィードの該当属性値を比較 | sale_price < price |
| 価格のカンマ区切りがない | 値にカンマが含まれていないか検索 | カンマなしの数値文字列 |
人の判断が必要な項目
- セールの開始・終了日時の決定: マーケティング施策の都合で変更されることがあり、自動化しにくい。
- 税込み・税抜きのどちらで運用するか: ストアの価格表示方針に関わるため、運用ルールとして決めておく必要がある。
- 複数通貨対応が必要かどうか: 海外向けにも販売している場合、通貨ごとに価格を設定するか、為換算に任せるかの方針決定が必要。
- Compare at Priceとして表示する「通常価格」の根拠: 過去30日間の最低価格などのルールが地域の法規に関わることがある。
- セール終了後の価格戻し忘れの確認: 自動ディスカウントを使っていない場合、手動で戻す必要があるため、終了日の運用カレンダー管理が必要。
ShopifyとMerchant Center間の価格確認チェックリスト
セール設定の前後で確認すべき項目をまとめます。
| No. | 確認項目 | 確認手段 |
|---|---|---|
| 1 | ShopifyのVariant Priceがセール価格に更新されている |
管理画面またはCSV |
| 2 | Variant Compare At Priceに通常価格(セール前の価格)が設定されている |
管理画面またはCSV |
| 3 | Compare at Price > Price の大小関係が正しい | 数値比較 |
| 4 | 通貨コードがShopify・Merchant Center双方で一致している | 両方の設定画面 |
| 5 | 価格に通貨記号・カンマが含まれていない | CSVの該当セルを確認 |
| 6 | 税込み・税抜きの扱いが両プラットフォームで統一されている | ストア設定とフィード設定を照合 |
| 7 | sale_price_effective_dateの期間がShopify側のセール期間と一致している |
フィードまたはMerchant Center管理画面 |
| 8 | セール終了後にCompare at Priceを空欄に戻す予定が立てられている | 運用カレンダー・タスク管理 |
相談時に用意するとよい情報
価格設定のズレやMerchant Centerの不承認で相談される際、次の情報があると状況の把握が早くなります。
- 対象商品のShopifyでの
Variant PriceとVariant Compare At Priceの値(テキストで構いません) - Merchant Center管理画面の「診断」に表示されている該当商品のエラーメッセージ(テキストで構いません)
- ストアの税設定(税込みか税抜きか)
- 使用しているフィードアプリまたは連携方法(Shopify公式アプリ、サードパーティ製アプリ、手動XMLなど)
- セールの開始・終了の予定日時
- 対象商品の通貨と販売対象国
初回相談では機密CSVやスクリーンショットの送付は不要です。まずは概要をお知らせください。
参考にした公式情報
Merchant Center / 商品フィード まわりの作業整理、小さな自動化、簡易チェックツール化について相談できます。初回相談で機密CSVやスクリーンショットを送る必要はありません。
無料相談する
