「番地が入っていない住所の注文に、発送直前まで誰も気づかなかった」という経験はないでしょうか。住所不備のなかでも番地抜けは発生頻度が高く、気づくのが遅れるほど確認連絡や再配達の手間が膨らみます。
番地抜けを完全に防げる標準機能はありませんが、打てる手は2段階あります。まず、Shopifyが無料で提供する自動化ツール「Shopify Flow」を使えば、注文が入った直後に自動で検知してスタッフにメール通知を送れます(設定にコードはほぼ不要です)。そのうえで、入力時点で防ぐには検証アプリを使います。
この記事では、Flowワークフローの設定例と通知が来たあとの対応フローを解説したうえで、Flowの限界と、チェックアウトの入力時点でブロックする方法まで順に紹介します。
番地抜けはなぜ起きるのか
Shopifyのチェックアウトは、住所欄に番地が入っていなくてもエラーにならず、そのまま注文が確定します。入力必須などの形式チェックはあっても、「住所として成立しているか」までは検証されないためです。標準の住所検証機能(チェックアウトの配送先住所検証・管理画面の住所検証)も、2026年7月時点でどちらも日本未対応です。詳しくはShopifyで住所の入力チェックはできる?で整理しています。
そのため「東京都渋谷区渋谷」のように町名で入力が止まった住所や、市区町村と建物名だけで番地が飛んだ住所が、警告なしで注文として入ってきます。番地抜けを含む具体的な不備パターンはShopifyで発生する住所エラー10選にまとめています。
番地のない住所ではそのまま発送できないため、「早く気づく」仕組みを作るのが対策の第一歩です。そこで使えるのがShopify Flowです。
Shopify Flowとは: 全プランで使える無料の自動化ツール
Shopify Flowは、ストア内のイベントをきっかけに処理を自動実行できるShopify公式の無料アプリです。Plus限定の機能ではなく、すべてのプランで利用できます(一部のアクションには上位プラン限定のものがあります)。
ワークフローは次の3要素で組み立てます。
- トリガー: ワークフローを開始するイベント(例: 注文が作成された)
- 条件: 処理を実行するかどうかの判定(例: 住所に数字が含まれない)
- アクション: 実行する処理(例: スタッフにメールを送信)
この3つを「注文が入ったら → 住所に数字がなければ → 通知する」と並べるのが、今回作るワークフローです。
番地抜けを検知するワークフローの作り方
完成形は次のとおりです。
- トリガー: Order created(注文が作成されたとき)
- 条件: 配送先住所の1行目(address1)に数字が1つも含まれない
- アクション: スタッフに内部メールを送信し、注文に「住所要確認」タグを付ける

手順1: Shopify Flowを開く
Flowは管理画面の「設定」ではなく「アプリ」の一覧から開きます。一覧に見当たらない場合は、Shopify App StoreのShopify Flowのページから無料でインストールできます。

手順2: トリガーに「Order created」を設定する
画面右上の「ワークフローを作成」をクリックし、トリガーの選択画面で「Order created(注文の作成)」を選びます(公式リファレンス: トリガー)。トリガー名は英語表記のため、検索欄に「order create」と入力すると見つけやすいです。これで、ストアに注文が入るたびにこのワークフローが起動します。

手順3: 条件で「住所に数字が含まれない」を判定する
トリガーの次に「Condition(条件)」を追加します。設定パネルの「変数を追加する」をクリックし、検索欄に「shippingaddress」と入力して order/shippingAddress/address1(配送先住所の1行目)を選びます。


Flowの条件には「次を含まない」という演算子があります(公式リファレンス: 条件)。これで「0〜9のどの数字も含まれない=番地らしきものがない」を表現します。
- 条件の組み方: 「address1 が 0 を含まない」「address1 が 1 を含まない」……「address1 が 9 を含まない」の10個の条件を作り、「すべての条件に一致(AND)」で接続する
この「住所に数字が含まれるかを確認する」アプローチは、Shopifyコミュニティの同様の相談でShopifyスタッフも提案している方法です。10個並べるのは正直に言って手間ですが、一度作ればずっと動き続けます。
条件同士の接続は必ず「AND」を選んでください。「OR」のままだと「どれか1つでも含まない数字があれば真」という意味になり、ほぼすべての注文が通知対象になってしまいます。また、日本のお客様は「1−2−3」のように全角数字で入力することも多いため、誤検知を減らしたい場合は全角の「0」〜「9」についても同じ要領で10個の条件を追加します(合計20個。この煩雑さを解消する方法は後述の応用で紹介します)。

なお、店頭受取やデジタル商品の注文では配送先住所が存在しない場合があります。誤検知を避けたいときは、order.shippingAddress が存在することを確認する条件を先頭に追加してください。
手順4: アクションで通知とタグ付けを設定する
条件が真(=数字が1つもない)の場合のアクションとして、次の2つを追加します。アクション名も英語表記のため、検索欄に「email」「tag」と入力すると見つけやすいです。
-
Send internal email(内部メールを送信): 宛先にスタッフのメールアドレスを入力します(カンマ区切りで複数指定できます)。件名と本文には変数を挿入でき、注文番号やお客様名を入れておくと、メールを見ただけでどの注文か分かります

設定例は次のとおりです。
{{ }}形式の変数は、そのまま入力欄に貼り付けて使えます。件名: 【住所要確認】番地が入っていない可能性があります(注文
{{ order.name }})本文:
番地を含まない配送先住所の注文が入りました。発送前に住所の確認をお願いします。
注文画面:{{ shop.url }}/admin/orders/{{ order.legacyResourceId }}
-
Add order tags(注文にタグを追加): 「住所要確認」などのタグを付けておくと、管理画面の注文一覧でタグ絞り込みができ、発送作業前の見落とし防止になります


宛先を変数で動的に変えることはできない点だけ注意してください(公式リファレンス: 内部メールを送信する)。また、発送の見落としが心配な場合は、フルフィルメント注文を保留するアクションを追加しておくと、住所を確認するまで発送作業自体を止められます(保留は注文詳細画面からいつでも解除できます)。
設定できたらワークフローをオンにし、動作を確認します。番地を抜いた住所でテスト注文をしてみるのが確実です。前述のとおり番地がなくてもチェックアウトは通ってしまうので、その注文に対して通知メールとタグが付けば設定完了です。通知メールは shopifyemail.com 経由の送信者名で届く場合があるため、迷惑メールに振り分けられていないかも併せて見ておくと安心です。
応用: 「コードを実行」で条件を1つにまとめる
数字の条件を10〜20個並べる代わりに、Flowの「コードを実行」アクション(公式リファレンス)でJavaScriptの正規表現を使うと、判定を1ステップにまとめられます。漢数字の「一丁目」「二番地」のような表記まで拾いたい場合にも有効です。
export default function main(input) {
const address1 = input.order?.shippingAddress?.address1 ?? '';
// 半角数字・全角数字・「〜丁目/番/号」の漢数字表記のいずれかがあれば番地ありとみなす
const hasBanchi = /[0-90-9]|[一二三四五六七八九十]+(丁目|番|号)/.test(address1);
return { hasBanchi };
}
コードから参照するデータは、アクション内の入力クエリで { order { shippingAddress { address1 } } } のように取得しておきます。あわせて「出力を定義」(SDL)を初期値の message: String! から type Output { hasBanchi: Boolean! } に書き換えます(コードの戻り値と出力定義が一致していないと動きません)。この出力(hasBanchi が false)は後続の条件から「Run code」変数として参照でき、手順3の条件の羅列を置き換えられます。コードに抵抗がなければこちらのほうが保守しやすいですが、必須ではありません。条件を並べる方法だけでも十分実用になります。
なお、ここで紹介した条件や文面はあくまで一例です。建物名欄(address2)もチェック対象に加える、判定の正規表現を自店の注文傾向に合わせて調整する、通知と同時にフルフィルメントを保留するなど、ストアの運用に合わせてより良い形を模索してみてください。
通知が来たら: 対応の3ステップ
ワークフローを動かし始める前に、通知が来たときの対応も決めておきましょう。
- 住所を確認する: 「住所要確認」タグの注文を開き、本当に番地が抜けているか確認します。もともと番地のない住所や、建物名欄のほうに番地が書かれているだけのケースもあります
- お客様に確認連絡をする: 発送前にメールで正しい住所を確認します。「番地・建物名・部屋番号を含めた正しいご住所を、本メールへの返信でお知らせください」のように返信で完結する形にし、文面をテンプレート化しておくと、1件あたりの対応が数分で済みます
- 管理画面で住所を修正する: お客様からの返信をもとに、注文詳細から配送先住所を編集します。具体的な手順は注文後に配送先住所を変更する方法で解説しています
この方法の限界: できるのは「注文後に気づく」まで
便利な仕組みですが、Flowにできるのは検知と通知までで、住所そのものの書き換えはできません。運用のうえでも次の限界があります。
- 注文はすでに確定している: Flowが動くのは注文作成後です。決済は完了しており、前述の確認連絡・返信待ち・住所修正という手作業は1件ごとに発生し続けます
- 郵便番号と住所の不一致は検知できない: Flowには郵便番号と住所を突き合わせる参照データがないため、番地はあっても住所自体が間違っているケースには無力です
- 通知への対応が遅れるリスク: 通知メールが埋もれて発送後に気づけば、結局は再配達や返送のコストが発生します
Flowで早く気づけるようにはなりますが、番地抜けの発生自体は減らせず、お客様への確認連絡の手間も残ります。
入力時点で防ぐには: チェックアウトで検証する
番地抜けの対応コストをなくすには、注文が確定する前、つまりチェックアウトの住所入力時点で検知して、お客様自身に修正してもらうのが根本的な解決策です。
無料でできる入口対策としては、住所欄のラベルを「住所(番地まで必ずご入力ください)」のような文言に変える注意喚起があります(手順はShopifyで住所の入力チェックはできる?で解説しています)。ただし注意書きに強制力はなく、読まれなければ防げません。入力された住所を検証してその場でブロックするには、前述のとおり標準機能が日本未対応のため、検証アプリが必要です。
ここまでの方法を整理すると次のとおりです。
| 方法 | タイミング | 費用 | 特徴 |
|---|---|---|---|
| Shopify Flowで通知(この記事の方法) | 注文確定後 | 無料 | 番地抜けに早く気づける。確認連絡・修正の手作業は残る |
| 住所欄の文言カスタマイズ | 入力時 | 無料 | 注意喚起として有効だが強制力はない |
| 検証アプリ | 入力時 | アプリによる | 番地抜けをその場で検知し、お客様自身に修正してもらえる |
弊社が開発しているチェックアウト住所バリデーターは、チェックアウト画面で住所の入力ミスをリアルタイムに検出するShopifyアプリです。
- 番地の入力漏れをその場でブロック: 番地のない住所はエラー表示で注文確定前に修正を促します
- 郵便番号と住所の不一致も検証: Flowでは判定できない「郵便番号に紐づく住所との不一致」を検出し、正しい住所を案内します
- 全角記号・環境依存文字の検出: 送り状発行でエラーになりやすい文字も入力時点で修正を促します
- エクスプレスチェックアウトにも対応: Shop Pay・Apple Pay・Google Pay経由の注文も検証対象です
Shopify Plusは不要で、月100注文までは全機能を無料で利用できます。入口の時点で検知と修正が完結するため、導入後はこの記事のFlow通知ワークフロー自体が不要になります。
まとめ
- 番地抜けの注文は、無料のShopify Flowで「注文が作成されたとき → address1に数字が含まれない → 内部メール送信+タグ付け」のワークフローを組めば自動検知できる
- 全角数字の入力に備えて全角「0」〜「9」の条件も追加する。条件の羅列は「コードを実行」の正規表現で1ステップにまとめられる
- 通知が来たら「住所を確認→お客様に連絡→管理画面で修正」の3ステップで対応する
- ただしFlowは注文確定後の事後検知。お客様への確認・住所修正の手間は残り、郵便番号と住所の不一致は検知できない
- 入力時点で防ぐには、チェックアウト住所バリデーターのような検証アプリでチェックアウト時にブロックする
番地抜けの対応にかかる手間は注文数によって変わるので、ストアの規模に合った方法を選んでみてください。チェックアウト画面(注文確定前)で住所をチェックしたい場合は、チェックアウト住所バリデーターをぜひお試しください。月100注文までは無料で使えます。