API CHANGE

顧客アカウントAPIで
ドラフト注文の割引情報が取得可能に

2026-07版APIからdiscountApplications / discountAllocationsが解禁

DraftOrderCustomer Account APIDraftOrderLineItemlineItems { nodes }discountApplicationsNEW in 2026-07discountAllocationsNEW in 2026-07DiscountCodeApplicationManualDiscountApplication

GraphQL Customer Account API の 2026-07バージョン から、ドラフト注文オブジェクト(DraftOrder)に discountApplications フィールドが、ラインアイテム(DraftOrderLineItem)に discountAllocations フィールドがそれぞれ追加されました。これにより、顧客アカウント向けのカスタムUIやB2Bの見積フローにおいて、どの割引がドラフト注文に適用されているか、各商品にどう分配されているかをAPIから直接取得できるようになります。

WHAT CHANGED

01追加された2つの新フィールド

Customer Account API 2026-07 — 新フィールド構造DraftOrder既存オブジェクトdiscountApplications適用割引の一覧を返すNEW ✦lineItemsDraftOrderLineItem既存フィールドdiscountAllocationsラインアイテムへの割引配分NEW ✦DiscountCodeApplicationcode / allocationMethodManualDiscountApplication / title

上図: DraftOrderに追加された2つのNEWフィールドと、その返却データの関係を示す。discountApplicationsはドラフト注文全体の割引情報、discountAllocationsは各ラインアイテムへの割引配分を取得する。

QUERY EXAMPLE

02クエリの構造と返却データ

discountApplications が返すフィールド詳細discountApplications__typenameallocationMethodtargetSelectiontargetTypevalue { MoneyV2 |PricingPercentageValue }+ code (コードの場合)+ title (手動の場合)discountAllocationsallocatedAmount { amount currencyCode}discountApplication { __typename }DiscountCodeApplicationクーポンコードで適用された割引code: "SUMMER10"value: { percentage: 10 }ManualDiscountApplication手動で設定された割引title: "担当者割引"value: { amount: "500", currencyCode: "JPY" }value ユニオン型MoneyV2: 固定金額割引 (amount + currencyCode)PricingPercentageValue: パーセント割引 (percentage)

上図: discountApplicationsが返す2種類の型と、valueフィールドのユニオン型構造を整理した。__typenameでinline fragmentを切り替えることで各型固有のフィールドにアクセスできる。

USE CASES

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

課題
B2Bの見積フローで、担当者が手動設定した割引(ManualDiscountApplication)の内容を顧客向けポータルに表示できず、電話・メールで別途案内していた。
打ち手
Customer Account API 2026-07でdiscountApplicationsをクエリし、ManualDiscountApplicationのtitleとvalue(MoneyV2)を取得。顧客ポータルの見積詳細画面に「割引名・割引額」を自動表示するコンポーネントを追加する。
効果
顧客が自分でポータルを確認して割引内容を把握できるため、問い合わせ対応工数を削減。見積承認の意思決定が加速する。
技術メモ
APIバージョンは2026-07以降を指定すること。ManualDiscountApplicationはinline fragmentで分岐し、titleフィールドを取得する。
課題
クーポンコードをドラフト注文に適用した際、どのコードが有効になっているか、各ラインアイテムにいくら割引が乗っているかをフロントエンドで確認する手段がなかった。
打ち手
discountApplicationsでDiscountCodeApplicationのcodeを取得し、lineItems配下のdiscountAllocations.allocatedAmountで各商品の割引配分金額を表示する。クーポン適用済みバッジと割引後単価をカートUI上に実装する。
効果
顧客が「クーポンが本当に適用されているか」を自己確認できるUXを提供でき、チェックアウト離脱率の低下が期待できる。
技術メモ
discountAllocationsはDraftOrderLineItemのノードレベルで取得する。allocatedAmountはMoneyV2型でamountとcurrencyCodeを持つ。
課題
複数割引が重複して適用されたドラフト注文で、どの割引がどの商品ラインに影響しているか監査・レポートが取れなかった。
打ち手
discountAllocations内のdiscountApplication.__typenameを参照することで、ラインアイテムごとにどの種別の割引が配分されているかをマッピング。管理用ダッシュボードへ割引種別×ライン別の集計データをエクスポートするバッチ処理を構築する。
効果
割引施策の費用対効果分析やコンプライアンス監査に必要なデータを自動収集でき、手作業のスプレッドシート集計を廃止できる。
技術メモ
discountApplication { __typename } はネストした参照なので、allocatedAmountとセットで取得すると集計が容易。大量ラインアイテムはpaginationを活用すること。
DEVELOPER NOTES

04技術者が押さえるべきポイント

項目 詳細
対象APIバージョン GraphQL Customer Account API 2026-07以降。それ以前のバージョンではこれらのフィールドは存在しない。
新フィールド① DraftOrder.discountApplications(first: N) — Connection型。nodesにDiscountCodeApplicationまたはManualDiscountApplicationが入る。
新フィールド② DraftOrderLineItem.discountAllocations — 各ラインアイテムへの割引配分額と、紐づくdiscountApplicationの参照を返す。
型の分岐 discountApplicationsのノードは__typenameで型を判定し、inline fragmentで各型固有フィールド(code / title)にアクセスする必要がある。
valueフィールドのユニオン 固定金額割引はMoneyV2(amount, currencyCode)、パーセント割引はPricingPercentageValue(percentage)として返る。クエリ時にフラグメントで両方を記述しておくこと。
注意点 本フィールドはCustomer Account API専用。Admin APIやStorefront APIの同名フィールドとは別物のため、既存クエリの流用時は対象APIを確認すること。

「ドラフト注文の割引情報をCustomer Account APIで直接取得できるようになったことで、B2Bの見積ポータルや顧客向けクーポン確認UIをAPI完結で構築できる時代になりました。」

Source: https://shopify.dev/changelog/discount-application-information-now-available-for-draft-orders-on-the-customer-account-api | 公開日: 2026年7月1日