Shopify’s latest Developer Changelog removes the long‑standing caps on private app pricing plans and their target stores. If you’ve been juggling a handful of custom‑priced plans for select merchants, you can now breathe easy—there’s no limit on how many private plans you can create, and each plan can be offered to an unlimited number of stores. This post breaks down the change, explains who it affects, and gives you step‑by‑step guidance on leveraging the new flexibility today.
What Changed: Unlimited Private Plans & Targets
Previously, Shopify App Pricing allowed a maximum of 15 private plans per app, with each plan limited to 20 target stores. Private plans are essentially custom subscription tiers that only the merchants you select can see and purchase. The update lifts both caps—developers can now generate as many private plans as needed, and each plan can be assigned to any number of stores. Existing plans continue to work unchanged; no migration is required for current configurations.
Who Is Affected: Developers vs. Merchants
*Developers* – The new limits directly impact app developers who build SaaS‑style or feature‑rich Shopify apps. You can now segment your customer base more granularly—offering tiered pricing, region‑specific bundles, or bespoke feature sets without worrying about hitting a hard ceiling.
*Merchants* – For store owners, the benefit is indirect but powerful. When a developer creates a private plan tailored to your store’s needs, you’ll see a personalized pricing option in the Shopify admin instead of a generic one‑size‑fits‑all plan. This can translate into better‑aligned costs and feature sets for niche businesses.
How to Create Unlimited Private Plans Today
If you prefer API‑driven automation, the same logic applies via the GraphQL Admin API. Below is a minimal mutation example that creates a private plan and attaches an array of store IDs:
graphql
mutation createPrivatePlan($appId: ID!, $planInput: AppPricingPlanInput!) {
appPricingPlanCreate(appId: $appId, input: $planInput) {
appPricingPlan {
id
name
price {
amount
currencyCode
}
targets {
shopId
}
}
userErrors { field message }
}
}
*Variables*:
{
"appId": "gid://shopify/App/1234567890",
"planInput": {
"name": "Enterprise Custom",
"price": {"amount": "499.00", "currencyCode": "USD"},
"billingInterval": "MONTHLY",
"targets": ["gid://shopify/Shop/1111111", "gid://shopify/Shop/2222222"]
}
}
Migrating Legacy Pricing with the App Migration CLI
If your app still runs on the old manual pricing model, the unlimited private plan capability is also available through the App Migration CLI. This early‑access tool helps you convert legacy subscriptions into Shopify App Pricing plans.
Steps to use the CLI:
npm install -g @shopify/app-migration-cli.shopify app-migration migrate. The wizard will prompt you to map old plans to new private plans, and you can now assign as many target stores as needed without hitting the old 20‑store ceiling.The migration is non‑destructive; existing merchants keep their current subscriptions until you confirm the switch. After migration, you can immediately start creating additional private plans using the unlimited model.
Best Practices & Action Checklist
Conclusion & Next Steps
The removal of private‑plan caps is a game‑changer for developers who need flexible pricing structures and for merchants who deserve tailored offers. By following the steps above—creating unlimited plans, using the migration CLI if needed, and implementing best‑practice workflows—you can unlock new revenue streams and deliver a more personalized experience.
Ready to start building your custom plans? Head over to the Shopify Partner Dashboard, create your first unlimited private plan, and let your merchants know about the new options. If you’re still on legacy pricing, sign up for early access to the App Migration CLI and begin the migration today.
Got questions or want a deeper walkthrough? Drop a comment below or join the Shopify Developers Slack channel. Happy building!


