DISCOUNTS API

appliesOnSubscriptionのデフォルト値がtrueに変更

GraphQL Admin APIのアプリ割引入力型で、サブスクリプション適用フラグのデフォルトが反転

BEFOREappliesOnSubscriptiondefault: falseAFTERappliesOnSubscriptiondefault: true

GraphQL Admin APIのDiscountCodeAppInputおよびDiscountAutomaticAppInputにおいて、appliesOnSubscriptionフィールドのデフォルト値がfalse → trueへ変更されました。対象は全アクティブAPIバージョンです。既存アプリで値を明示的に指定している場合は影響ありません。

1変更内容の図解

DiscountCodeAppInput /DiscountAutomaticAppInputappliesOnOneTimePurchasedefault: true(変更なし)appliesOnSubscriptiondefault: false → true ★変更明示的に値を渡している場合はこのデフォルト変更の影響を受けないチェックアウトへの影響チェックアウト時の割引適用ロジックへの影響なし全アクティブAPIバージョンに同時適用済み対応アクション不要(No action required)

2業務に活かせるユースケース

課題
サブスクリプション商品向けのアプリ割引を作成する際、毎回appliesOnSubscription: trueを明示的に記述しており、コードが冗長になっていた
打ち手
デフォルトがtrueになったため、サブスクリプションへの適用が標準挙動となる。新規にアプリ割引を作成するミューテーションからappliesOnSubscriptionフィールドの記述を省略可能
効果
ミューテーション入力オブジェクトを簡潔に保ちながら、サブスクリプション対応割引を確実に生成できる
技術メモ
既存の明示的な指定は引き続きそのまま機能する。省略した場合のみデフォルト値(true)が適用される
課題
新規参入の開発者がアプリ割引を実装する際、appliesOnSubscriptionの指定漏れでサブスクリプションに割引が効かないバグを踏みやすかった
打ち手
デフォルト値がtrueになったことで、フィールドを省略してもサブスクリプションに割引が適用されるようになり、意図しない非適用を防げる
効果
実装ミスによるサポート対応コストの削減と、割引キャンペーンの歩留まり向上が期待できる
技術メモ
ただしサブスクリプションに割引を意図的に適用させたくない場合は、appliesOnSubscription: falseを明示的に渡す必要がある
課題
コードレビュー時にappliesOnSubscriptionの設定の有無を確認する作業が発生し、レビューコストが高かった
打ち手
デフォルト値がtrueとなり、appliesOnOneTimePurchase(デフォルトtrue・変更なし)と挙動が統一された。両フィールドともに「省略=適用する」という一貫したセマンティクスになった
効果
フィールドの意図を確認するレビュー負担が軽減され、コードの可読性・保守性が向上する
技術メモ
対象入力型はDiscountCodeAppInputDiscountAutomaticAppInputの2種類

3技術者向けポイント

変更スコープ

全アクティブGraphQL Admin APIバージョンに即時適用済み。特定バージョンへの段階的展開ではない。

対象型

DiscountCodeAppInputDiscountAutomaticAppInputの2入力型のappliesOnSubscriptionフィールドのみが対象。

後方互換性

明示的に値を指定しているコードの動作は変わらない。デフォルト値が参照されるのは値が省略された場合のみ。

チェックアウト挙動

割引がチェックアウトで適用されるロジック自体には変更なし。デフォルト値のスキーマ定義変更のみ。

注意点

サブスクリプションへの割引適用を明示的に除外したい場合は、appliesOnSubscription: falseの明示指定が必要になる。省略=適用する、に変わった点に留意。

対応アクション

元記事の記載どおり「No action required」。既存アプリへの影響調査・コード変更・マイグレーション作業はいずれも不要。

フィールド 変更前デフォルト 変更後デフォルト 備考
appliesOnSubscription false true 今回の変更対象
appliesOnOneTimePurchase true true(変更なし) 元からtrueのまま

アプリ割引のサブスクリプション適用フラグがデフォルトtrueになり、明示指定不要で「一度きり購入」と同等の挙動が得られるようになりました。既存コードへの影響はなく、新規実装をよりシンプルに記述できます。

Source: https://shopify.dev/changelog/default-value-of-appliesonsubscription-changed-to-true-for-app-discount-inputs | 公開日: 2026年5月4日