Everyone

Upgrades & Downgrades

How clients request plan changes, how proration is calculated, and how the admin approval queue works.

Last updated 1776211200

Overview

Clients can request a plan change (upgrade or downgrade) from their service detail page. Commerce calculates the pro-rata difference, generates an adjustment invoice if a charge is due, and routes the request through the admin queue (or auto-approves, depending on settings).


Client Flow

  1. Go to Client Area → My Services → [service].
  2. Click Change Plan.
  3. A product selection table is shown with:
    • Available products in the same product group.
    • Proration amount for each option (charge or credit).
  4. Client selects the new plan.
  5. Clicks Request Change.
  6. A plan change request is created with status pending.

[!TIP] Clients see the proration amounts before confirming, so there are no surprises. The displayed amount assumes the change takes effect today.


Proration Calculation

Proration is based on the number of days remaining in the current billing cycle:

Days remaining = next_due_date − today
Days in cycle  = total days in current billing cycle

Credit   = current_price × (days_remaining / days_in_cycle)
New cost = new_price     × (days_remaining / days_in_cycle)
Net      = new_cost − credit
Net result Action
Positive (upgrade) An invoice is generated for the difference
Negative (downgrade) A credit is added to the client's account balance
Zero No invoice or credit; plan changed at no charge

Auto-Approve Mode

When Settings → Billing → Require Upgrade Approval is disabled (require_upgrade_approval = 0):

  • The plan change is applied immediately on request.
  • If a charge is due, the proration invoice is generated immediately.
  • No admin action required.

Manual Approval Queue

When require_upgrade_approval = 1 (default), plan changes queue for admin review at Admin → Billing → Plan Changes (also accessible at /admin/service-upgrades).

The queue shows:

  • Client name
  • Current product and new product
  • Proration charge or credit
  • Request date

Approving a Plan Change

  1. Open the request at Admin → Service Upgrades → [request].
  2. Review the proration summary.
  3. Click Approve.

On approval:

  • Service product, billing cycle, and amount are updated.
  • Proration invoice is generated (if a charge is due) and sent to the client.
  • Account credit is applied (if a credit is due).
  • Provisioning module is called to apply the new package on the server.
  • Client receives a plan change confirmation email.

Rejecting a Plan Change

  1. Open the request.
  2. Click Reject and enter a reason.

On rejection:

  • Service remains on the current plan.
  • Client receives a rejection notification with the reason.

After the Change

Once a plan change is approved:

  • The service record reflects the new product.
  • Future renewal invoices use the new amount and billing cycle.
  • The provisioning module receives the new package name; the Panel adjusts resource limits accordingly.

[!IMPORTANT] If the provisioning module fails to apply the new package (e.g. the new package does not exist on the server), the service record is updated in Commerce but the server still runs the old package. Check the provisioning log and apply the package manually if needed.


Related Articles