商品フィードの価格:セール価格・税・端数処理・通貨
価格は商品フィードの中でも絶対に正確でなければならない部分です。価格が間違っていたり欠けていたりすると、その商品は Facebook Commerce Manager で非承認になったり、Google Merchant Center で価格の不一致としてフラグが立てられたりします。このアプリは、Advanced editor で管理できる4つの要素から各商品の価格を組み立てます。すなわち、Shopify の Compare-at price を打ち消し線付きのセール価格にするかどうか、税を価格に含めるかどうか、価格をどう端数処理・フォーマットするか、そして商品リンクに `?currency=` タグを付けるかどうかです。このガイドではこの4つすべてを順に解説し、フィードの `price` フィールドと `sale_price` フィールドに最終的に何が入るのかを正確に説明します。
1 Advanced editor を開く
価格に関するオプションはすべて、Basic ではなく Advanced editor にあります。ダッシュボードからフィードの Actions メニューを開き、Edit (advanced) を選択します。Basic editor は短いフォームを維持するために、これらの設定を意図的に隠しています。Advanced に切り替えても既存の設定が失われることはないので、価格を修正したいときはいつでも安心して開けます。
2 Compare-at を打ち消し線付きのセール価格にする
Variant export settings の Use "Compare at" price オプションで、割引の表示方法が決まります。デフォルトの "Use both Compare at price and price if they exist (default)" のままにしておくと、Shopify の Compare-at price が現在価格より高いバリアントはすべてセール中としてエクスポートされます。つまり、Compare-at price が通常の `price` になり、実際の販売価格が `sale_price` になります。これが Facebook や Google の広告で「元値/現在価格」の打ち消し線付きのストライクスルー価格を生み出します。"Don't use Compare at price" を選ぶと Shopify の price フィールドのみが使われ、割引商品であっても `sale_price` は一切書き込まれません。バリアントに Compare-at price がない(または price より高くない)場合は、単に通常価格でエクスポートされセールにはならないので、カタログ全体でこのオプションを安心してオンにしておけます。
3 価格に税を追加する(またはグローバル Settings に委ねる)
Add tax to all prices セクションは、税込み価格を扱う場所です。見出しにはそのまま "Add tax to all prices - override global Settings" と書かれており、これはストア全体の税のデフォルトに対するフィード単位の上書きだからです。選択肢は3つあります。 - "Use global Settings (default)" — このフィードは、Settings でアプリ全体に設定した内容に従います(関連する [Settings](/docs/app-settings) ガイドの「Set tax and price rounding」を参照)。ほとんどのストアはすべてのフィードをこれにしておき、税を一度だけ設定します。 - "Do NOT add tax to prices" — グローバルの税設定を無視して、このフィードが生の Shopify 価格をエクスポートするように強制します。グローバルのデフォルトが税を追加していても、税抜きでなければならないカタログ(例:US フィード)にはこれを使います。 - "Do add tax to prices - set tax rate below" — グローバル設定に関係なく、次のフィールドに入力した税率でこのフィードに税を追加するよう強制します。 これは上書きなので、フィード単位の選択はアプリ全体の Settings デフォルトより常に優先されます。フィードごとに税を1か所だけ設定すれば、二重計上することは決してありません。
4 税率を設定する
Tax rate percent (example: if the tax rate is 22%, enter 22) フィールドは、上で "Do add tax to prices" を選んだ場合にのみ意味を持ちます。税率は整数で入力します(22% なら 22、0.22 ではありません)。すると、フィード内のすべての価格とセール価格が、書き込まれる前に `1 + rate/100` で掛けられます。0 のまま(または "Use global Settings")にしておくと、価格は Shopify のまま正確に出力されます。このフィールドを正しく設定することが、Google Merchant Center の価格不一致を解決する定番の方法です。Google はフィードの価格とランディングページの価格を比較するので、ストアフロントが税込み価格を表示しているのにフィードがそうでない(またはその逆)場合、価格は一致しません。
5 価格を端数処理・フォーマットする
Round & format prices to this number of decimal places は、このフィードの価格を何桁の小数にフォーマットするかを制御し、上記の税設定と同じように動作します。空欄のままにするとフィードはストア全体の Settings の値を使用します([Settings](/docs/app-settings) ガイドの「Set tax and price rounding」を参照)。このフィードだけで上書きするには数値を入力します。小数点以下2桁(`19.99 USD`)が Facebook と Google の期待する形式であり、税を掛けた価格が `24.3878` のように末尾に長い小数を付けて出力されるのを防ぎます。そのため、ほとんどのストアはここを空欄のままにし、端数処理を Settings で一度だけ設定します。あるチャネルが特に整数(`20 USD`)や追加の精度を必要とする場合にのみ、フィード単位で上書きします。
6 商品リンクに通貨を付加する(任意)
Product feed settings に戻ると、Append currency parameter to the product URL? は各商品リンクの末尾に `?currency=` タグを付けるかどうかを決めます。デフォルトは "Do NOT append. (default, example: my-store.com/products/my-product)" です。"Do append. (example: my-store.com/products/my-product?currency=USD)" に切り替えると、ストアフロントがこのフィードの通貨で開くように強制され、ランディングページの価格をフィードの価格と一致させるのに役立ちます。これは実際にはマルチ通貨の話なので、[Multi-Language & Currency Feeds](/docs/multi-language-and-currency-feeds) ガイドで詳しく扱っています。ここでは知っておくべき1つのスイッチにすぎません。
7 保存してフィードの価格を確認する
Save を押すと、フィードが新しい価格設定で再生成されます。フィード URL を開いて割引商品を見てみましょう。Compare-at をオンにしていれば、`price`(より高い Compare-at の値)と `sale_price`(より低い実際の値)の両方が表示されます。通常価格の商品には `price` のみが表示されます。税がオンなら、両方の数値はすでにあなたの税率で掛けられており、すべて指定した小数桁数にフォーマットされています。これが価格パイプラインの全体像です。Compare-at・税・端数処理が、Facebook と Google が読み取るのとまったく同じ形でフィードに表示されます。
よくある質問
Facebook や Google でセール価格が打ち消し線として表示されないのはなぜですか?
セール価格が書き込まれるのは、バリアントの Shopify <strong>Compare-at price が現在価格より高く</strong>、<em>かつ</em> <strong>Use "Compare at" price</strong> オプションがオン(デフォルト)の場合のみです。Compare-at が空欄、price と同じ、または price より低い場合は、`sale_price` はエクスポートされず、商品は通常価格で表示されます。Shopify でより高い Compare-at price を設定し、オプションをデフォルトのままにしてください。
アプリはどうやって price と sale price を決めているのですか?
バリアントがセール中の場合、<strong>Compare-at price が通常の `price`</strong> になり、<strong>実際の販売価格が `sale_price`</strong> になります。そのため広告では元値に打ち消し線が入り、その横に割引価格が表示されます。割引されていない商品は、`sale_price` なしで単一の `price` をエクスポートします。
フィードの価格が自分のウェブサイトと一致しません — 価格の不一致はどう直せばよいですか?
<strong>Google Merchant Center の価格不一致</strong>は、ほぼ必ず税が原因です。Google はフィードの価格とランディングページの価格を比較します。<strong>Add tax to all prices</strong> を、ストアフロントの価格表示方法に合わせて設定して揃えましょう。ストアが税込み価格を表示しているなら税を追加し(正しい税率で)、そうでなければオフのままにします。通貨付加オプションも、ランディングページをフィードの通貨で開くことで役立ちます。
商品フィードの価格に税を追加するにはどうすればよいですか?
Advanced editor の <strong>Add tax to all prices</strong> セクションで <em>"Do add tax to prices - set tax rate below"</em> を選び、<strong>Tax rate percent</strong> に税率を整数で入力します(22% なら 22)。エクスポート前に、すべての価格とセール価格がその税率で掛けられます。代わりにすべてのフィードで税を一度だけ設定するには、フィードを <em>"Use global Settings"</em> のままにしてアプリの <strong>Settings</strong> で設定します。
フィードの税設定とグローバル Settings の違いは何ですか?
グローバルの <strong>Settings</strong> の税オプションはストア全体のデフォルトで、各フィードの <strong>Add tax to all prices</strong> は<strong>上書き</strong>です。<em>"Use global Settings"</em> に設定されたフィードはデフォルトに従います。<em>"Do add tax"</em> や <em>"Do NOT add tax"</em> に設定すると、そのフィードはデフォルトを無視して独自に動作します。フィード単位の選択が常に優先されます。
誤って税を二重に追加してしまうことはありますか?
1か所で設定していれば起こりません。税は、グローバル Settings の税率(フィードが <em>"Use global Settings"</em> のとき)またはフィード独自の税率(フィードが上書きするとき)のいずれかを使って一度だけ適用されます。両方が適用されることはありません。二重計上が起こるのは、Shopify の価格にすでに税が含まれている<em>うえに</em>、ここでも税をオンにした場合だけです。その場合はフィードの税をオフにしてください。
フィードの価格の小数桁数が多すぎるのはなぜですか?
価格は <strong>Round & format prices to this number of decimal places</strong> でフォーマットされます。ストア全体のデフォルトはアプリの <strong>Settings</strong> にあり(変更していなければ小数点以下2桁、`19.99`)、各フィードは独自の値で上書きできます。税の乗算で長い小数が生じた場合、この端数処理がそれを切り詰めます。小数点以下2桁が Facebook と Google の期待する形式なので、チャネルが整数を求める場合にのみ上書きしてください。
通貨パラメータはフィードの価格を変えますか?
いいえ。価格の数値は Shopify(および税・端数処理の設定)から来ます。<strong>Append currency parameter</strong> オプションは、商品<em>リンク</em>に `?currency=` タグを追加してストアフロントがフィードの通貨で開くようにするだけです。主にマルチ通貨ストア向けです。Multi-Language & Currency Feeds ガイドを参照してください。
すべてのフィードの税と端数処理を一度に設定するにはどこで行いますか?
アプリの <strong>Settings</strong> ページの「Set tax and price rounding」で行います。これらはストア全体のデフォルトです。<em>"Use global Settings"</em> のままのフィードはこれを継承するので、フィードごとではなく一度だけ税と端数処理を設定できます。