Quick answer
As of Admin GraphQL API 2026-10, discounts can participate in Shopify Rollouts. If your app reads discounts, startsAt and endsAt no longer tell the whole story: a Rollout can separately control when a discount is active and which buyers receive it. Add the read_rollouts scope where needed, read the discount’s rollouts connection, and treat Rollout state as part of discount availability.
On this page
Why this matters
A discount used to be relatively easy for an integration to describe: inspect the discount itself, its status, and its native start and end dates. That assumption becomes incomplete when the discount is attached to a Rollout.
Rollouts let merchants coordinate commerce changes, including discounts, around a schedule or buyer reach. That means an app can correctly read a discount as configured and still incorrectly tell a merchant that it is “live” for everyone.
This is especially important for promotion dashboards, launch tooling, reporting, QA utilities, and apps that mirror Shopify discount state into another system.
The implementation pattern
For apps adopting Admin GraphQL API 2026-10, audit every query or decision that treats discount dates as the final authority. Request the read_rollouts scope and query the discount’s read-only rollouts connection alongside the discount fields you already use.
Keep the responsibilities separate:
- Discount fields describe the underlying discount configuration.
- Rollout data describes additional orchestration around that resource.
- Your UI should avoid reducing those two states to a misleading single “active” flag unless you have explicitly reconciled them.
Existing installations can require merchant reauthorization when you add read_rollouts. Treat that as part of the deployment plan, not an afterthought after production queries begin failing.
A practical migration checklist
- Search the codebase for discount queries and any local
isActive, schedule, promotion-status, or eligibility helpers. - Identify code that infers availability only from native discount dates.
- Add
read_rolloutsto the app scopes where Rollout awareness is required. - Update the relevant Admin GraphQL queries for API
2026-10. - Represent “discount configuration” and “Rollout delivery” separately in your internal model.
- Test an ordinary discount and a discount included in a Rollout.
Common misunderstanding
“If the discount says it is active, every eligible buyer can use it.”
Not necessarily. Once Rollouts are involved, native discount dates alone do not fully describe availability or buyer reach. The discount resource and its Rollout context need to be evaluated together.
How to test this
Create a harmless test discount and confirm your existing integration reports it correctly without a Rollout. Then include a test discount in a Rollout and compare the API response and your app’s displayed status. Verify the app does not claim universal availability from the discount dates alone. Finally, test an existing installation that has not yet granted read_rollouts so your reauthorization path is deliberate rather than a production surprise.

