通貨変換:グローバル市場のための動的価格設定
この記事では、ユーザーの所在地と設定に基づいて、複数の通貨で価格を表示する方法について説明します。
課題:グローバルな価格設定
異なる国々のユーザーは、自国の通貨で価格を期待しています:
-
インド:₹ (INR)
-
アメリカ:$ (USD)
-
ヨーロッパ:€ (EUR)
-
イギリス:£ (GBP)
-
日本:¥ (JPY)
INRの価格のみを表示すると、海外の顧客は混乱します。
検出戦略
通貨設定は以下の方法で検出します:
1. URLパラメータ (?curr=USD)
2. セッション (初回検出後に保存)
3. クッキー (currency)
4. 国検出 (IP位置情報から)
5. デフォルト (INR)
対応通貨
主要な10通貨に対応しています:
-
INR (インドルピー) - ₹
-
USD (米ドル) - $
-
EUR (ユーロ) - €
-
GBP (英ポンド) - £
-
JPY (日本円) - ¥
-
AUD (オーストラリアドル) - A$
-
CAD (カナダドル) - C$
-
SGD (シンガポールドル) - S$
-
AED (UAEディルハム) - د.إ
-
SAR (サウジアラビアリヤル) - ﷼
通貨切替
ユーザーは以下の方法で通貨を切り替えられます:
URLパラメータ: /p/Treo-N100?curr=USD
通貨セレクター: ナビゲーション内のドロップダウン
自動検出: IP国に基づく
変換プロセス
基準価格 (INR)
すべての商品はINRで基準価格を持ちます:
base_price = get_the_price(sku) # INR価格を返す
リアルタイム変換
価格はライブ為替レートを使用して変換されます:
local_price = convert_the_amount(base_price, "INR", user_currency)
為替レートは外部APIから毎日更新されます。
丸め処理
変換された価格は最も近い100単位に丸められます:
例: $1,234.56 → $1,200
利点: すっきりした価格表示、比較が容易
表示形式
価格は通貨記号とフォーマット付きで表示されます:
INR: ₹1,23,456 (インド式グループ化)
USD: $1,234 (西洋式グループ化)
EUR: €1.234 (欧州式グループ化)
JPY: ¥123,456 (小数点なし)
条件付き価格表示
価格は特定のコンテキストでのみ表示されます:
Google ショッピングからのトラフィック
Google ショッピングからのユーザーには価格が表示されます:
検出: URL内の gclid, gbraid, または wbraid
クッキー: show_pricing=1 (セッション中に設定)
利点: Google ショッピングの要件に準拠
通常トラフィック
通常のユーザーにはデフォルトで価格は表示されません:
理由: B2B中心、見積もりベースの価格設定
例外: ユーザーは通貨セレクターで価格表示を有効化可能
カートの通貨
カートは作成時に通貨を保存します:
フィールド: Currency (デフォルト: INR)
ロック: カート作成時に通貨はロックされる
変換: すべてのアイテムはカートの通貨に変換される
利点: チェックアウト全体で一貫した価格設定
支払い通貨
支払いはカートの通貨で処理されます:
Razorpay: INR, USD, EUR, GBP をサポート
その他の通貨: 支払いのためINRに変換
表示: カート通貨とINR換算額の両方を表示
価格キャッシュ
変換された価格はAPI呼び出しを減らすためキャッシュされます:
キャッシュキー: {sku}_{currency}_{date}
TTL: 24時間
無効化: 毎日深夜
利点: 高速なページ読み込み、APIコスト削減
関連情報
関連記事
まとめ
通貨変換によりグローバルな価格設定が可能になります:
検出:
-
URLパラメータ (
?curr=USD) -
セッション (閲覧中)
-
クッキー (30日間)
-
国検出 (IPから)
-
デフォルト (INR)
対応:
-
主要10通貨
-
リアルタイム為替レート
-
地域別フォーマット
-
100単位への丸め
条件付き表示:
-
Google ショッピングトラフィック (常時表示)
-
通常トラフィック (セレクターでオプトイン)
カート処理:
-
カート作成時に通貨ロック
-
すべてのアイテムが同一通貨
-
チェックアウト全体で一貫性
これにより、シームレスな国際的なショッピング体験が実現します。