cPanel plugin

The cPanel plugin adds support for creating and selling cPanel shared hosting products.

To allow clients to order cPanel hosting products first we need to add one or more cPanel servers in Fleio:

Creating cPanel servers

Go to Servers -> Groups and create a new server group if no group exists.

../_images/createNewServerGroupButton.png ../_images/createNewServerGroup.png

This group will hold cPanel servers on which new shared hosting accounts will be created.

Go to Servers -> List and create a new server.

../_images/createServer.png

Set a meaningful name for the server, select the group this server will belong to, set it’s status to Enabled and set the server type to cPanel server

After setting the server type to cPanel server, a few more fields required to connect to WHM will appear.

Set the WHM url, username, usually root and the access key.

Please make sure you enter the server access key and not the password. Follow the WHM API Authentication Guide to generate a new API token

Once the cPanel servers and groups are set, we can create our Fleio shared hosting products.

Creating cPanel Fleio Products

Go to the Billing -> Products page where we will create a new product group and a cPanel shared hosting product.

../_images/createProductGroupButton.png ../_images/createProductButton.png

Creating a group requires a name and a description. Once created, click on the Create product button.

Next go to the Create product page

../_images/cPanelProdConf.png
On the create product page:
  • give the new product a name
  • set an internal code to something meaningful like cpanel_starter
    The internal code should be a simple and easy to remember code, like an alias for this product.
  • add a description
  • select the previousely created group for this product
  • select the cPanel Billing as a Module
  • set the product status to Private (more on this below)
  • select Shared Hosting for Product type
  • the Price model for a cPanel shared hosting account should be set to Fixed plus dynamic
  • Auto setup may be set to either On first payment if you wish for automatic creation of acounts on payment of When pending order is accepted if manual activation is desired

If you wish to apply taxes to this product and you have Billing Tax Rules defined, check the Apply taxes to this product. Otherwise this option can be left unchecked.

When cPanel Billing is selected as a Module, a new tab appears on the current page, where cPanel specifics settings can be set.

../_images/cPanelModConf.png

We need to select the Server group and the cPanel plan here. The server group is the group containing cPanel/WHM servers created previousely and the cPanel plan is the cPanel package name to be created when this product is ordered.

Once done, click on the Create button to create the new product. This product will not be available for order yet since it’s status is set to Private. We did this in order to first create additional configurable options needed for a cPanel shared hosting account like pricing a domain name and if a dedicated IP is desired or not.

Creating cPanel billing cycles

Go to Billing -> Products and click on the name of the new cPanel product created.

../_images/prodDetailsNoCycles.png

When no billing cycle exists for a product, you can click on the ADD BILLING CYCLE button to show the cycle creation dialog.

../_images/cycleCreate.png
On the new billing cycle dialog, let’s create a Monthly billing cycle by selecting the following:
  • Cycle set to Month
  • Cycle multiplier set to 1 (one Month)
  • Currency to your desired currency for the price
  • Auto calculate prices is only available when more than one currency is set in Fleio and the default currency already has a price set in which case the price will be set based on the exchange rates.
  • Set the price in Fixed price and the Setup fee if desired
  • Check the Setup fee entire quantity to apply the setup fee only once when multiple products of the same type are selected and if setup fee has a price.
  • Set the status of this cycle to public to allow any client to order this product with this cycle

Once created the cycle will appear on the product details page. You can create as many cycles as you wish, usually Monthly, Quarterly, Semi-annual and Yearly are popular choices. To create additional cycles, click on the upper right Add cycle icon. Note that if you wish to allow clients to order in multiple currencies, you need to create the cycles for each currency.

If multiple cPanel products exists and you wish to allow clients to upgrade/downgrade to another package, you can access the UPGRADES tab and select the appropriate products. The CONFIGURABLE OPTIONS tab does not have any configurable options yet, however, we need to create at least one configurable option for the domain associated with the cPanel account.

Creating configurable options

To create the domain and dedicated IP configurable options, go to Billing -> Config. Options and click on the Create option button.

../_images/createConfigOption.png

We’ll first add the domain option by setting the Display text to Domain name and the internal name to domain_name. The cPanel module expects a domain_name option and as such the internal name is mandatory to be set to domain_name. Enter additional text as Help text and set the Display widget to Text input and the status to Public. Also check the Required checkbox as the domain name is required for a new cPanel account.

Click on SAVE AND CONTINUE to save this option and to add new cycles to it. For a configurable option to appear when a product is ordered, billing cycles are required in this version of Fleio. The billing cycles should be set for all created currencies in Fleio and a price of 0 (zero).

../_images/optionBillingCycle.png

Add option billing cycles to match the billing cycles of the newly created product by going to the product details page.

../_images/prodDetailsConfOpt.png

Once added, the product status can be set to Public since we saved it previousely as Private

An additional configurable option with the code dedicated_ip and a widget of Yes/No can be associated with the product, to allow clients to request a dedicated IP address.

The product is now ready to be ordered by clients.