I’m using Shopify App Pricing for my public app and querying the merchant’s current plan with the App Pricing GraphQL API:
query ($appId: ID!, $shopId: ID!) {
activeSubscription(appId: $appId, shopId: $shopId) {
billingPeriod
cancelAtEndOfCycle
trialEndsAt
currentBillingCycle {
startTime
endTime
}
items {
handle
}
}
}
What I’d like to do is:
- Show a button in my app UI like “Get 50% off for life”.
- Validate a promocode or eligibility on my backend (e.g. campaign, partner deal).
- Then, programmatically apply a 50% discount only for that specific merchant, based on the promocode, without exposing a discounted plan/offer to all merchants.
With the legacy Billing API, it looks like this is possible via appSubscriptionCreate with discount. But with Shopify App Pricing, plans and discounts appear to be configured globally in the Partner Dashboard and I don’t see any mutation equivalent to apply per‑merchant/promocode‑based discounts.
Questions:
-
Is there any supported way, when using Shopify App Pricing, to:
- implement promocodes that apply discounts per merchant, or
- move a merchant onto a discounted plan/offer via GraphQL or another API, based on a promocode validated on our backend?
-
If not, is the recommended approach for promocode‑style, per‑merchant discounts still to use the legacy Billing API instead of Shopify App Pricing? Are there any best practices or official guidance for this scenario?
Any clarification or official stance on promocodes/per‑merchant discounts under Shopify App Pricing would be really helpful.

