Admin GraphQL API / 2026-07

Market-driven shipping Admin API
配送設定を「マーケットに直付け」できる新 API

API バージョン 2026-07 から、Market オブジェクトに delivery.shipping が追加。別途 shipping profile を作らなくても、マーケットごとに配送料・配送方式を GraphQL で設定できるようになった。

このページの構成
  1. そもそも何が変わるのか(30秒で理解)
  2. 仕組み図解 : Market に配送がぶら下がる
  3. 4つの配送オプションタイプ
  4. 継承モデル : null / isEnabled / removeShipping
  5. 操作一覧(読み取り・作成・更新・削除)
  6. 必要な権限スコープ
  7. 技術者が押さえるべき5つのポイント
  8. 業務に活かせる3つのユースケース
  9. 提案で使える1行サマリ

1そもそも何が変わるのか

これまで、マーケットごとに配送戦略を変えるには 別々の shipping profile リソースを作る 必要があった。
2026-07 からは、配送設定を Market オブジェクトに直接(Market.delivery.shipping 持たせられる。アプリはプロファイルを増やさずにマーケット別の配送を実装できる。

従来 : 別リソースで紐付け

マーケット別に配送を出し分けたいとき、独立した shipping profile を作って対応。リソースが分散し、アプリの管理が複雑化。

shipping

新 : マーケットに直付け

Market.delivery.shipping で読み書き。marketCreatemarketUpdate の既存ミューテーションで完結。

2仕組み図解 : Market に配送がぶら下がる

Market 例 : 日本 / EU delivery .shipping ShippingConfiguration isEnabled : true / false activeOptionDefinitionsCount optionDefinitions[] currency / freeDeliveryMinimumValue OptionDefinition Flat / Value / Weight / CarrierCalculated rateGroups → rates → conditions
ルート直下のクエリ/ミューテーションは無い。市場配送設定に専用のトップレベル操作は存在せず、読み書きは必ず MarketmarketCreatemarketUpdate を経由する。

34つの配送オプションタイプ

配送オプションは DeliveryOptionDefinitionCreateInput / DeliveryOptionDefinitionUpdateInput で管理。API がサポートするタイプは次の4つ。

¥¥
定額(Flat)
DeliveryFlatRateOptionDefinition
固定価格。rate group を複数持てる
金額別(Value)
DeliveryValueBasedOptionDefinition
カート金額でレート決定。複数 group 可
kg
重量別(Weight)
DeliveryWeightBasedOptionDefinition
重量でレート決定。group はちょうど1つ
配送業者計算(Carrier)
DeliveryCarrierCalculatedOptionDefinition
carrier service が算出。group は単一
各オプションは currencyisActive を持ち、任意で freeDeliveryMinimumValue(送料無料になる下限金額)を設定できる。rate group は conditions で特定の商品コレクション・出荷元ロケーションに限定可能。

4継承モデル : null / isEnabled / removeShipping

「設定しない」「設定はするが表示しない」「親から継承に戻す」の3つを、それぞれ別のフィールドで表現する。混同注意。

状態指定顧客への見え方
未設定 = 親から継承 Market.delivery.shippingnull 継承 親マーケットの配送を継承。親が無いマーケットはショップ既定(=配送なし)を継承
設定は保持・表示のみ停止 shipping.isEnabled: false 非表示 チェックアウトで配送オプションを出さない。アプリ管理の配送も同時に無効化
マーケット固有設定を削除 delivery.removeShipping: true 継承に復帰 自前の設定を捨て、親から配送を継承する状態に戻す
isEnabled: falseremoveShipping: true は別物。前者は設定を残したまま表示だけ止める、後者は設定自体を消して継承に戻す。「一時的に売らない」と「この市場の独自ルールを撤廃」で使い分ける。

5操作一覧(読み取り・作成・更新・削除)

やりたいこと使う入力フィールド
マーケットの配送設定を読むMarket.delivery.shipping(isEnabled / activeOptionDefinitionsCount / optionDefinitions)
作成時に配送を追加MarketCreateInput.delivery.shipping
既存マーケットの配送を更新MarketUpdateInput.delivery.shipping
マーケット単位の配送を削除(継承へ)MarketUpdateInput.delivery.removeShipping
オプションを新規作成shipping.optionDefinitionsToCreate(flatRate / valueBased / weightBased / carrierCalculated)
オプションを更新optionDefinitionsToUpdate(id 指定。flat は rateGroupsToUpdate で個別更新可)
オプションを削除optionDefinitionsToDelete(オプション ID の配列)
Flat と Value-based は rate group を複数持てる。Weight-based は rate group がちょうど1つ、Carrier-calculated も rate group は単一で既存の carrier service を参照する(carrierServiceIdautoIncludeNewServicespercentageAdjustment)。

6必要な権限スコープ

読み取り(Query)

read_markets が必要。

書き込み(Mutation)

read_marketswrite_markets両方が必要。

7技術者が押さえるべき5つのポイント

1. プロファイル不要でマーケット別配送

別リソース(shipping profile)を作らずに、Market に配送を直接ぶら下げられる。アプリは異なるマーケットへ異なる配送戦略を、より少ないリソースで実装できる。

no root

2. トップレベル操作が無い

市場配送のためのルートクエリ/単独ミューテーションは存在しない。必ず Market / marketCreate / marketUpdate 経由でアクセスする設計。

3. null は「継承」を意味する

shippingnull は「未設定」ではなく親から継承。親が無ければショップ既定(配送なし)を継承。空扱いでロジックを組むと誤判定になる。

OFF DEL

4. 無効化と削除を混同しない

isEnabled:false は設定を残して表示だけ停止(アプリ管理の配送も止まる)。removeShipping:true は設定を消して継承へ復帰。挙動が根本的に違う。

5. rate group の個数制約はタイプで異なる

Flat / Value-based は複数の rate group を持てるが、Weight-based はちょうど1つCarrier-calculated は単一。さらに rate group は conditions で商品コレクション出荷元ロケーションに限定できる。実装時はタイプごとに group 数のバリデーションを分岐させる。

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

USE CASE 1

越境 EC : 国ごとに配送料テーブルをコードで一括管理

課題
複数マーケットを持つストアで、国ごとに定額・重量別・金額別の送料を出し分けたいが、shipping profile が乱立して保守がつらい。
打ち手
各 Market に marketUpdatedelivery.shipping を設定。定額(Flat)と重量別(Weight)をマーケット別に投入し、設定を IaC 的に GraphQL スクリプトで管理。
効果
プロファイル増殖を回避し、配送ルールをコードレビュー可能な単一ソースに集約。
技術メモ
Weight-based は rate group がちょうど1つの制約に注意。Flat は複数 group + conditions でコレクション別も可。
送料無料 閾値
USE CASE 2

カート金額連動の送料無料キャンペーンをマーケット別に

課題
「◯◯円以上で送料無料」を市場ごとに閾値・通貨を変えて出したいが、手動設定はミスと運用負荷が高い。
打ち手
Value-based オプションで min/max 金額別レートを組み、freeDeliveryMinimumValue で市場ごとの送料無料下限を設定。キャンペーン期間だけ API で切り替え。
効果
市場別の送料無料ラインを CVR 施策としてプログラム的に運用。終了時は optionDefinitionsToUpdate で戻す。
技術メモ
通貨は各オプションの currency と一致させる。金額は amount / currencyCode で明示。
+10%
USE CASE 3

配送業者リアルタイム料金を市場別に接続+マージン調整

課題
特定市場だけ配送業者の実費計算レートを見せたい。新サービス追加のたびの手作業も避けたい。
打ち手
Carrier-calculated オプションで既存の carrierServiceId を参照。autoIncludeNewServices:true で新サービス自動取り込み、percentageAdjustment でマージンを上乗せ。
効果
市場ごとに実費ベース送料+任意マージンを自動運用。配送コストの取りこぼしを防ぐ。
技術メモ
Carrier-calculated は rate group が単一。carrier service は事前に用意が必要。

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

「2026-07 の Admin API で、配送を Market に直付けできるように。
shipping profile を増やさず、定額/金額別/重量別/配送業者計算の4タイプをマーケット単位で設定。
null は親から継承・isEnabled:false は表示停止・removeShipping で継承復帰 の3状態を使い分ける。」