Shopify Functions / API 2026-04

請求先住所と PO 番号を
「サーバー側の検証関数」で弾けるようになった

Cart and Checkout Validation Functions に billingAddresspoNumber が追加。クライアント側 UI 拡張に頼らず、禁止国の請求先ブロックや B2B 注文の PO 番号必須化をチェックアウトで強制できる。

このページの構成
  1. そもそも何が変わるのか(30秒で理解)
  2. 仕組み図解 : 入力から検証エラー表示までの流れ
  3. 追加された入力フィールドとエラーターゲット
  4. 従来(UI 拡張依存)vs 2026-04(関数で検証)
  5. 影響(互換性)
  6. 技術者が押さえるべき5つのポイント
  7. 業務に活かせる3つのユースケース
  8. 提案で使える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仕組み図解 : 入力から検証エラー表示までの流れ

顧客の入力 請求先住所 PO 番号 checkout / cart Function 入力グラフ billingAddress poNumber 検証外では null Validation Function ルールを評価 チェックアウトに項目別エラー $.cart.billingAddress.{field} $.cart.poNumber 該当フィールドにエラー表示
関数が対象ターゲットに対して validation(エラー)を返すと、チェックアウト側が請求先住所・PO 番号のフィールドレベルのエラーとして表示する。
billingAddresspoNumberすべての 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つのポイント

2026-04

1. 必要 API バージョンは 2026-04

この検証はAPI バージョン 2026-04 から利用可能。関数のターゲット API バージョンを上げることが前提。

billing poNumber

2. 入力グラフは全 Function 共通

billingAddresspoNumber はすべての Shopify Function 入力グラフに追加される。フィールド自体はどの関数でも参照できる。

null

3. 検証以外では null

両フィールドは Cart and Checkout Validation 以外では null を返す。他種の Function で値を期待して実装しないこと。

$.cart.billingAddress $.cart.poNumber

4. 新エラーターゲットは 2 系統

$.cart.billingAddress.{field}(全標準住所サブフィールド)と $.cart.poNumber。これらに validation を返すとフィールド別エラーになる。

UI FN

5. クライアント UI 拡張からサーバー側へ寄せられる

禁止する請求先国のブロックや B2B の PO 番号必須化を、クライアント側 UI 拡張に依存せず関数で強制可能に。破壊的変更は無いので、既存関数に検証を追加するだけで導入できる。

7業務に活かせる3つのユースケース

B2B PO #
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 番号必須化をサーバー側で強制できる。
破壊的変更は無く、既存関数に検証を足すだけで導入できる。」