appliesOnSubscriptionIn the Admin GraphQL API, the DiscountCodeAppInput / DiscountAutomaticAppInput default value has changed. The article states: "No action required; no impact on how discounts are applied at checkout." Apps that set the value explicitly behave the same.
appliesOnSubscription field'sdefault value changed from false to true ..falseWhen you created an app discount without passing a value,appliesOnSubscription was implicitly treated as false .
truethe default when the value is omitted is now true . If you specify it explicitly, the value you set is used as-is (no impact).
appliesOnSubscription What it is : a flag indicating whether an app-managed discount also applies to subscription (recurring) line items. This time, only itsdefault value when omittedchanged to true .DiscountCodeAppInputthe input type used when creating or updating an app-managed "code discount." This type's appliesOnSubscription default is now true .
DiscountAutomaticAppInputthe input type used when creating or updating an app-managed "automatic discount." Likewise, its appliesOnSubscription default is now true .
appliesOnOneTimePurchase(applies to one-time purchases) fieldalready has true as the default, with no change this time. As a result, when omitted, both subscriptions and one-time purchases end up with the same default of true .| Item | Before | After (from 2026-07 / all active versions) |
|---|---|---|
appliesOnSubscription Default value |
false | true |
appliesOnOneTimePurchase Default value |
true | true(no change) |
| Apps that explicitly set the value | Behavior is unchanged | |
| Discount application at checkout | No impact (stated in the article) | |
| Required action | None | |
| Target input types | DiscountCodeAppInput / DiscountAutomaticAppInput |
|
The article explicitly states "No action is required." The change to the default value itself does not affect how discounts are applied at checkout.
When creating or updating discounts, apps that explicitly pass appliesOnSubscription behave exactly as before.
The reason it "has no impact," details of the internal behavior, and the migration schedule (beyond version numbers) arenot described in the article. Check separately if needed.
The ones affected are DiscountCodeAppInput and DiscountAutomaticAppInput. The article does not mention any other discount input types.
false → true is purely a matter of default resolution. If you pass a value explicitly, the result does not change at all.
Version pinning cannot avoid it. Even for apps running across multiple versions, the default is unified to true everywhere.
The article explicitly states there is no change in how discounts are applied. It is positioned as a cleanup of defaults with no user-facing experience change.
appliesOnOneTimePurchase was already true. This time, appliesOnSubscription also becomes true , andwhen omitted, both now default to true , making them symmetric. That said, since relying on implicit defaults is prone to breakage across version differences, for new implementationsthe convention of explicitly specifying both fieldsis safer.
appliesOnSubscription , relying instead on the implicit false may have been relying on the default.true, update the internal documentation, type definitions, and test expectations.appliesOnOneTimePurchase was originally true , so they're easy to tidy up at the same time.appliesOnSubscription and appliesOnOneTimePurchase arealways specified explicitly; adopt this as a coding convention.DiscountCodeAppInput / DiscountAutomaticAppInput)'s appliesOnSubscription default has changed to false → true .