Skip to content
Impulse SoftwareDOCS
Get modules

ImpulseCpanel

Verified for ImpulseCpanel 1.0.0 ·

Plans & WHMCS products

A hosting plan ties a WHMCS product to a WHM package on your servers. Import your packages or define plans by hand, choose which client-area features each plan includes and which servers it may use, then point a product at it.

Each plan names a WHM package, and the account is created with that package. Create the packages you’ll sell in WHM on your servers — a plan’s package must exist, with exactly the same name, on every server the plan may place accounts on.

Open ImpulseCpanel → Plans & Products. You have two ways to create a plan:

  • Import from a cPanel/WHM server — pick a registered server and click Import packages. Every package on it that no plan maps yet becomes an active plan, with its name, its package and its disk, bandwidth, add-on domain, subdomain, mailbox and database limits, and every feature turned on. Import only creates plans: it skips packages a plan already maps and never updates an existing plan. With a developer key it stops at the key’s plan limit and says how many packages it skipped; if the limit is already reached it imports none and says so.
  • + Add a hosting plan — enter a Plan slug (lowercase letters, numbers, - and _), a Display name, the exact WHM package name, and the limits, tick the features it includes, and click Add plan.

The slug is fixed once the plan exists: it’s the value WHMCS products store to select the plan.

A plan that a WHMCS product or an account still uses can’t be deleted; move them to another plan first.

Each plan has twelve feature checkboxes, and each one decides whether customers on that plan get its feature in the client area — its tab, tiles, sign-in shortcuts and actions:

Flag What it turns on
Email The Email tab, and the webmail sign-in
Databases The Databases tab, and the database-manager (phpMyAdmin) sign-in
SSL The SSL/TLS tab
DNS editor The DNS tab
FTP The FTP tab
PHP version The PHP version setting on the Websites tab
Scheduled tasks (cron) The Scheduled tab
File manager The file-manager sign-in (the dashboard tile and each site’s button on the Websites tab), and the Files tab when Settings → Native Features → In-app file manager is on too
App installer The app-installer sign-in and the list of installed applications on the Apps tab — only while Settings → Native Features → Broad app catalog is on too
WordPress Toolkit The WordPress sign-in, on the dashboard and the Apps tab
Git deploy The Git version control sign-in on the Apps tab
Backups The Backups tab, and the backup sign-in

The Apps tab shows when any of App installer (with its Native Features switch), WordPress Toolkit or Git deploy is available. Every plan includes the Websites tab: domains, redirects and hotlink protection.

The flags decide what the client area offers. Inside the control panel, the WHM package’s own feature list decides what the account can use, so keep the two in step.

Click Edit on a plan to open its row. Under Eligible servers, tick the servers it may place new accounts on and click Save eligibility. With none ticked, any active server is eligible. Either way, a server takes new accounts only while its last health check passed: placement takes the least-full eligible server whose last check passed and that has room, in the order’s region when it names one (see Registering a cPanel/WHM server).

Which features you can offer at all is set by your ImpulseCore license:

Tier Key prefix What it enables
Licensed ICPNL- The full feature set — every plan flag can be offered. No server, plan or account limits.
Developer ICPNLDEV- Same features, capped for testing: 3 hosting accounts — Create, Link Existing Account and Repair account relations all stop there, and accounts in their termination grace count — 2 servers, and 3 plans, whether added with + Add a hosting plan or imported. Developer keys aren’t sold with the module.
No key — New accounts aren’t created or linked. Existing accounts keep running, with every flagged feature off.

Set the key in ImpulseCore → Modules & Licensing → Licenses; see Installation & activation.

  1. Go to System Settings → Products/Services and create a product (or edit one).
  2. On the Module Settings tab, set Module Name to ImpulseCpanel.
  3. Pick the Hosting Plan from the dropdown. It lists your active plans; the stored value is the plan’s slug. Create your plans first: with none, the dropdown offers only a placeholder Starter, and an order for that product then fails (hosting plan starter not found).
  4. Leave the product without a server group. ImpulseCpanel uses its own server list and picks the server when it creates the account.

There is no default plan. Create, Retry Provision and Change Package take the plan from the product’s Hosting Plan, or — only when that’s empty — from a configurable option named Plan. With neither, they fail (no hosting plan: …). When the slug matches no plan, Create and Retry Provision fail with hosting plan … not found: …, and Change Package with plan … has no cPanel package mapped.

Place a test order on the product and confirm the end-to-end flow:

  1. When WHMCS runs the module’s Create command (per the product’s auto-setup setting), the module picks a server, then creates the account with WHM’s createacct and the plan’s package — or, when an account for the order’s domain already exists on that server, links it instead. It stores the generated account password in ImpulseCore (only for an account it created) and attaches the service to the client’s ImpulseCore project.
  2. If Create fails, WHMCS shows the reason (for example no capacity in region … or hosting plan … not found: …), and the service’s module fields in WHMCS admin show it as Last error. Fix the cause, then run Retry Provision from the service’s Module Commands, or let the provision task retry it (below).
  3. Open the service in the client area: the Managed Web Hosting dashboard should show only the customer’s own account.
  4. Walk suspend → unsuspend → terminate to confirm the lifecycle. Terminate deletes nothing at first: the account is suspended and removed 7 days later (see Security & Maintenance).

To bring in an account that already exists on one of your servers (created in WHM, or migrated), create the WHMCS service with the account’s domain and run Link Existing Account from its Module Commands: it searches every active server for that domain and links the account without creating anything. Linking needs a valid license and counts toward a developer key’s 3 accounts, like Create. It records the product’s Hosting Plan for the account; when the product has none, or names a plan that doesn’t exist, the account is still linked, but with no plan — and so every plan flag on — and its Last error reads linked without a hosting plan: … Review this service, with Hosting plan showing none. Select the product’s Hosting Plan and run Change Package to put the account on it; a successful Change Package, suspend or unsuspend clears Last error.