Shopify B2B注文でPO番号を必須にする:法人チェックアウトルールの設定方法
法人向けの卸売りをしていると、こんな連絡が来ることがあります。「発注書番号がないので、経理の処理が進められません」。B2B(法人間取引)では、注文は相手企業の発注書(PO、Purchase Order)に基づいて出されるのが基本で、その番号がないまま届いた請求は、相手の経理システムでは突き合わせる対象が見つかりません。結果は入金の遅れです。そしてこちらは、注文番号と発注書番号を照合して調べ、修正のメールを送り、相手の返事を待つ。売れたはずの注文が、手続きのために止まります。
この記事では、ShopifyのB2BチェックアウトでPO番号の入力を必須にし、入力がない注文を決済の前に止めるルールのつくり方を、対策アプリ「Validify Checkout Guard(バリディファイ・チェックアウトガード)」をつくった本人が整理します。考え方は不正注文対策や住所の入力ミスの検証と同じで、チェックアウトの画面で条件を機械的に検証し、引っかかった注文だけを止めることです。B2Bの注文には法人取引ならではの検証ポイントがいくつかあるので、順に書いていきます。
PO番号が必須になる場面
PO番号を要求すべきかは、相手企業の調達の仕組みで決まります。日本の法人取引では、次の三つの局面でPO番号が実質必須になっています。
まず、企業の調達プロセスです。一定額を超える購入は、現場の担当者が自分の判断で買えない作りになっているのが普通です。購買部門が発注書を起票し、上長の承認を受けて、その番号付きで注文が出る。つまりPO番号とは、この購入が相手企業の内部承認を通っています、という証明です。これがない注文は、相手の内部手続きの外にある注文ということになり、受け付けられないことがあります。
次に、経理の三文書照合です。企業の経理は、発注書、受領書、請求書の三つを突き合わせて支払いを確定させます。スリーウェイマッチと呼ばれる仕組みで、請求書にPO番号が載っていないと照合の起点がなく、その請求書は処理待ちの山に置かれます。何日も経ってから「発注書番号を教えてください」と問い合わせが来て、その分入金が遅れる。金額の大きい法人注文ほど、この遅れの影響は重くなります。
そして、与信管理です。PO番号付きの発注書は、相手企業が支払いを約束した記録です。番号のない、口頭やチャットだけの注文は、トラブルになったときに両社で参照できる文書が残りません。継続取引の相手ほど、記録を残す意味があります。
ルール例:PO番号が空ならブロック
実際のルールを書きます。チェックアウトガードのルールは、どれも「基準 + 演算子 + 値」の形で組み立てます。B2BチェックアウトでPO番号を必須にするなら、2つの条件をANDで重ねるだけです。
- 基準:B2Bチェックアウト / 演算子:真である
- 基準:PO番号 / 演算子:空である
B2Bチェックアウトとは、法人顧客が会社のアカウントから、その会社所在地(ロケーション)を指定して注文を出す、ShopifyのB2B販売の仕組みのことです。上のルールは「B2Bチェックアウトである」かつ「PO番号が空である」注文を、決済が進む前に止めます。一般消費者の注文には影響しません。ブロックは決済前でだけ起こり、引っかからなかった注文には一切干渉しない作りです。
ここで特記したいのが、エラーメッセージの表示場所です。PO番号は、フィールド単位でエラーを出せる2つの基準のひとつです(もうひとつは後述の請求先会社名)。ルールに引っかかると、エラーメッセージがPO番号の入力欄のすぐ下に表示されます。画面の上部に赤い帯が出るのとは違い、買う側は何を直すべきか一目でわかります。「発注書番号(PO番号)を入力してください」と日本語で書いておけば、入力して先へ進むだけです。ブロックのメッセージは36言語に対応していて、日本語は第一級の扱いです。相手企業の担当者の言語設定に合わせて表示されます。
会社・所在地でゲートを設ける
PO番号の必須化とよく組み合わせるのが、注文できる相手を会社・所在地の単位で絞るゲートです。B2B向けの基準には、会社名、会社ID、会社所在地名、会社所在地ID、請求先会社名があります。
例をひとつ挙げます。登録済みの法人顧客以外には、卸価格のコレクションを買わせたくない場合です。会社の登録が済んでいない注文、たとえば会社名が空である注文のうち、卸売りコレクションを含むものを止められます。コレクションはラインアイテム側の基準として用意されているので、特定の商品群を含むかどうかを条件に組み込めます。組み立て方の基本はPO番号の例と同じで、条件はANDとORで重ねられます。
請求先会社名も、請求書の宛先を正確に保つうえで役に立つ基準です。支払いを相手企業の経理で処理してもらうなら、宛先の会社名は正式名称で揃えたいところです。請求先会社名が空である注文を止める、といったルールが置けます。正式名称から始まらないものは、正規表現に不一致(例: ^正式名称)で止められます。正規表現は200文字まで書けて、保存時にコンパイルチェックが走ります。この基準もフィールド単位のエラーに対応しているので、入力欄の直下で日本語で訂正を促せます。
B2B向けの基準一覧
B2B専用の基準は8種類です。全体像を改めて並べます。
- PO番号
- B2Bチェックアウトかどうか
- 会社名
- 会社ID
- 会社所在地名
- 会社所在地ID
- 請求先会社名
- 会社所在地の注文回数
会社IDと会社所在地IDは、名前の一致ではなくShopifyが割り振るIDで判定するので、同名の会社が複数あったとしても誤判定がありません。会社所在地の注文回数は、その会社・所在地がこれまでに何回注文したかを見る基準です。初回の取引だけ一度確認を挟みたい、3回目以降の相手には条件を緩めたい、といった使い方ができます。
ひとつ注意を書いておきます。フィールド単位のエラーになるのはPO番号と請求先会社名の2つだけです。他の6つの基準に引っかかった注文は、チェックアウトの画面に赤い帯(バナー)でブロックの理由が表示されます。理由が画面に出ること自体は同じなので、買う側が何も知らずに先へ進めない、という状態にはなりません。
一般顧客とB2Bを分ける考え方
実務でよく聞く質問が「B2Bのルールと一般顧客のルールを、どう使い分けるか」です。
基本の考え方は単純で、B2Bチェックアウトかどうかを条件のひとつに使うことです。B2B専用にしたいルールには「B2Bチェックアウトが真である」をANDで加え、一般顧客だけに効かせたいルールには「偽である」を加える。これで、同じストアの中で法人向けと消費者向けの検証をきれいに分けられます。
一般顧客側の仕分けには、顧客タグが使えます。卸価格の案内をタグを付けた顧客にだけ開いているなら、顧客タグの基準で線を引く。この考え方とルールの組み立て方は、不正注文対策の記事で詳しく書いたものがそのまま参考になります。
ブロックの理由を伝える文言も大事です。法人アカウントでの注文を促したい場面では、「この価格でご購入いただくには、法人アカウントでログインしてください」のように、日本語で次の一手まで書いておくと、買う側は何をすべきかがわかり、サポートへの問い合わせを減らせます。メッセージは1ルールにつき500文字まで書けるので、窓口の案内を含める余裕もあります。
導入
チェックアウトガードは月額$5で、7日間の無料トライアルがあります。まずはPO番号の必須化の1ルールだけを置いて、トライアル期間中にご自身のストアのB2B注文と見比べ、効きすぎていないか、すり抜けていないかを確認するのがおすすめです。B2Bまわりの基準は、プロファイルを「B2B法人ルール」に切り替えるとまとめて扱えます。設定に困ったら、日本語で24時間以内に、つくった本人が返します。アプリの詳細はこちらから確認できます。