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:
- Staff accounts — needed first so other records have an owner
- Product groups and products — services reference products by ID
- Clients — invoices and services are linked to client records
- Services — depend on both client and product records existing
- Invoices — reference client records
- 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:
- Install Commerce on a staging subdomain (e.g.,
billing-new.example.com). - Import all data and verify correctness.
- Configure payment gateways and test in sandbox.
- Perform a final delta sync of any new clients or invoices added since the initial import.
- Switch the billing DNS (
billing.example.com) to point to Commerce. - 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.