Shopifyの住所入力ミスとPO Boxを防ぐ:配送トラブルを減らすチェックアウトルール
配送まわりのトラブルの多くは、発送してみるまで見えないものです。郵便番号の桁が足りない、ハイフンの位置が変、そもそも私書箱(PO Box)宛てで宅配便が届かない。どれも、チェックアウトの画面で入力された瞬間に機械的に検知できる種類のものです。人手で一件ずつ確認するには注文が多すぎますし、発送後に判明するのでは遅すぎます。
この記事では、Shopifyのチェックアウトで住所の入力ミスとPO Box宛ての注文を防ぐルールのつくり方を、対策アプリ「Validify Checkout Guard(バリディファイ・チェックアウトガード)」をつくった本人が整理します。考え方は不正注文対策や購入数制限と同じで、決済が完了する前に条件を検証して、引っかかった注文だけを止めることです。住所の問題は不正行為ほど目立たないぶん対策が後回しにされがちですが、実害は地味に積み上がります。
住所にまつわるトラブルの実害
住所のミスが届くまで気づけない理由は、決済は通ってしまうからです。代金は受け取れるし、注文として成立する。問題が見えるのは、配送システムが住所をはじくときか、運送業者が持ち帰ったときです。つまり、一番お金のかかる段階で初めて判明します。
実害を整理します。
まず再配送の費用です。住所不備で荷物が戻ってくれば、送料は往復で無駄になります。梱包材もやり直しで、再発送の手間も含めれば、1件あたりのコストは決して軽くありません。利益率の薄い商品では、数件の再配送で1ヶ月分の利益が消えることもあります。私書箱宛てで配達不能だった場合は、荷物を受け取りに来てもらうか、返送を待つかの対応になり、時間もかかります。
次にカスタマーサポートの工数です。「まだ届かない」という問い合わせが来て、配送状況を調べ、住所を確認し、再発送の手続きをする。どれも売上を生まない仕事です。住所の入力ミスは買う側の落ち度であっても、対応する工数はストア側が払います。対応が遅れれば、そこからさらに不満が育ちます。
そして、一番見えにくいのが評価への波及です。再配送のぶん届くのが数日遅れれば、レビューには「配送が遅い」と書かれます。原因が入力ミスであっても、書かれるのはストアの名前です。一度ついた低い評価は、後から直すのが難しい。
どの実害にも共通するのは、検知が発送後になることです。であれば、検知をもっと早い段階、チェックアウトで住所が入力された瞬間に持ってくるのが正攻法です。ここからは、その具体的なルールを書きます。
正規表現で郵便番号の形式をチェックする
一番よくある入力ミスは、郵便番号の形式の崩れです。桁が足りない、市外局番のような感覚で5桁だけ書かれる、全角で入力される。これらはルールで機械的に止められます。
ルールはどれも「基準 + 演算子 + 値」の形で書きます。日本の郵便番号の形式を強制するなら、次の3つです。
- 基準:郵便番号
- 演算子:正規表現に不一致
- 値:
^\d{3}-?\d{4}$
この正規表現は日本の郵便番号の形式(1234567、または123-4567)に一致します。入力された郵便番号がこの形式に不一致なとき、つまり7桁になっていない、桁が多い、英字が混ざっている、といった場合にチェックアウトが止まります。決済の前で止まるので、決済手数料もキャンセルの手続きも発生しません。
正規表現は大文字小文字を無視して評価され、最大200文字まで書けます。保存時にはコンパイルチェックが走るので、パターンの書き間違いでルールが壊れていることに気づかない、という事故は起きない作りです。正規表現を使える基準は10項目あり、郵便番号はそのひとつです。市区町村や住所行も基準として用意されているので、フォームに入力された住所の各部位に対して同じ考え方の検証を置けます。
ひとつ注意を書いておきます。上の正規表現は日本向けの形式を前提にしています。海外にも発送するストアがこのルールを全注文に無条件でかけると、外国の郵便番号(英字を含むもの、桁数が違うもの)がすべてブロックされてしまいます。越境ECのストアでは、配送国を条件に加えて日本宛ての注文だけに効くようにするか、後述の配送国のルールで判定を分けるのが安全です。ルールはANDで条件を重ねられるので、「配送国が日本」かつ「郵便番号が形式に不一致」だけを止める、という組み立てができます。
PO Box宛ての注文を検知する
私書箱(PO Box)宛ての注文は、国内配送では特に問題になります。日本の宅配便は私書箱への配達に対応していないため、発送してみてはじめて配達不能が判明します。荷物は私書箱を管理する郵便局に届くか、持ち帰られるか。どちらにしても、再発送と追加の送料はストア側の負担です。
また、私書箱と転送サービスの住所は、転売目的の仕入れにも使われます。一般向けの価格で仕入れられては困るストアでは、不正注文対策の文脈でも無視できない条件です。
このために専用の基準が用意されています。基準「PO Box検知」+ 演算子「真である」とするだけです。住所行1と住所行2にPO BOX、P.O. BOX、POB、post office box のパターンが含まれていれば検知し、大文字小文字は無視されます。「po box」でも「Po Box」でも引っかかります。単語のリストを自分で正規表現に書く必要はなく、基準を置くだけで済みます。
一般の注文は止めたいが、法人との取り決めで私書箱宛ての例外を置きたい場合は、条件を組み合わせます。たとえば「B2Bチェックアウトかどうか」や顧客タグの基準とAND/ORで重ねれば、法人の顧客には効かせない運用も作れます。法人注文まわりの別のルール(発注書のPO番号の必須化など)については、B2BのPO番号の記事で扱っています。
配送対象外の地域をブロックする
住所の形式よりも大きな単位の対策が、配送先そのものの制限です。
基準「配送国」は249カ国のピッカーから選べます。演算子「のいずれでもない」と組み合わせて発送できる国を列挙すれば、発送できない国への注文を先に止められます。国内限定のストアなら「配送国 が 日本 と等しくない」の1条件で足ります。日本語の住所フォームで入力された海外の住所や、越境ECで配送契約のない国への注文を受けてから断るより、チェックアウトで止めるほうが双方にとって消耗がありません。配送契約のない国の住所は、郵便番号の形式チェックとも相性が悪いので、国の単位で先に止めるほうが筋がよい場面も多いです。
国内の中での絞り込みには、基準「都道府県/州コード」が使えます。離島だけを発送対象外にしたい、特定の県だけ冷蔵便の対応外にしたい、といった場合に、コードを列挙して演算子「のいずれか」でブロックできます。さらに配送方法名や配送方法タイプも基準にあるので、「この配送方法ではこの地域に対応していない」という条件も組み立てられます。配送の実情に合わせて、細かく止められる一方で、1ルールあたり25条件まで、1ポリシーあたり25ルールまでという上限の範囲で重ねることになります。まず広い単位(国)で置き、トラブルの実績に応じて狭い単位(都道府県)へ足していくのが、後から見て理由の追える順序です。
この方法でできないこと
ここで正直に限界を書いておきます。このアプローチは、フォーム入力の形式の検証とブロックに特化しています。それ以外のことはやりません。
まず、郵便番号からの住所の自動補完はしません。入力途中に住所の候補を提示したり、番地を補完したりするのは、住所フォーム系のアプリの領域です。本アプリは、入力された住所の形式を検証し、基準に引っかかればチェックアウトを止める、その一役だけを担います。補完と検証は別の仕事で、両方をひとつに持つより、それぞれ単機能であるほうが安定すると私は考えています。
次に、住所の実在確認はしません。書かれた住所が実際に存在するか、その人在住かといった与信的な確認は行いません。あくまで、形式が不正か、私書箱か、配送対象外か、ルールで判定できる条件の検証です。住所の実在性のリスクは、このアプリの守備範囲の外だと最初から割り切って設計してあります。
逆に言えば、特化しているぶん動きは単純です。ブロックのみの動作で、警告だけ出す、フラグを立てるといった中間の状態はありません。アプリ側でエラーが起きてもチェックアウトそのものは止まらない設計(フェイルオープン)なので、対策の不調が正規の顧客の購入を妨げることはありません。できないことを明示しておくのは、導入してからの落差をなくすためです。
メッセージと導入
ルールで止めるとき、何がいけないのかを買物客に伝えるメッセージを書けます。郵便番号の形式で止めたときに「郵便番号が正しくありません」とだけ出るのと、「郵便番号は1234567、または123-4567の形式でご入力ください」と出るのとでは、正規の顧客が買い直せるかが変わります。何に引っかかったかと、次の一手を書くのがコツです。PO Boxで止める場合も同様で、私書箱宛てでは配達できない旨と、住所を差し替えれば購入できる旨を書けば、正規の顧客は住所を直して戻ってきます。
メッセージは日本語をはじめ36言語に対応していて、買物客の言語で表示されます。1メッセージ500文字まで書けます。なお、多言語化しているのはこの買物客向けメッセージの範囲で、設定画面そのものは英語です。日本語で書いたメッセージがそのまま日本の買物客に表示される、という関係です。
導入は7日間の無料トライアルから始められます。まずは郵便番号の形式チェックとPO Box検知の2つのルールを置いて、トライアル期間中にご自身のストアの注文履歴と見比べ、効きすぎていないか、すり抜けていないかを確認するのがおすすめです。月額$5で、ルールはご自身のストアのShopifyデータの中に保存されます。設定に困ったら、日本語で24時間以内に、つくった本人が返します。アプリの詳細はこちらから確認できます。