Overview
Commerce uses a pluggable registrar system. Each registrar is a PHP class implementing DomainRegistrarModule. Only one registrar module is active at a time — new domain registrations, renewals, and transfers always use the currently active module.
Configuring the Active Registrar
Location: Admin → Settings → Registrar
- Use the Module dropdown to select a registrar.
- The form updates to show that registrar's credential fields.
- Enter credentials.
- Click Test Connection to verify.
- Save.
From this point, all new domain operations use the selected module.
Five Built-In Modules
| Module ID | Registrar | API Format | Notes |
|---|---|---|---|
resellerclub |
ResellerClub (LogicBoxes) | HTTPS GET + JSON | Widest TLD catalog; same API as many WHMCS setups |
enom |
Enom (Tucows) | HTTPS GET + XML | Most popular among WHMCS resellers; WhoisGuard privacy |
opensrs |
OpenSRS (Tucows) | HTTPS POST + OPS XML | Wholesale/white-label arm of Tucows; HMAC-MD5 auth |
namecheap |
Namecheap | HTTPS GET + XML | Popular; requires IP whitelist on Namecheap side |
centralnic |
CentralNic Reseller (Hexonet) | HTTPS POST + key=value | Strong new gTLD catalog; free sandbox account |
Switching Registrars
You can switch the active registrar at any time:
- Go to Admin → Settings → Registrar.
- Select the new module.
- Enter credentials for the new registrar.
- Test the connection.
- Save.
Effect on Existing Domains
Switching the active registrar does not move existing domains. Each domains record stores a registrar_module column recording which module was used at registration. Commerce uses this stored value when performing operations on that domain (renew, sync, get EPP code, etc.) — even if the global active module has changed.
This means you can safely switch registrars without losing management capability over existing domains. Domains registered under the old registrar continue to be managed via the old module, while new domains use the new module.
Both modules' credentials must remain configured in settings for this to work. Clearing old credentials breaks management of existing domains registered under that module.
Module Auto-Discovery
The RegistrarService scans app/Registrar/Modules/ at boot and loads all classes implementing DomainRegistrarModule. Built-in modules are already in this directory. Custom modules can be added here without any further configuration.