API CHANGE

priceRuleフィールド削除
2026-10 GraphQL Admin APIの対応指針

DraftOrderDiscountNotAppliedWarningからlegacy PriceRuleオブジェクトが完全撤廃。移行フィールドと影響範囲を整理する。

BEFORE — 2026-07 以前DraftOrderDiscountNotAppliedWarningpriceRule { title, discountCodes }PriceRule オブジェクトtitle / discountCodes / ...legacy PriceRule types(deprecated)2026-10BREAKINGAFTER — 2026-10 以降DraftOrderDiscountNotAppliedWarningdiscountTitle / discountCodeフラットな2フィールドネストなし・シンプルPriceRule types → 削除(public schema から除外)

GraphQL Admin APIの2026-10バージョンから、DraftOrderDiscountNotAppliedWarningオブジェクトのpriceRuleフィールドが完全に削除されます。draftOrderCalculatedraftOrderCreatedraftOrderUpdateのレスポンスでpriceRuleを参照しているアプリは、2026-10へのアップグレード前にdiscountTitle/discountCodeへの移行が必須です。

WHAT CHANGED

01削除されるフィールドと代替フィールド

FIELD MAPPING — priceRule → 新フィールドpriceRule { title }deprecated → removed in 2026-10priceRule { discountCodes(first:1){ nodes { code } } }discountTitle適用できなかった割引のタイトルdiscountCode適用できなかったディスカウントコード代替代替— 同様に削除 —— 同様に移行 —※ PriceRule オブジェクトおよびその関連型も public schema から削除(2026-10〜)

priceRuleはかねてより非推奨とされていたレガシーフィールドです。2026-10以降、DraftOrderDiscountNotAppliedWarningPriceRuleオブジェクトへの唯一のエントリポイントであったため、priceRuleの削除にともないPriceRuleオブジェクト自体およびその関連型もpublic schemaから完全に削除されます。旧バージョンのAPIは各バージョンのEOLまで引き続きpriceRuleを提供します。

USE CASES

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

課題
受注管理システムとShopifyを連携するアプリが、下書き注文作成時に適用できなかったディスカウントの情報をpriceRule.titleでログ記録している。2026-10移行後にクエリが失敗しアラートが止まらない。
打ち手
該当クエリをdiscountTitleに書き換える。フラットなフィールドになるためネスト解消でコードも簡潔になる。
効果
ログパイプラインの停止ゼロ。かつコードの複雑度が下がり保守性が向上する。
技術メモ
draftOrderCreate/draftOrderUpdate/draftOrderCalculateの3ミューテーションすべてで影響を受ける可能性があるため、コードベースを横断的に検索して漏れなく修正すること。
課題
カスタマーサービスツールがpriceRule.discountCodes { nodes { code } }を取得してオペレーターに「使えなかったコード」を表示している。移行後に画面がブランクになる問題が発生。
打ち手
表示ロジックをdiscountCodeフィールドに切り替える。単一文字列になるため配列処理が不要になり実装がシンプルになる。
効果
オペレーターへのフィードバックが維持され、CS対応品質を損なわずにAPI移行を完了できる。
技術メモ
discountCodes { nodes { code } }は複数コードを返せる構造だったが、discountCodeは単一文字列。複数コードのケースがあるか事前に業務フローを確認しておくこと(元記事には複数コード対応の記載なし)。
課題
スキーマ自動生成ツール(GraphQL Code Generatorなど)でTypeScriptの型定義を生成しているプロジェクトが、PriceRule型や関連型を他の箇所でも参照していた場合、2026-10のスキーマ取得後にビルドエラーが多発する。
打ち手
DraftOrderDiscountNotAppliedWarningのクエリ修正とあわせて、PriceRule型への参照をコードベース全体で検索・削除する。型が消えることを前提にした影響範囲調査を先行させる。
効果
スキーマ更新後のビルドが一発で通り、CI/CDパイプラインの停止を防げる。
技術メモ
DraftOrderDiscountNotAppliedWarningがpublic Admin APIでPriceRuleオブジェクトへの唯一の経路だったため、他のクエリでPriceRuleを直接参照することは既に不可能だったはず。ただし過去に生成した型定義ファイルに残骸が残っている場合があるため確認が必要。
FOR DEVELOPERS

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

破壊的変更

2026-10は後方互換なし

2026-10以降のAPIバージョンを指定したリクエストでpriceRuleを選択するとスキーマエラーになる。旧バージョン(2026-07以前)はEOLまで利用可能。

影響ミューテーション

3つのミューテーションが対象

draftOrderCalculatedraftOrderCreatedraftOrderUpdateのレスポンスに含まれるDraftOrderDiscountNotAppliedWarningが対象。見落としがちなdraftOrderCalculateも忘れずに確認。

スキーマ変化

PriceRule型がpublic schemaから消える

priceRule削除の副作用として、PriceRuleオブジェクトとその関連型がpublic GraphQL Admin APIのスキーマから完全に除外される。イントロスペクションの結果も変わる。

移行コスト低

置き換えはシンプルな2フィールド

ネストされたpriceRule { title / discountCodes }を、フラットなdiscountTitlediscountCodeに置き換えるだけ。ロジックの大幅な変更は不要。

確認項目 内容 優先度
クエリ検索 コードベース全体でpriceRuleDraftOrderDiscountNotAppliedWarningコンテキストで使用している箇所をgrepする 🔴 高
型定義確認 GraphQL Code GeneratorなどでPriceRule型が生成されていないか確認・削除 🟠 中
テスト更新 discountWarningのモックレスポンスにpriceRuleが含まれているテストを更新 🟠 中
APIバージョン固定の確認 旧バージョンに固定しているアプリは当面影響なし。ただしEOLスケジュールを把握しておく 🟡 低
公式ドキュメント確認 DraftOrderDiscountNotAppliedWarningオブジェクトの最新仕様を公式docsで確認 🟡 低

「2026-10へのアップグレード前にpriceRulediscountTitle/discountCodeの置き換えを完了するだけで、下書き注文のディスカウント警告取得が引き続きシンプルかつ確実に動作します。」

Source: https://shopify.dev/changelog/remove-pricerule-from-draft-order-discount-warning | 公開日: 2026年6月23日