Shopify Plus / Enterprise 向けに、同じ注文の中で商品ごとに「配送」か「店舗受取」を選べる単一チェックアウトが登場。これまでは配送方法ごとに別注文が必要だった。デリバリー/フルフィルメント情報の流れ方が変わるため、アプリ提供者は今すぐ feature preview で検証・改修を。
配送したい商品と店舗受取したい商品を、それぞれ別のチェックアウトで購入する必要があった。決済も 2 回。
商品ごとに配送 / 店舗受取を選択。1 つの注文の中に「配送用」と「受取用」の複数フルフィルメントオーダーが生成される。決済は 1 回。
delivery_method(SHIPPING / PICK_UP)を読み、商品をそれぞれのルートへ振り分ける必要がある。新しい API フィールドの追加も、破壊的なスキーマ変更も無い。既存のフィールドがそのまま使われる。
既存フィールドが これまで来なかった組み合わせの値を返すようになる。ここを前提に作っていないと壊れる。
| 対象 | これまで | これから(新仕様) |
|---|---|---|
Checkout の deliveryGroups |
実質ひとまとまりで扱っていたケースが多い | 複数 各グループが「その商品群をどう届けるか」を表す。配送グループと受取グループが同居しうる。 |
| Order 内の fulfillment order | 同一注文は基本同じ配送方法 | 混在 同じ注文に SHIPPING と PICK_UP の fulfillment order が両方存在しうる。 |
delivery_method フィールド |
注文単位の前提で読んでいた可能性 | 要参照 fulfillment order ごとに付与され、各グループのフルフィルメント方法を示す。グループ単位で読む。 |
| 項目 | 従来 | Ship and pickup in one order |
|---|---|---|
| 顧客の購入体験 | 分割 配送と受取で別注文・別決済 | 統合 商品ごとに方法を選び 1 注文・1 決済 |
| 注文と配送方法の関係 | 1 注文 = 1 配送方法(前提) | 1 注文の中に配送と受取が 混在 |
| fulfillment order | 単一方法 | SHIPPING と PICK_UP が併存しうる |
| API スキーマ | — | 変更なし 既存フィールドの値の組み合わせが変わる |
| アプリ側の対応 | 不要 | 要改修・要検証 feature preview で今すぐテスト |
| 対象マーチャント | — | Shopify Plus / Enterprise(配送+ローカルピックアップ有効) |
複数 deliveryGroup を想定していないロジックが checkout 中に失敗し、購入を止めてしまう。
送料・税・在庫などを「注文 = 単一配送方法」で合算していると、配送+受取の混在で誤った数値を出す。
delivery_method を見ずに一律ルーティングすると、受取商品を倉庫出荷に回す等の誤配送が起きる。
「Dev stores」から開発ストアを新規作成。Shopify Plan で Plus、「Test a feature preview」で Ship and pickup を選択。
配送商品と店舗受取商品の両方を含むテスト注文を実際に発注し、end-to-end で挙動を確認。
delivery_method で振り分け確認アプリが fulfillment order の delivery_method を読み、商品を正しいルートに振り分けているか検証。
公式のテストガイドを読み、「1 注文に配送方法は 1 つ」と仮定している箇所をコード内で洗い出す(送料計算・在庫引当・出荷連携・表示まわり)。
アプリ更新がマーチャント向けの挙動やワークフローを変える場合は、できるだけ早く各マーチャントに連絡する。疑問・最新情報は developer forum で。
スキーマは不変、破壊的変更も無い。既存フィールドが新しい値の組み合わせを返すのがこの変更の核心。差分は「形」ではなく「中身」に出る。
deliveryGroups は複数前提でCheckout は複数の deliveryGroups を持ちうる。先頭グループだけを見る・単一前提で集計する実装は要修正。グループごとにループする。
同じ注文に SHIPPING と PICK_UP の fulfillment order が併存しうる。注文単位で配送方法を決め打ちしない。
delivery_methodfulfillment order の delivery_method(SHIPPING / PICK_UP)を読んで、出荷連携・在庫・通知のルーティングを分岐させる。
記事タグは Admin GraphQL API / Storefront GraphQL API / Checkout UI / Functions / Customer Accounts / Admin Extensions に及ぶ。送料・税の計算、在庫引当、配送ステータス表示、顧客アカウントの注文表示、配送系 Function まで、「注文に配送方法は 1 つ」という暗黙の仮定を持つ全箇所を feature preview で実データ検証すること。
delivery_method を読んで「倉庫出荷」と「店舗取り置き」を分岐させるようルーティングを改修。SHIPPING / PICK_UP の両値が同一注文に来る前提でテストケースを追加する。delivery_method と進捗を読み、「配送:追跡番号」「店舗受取:受取準備状況」を分けて表示するよう改修。SHIPPING と PICK_UP が混在する新しい組み合わせが来る。delivery_method 前提の改修を済ませ、ロールアウト前にチェックアウトエラーと誤配送を潰す。」