Shopifyストアを運営していると、「請求先住所の変更ができない」「チェックアウト時の入力ミスを防ぎたい」といった悩みに直面することがあります。
結論:どちらも実装されていません。 これはセキュリティ上の理由から意図的に制限されています。
Shopifyの請求先住所とは?
チェックアウト画面には2種類の住所入力欄があります:
| 種類 | 英語表記 | 用途 |
|---|---|---|
| 配送先住所 | Shipping Address | 商品を届ける住所 |
| 請求先住所 | Billing Address | 決済に使用する住所(クレジットカードの登録住所など) |
請求先住所とは、クレジットカードなどの決済手段に登録されている住所です。カード会社は不正利用防止のため、入力住所とカード登録住所を照合することがあります。
多くの顧客が「配送先住所と同じ」にチェックを入れるため、配送先が正確なら請求先も自動的に正確になります。
ただし、以下のケースでは請求先と配送先が異なります:
- ギフト配送:自分のカードで決済し、別の住所に届ける
- 法人購入:会社の住所で決済し、別の拠点に届ける
- 引越し直後:カード登録住所と現住所が異なる
請求先住所でできること・できないこと
| 操作 | 配送先住所 | 請求先住所 |
|---|---|---|
| チェックアウト時のバリデーション | ✅ 可能 | ❌ 不可 |
| 注文後の変更(管理画面) | ✅ 可能 | ❌ 不可 |
| 注文後の変更(API) | ✅ 可能 | ❌ 不可 |
なぜ請求先住所は変更・バリデーションできないのか?
セキュリティ上の理由
Shopifyでは「不正取引を防ぐために請求先住所の操作を制限」しています。
注文時に入力された請求先住所は、以下の目的で使用されます:
- 決済の本人確認:カード会社が登録住所と照合(AVS: Address Verification System)
- 不正利用の検知:リスク分析の判断材料
- チャージバック対策:取引の正当性を証明する記録
これらの情報を後から変更できると、不正取引の検知や追跡が困難になります。また、チェックアウト時にアプリが請求先住所を取得できると、セキュリティリスクが生じる可能性があります。
参考:Shopify Community - Feature Request: Edit Billing Address of an Order
Shopify API仕様で確認(注文後の変更)
この制限は公式APIに反映されています。注文更新用API(OrderInput)で更新可能なフィールドに請求先住所は含まれていません。つまり、APIを使っても確定した注文の請求先住所を直接変更することは不可能です。
参考:Shopify Admin API - orderUpdate mutation
Cart and Checkout Validation Functionの制限(バリデーション)
チェックアウト時の住所バリデーションはCart and Checkout Validation Functionで実装できます。
しかし、取得できる住所情報は配送先住所(deliveryAddress)のみです。GraphQLスキーマでも、請求先住所(billingAddress)は公開されていないため、アプリから参照できません。
参考:Cart and Checkout Validation Function API
Shopifyの方からの回答:「We will fix.」
この制限について、Xで話をしていたところ、Shopify従業員のGil氏(@gilgNYC)から「We will fix.」という回答を得ました。
出典:https://x.com/gilgNYC/status/2014573974106054676
ただし、Xでの発言であり公式ロードマップではないため、対応時期や実装が保証されているわけではありません。
「今後請求先住所にもバリデーションをかけられるようになる可能性がある」と期待されていますが、具体的な対応時期は不明です。Shopifyの開発ロードマップは公開されていないため、いつ実装されるかは分かりません。
チェックアウト住所バリデーターの今後の対応
同社では、チェックアウト画面で住所をリアルタイムにチェックできる「チェックアウト住所バリデーター」というアプリを提供しています。
利用者から請求先住所のバリデーション対応リクエストを受けており、Shopifyが請求先住所のバリデーションに対応次第、すぐに機能を追加する予定です。
現在、このアプリでは配送先住所に対して以下のバリデーションが可能です:
- 郵便番号と住所の組み合わせが正しいかチェック
- 番地が未入力の場合にエラーを表示
- 文字数の上限設定や、送り状発行システムでエラーになる文字形式の制限
まとめ
Shopifyでは「セキュリティ上の理由から請求先住所の変更・バリデーションができません。」
現在、チェックアウト住所バリデーターでは配送先住所に対するバリデーション機能を提供しており、今後請求先住所のバリデーションも対応予定です。月間100注文までは無料で利用できます。