Skip to content

Plan Management

Subscription plans define what a tenant can do on your LMS platform. Each plan sets a price, billing cycle, and resource limits (users, courses, storage).


Viewing Plans

Navigate to Admin → Billing → Plans.

You will see a table listing all plans with their name, price, billing cycle, status, and action buttons.

Plans List


Creating a Plan

Click Create Plan to open the plan form.

Create Plan Form

Basic Settings

FieldRequiredDescription
NameDisplay name shown on the pricing page (e.g. "Starter")
SlugURL-friendly ID (e.g. starter). Auto-generated from name. Used in /tenant/register?plan=starter
DescriptionShort tagline shown under the plan name on the pricing page
PriceNumeric price. Set to 0 for a free plan
CurrencyCurrency code (e.g. USD). Should match your billing default
Billing Cyclemonthly or annual
Sort OrderControls display order on the pricing page (lower = first)

Resource Limits

Leave any limit field blank (or 0) to allow unlimited usage.

FieldDescription
Max UsersMaximum number of students + instructors in the tenant LMS
Max CoursesMaximum courses the tenant can create
Max Storage (GB)Maximum file storage in gigabytes

Display Options

FieldDescription
Is ActiveOnly active plans appear on the pricing page and registration form
Is FeaturedMarks the plan with a "Most Popular" badge
Yearly Discount %Shown as a savings badge when billing cycle is annual (e.g. 20 = "Save 20%")
CTA LabelCustom button text (default: "Get Started")
CTA URLIf set, the button links here instead of the registration form — useful for Enterprise "Contact Sales" plans. Supports /contact or full https://...

Features List

Enter one feature per line. These appear as bullet points on the pricing card.

Custom domain support
Priority support
API access
White-label branding

Click Save to create the plan.


Editing a Plan

Click the Edit icon on any plan row to modify it.

Note: Changing the price or billing cycle of an existing plan does not affect active subscriptions — only new sign-ups will use the updated price.


Enterprise / Custom-Priced Plan Pattern

Use this pattern when pricing is negotiated by sales:

  1. Set Price = 0
  2. Set CTA Label = Contact Sales (or your wording)
  3. Set CTA URL = /contact (or full external URL)
  4. Keep plan active so it appears on pricing/registration screens

What happens:

  • The plan is shown as custom/contact-sales in the UI.
  • Self-service checkout is not used for this plan.
  • Your sales/support team can later assign final pricing and billing manually.

Recommended workflow:

  • Create lead via contact form/CRM.
  • Agree scope and final recurring amount.
  • Update tenant billing from admin after commercial approval.

Activating / Deactivating a Plan

Toggle the Is Active switch. Inactive plans are hidden from the pricing page and registration form but remain linked to any existing subscriptions.


Deleting a Plan

Click the Delete icon. A confirmation popup will appear.

Warning: You cannot delete a plan that has active subscriptions. Deactivate it first, then reassign or cancel those subscriptions before deleting.


Plan Ordering on the Pricing Page

Plans are displayed in ascending sort_order order, with ties broken by price. To reorder:

  1. Edit each plan
  2. Update the Sort Order field (1 = leftmost / first)
  3. Save

Free vs. Paid Plans

BehaviourFree PlanPaid Plan
Payment required at registration✓ (or trial)
Trial period✓ if trial enabled
Auto-renewal
Billing records created✓ (status: active)
Invoices generated

Linking to a Specific Plan

You can deep-link customers directly to a plan on the registration form using the ?plan= query parameter:

https://yourdomain.com/tenant/register?plan=starter
https://yourdomain.com/pricing/starter

The registration form will pre-select the specified plan.