請求先住所と PO 番号を 「サーバー側の検証関数」で弾けるようになった
原題: Cart and checkout validation adds billing address and PO number error targets
- Shopify Functions
- Checkout
- Cart and Checkout Validation
- B2B
- PO Number
- billingAddress
- API 2026-04
- 新機能
図解 : Cart and Checkout Validation に請求先住所・PO番号のエラーターゲットが追加 Shopify Functions / API 2026-04 請求先住所と PO 番号を 「サーバー側の検証関数」で弾けるようになった Cart and Checkout Validation Functions に billingAddress と poNumber が追加。クライアント側 UI 拡張に頼らず、禁止国の請求先ブロックや B2B 注文の PO 番号必須化をチェックアウトで強制できる。 このページの構成 そもそも何が変わるのか(30秒で理解) 仕組み図解 : 入力から検証エラー表示までの流れ 追加された入力フィールドとエラーターゲット 従来(UI 拡張依存)vs 2026-04(関数で検証) 影響(互換性) 技術者が押さえるべき5つのポイント 業務に活かせる3つのユースケース 提案で使える1行サマリ 1 そもそも何が変わるのか API バージョン 2026-04 から、Cart and Checkout Validation Functions で 請求先住所(billing address) と PO 番号(purchase order number) を検証できるようになった。 入力グラフに該当フィールドが追加され、エラーメッセージを出すための新しいチェックアウトフィールドターゲットが用意された。 従来 : クライアント側 UI 拡張頼み 請求先住所や PO 番号のチェックは、チェックアウトの UI 拡張(クライアント側)で実装するしかなかった。サーバー側で確実に強制する手段が無い。 2026-04 : 検証関数で強制 禁止する請求先国のブロックや、B2B 注文での PO 番号必須化といったコンプライアンスルールを、UI 拡張に依存せず関数側で強制できる。 2 仕組み図解 : 入力から検証エラー表示までの流れ 関数が対象ターゲットに対して validation(エラー)を返すと、チェックアウト側が請求先住所・PO 番号の フィールドレベルのエラー として表示する。 billingAddress と poNumber は すべての Shopify Function 入力グラフ に存在するが、Cart and Checkout Validation 以外では null を返す。 3 追加された入力フィールドとエラーターゲット 入力グラフのフィールド 入力グラフ billingAddress 請求先住所。全 Function 入力グラフで利用可能。Cart and Checkout Validation 以外では null 。 入力グラフ poNumber PO(発注/購買オーダー)番号。全 Function 入力グラフで利用可能。Cart and Checkout Validation 以外では null 。 エラーメッセージ用のチェックアウトフィールドターゲット ターゲット 対象 $.cart.billingAddress.{field} 請求先住所の標準アドレスサブフィールドすべて $.cart.poNumber PO 番号 ※ {field} に指定できる個々のサブフィールド名の一覧は本記事に記載なし。「すべての標準アドレスサブフィールド」とのみ記載。 4 従来(UI 拡張依存)vs 2026-04(関数で検証) 項目 従来 API 2026-04 以降 請求先住所の検証 UI 拡張 クライアント側で実装 関数 $.cart.billingAddress.{field} で検証 PO 番号の検証 UI 拡張 クライアント側で実装 関数 $.cart.poNumber で検証 強制力 クライアント側 UI に依存 サーバー側の検証関数で強制 想定ユースケース — 禁止する請求先国のブロック/B2B 注文の PO 番号必須化など 既存関数への影響 — 破壊的変更なし 任意で検証を追加 5 影響(互換性) 破壊的変更なし 既存の Function はそのまま動作し続ける。今回のターゲットに対する検証は 任意で追加 できる。 フィールドレベルでエラー表示 関数がこれらのターゲットに validation を返すと、チェックアウトが請求先住所・PO 番号の項目別エラーとして表示する。 導入は「やりたければ検証を足す」だけ。既存運用を止めずに、必要なストア・必要なルールから段階的に適用できる。 6 技術者が押さえるべき5つのポイント 1. 必要 API バージョンは 2026-04 この検証はAPI バージョン 2026-04 から利用可能。関数のターゲット API バージョンを上げることが前提。 2. 入力グラフは全 Function 共通 billingAddress と poNumber はすべての Shopify Function 入力グラフに追加される。フィールド自体はどの関数でも参照できる。 3. 検証以外では null 両フィールドは Cart and Checkout Validation 以外では null を返す。他種の Function で値を期待して実装しないこと。 4. 新エラーターゲットは 2 系統 $.cart.billingAddress.{field} (全標準住所サブフィールド)と $.cart.poNumber 。これらに validation を返すとフィールド別エラーになる。 5. クライアント UI 拡張からサーバー側へ寄せられる 禁止する請求先国のブロックや B2B の PO 番号必須化を、クライアント側 UI 拡張に依存せず関数で強制可能に。破壊的変更は無いので、既存関数に検証を追加するだけで導入できる。 7 業務に活かせる3つのユースケース USE CASE 1 B2B 注文で PO 番号を「サーバー側で必須化」 課題 B2B 取引で発注(PO)番号の入力を必須にしたいが、クライアント側 UI 拡張だと回避され得て確実に強制できない。 打ち手 Cart and Checkout Validation Function で $.cart.poNumber が空ならエラーを返し、チェックアウト完了をブロック。 効果 PO 番号未入力の注文をサーバー側で確実に弾き、経理・請求の照合漏れを防ぐ。 技術メモ API バージョン 2026-04 が前提。 poNumber は Cart and Checkout Validation 以外では null 。 USE CASE 2 禁止する請求先国をチェックアウトでブロック 課題 輸出規制やコンプライアンス上、特定の国の請求先住所からの注文を受けたくない。 打ち手 関数で請求先住所の国コードを評価し、禁止国なら $.cart.billingAddress.{field} にエラーを返す。 効果 禁止国の請求先を該当フィールドのエラーとして表示し、チェックアウト段階で受注をブロック。 技術メモ UI 拡張に依存せずサーバー側で強制できるのが要点。 billingAddress は検証以外で null になる点に注意。 USE CASE 3 請求先住所のサブフィールド単位で不備を是正 課題 請求先住所の不備(必要なサブフィールドの欠落など)が後工程で問題になる。 打ち手 $.cart.billingAddress.{field} で標準アドレスサブフィールドを検証し、問題のあるフィールドにエラーを返す。 効果 顧客にどの項目を直せばよいかをフィールド別エラーで提示し、チェックアウト中に是正させる。 技術メモ 指定できる個別サブフィールド名の詳細は本記事に記載なし。実装前に開発者ドキュメントで確認すること。 8 提案で使える1行サマリ 「API 2026-04 から、 請求先住所と PO 番号を Cart and Checkout Validation Function で検証可能に。 クライアント側 UI 拡張に依存せず、 禁止国の請求先ブロックや B2B の PO 番号必須化をサーバー側で強制 できる。 破壊的変更は無く、既存関数に検証を足すだけで導入できる。」 source : shopify.dev / changelog / cart-and-checkout-validation-adds-billing-address-and-po-number-error-targets 公開日 : 2026-04-01(Developer Changelog / Functions / 2026-04)