Use case
You need to change a plan, and people already pay for it
The price goes up, a limit moves, or a feature changes plans. New customers should get the new terms, and the people already paying should keep what they bought.
What goes wrong
Where repricing breaks
- 01
A price change becomes a release
The plan's limits are written into the application, so changing a plan means changing code, testing it and deploying it.
- 02
Existing subscribers change with it
The plan is edited in place, and everyone already on it gets the new limits at once, whether or not they agreed to them.
- 03
Billing and access disagree
The new price is set where payments are taken, but the limits in the application still follow the old plan, or the other way round.
In ShipRev
Where this lives in ShipRev
Publish a new version
Change the plan once in the plan editor and publish it as a new version. Your code names capabilities, not plans, so it does not change.
Existing subscribers keep their version
A published version is read-only. Subscribers stay on the version they bought, with its price and its limits; new subscribers get the latest one.
Price and limits in one version
A version holds the price and what the plan grants together, and each published version is synced to Stripe with a status of syncing, synced or failed.
Subscribers move when they choose
In the end-user portal, a subscriber on an older version who pays by card can change plan themselves and is moved to the latest version.
How to do it
From a new price to the people paying it
Describe plans by what they grant
Keep plan names out of your code: your code rules on capabilities, and plans grant them.
Products, capabilities and plansPublish the new version
Change the price or an allowance and publish. See what publishing does on Stripe and what existing subscribers get.
Plan versionsLet subscribers switch
Existing subscribers who pay by card move to the new version by changing plan themselves.
Change planWhere it stands
What is built, and what is not
ShipRev is not open yet: the managed cloud is built but not yet open, and the source repository is not public.
Plan versions
Publish a new version without changing code; existing subscribers keep theirs.
Sync to Stripe
Each published version, with its sync status.
Self-service plan changes
End users change plan in the portal.
Moving existing subscribers for them
You cannot move existing subscribers to a new version in bulk.
Changing a subscription from the console
Your team cannot change, cancel or resume a subscriber's plan from the console.