How-to › Selling special products

How to Offer Upgrade and Downgrade Plans

Sell Basic, Plus and Pro levels and let customers move between them without cancelling. You create a product for each level, group them in a plan, set the proration and test. 11 parts.

Quick links

Where to find it:WP Admin › EasyCart › Products › Subscription Plans

Before you start

What you are building

What a plan is, what you need and what happens when a customer changes level.

How plan changes work

What you need and what a plan really is

no stored settings

What you need. WP EasyCart PRO or Premium, and Stripe, because subscriptions bill through Stripe. Products › Subscription Plans is a PRO screen. If you have not sold a subscription yet, start with How to Sell Subscriptions on WordPress, then come back.

What a plan is. A plan is a ladder, not a price. Every level is its own subscription product with its own price and billing interval. The plan only groups those products so the store knows which ones a customer may move between. It bills nothing. Customers never see the plan name. They see your product names.

What happens on a change. The customer picks another level. Your store tells Stripe to switch the same subscription to the new product. Stripe works out any credit or extra charge, and your store updates the subscription’s product, price and interval. Nobody cancels, so nobody has to start over.

The steps: create a product for each level, group them in a plan, decide who can move down, choose whether Stripe prorates, let customers use the change in My Account, then test.

Set it up

Six steps

Create the levels, group them in a plan, choose who can move down, set proration, open the change to customers and test.

Step 1. Create a product for each level

Basic, Plus and Pro are three subscription products

no stored settings

Go to EasyCart › Products › Products and press Add New. Choose Subscription as the Product type and set the price for one billing period. Repeat for each level. Open Type & Behavior and fill in the Subscription section for every one, including Subscription Interval. The subscriptions guide walks through each field.

Levels can bill on different intervals, for example a monthly Basic and a yearly Pro. The plan screen flags mixed intervals and reminds you that Stripe prorates when customers switch.

Two limits from the product editor. The Subscription Plan list is labelled not compatible with price adjustments or recurring shipping, so keep level products simple. And a product can belong to only one plan.

Step 2. Create the plan

Products › Subscription Plans › Add plan

no stored settings

Go to EasyCart › Products › Subscription Plans and press Add plan. The New subscription plan window asks for a Plan name and has a switching toggle, on by default. Name it for yourself, such as Coffee Club. Plan names must be unique. Press create and the plan opens in its editor.

In the Products in this plan card, search for a subscription product by name and add it. Only products marked as subscriptions appear. Add every level. They are listed in price order, cheapest first, and that is the order customers see. Each row shows the price, the interval and how many subscribers the product has.

If a product already belongs to another plan, adding it asks you to confirm and moves it. You can also pick a plan from the product itself, in the Subscription Plan list on Type & Behavior.

The side panel shows Plan health: how many tiers there are to switch between, any product that is inactive in the store, mixed billing intervals, and how many active subscribers the plan has. Fix anything marked as a warning before you go live.

Products › Subscription Plans, the plan list with its Add plan button.
Products › Subscription Plans, the plan list with its Add plan button.

💡 Note: A product can belong to only one plan. Adding it to a second plan moves it, so a product you use in two ladders has to be duplicated.

The plan editor

Details, Products in this plan and the Danger zone

no stored settings

This is the screen you land on after Step 2. The Details card holds the plan name and the Switching toggle. The Products in this plan card is your ladder. The Danger zone deletes the plan.

Removing a product from a plan does not touch its existing subscribers. They simply stop seeing the other levels as choices. Deleting a plan never deletes products. The window asks whether to move its products to another plan or detach them, and detaching turns switching off for them. Subscriptions keep running, and you have 15 minutes to undo.

A plan open in its editor, with the Switching toggle and Products in this plan.
A plan open in its editor, with the Switching toggle and Products in this plan.

Step 3. Decide who can move down

The Switching toggle

no stored settings

The toggle reads Customers can upgrade / downgrade between products in this plan. It is the rule for moves in both directions.

On. A customer sees every level in the plan and can go up or down.

Off. A customer sees their current level and the levels priced above it. They can upgrade but not downgrade. Someone who wants a cheaper level has to cancel, or ask you to move them.

Leaving it on is usually right. A customer who can downgrade stays a customer. One who has to cancel to spend less often does not come back. The plan screen warns you when switching is on but the plan holds only one product, because there is nothing to switch to.

Step 4. Choose whether Stripe prorates

Prorate on Upgrade/Downgrade, on each product

no stored settings

Open a level’s product, go to Type & Behavior and find Prorate on Upgrade/Downgrade in the Subscription section.

On. Your store asks Stripe to create prorations. Stripe credits the customer for the unused time on the old level and charges for the new one, and it adds those lines to the subscription’s invoice.

Off. Your store asks Stripe for no prorations. The new price simply applies from the next billing date.

Which product counts. The setting on the product the customer is moving to is the one used. Set it the same on every level unless you want, for example, upgrades to prorate but moves down to Basic not to.

The exact amounts are Stripe’s calculation. If you change the billing interval when you change level, Stripe applies its own rules for the billing date, so check a test change before you promise customers a number.

⚠️ Careful: Prorated amounts are Stripe’s. Run a test change in Stripe’s sandbox and read the invoice before you tell customers what an upgrade will cost.

Change a customer’s plan yourself

Orders › Subscriptions › Change product

no stored settings

Open EasyCart › Orders › Subscriptions, open the subscription and press Change product…. The window offers the other products in the same plan, cheapest first. A subscription whose product has no plan is offered any active subscription product, up to 50.

Choose a product and your store asks Stripe for a preview. The window shows the lines Stripe would create, then Charged now or Credited, and the next renewal date. The button reads Change and charge with the amount when there is a charge, and Change product otherwise. If the product has no Stripe price yet, the window says Stripe cannot preview it, and the change still applies when you save.

This works only on a Stripe subscription that has not ended. The same proration rule applies: the setting on the product you are moving to. When it succeeds you see Switched to and the new product name. Use this to move a customer down when the plan has switching off.

Step 6. Test it with a real change

Stripe test mode, one account, two levels

no stored settings

Switch Stripe to sandbox in Settings › Payment and add the webhook in your Stripe test dashboard. Then, in a private window that is not logged in as an admin:

1. Sign up for your cheapest level with Stripe’s test card 4242 4242 4242 4242.
2. Open My Account › Subscriptions › VIEW DETAILS › Change Your Plan. You should see your other levels.
3. Choose a higher level and save. The details page should show the new product and price.
4. In your admin, open Orders › Subscriptions. The subscription should show the new product and still read Active.
5. Open the subscription in your Stripe dashboard and look at the upcoming invoice for the proration lines.
6. Turn Switching off, open the plan again as a customer on the higher level, and check that lower levels are gone from the list.

When it all works, turn test mode off.

Good to know

Access and problems

What a change does to member content, and the usual reasons a customer cannot change level.

If your levels unlock content

Access follows the subscription’s current product

no stored settings

A plan change replaces the product on the subscription. Anything you locked to the old product no longer recognises the customer. A page locked to Basic only, and a member on Pro, is a locked-out member.

Fix it when you protect the content. In the Limit Access box, choose every level in Option 1: Restrict by Product. In a membership shortcode, list every product ID with commas and no spaces, such as productid="12,15,18". To give the top level more than the others, lock the extra pages to the higher levels only. The membership guide covers both methods.

The Membership URL comes from the product, so a customer who moves level follows the link on the new product.

⚠️ Careful: If levels unlock content, lock that content to every level that should see it. A customer who upgrades stops matching the product they first bought.

If it does not work

The usual reasons a customer cannot change level

no stored settings

There is no Change Your Plan button. Check, in order: Let shoppers manage their subscriptions is on, the subscription is a Stripe subscription, its status is Active or a trial, and its product is in a plan. With Switching off, a customer on the top level has nothing higher to choose, so the panel lists only their own level.

A level is missing from the list. The product is not in the plan, or Switching is off and the level costs less than the current one.

The customer sees a subscription update error. Stripe refused the change or the product could not be prepared in Stripe. Check Settings › Log entries for the Stripe response, and confirm Stripe is connected.

No proration lines appear in Stripe. The product the customer moved to has Prorate on Upgrade/Downgrade switched off.

A product will not add to the plan. It is not marked as a subscription. Open it and set its Product type to Subscription.

For anything else, contact support through your account.

Keep going

Related panels

Subscription Plans

Subscription Plans in full.

Subscriptions

Change, pause or cancel a subscription in the admin.

Type & Behavior

Every option on the Type & Behavior tab, including Prorate.

Accounts

Letting customers manage their subscriptions.

Ready to run your store on WP EasyCart?

Everything in this guide works with the free plugin. PRO and Premium add subscriptions, memberships, wholesale pricing and more. Try every PRO feature free for 14 days.

The WP EasyCart admin: orders and offers
Updated on September 30, 2026