API CHANGE

マーケット別配送設定が
Admin APIで対応

API 2026-07から、マーケットオブジェクトに配送フィールドが追加。別途配送プロファイルを作らずに、マーケットごとの配送戦略をGraphQLで完結できるようになりました。

MARKET OBJECTMarket.delivery.shipping.isEnabled.optionDefinitions.freeDelivery...FlatRate定額配送ValueBased金額ベースWeightBased重量ベースCarrierCalcキャリア計算MUTATIONSmarketCreatemarketUpdateremoveShippingAPI version 2026-07 — GraphQL Admin API

2026年7月リリースのAPI version 2026-07から、GraphQL Admin APIにてマーケットオブジェクトへ直接配送設定を行えるようになりました。これまで別途配送プロファイルリソースを作成する必要があった地域別の配送戦略が、marketCreate/marketUpdate ミューテーション一本で管理できます。対象はShopify Marketsを利用するすべてのストアと、関連アプリ開発者です。

OVERVIEW

01変更の全体像:配送設定の継承ツリー

Shop DefaultisShipping: false (no shipping)Market A(設定あり)isEnabled: true独自の配送オプション適用Market B(継承)delivery.shipping = null親の設定を引き継ぎMarket C(無効化)isEnabled: falseチェックアウト非表示子Marketも独自設定可removeShipping: true → 親への継承に戻す

Market.delivery.shippingnull の場合は親マーケット(またはショップデフォルト)の配送設定を継承します。マーケットに親がない場合、ショップデフォルトは「配送なし」となります。

OPTION TYPES

02サポートされる4種類の配送オプション

FlatRate定額配送複数レートグループValueBased金額ベースカート金額で変動WeightBased重量ベース単一レートグループCarrierCalcキャリア計算既存サービス参照
オプション種別 レートグループ数 主な用途
DeliveryFlatRateOptionDefinition 1つ以上 固定料金
DeliveryValueBasedOptionDefinition 1つ以上 カート金額に応じた変動
DeliveryWeightBasedOptionDefinition 1つのみ 荷物の重量に応じた変動
DeliveryCarrierCalculatedOptionDefinition 1つのみ 既存キャリアサービスで計算
USE CASES

03業務に活かせる具体的なユースケース

課題
日本・北米・欧州の3市場で異なる送料体系(国内一律料金 / 重量課金 / 現地キャリア計算)を運用したいが、従来の配送プロファイル管理では設定が複雑で保守コストが高い。
打ち手
各マーケットに対して marketUpdate でそれぞれ適切な配送オプション種別(FlatRate / WeightBased / CarrierCalculated)を設定する。親マーケットの設定は子マーケットに継承されるため、地域ごとの差分だけを上書き設定すれば済む。
効果
配送プロファイルを複数作成・管理する必要がなくなり、マーケット単位での一元管理が可能になる。変更箇所が明確になり、設定ミスのリスクが低下する。
技術メモ
read_markets + write_markets スコープが必要。重量ベースはレートグループを1つしか持てない制約があるため、複数条件が必要な場合はFlatRateかValueBasedの利用を検討すること。
課題
特定地域(例:離島・海外領土など)は配送不可エリアとして設定したいが、そのマーケット向けにカスタムアプリが別の配送オプションを提示してしまうケースがある。
打ち手
MarketUpdateInput.delivery.shipping.isEnabled: false を設定する。これにより、そのマーケット向けのアプリ管理配送オプションも含め、チェックアウト時に配送選択肢が表示されなくなる。
効果
配送不可エリアへの誤注文を防止できる。アプリ側の配送オプションも同時に無効化されるため、複数の設定箇所を個別に管理する手間が省ける。
技術メモ
isEnabled: false はマーケットレベルの設定を保持したまま非表示にする。設定を丸ごと削除して親へ戻したい場合は removeShipping: true を使う(挙動が異なる)。
課題
期間限定キャンペーンとして特定マーケット向けに「5,000円以上で送料無料」という条件付き配送を実装したいが、現在のAPIでは実現が難しい。
打ち手
DeliveryValueBasedOptionDefinition を利用し、minValue/maxValue でレートを段階設定する。または任意の配送オプションに freeDeliveryMinimumValue フィールドを設定することで無料配送閾値を指定できる。
効果
マーケット単位でキャンペーン期間中のみ配送条件を切り替えられる。キャンペーン終了後は optionDefinitionsToDelete で削除するか isActive: false で非アクティブ化するだけで元に戻せる。
技術メモ
レートグループの conditions フィールドで対象コレクションや発送元ロケーションを絞り込むことも可能。collectionsCount / originLocationsCount でQuery時に件数確認できる。
DEVELOPER NOTES

04技術者目線のポイント

APIバージョン

本機能は 2026-07以降 のみ対応。それ以前のバージョンでは Market オブジェクトに delivery フィールドが存在しないため、バージョンアップが必要。

スコープ要件

Read操作(Query)は read_markets のみ必要。Write操作(Mutation)は read_marketswrite_markets の両方 が必須。片方だけでは Mutation が通らないので注意。

継承モデルの理解

Market.delivery.shippingnull → 親から継承。親なしマーケットの場合は「配送なし」がデフォルト。removeShipping: true で意図的に継承状態へ戻せる。isEnabled: false とは別の概念。

スタンドアロンQueryなし

マーケット配送設定専用のルートQueryやミューテーションは存在しない。すべて Market オブジェクト、marketCreatemarketUpdate を経由して読み書きする設計。

レートグループの制約

WeightBasedとCarrierCalculatedオプションはレートグループが 1つのみ。FlatRateとValueBasedは複数グループ可。キャリア計算は既存の DeliveryCarrierService IDを参照する必要がある。

アプリへの影響

isEnabled: false を設定すると、そのマーケットに対してアプリが管理する配送オプションも すべて無効化 される。サードパーティ配送アプリを使用している場合は動作確認が必要。

SUMMARY

05提案で使える1行サマリ

API 2026-07から、別途配送プロファイルを作成せずにマーケットオブジェクトへ直接配送ルールを設定できるようになり、多言語・多地域ECの配送戦略をGraphQL一本でシンプルに管理できます。

Source: https://shopify.dev/changelog/market-driven-delivery-profiles-admin-api | 公開日: 2026年7月1日 ※本記事はShopify公式ではなく独立系メディアcompassによる解説です。最終確認は必ず公式ドキュメントをご参照ください。