app 割引入力の appliesOnSubscription デフォルトが false → true に変更
原題: Default value of `appliesOnSubscription` changed to `true` for app discount inputs
- Admin API
- Discounts
- Subscriptions
- GraphQL
- GraphQL Schema
- Apps
- 2026-07
- 仕様変更
図解 : app 割引入力の appliesOnSubscription デフォルトが true に変更 Admin GraphQL API / API version 2026-07 app 割引入力の appliesOnSubscription デフォルトが false → true に変更 Admin GraphQL API の DiscountCodeAppInput / DiscountAutomaticAppInput の既定値が変わった。記事いわく「対応不要・チェックアウトの割引適用には影響なし」。明示指定しているアプリは挙動不変。 このページの構成 そもそも何が変わったのか(30秒で理解) 図解 : デフォルト値の変化と適用範囲 影響を受ける2つの入力型 変更前 vs 変更後の比較 アクションは必要か? 技術者が押さえるべき5つのポイント 業務に活かせる3つのユースケース 提案で使える1行サマリ 1 そもそも何が変わったのか Admin GraphQL API の app 割引作成・更新で使う appliesOnSubscription フィールドの デフォルト値が false から true に変わった 。 記事の明言 : 対応は不要 。 チェックアウトでの割引の適用方法には影響なし 。明示的に値を設定しているアプリは挙動が変わらない。 これまで : 既定は false 値を渡さずに app 割引を作成すると、 appliesOnSubscription は暗黙で false として扱われていた。 これから : 既定は true 値を省略した場合の既定が true に。明示的に指定していれば、指定した値がそのまま使われる(影響なし)。 2 図解 : デフォルト値の変化と適用範囲 appliesOnSubscription とは : app 管理の割引が「サブスクリプション(定期購入)の明細にも適用されるか」を示すフラグ。今回その 省略時の既定だけ が true に変わった。 なお記事は「 チェックアウトでの割引の適用方法には影響しない 」と明言している。 影響しない理由・内部挙動の詳細は記事に記載なし 。 3 影響を受ける2つの入力型 対象 DiscountCodeAppInput app が管理する「コード割引」を作成・更新する際の入力型。この型の appliesOnSubscription 既定が true に。 対象 DiscountAutomaticAppInput app が管理する「自動割引」を作成・更新する際の入力型。同じく appliesOnSubscription 既定が true に。 appliesOnOneTimePurchase (一時購入への適用)フィールドは すでに true が既定で、今回変更なし 。これにより、省略時はサブスクと一時購入の両方が既定 true で揃う形になる。 4 変更前 vs 変更後の比較 項目 変更前 変更後(2026-07〜 / 全アクティブ版) appliesOnSubscription 既定値 false true appliesOnOneTimePurchase 既定値 true true (変更なし) 値を明示指定しているアプリ 挙動は変わらない チェックアウトでの割引適用 影響なし(記事明記) 必要な対応 不要 対象の入力型 DiscountCodeAppInput / DiscountAutomaticAppInput 5 アクションは必要か? 原則 : 対応不要 記事は「No action is required」と明言。デフォルト値の変更そのものはチェックアウトでの割引適用方法に影響しない。 明示指定なら不変 割引の作成・更新時に appliesOnSubscription を明示的に渡しているアプリは、これまで通りの挙動。 記載なしの範囲 「影響しない」理由や内部挙動の詳細、移行スケジュール(バージョン以外)は 記事に記載なし 。必要なら別途確認。 本変更は 全アクティブ API バージョンに適用 される。「古いバージョンに固定しているから影響を受けない」という回避策は使えない点に留意(記事記載)。 6 技術者が押さえるべき5つのポイント 1. 対象は app 割引の2型のみ 影響するのは DiscountCodeAppInput と DiscountAutomaticAppInput 。これ以外の割引入力型への言及は記事に記載なし。 2. 変わるのは「省略時の既定」だけ false → true はあくまでデフォルト解決の話。明示的に値を渡していれば結果は一切変わらない。 3. 全アクティブ版に一括適用 バージョン固定では回避不可。複数バージョンを跨いで運用するアプリでも既定は true に統一される。 4. チェックアウト挙動に影響なし 記事は割引の適用方法に変化はないと明言。ユーザー向けの体験変更を伴わないデフォルト整理という位置づけ。 5. サブスクと一時購入の既定が揃う appliesOnOneTimePurchase は元から true 。今回 appliesOnSubscription も true になり、 省略時は両方とも既定 true で対称になる。とはいえ「暗黙のデフォルト依存」はバージョン差で事故りやすいため、新規実装では 両フィールドを明示指定する規約 が安全。 7 業務に活かせる3つのユースケース USE CASE 1 割引アプリの mutation 棚卸し(暗黙デフォルト依存の洗い出し) 課題 自社の割引アプリが appliesOnSubscription を明示せず、暗黙の false 既定に依存していた可能性がある。 打ち手 app 割引を作成・更新している全 mutation 呼び出しを検索し、当該フィールドを明示指定しているか確認。未指定箇所は明示指定に書き換える。 効果 API バージョンや既定変更に左右されない、決定的な割引挙動を確保。 技術メモ 記事は「明示指定済みなら挙動不変」「チェックアウトへの影響なし」と明言。緊急対応ではなく品質保全としての棚卸し。 USE CASE 2 複数 API バージョン運用アプリのデフォルト差異つぶし 課題 複数 API バージョンを跨いでアプリを運用しており、バージョンごとの既定値の差が混乱・テストの分岐を生んでいる。 打ち手 本変更が「全アクティブバージョンで true 」に統一された前提で、内部ドキュメント・型定義・テストの期待値を更新する。 効果 バージョン依存の条件分岐を削減し、回帰テストの想定値を一本化。 技術メモ 記事記載どおり全アクティブ版に適用。 appliesOnOneTimePurchase は元から true のため合わせて整理しやすい。 USE CASE 3 サブスク割引仕様の「明示化」をチーム規約に 課題 割引仕様が暗黙の既定値に依存しており、コードレビューや引き継ぎ時に「サブスクに効くのか」が読み取れず誤解が起きる。 打ち手 割引作成 mutation では appliesOnSubscription と appliesOnOneTimePurchase を 常に明示 するコーディング規約を導入。 効果 仕様の自己文書化が進み、デフォルト変更の影響を受けず、レビュー時の解釈ブレを防止。 技術メモ 明示指定すれば本デフォルト変更の影響を受けない(記事明記)。Linter / コードレビュー観点に追加すると定着しやすい。 8 提案で使える1行サマリ 「app 割引入力( DiscountCodeAppInput / DiscountAutomaticAppInput )の appliesOnSubscription 既定が false → true に変更。 対応不要・チェックアウトの割引適用には影響なし・明示指定済みなら挙動不変。 全アクティブ API バージョンに適用されるため、この機に『デフォルト依存をやめて明示指定』を徹底するのが安全。」 source : shopify.dev/changelog/default-value-of-appliesonsubscription-changed-to-true-for-app-discount-inputs Developer Changelog / 公開 2026-05-04 / Tags : Admin GraphQL API, 2026-07 generated 2026-05-23