Automated Upgrades and Downgrades

From WHMCS Documentation

How it works

In WHMCS, your clients can upgrade or downgrade their products and packages directly in the Client Area. When they place an upgrade or downgrade order, they will receive a refund for any value they haven't used of the current cycle on the existing product or service. Then, the system will charge them for the remainder of the cycle at the new product's or service's price. The next due date doesn't change.

Old Product/Service
Price Per Day * Number of days until next due date = Amount Credited

Price Per Day in the above calculation is the Recurring Amount of the client's service divided by the number of days in the billing cycle.

New Product/Service
Price Per Day * Number of days until next due date = Amount Debited

Price Per Day in the above calculation is the cost of the new service divided by the number of days in the billing cycle.

Total Payable Today = Amount Debited - Amount Credited

Free to Paid Products

When a client upgrades a free product to a paid product, you must set a Next Due Date to determine when it will renew. WHMCS sets this automatically to one billing cycle from the date of upgrade.

For example, if a client upgraded from a free product to a monthly paid product on the 1st of January, the Next Due Date would become the 1st of February.

Promotion Codes

Upgrade Discounts

You can configure promotion codes to apply to upgrades. This is useful for incentivizing clients to upgrade to higher-tier products. When the client places an upgrade order, they will receive the opportunity to enter a promo code. The system calculates the discount based on the total amount due. Clients receive this as a discount on the amount payable.

Total Payable Today (from above) - Discount = Discounted Upgrade Price

Lifetime Promotions

You can configure promotion codes to last the lifetime of a client's service, including through upgrades and downgrades. For these, the system calculates the recurring discount using the full product price after the upgrade. The recurring price is reduced accordingly and then updated on the client's service.

Upgrade Order Handling

If an upgrade order is not paid before the renewal invoice is generated by the daily cron task, the system cancels the upgrade order automatically and generates the renewal invoice using the current service details. To upgrade, the client must place another upgrade order.

Creating Upgrade and Downgrade Orders

Upgrading and downgrading is available in both the Client Area and Admin Area:

In the Client Area

To place an upgrade or downgrade order from the Client Area:

  1. Go to Services > My Services.
  2. Click to view the full details for the desired service.
  3. Select the desired upgrade options.

In the Admin Area

The system doesn't restrict admins to the products or options in the product configuration, so admins can upgrade between any two packages. Using the upgrade process will create the prorata invoice for the difference and auto-provision it on payment.

To create an upgrade order from the Admin Area:

  1. Go to the Products/Services tab in the client's profile.
  2. Go to the service to upgrade.
  3. Click More > Upgrade/Downgrade.

Configuration

Product Upgrades

To allow clients to upgrade and downgrade their packages, you need to specify the products that can upgrade to and downgrade to each of your packages.

To do this, go to Configuration () > System Settings > Products/Services or, prior to WHMCS 8.0, Setup > Products/Services > Products/Services in the Upgrades tab of the product configuration.

To select multiple products, hold the Ctrl key while selecting the products in the list.

Configurable Options Upgrades

With the configurable options upgrade configuration, this allows your clients to upgrade or downgrade the configurable option selections you offer on the product. You do not need to specify any further configuration for this.

Check the checkbox and the client will see the upgrade options in the Client Area. The system calculates the upgrade price for configurable options the same way as the products above.