Everyone

Migrating from WHMCS

Overview of the migration process from WHMCS to Opterius Commerce.

Last updated 1776211200

What Can Be Migrated

The following data types can be moved from WHMCS into Opterius Commerce:

Data Type Migration Method
Staff accounts Manual recreation
Clients CSV import or direct DB insert
Products & pricing Manual recreation (structures differ)
Services CSV import or direct DB insert
Invoices (history) CSV import or direct DB insert
Domain records CSV import or direct DB insert
Payments / transactions Direct DB insert

The following are not migrated and should be handled separately:

  • Support tickets — handle open tickets in WHMCS until resolved; close before cutover
  • Knowledgebase articles — recreate manually in Commerce if needed
  • Email templates — recreate and customise in Commerce's template editor
  • WHMCS addons and module configs — no equivalent; review Commerce features list

Recommended Migration Order

Follow this order to avoid foreign key or reference errors:

  1. Staff accounts — needed first so other records have an owner
  2. Product groups and products — services reference products by ID
  3. Clients — invoices and services are linked to client records
  4. Services — depend on both client and product records existing
  5. Invoices — reference client records
  6. Domain records — reference client records

[!IMPORTANT] Never import services before clients and products exist. The import will fail or create orphaned records.

Migration Approaches

CSV import tool — Commerce provides a built-in CSV importer under Admin for clients, services, invoices, and domains. This is the recommended approach for most migrations.

Direct database seeding — For large migrations (tens of thousands of records), direct SQL inserts into the Commerce MySQL database are faster. Export data from WHMCS tables, transform column names, and insert. Requires familiarity with Commerce's schema.

Running in Parallel

There is no requirement to take downtime during migration. The recommended approach:

  1. Install Commerce on a staging subdomain (e.g., billing-new.example.com).
  2. Import all data and verify correctness.
  3. Configure payment gateways and test in sandbox.
  4. Perform a final delta sync of any new clients or invoices added since the initial import.
  5. Switch the billing DNS (billing.example.com) to point to Commerce.
  6. Keep WHMCS running read-only for 2–4 weeks as a reference.

Rollback Plan

Before starting the migration:

  • Take a full WHMCS database backup (mysqldump).
  • Note your current highest invoice number, order number, and client ID.
  • Document your gateway credentials and webhook URLs so you can restore them quickly.

If something goes wrong after cutover, you can revert DNS to point back at WHMCS within minutes. WHMCS data is untouched throughout the process.

[!TIP] Do not cancel your WHMCS licence immediately after cutover. Keep it active for at least 30 days while you verify that billing cycles, renewals, and client logins all work correctly on Commerce.