Personal tools
Namespaces

Variants
Actions

Advanced Billing For WHMCS

From ModulesGarden Wiki
(Difference between revisions)
Jump to: navigation, search
Line 3: Line 3:
  
 
=About [http://www.modulesgarden.com/products/whmcs/advanced_billing/features Advanced Billing For WHMCS]=
 
=About [http://www.modulesgarden.com/products/whmcs/advanced_billing/features Advanced Billing For WHMCS]=
 +
<h4 style="color: #ff0000; font-weight:bold; text-align:center;">Article update is ongoing on this page, watch out for broken links and unclear descriptions!<br />
 +
We are sorry for the inconvenience caused.</h4>
 
{|
 
{|
 
|style="padding: 10px 0px 10px 0px;"|'''Advanced Billing For WHMCS''' is a module that allows you to set up additional billing options for your products like disk usage or number of email accounts basing on server resource usage.<br />
 
|style="padding: 10px 0px 10px 0px;"|'''Advanced Billing For WHMCS''' is a module that allows you to set up additional billing options for your products like disk usage or number of email accounts basing on server resource usage.<br />
In other words, our product will let you to charge customers basing on the resources used by them. What is more, it offers hourly billing, ticket billing and credit billing.<br />
+
In other words, our product will let you charge customers on the grounds of the resources used by them. What is more, it offers hourly billing, ticket billing and credit billing.<br />
Module will also automatically generate the invoices basing on the data gathered by the synchronization.<br />
+
The module will also automatically generate invoices on the basis of the data gathered by the synchronization.
 
|}
 
|}
 
<!--Comment-->
 
<!--Comment-->
Line 120: Line 122:
 
{|
 
{|
 
|style="padding: 0px 0px 15px 15px;"|'''4. In order to configure your license key you have to edit a previously renamed '' 'license.php' '' file.'''<br />
 
|style="padding: 0px 0px 15px 15px;"|'''4. In order to configure your license key you have to edit a previously renamed '' 'license.php' '' file.'''<br />
Enter your license key between quotation marks as presented on the following screen. You can find your license key at your client area → '' 'My Products' ''.
+
Enter your license key between quotation marks as presented on the following screen. You can find your license key in your client area → '' 'My Products' ''.
 
|}
 
|}
 
{|
 
{|
Line 127: Line 129:
 
{|
 
{|
 
|style="padding: 0px 0px 15px 15px;"|'''5. Now you have to activate the module in your WHMCS system.'''<br />
 
|style="padding: 0px 0px 15px 15px;"|'''5. Now you have to activate the module in your WHMCS system.'''<br />
Login to your WHMCS admin area. Click '' 'Setup' '' then choose '' 'Addon Modules' '' .<br />
+
Log in to your WHMCS admin area. Click '' 'Setup' '' then choose '' 'Addon Modules' '' .<br />
Afterwards find '' 'Advanced Billing' '' and press Activate button.
+
Afterwards find '' 'Advanced Billing' '' and press '' 'Activate' '' button.
 
|}
 
|}
 
{|
 
{|
Line 134: Line 136:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''6. In next step you need to permit access to this module.'''<br />
+
|style="padding: 0px 0px 15px 15px;"|'''6. In the next step you need to permit access to the module.'''<br />
To do so click on '' 'Configure' '', choose '' 'Full Administrator' '' and press '' 'Save Changes' ''.
+
To do so, click on '' 'Configure' '', choose desired admin roles and press '' 'Save Changes' ''.
 
|}
 
|}
 
{|
 
{|
Line 141: Line 143:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|'''7. Last step is setting up two cron jobs, you can find them in your WHMCS → '' 'Addons' '' → '' 'Advanced Billing' '' as shown on the following screen.'''
+
|style="padding: 0px 0px 20px 15px;"|'''7. The last step is setting up a cron job, you can find it in your WHMCS → '' 'Addons' '' → '' 'Advanced Billing' '' as shown on the following screen.'''
 
|}
 
|}
 
{|
 
{|
Line 152: Line 154:
 
=Configuration and Management=
 
=Configuration and Management=
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|Now lets learn more about module functionalities. We will present you possibilities of our product on cPanel Extended example.<br />
+
|style="padding: 10px 0px 15px 15px;"|Now let's learn more about module's functionalities. We will present you the possibilities of our product on cPanel Extended For WHMCS example.<br />
Please note that billing features are different in each module but the core functionality of the Advanced Billing is the same for each.<br />
+
Please note that billing features are different in each module but the core functionality of Advanced Billing is the same for each.<br />
First choose your module from '' 'Enable Advanced Billing for' '' dropdown menu as show on the following screen.<br />
+
First, choose your module from '' 'Enable Advanced Billing for' '' dropdown menu as it is shown on the following screen.<br />
For presentation purposes we chose '' 'cPanel Premium' '' with cPanel Extended module.
+
For presentation purposes we have chosen '' 'cPanel Premium' '' with cPanel Extended module.
 
|}
 
|}
 
{|
 
{|
 
|style="padding: 0px 0px 30px 25px;"|[[File:AB2_8.png]]  
 
|style="padding: 0px 0px 30px 25px;"|[[File:AB2_8.png]]  
 
|}
 
|}
==Configuration==
+
==Core==
 
{|
 
{|
|style="padding: 10px 0px 30px 15px;"|We group configuration options in 4 tabs depending on their purpose.<br />
+
|style="padding: 10px 0px 30px 15px;"|Our module core has been redesigned to allow collecting the records and invoices' management.<br />
You can access resource usage pricing from each of the tabs.
+
All other features are handled by extensions, which can be easily enabled/disabled, and are configured per product.
 
|}
 
|}
===General Settings Tab===
+
===Configuration===
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|Here you can find information about module used by your product. If module is not supported, '' 'Basic Module' '' mode will be used.<br />
+
|style="padding: 10px 0px 30px 15px;"|Core configuration consists of 2 tabs.<br />
'' 'Basic Module' '' enables you to bill your client for hourly usage of product only.<br />
+
You can access resource usage pricing from any tab.
 +
|}
 +
====General Settings Tab====
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|Here you can find information about the module used by your product. If the module is not supported, '' 'Basic Module' '' mode will be used instead.<br />
 +
'' 'Basic Module' '' enables you to bill your client for hourly usage of the product only.<br />
 
In this tab you can also enable/disable Advanced Billing for product.<br />
 
In this tab you can also enable/disable Advanced Billing for product.<br />
 
To disable it, simply unmark '' 'Enable' '' checkbox and press '' 'Save Changes' '' button, as shown on the following screen.<br />
 
To disable it, simply unmark '' 'Enable' '' checkbox and press '' 'Save Changes' '' button, as shown on the following screen.<br />
Line 176: Line 183:
 
|}
 
|}
  
===Billing Settings Tab===
+
====Module Settings Tab====
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|In this tab you can set up billing for product.<br />
+
|style="padding: 10px 0px 15px 15px;"|''This tab is visible only for cPanel/cPanel Extended modules.''<br />
1. '' 'Bill on Terminate' '' - when account connected with your module will be terminated, invoice for account will be generated.<br />
+
Here you can set Application Manager (Softaculous/Installatron) and cPanel theme. '' 'x3' '' is a theme's default value.<br />
2. '' 'Bill on Invoice Generate' '' - customer will receive invoice at the same time as the invoice for his hosting account.<br />
+
To use different theme simply enter its name as shown on the screen below.
3. '' 'Bill Each 1st Day of Month' '' - will generate invoices each first day of month.<br />
+
4. '' 'Autogenerate Invoice' '' - this is important feature, if enabled, it will automatically send previously generated invoices directly to your customers.<br />
+
5. '' 'Create Invoice Each' '' - when you set that field to e.g. '' '14' '', all your customers will be billed exactly each 2 weeks after account creation.<br />
+
6. '' 'Due Date' '' - the number of days in which your customers will have to pay the invoice.<br />
+
7. '' 'Auto Apply Credits' '' - automatically apply any available credits when invoice is created, works only if '' 'Autogenerate Invoice' '' is enabled.<br />
+
|}
+
{|
+
|style="padding: 0px 0px 30px 25px;"|[[File:AB2_10.png]]
+
|}
+
 
+
===Credit Billing Tab===
+
{|
+
|style="padding: 10px 0px 15px 15px;"|Credit billing allows you to charge for product from client credit balance.
+
1. '' 'Enable Credit Pay' '' - this option enables/disables credit billing for this module (if credit billing is enabled, standard billing will be turned off).<br />
+
2. '' 'Create Invoices Each' '' - this option defines how often invoice will be generated for this product (if nothing entered here, it will be 30 days).<br />
+
3. '' 'Minimal Credit' '' - minimal amount that will be charged from client account credit balance.<br />
+
4. '' 'Low Credit Notify' '' - send email to your client about low credit amount on account account if this value is higher than credits on client account.<br />
+
5. '' 'Email Interval' '' - defines how often low credit notification email will be send.<br />
+
6. '' 'Autosuspend' '' - when credit balance reach 0, product ordered by client is autosuspended and invoice with lacking amount is generated.<br />
+
7. '' 'Due Date' '' - the number of days that your customers will have to pay the invoice.
+
|}
+
{|
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB2_11.png]]
+
|}
+
{|
+
|style="padding: 0px 0px 30px 15px;"|When '' 'Autosuspend' '' is marked and your client credit ballance reach 0, his product will be suspended. Additionally, invoice with lacking payment will be generated.<br />
+
If it is unmarked and credit balance reach 0, account will not be suspended and invoice will be generated according to number of days set in '' 'Create Invoices Each' '' field.
+
|}
+
 
+
===Module Settings Tab===
+
{|
+
|style="padding: 10px 0px 15px 15px;"|''This tab shows only for cPanel/cPanel Extended modules.''<br />
+
Here you can set Application Manager (Softaculous/Installatron) and cPanel theme. Default value of theme is '' 'x3' ''.<br />
+
To use different theme you have installed simply enter its name as shown on the screen below.
+
 
|}
 
|}
 
{|
 
{|
Line 220: Line 193:
 
|}
 
|}
  
===Used Resource Pricing===
+
====Used Resource Pricing====
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|In the bottom part of the screen you can set up billing for specific server resource usage like for e.g. bandwidth.<br />
+
|style="padding: 10px 0px 15px 15px;"|In the bottom part of the screen you can set up billing for specific server resource usage like e.g. bandwidth.<br />
''' '' 'Free Limit' '' ''' field is used to set amount of usage records for which customer won't be charged.<br />
+
*'''Free Limit''' - is used to set amount of usage records for which customer won't be charged.<br />
 
In our example, customer won't be charged for 1GB (1024MB) bandwidth.<br />
 
In our example, customer won't be charged for 1GB (1024MB) bandwidth.<br />
''' '' 'Price' '' ''' defines how much your client will have to pay for specific resource. Note that we provide two types of charging: units per hour and units used since last cron run.<br />
+
*'''Price''' - defines how much your client will have to pay for specific resource. Note that we provide two types of charging: units per hour and units used since last cron run.<br />
For example, user pays for subdomain quantity each hour, but when he generates traffic, he will pay only once for bandwidth he used since last cron run.<br />
+
For example, user pays for subdomain quantity each hour, but when traffic is generated, bandwidth used since the last cron run will have to be paid once only.<br />
''' '' 'Displayed Unit' '' ''' category defines how record usage will be displayed. It do not affect free limit and pricing, they are calculated in basic unit.<br />
+
*'''Displayed Unit''' - category defines how record usage will be displayed. It does not affect free limit and pricing, they are calculated in basic unit.<br />
So, if you select '' 'GB' '', free limit will be still 1024 MB, and price will be MB/hr, '''not''' GB/hr.<br />
+
If you select '' 'GB' '', free limit will be still 1024 MB, and price will be MB/hr, '''not''' GB/hr.<br />
''' '' 'Status' '' ''' allows you to enable/disable billing for this resource.<br />
+
*'''Status''' - allows you to enable/disable billing for this resource.<br />
 
To proceed, choose your usage records, units, status, set up the prices and free limits. Afterwards, press '' 'Save Changes' ''.
 
To proceed, choose your usage records, units, status, set up the prices and free limits. Afterwards, press '' 'Save Changes' ''.
 
|}
 
|}
Line 236: Line 209:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|As you could notice on the screen above, '' 'Configure' '' column was added.<br />
+
|style="padding: 0px 0px 15px 15px;"|As you could notice on the screen below, '' 'Configure' '' column has been added.<br />
It allows you to set up different free limits and pricing depending from resource origin.<br />
+
It allows you to set up different free limits and pricing depending on resource origin.<br />
 
Currently only Parallels Cloud Server submodule supports this feature.
 
Currently only Parallels Cloud Server submodule supports this feature.
 
|}
 
|}
Line 244: Line 217:
 
|}
 
|}
  
==Items==
+
===Items===
 
{|
 
{|
 
|style="padding: 10px 0px 15px 15px;"|To view counted usage, go to '' 'Items' '' tab.<br />
 
|style="padding: 10px 0px 15px 15px;"|To view counted usage, go to '' 'Items' '' tab.<br />
Each cron run will create an item for each customer if it does not exist at the moment and add new records to existing ones.<br />
+
Each cron run will create an item for each customer, if it does not exist at the moment, and add new records to existing ones.<br />
In that way you can see current server resources usage from last billing period .<br />
+
In that way you can see current server resources usage from the last billing period.<br />
 
Automatic generation of invoices is basing precisely on previously created items.<br />
 
Automatic generation of invoices is basing precisely on previously created items.<br />
 
To view more details click on '' 'Show usage records' '' as shown on the following screen.<br />
 
To view more details click on '' 'Show usage records' '' as shown on the following screen.<br />
Line 257: Line 230:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"| It shows detailed information about record usage and quote for that usage.
+
|style="padding: 0px 0px 20px 15px;"| After pressing 'Show usage records', you can learn some detailed information on Bandwidth, Storage, Domains and many others.
 
|}
 
|}
 
{|
 
{|
Line 263: Line 236:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|In order to view price for specific element of record, simply drag mouse on it. <br />
+
|style="padding: 0px 0px 15px 15px;"|In order to view the price for a specific element of the record, simply hover your mouse over it. <br />
The following screen shows situation after running cron only 2 times. Note that first record is always empty as it's task is to initialize billing for specific account.
+
The following screen shows the situation after running cron only 2 times. Note that the first record is always empty as its task is to initialize billing for the account.
 
|}
 
|}
 
{|
 
{|
Line 270: Line 243:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|In addition to the above information you can check time of each cron run.<br />
+
|style="padding: 0px 0px 15px 15px;"|In addition to the above information you can check when each cron was run.<br />
 
You can also order creation of invoice for product through pressing '' 'Bill On Demand' ''.<br />
 
You can also order creation of invoice for product through pressing '' 'Bill On Demand' ''.<br />
 
''Note: Bill on demand feature is not available for credit billing.''
 
''Note: Bill on demand feature is not available for credit billing.''
Line 278: Line 251:
 
|}
 
|}
  
==Logs==
+
===Awaiting Invoices===
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|In logs you will find information about the module activity. You can view informative logs, error logs and critical logs.<br />
+
|style="padding: 10px 0px 15px 15px;"|Here you can check your awaiting invoices. Invoices can be generated automatically and manually.<br />
Choose your .log file from a dropdown menu and press '' 'Show' '' as presented on the screen below.<br />
+
On the screen below you can see a previously generated invoice for our cPanel Extended account.<br />
To remove log simply press '' 'Delete' '' instead of '' 'Show' '' button.<br />
+
To view detailed information about particular invoice press '' 'Show' '' button.
New log files are created every day to help you find information you are looking for.
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:AB2_18.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB2_20.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|This is how the '' 'infolog-YYYY-MM-DD.log' '' can look like.
+
|style="padding: 0px 0px 15px 15px;"|This is the place where you can verify and modify awaiting invoices. It's advised to check whether invoices are correct to avoid any risk.<br />
 +
You already know that you can set up automatic invoice generation in configuration section. Now let's generate an invoice for your customer manually.<br />
 +
For this purpose simply click on '' 'Generate Invoice' ''.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:AB2_19.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB2_21.png]]
 
|}
 
|}
 
==Awaiting Invoices==
 
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|Here you can check your awaiting invoices. Invoices can be generated automatically or manually.<br />
+
|style="padding: 0px 0px 30px 15px;"|After changing product's package, invoice is automatically generated for an old package.
On the screen you can see our previously generated invoice for our cPanel Extended account.<br />
+
To view detailed information about particular invoice press '' 'Show' ''.
+
 
|}
 
|}
 +
 +
===Settings===
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:AB2_20.png]]
+
|style="padding: 10px 0px 15px 15px;"|Under '' 'Settings' '' tab you can find pages such as logs and integration code.
 
|}
 
|}
 +
====Logs====
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|This is the place where you can verify and modify your awaiting invoices. It's worth to check whether invoices are correct to avoid risk.<br />
+
|style="padding: 10px 0px 15px 15px;"|In '' 'Logs' '' you will find information about the module activity. You can view informative logs, error logs and critical logs.<br />
You already know that you can set up automatic invoice generation in configuration section. Now lets manually generate invoice for your customer.<br />
+
Choose .log file from a dropdown menu and press '' 'Show' '' as presented on the screen below.<br />
For this purpose simply click on '' 'Generate Invoice' ''.
+
To remove a log simply press '' 'Delete' '' instead of '' 'Show' '' button.<br />
 +
New log files are created every day to help you find information you are looking for.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:AB2_21.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB2_18.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 15px;"|After changing package, invoice is automatically generated for an old package.
+
|style="padding: 0px 0px 20px 15px;"|On the following screen you can see how '' 'infolog-YYYY-MM-DD.log' '' can look like.
 
|}
 
|}
 
==User Credits==
 
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|All information related to credit payment for hosting can be found at '' 'User Credit' '' tab. As you can see, there are two columns with credits.<br />
+
|style="padding: 0px 0px 30px 25px;"|[[File:AB2_19.png]]
First one, '' 'Internal Credit' '' contain credits which was not used for payment, but are reserved for it. It was created to increase accuracy of credit billing.<br />
+
Second column, '' 'Already Paid For Hosting' '' contains summary credit payment for hosting.<br />
+
You can order refund of any hosting through pressing '' 'Refund' '' button next to it. Client will receive sum of '' 'Internal Credit' '' and '' 'Already Paid For Hosting' '' rounded down to 0.01.
+
|}
+
{|
+
|style="padding: 0px 0px 30px 25px;"|[[File:AB2_21_1.png]]
+
 
|}
 
|}
  
==Integration Code==
+
====Integration Code====
 
{|
 
{|
|style="padding: 10px 0px 20px 15px;"|Integration code allows displaying usage records for each of your customers in the client area and allows to display pricing on the order form.<br />
+
|style="padding: 10px 0px 20px 15px;"|'' 'Integration Code' '' page contains codes required to integrate Advanced Billing For WHMCS with your client area.<br />
'''Important: Editing clientareaproductdetails.tpl of classic or portal template goes a bit differently than shown on the screen below.'''<br />
+
The first of them allows usage records and autoscaling related features to be displayed in the client area.<br />
 +
It is required for '' 'Autoscale' '' and '' 'Client Area Usage Records' '' extensions.<br />
 +
Placing the second one results in displaying prices on the order form.<br />
 +
'''Important: Edition of clientareaproductdetails.tpl for classic and portal templates goes a bit differently than shown on the screen below.'''<br />
 
In this case place required code after this line:
 
In this case place required code after this line:
 
  <nowiki><div align="center">{$moduleclientarea}</div></nowiki>
 
  <nowiki><div align="center">{$moduleclientarea}</div></nowiki>
Line 338: Line 307:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|Exemplary display of usage records in the client area. Note that disabled usage records will not be displayed.
+
|style="padding: 0px 0px 20px 15px;"|Usage records in the client area. Note that disabled usage records will not be displayed.
 
|}
 
|}
 
{|
 
{|
Line 344: Line 313:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|Exemplary display of pricing in the order form. Note that disabled usage records will not be displayed.
+
|style="padding: 0px 0px 20px 15px;"|Pricing on the order form. Note that disabled usage records will not be displayed.
 
|}
 
|}
 
{|
 
{|
Line 350: Line 319:
 
|}
 
|}
  
==Migration Tool==
+
==Extensions==
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|Migration tool allows you to import configuration from Advanced Billing 1.3.8 or older.<br />
+
|style="padding: 10px 0px 15px 15px;"|In this section we will describe each extension step by step.<br />
Each product you migrate will be disabled on your previous Advanced Billing.
+
'''Important:''' Only three of them are included in Advanced Billing For WHMCS product, the rest can be obtained separately.<br />
 +
Default extensions included into Advanced Bulling For WHMCS are '' 'Recurring Billing' '', '' 'Usage Records' '' and '' 'Credit Billing' ''.<br />
 +
Each extension is configured per product, therefore you can use different sets of extensions according to your needs.<br />
 +
To start using an extension, you need to activate it firstly, proceed to '' 'Settings' '' → '' 'Extensions' '' page.<br />
 +
Afterwards, press '' 'Activate' '' next to the extension you wish to use, new options will appear in Advanced Billing For WHMCS.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:AB2_25.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB2_50.png]]
 
|}
 
|}
 +
===[http://www.modulesgarden.com/products/whmcs/autoscale/features Autoscale (Sold Separately)]===
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|To start, press '' 'Migrate Product' '' next to product you want to import.
+
|style="padding: 10px 0px 15px 15px;"|The main functionality of Autoscale For WHMCS extension is automatic upgrade/downgrade of a product according to its usage.<br />
 +
For more information about Autoscale For WHMCS, visit its [http://www.docs.modulesgarden.com/Autoscaling_For_WHMCS Wiki].
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:AB2_26.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB2_51.png]]
 
|}
 
|}
 +
===Usage Records===
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'' 'Divider Prices' '' divide prices you have had on your previous Advanced Billing.<br />
+
|style="padding: 10px 0px 15px 15px;"|This extension displays usage records and usage records history in the client area products page.<br />
Reason of implementing it are changes in pricing system, at old Advanced Billing it was price per month, now it is price per hour.<br />
+
To use it, besides enabling in, you need to place an integration code.<br />
We recommend using standard, '' '720' '' divider. To change it, simply enter value into '' 'Divider Prices' '' and press refresh button next to it as shown on the following screen.
+
This extension is configured per product, proceed to the product configuration in Advanced Billing.<br />
 +
As you can see, new tab is available here.
 +
*'''Enable''' - enables usage records being displayed for that product in the client area.
 +
*'''Display Summary From''' - defines period from which usage records will be counted.
 +
*'''Usage Records Precision''' - defines precision of usage records
 +
*'''Show Usage Records''' - displays history of usage records.
 +
*'''Usage Records Per Page''' - defines how many usage records should be displayed per page.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:AB2_27.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB2_52.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|In '' 'Invoice Settings' '', '' 'Billing Settings' '' and '' 'Credit Billing' '' tab you can configure product billing. Description of this tabs you can find in this article.<br />
+
|style="padding: 0px 0px 15px 15px;"|On the following screen you can see a sample of usage records and usage records history in the client area.
You can jump to it through pressing one of following: [http://www.docs.modulesgarden.com/Advanced_Billing_For_WHMCS#Billing_Settings_Tab Invoice & Billing Settings] [http://www.docs.modulesgarden.com/Advanced_Billing_For_WHMCS#Module_Settings_Tab Credit Billing]
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:AB2_27_1.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:AB2_53.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|You can also edit '' 'Free Limit' '', '' 'Pricing' '', '' 'Displayed Unit' '' and '' 'Status' ''. <br />
+
|style="padding: 0px 0px 15px 15px;"|Additionally, a client can view history of records as shown below.
At the bottom of the screen you can decide, if you want to generate invoice for accounts you are importing product for.<br />
+
If yes, simply left '' 'Generate Invoices' '' checkbox marked, otherwise unmark it. Afterwards, confirm migration through pressing '' 'Migrate Product' ''.
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:AB2_27_2.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:AB2_54.png]]
 
|}
 
|}
 +
 +
===Credit Billing===
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|You should see information about changes you are trying to make, confirm them through pressing '' 'Migrate' '' button.
+
|style="padding: 10px 0px 15px 15px;"|'' 'Credit Billing' '' extension allows you to charge for a product from client credit balance.
 +
*'''Enable Credit Billing''' - this option enables/disables credit billing for this module (if credit billing is enabled, standard billing will be turned off).<br />
 +
*'''Create Invoices Each''' - this option defines how often invoice will be generated for this product (if nothing entered here, it will be 30 days).<br />
 +
*'''Minimum Credit''' - minimum amount that will be charged from client account credit balance.<br />
 +
*'''Low Credit Notify''' - if this value is higher than credits on client account, email to your client about low credit amount will be sent.<br />
 +
*'''Email Interval''' - defines how often low credit notification email will be sent.<br />
 +
*'''Autosuspend''' - when credit balance reaches 0, product ordered by client is automatically suspended and invoice with lacking amount is generated.<br />
 +
*'''Due Date''' - the number of days that your customers will have, to pay the invoice.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:AB2_55.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 15px;"|When '' 'Autosuspend' '' is marked and your client's credit balance reach 0, the client's product will be suspended. Additionally, invoice with lacking payment will be generated.<br />
 +
If it is unmarked and credit balance reaches 0, the client's product will not be suspended and invoice will be generated according to number of days set in '' 'Create Invoices Each' '' field.
 +
|}
 +
====User Credits====
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|All information related to credit payment for hosting can be found in '' 'User Credit' '' tab. As you can see, there are two columns with credits.<br />
 +
The first one, '' 'Internal Credit' '' contains credits which were not used for payment, but are reserved for it. It was created to increase accuracy of credit billing.<br />
 +
The second column, '' 'Already Paid For Hosting' '' contains summary credit payment for hosting.<br />
 +
You can order refund of any hosting through pressing '' 'Refund' '' button next to it. Client will receive sum of '' 'Internal Credit' '' and '' 'Already Paid For Hosting' '' rounded down to 0.01.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:AB2_56.png]]
 +
|}
 +
 
 +
===Recurring Billing===
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|This extension allows you to set up recurring billing for product.<br />
 +
 
 +
*'''Enable Recurring Billing''' - check to enable this billing type.<br />
 +
*'''Bill on Terminate''' - when account connected with your module is terminated, invoice for account will be generated.<br />
 +
*'''Bill Type''' - enables you to choose how to bill your client.<br />
 +
**'''Bill on Invoice Generate''' - customer will receive an invoice at the same time as the invoice for their hosting account.<br />
 +
**'''Bill On Specific Day''' - will generate invoices each month on the day specified in the '''Billing Type Value'''.<br />
 +
**'''Bill Each X Days''' - as its name suggests, it generates invoice each X days where X is a number specified in '''Billing Type Value''' field.<br />
 +
*'''Due Date''' - the number of days in which your customers will have to pay the invoice.<br />
 +
*'''Autogenerate Invoice''' - an important feature which if enabled, automatically sends previously generated invoices directly to your customers.<br />
 +
*'''Auto Apply Credits''' - automatically applies any available credits when invoice is created, works only if '' 'Autogenerate Invoice' '' is enabled.<br />
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:AB2_27_3.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:AB2_57.png]]
 
|}
 
|}
  
 
==Hourly Billing==
 
==Hourly Billing==
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|Hourly billing allows you to charge your customers for each hour of use of the product (hourly billing calculation are basing on product '' 'Registration Date' '').<br />
+
|style="padding: 10px 0px 15px 15px;"|Hourly billing allows you to charge your customers for each hour of use of the product (hourly billing calculations are basing on product '' 'Registration Date' '').<br />
 
You can enable hourly billing for any product type.<br />
 
You can enable hourly billing for any product type.<br />
 
Regardless of whether it is a server, web hosting account or other, customer will be billed for each hour of using the product.
 
Regardless of whether it is a server, web hosting account or other, customer will be billed for each hour of using the product.
Line 406: Line 426:
 
==Ticket Billing==
 
==Ticket Billing==
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|Ticket billing works exactly as it sounds. When enabled, it bills you customers for each opened ticket.<br />
+
|style="padding: 10px 0px 15px 15px;"|Ticket billing works exactly as it sounds. When enabled, it bills your customers for each opened ticket.<br />
 
As in the case of hourly billing, you can enable ticket billing for any product type.
 
As in the case of hourly billing, you can enable ticket billing for any product type.
 
|}
 
|}
Line 414: Line 434:
 
==Sample Configuration==
 
==Sample Configuration==
 
{|
 
{|
|style="padding: 10px 0px 30px 15px;"|In this section we will show you two sample configuration of Advanced Billing.
+
|style="padding: 10px 0px 30px 15px;"|In this section we will show you two samples of configuration of Advanced Billing.
 
|}
 
|}
 
===Two Weeks Billing===
 
===Two Weeks Billing===
 
{|
 
{|
 
|style="padding: 10px 0px 15px 15px;"|In order to set up generating invoice for resource usage each 2 weeks, follow this steps:<br />
 
|style="padding: 10px 0px 15px 15px;"|In order to set up generating invoice for resource usage each 2 weeks, follow this steps:<br />
1. Go to '' 'Addons' '' → '' 'Advanced Billing 2.0.1' '' and select your product from '' 'Enable Advanced Billing 2.0 for:' ''.
+
1. Go to '' 'Addons' '' → '' 'Advanced Billing' '' and select your product from '' 'Enable Advanced Billing for:' ''.
 
|}
 
|}
 
{|
 
{|
Line 425: Line 445:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|2. Go to '' 'Billing Setting' '', mark '' 'Bill on Terminate' '' checkbox and enter '' '14' '' in '' 'Create Invoices Each' '' textbox.
+
|style="padding: 0px 0px 15px 15px;"|2. Go to '' 'Recurring Billing' '', mark '' 'Enable' '' and '' 'Bill on Terminate' '' checkboxes.<br />
 +
Additionally, choose '' 'Bill Every X Days' '' from '' 'Billing Type' '' dropdown menu and enter '' '14' '' into the '' 'Billing Type Value' '' textbox.
 
|}
 
|}
 
{|
 
{|
Line 431: Line 452:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|3. Scroll down and enter your pricing setting, afterwards, press '' 'Save Changes' ''.
+
|style="padding: 0px 0px 15px 15px;"|3. Scroll down and enter your pricing settings.<br />
 +
Afterwards, press '' 'Save Changes' ''.
 
|}
 
|}
 
{|
 
{|
Line 444: Line 466:
 
|}
 
|}
  
===5 Minutes Billing===
+
===20$ Billing===
 
{|
 
{|
 
|style="padding: 10px 0px 15px 15px;"|To bill your client as often as possible follow these steps:<br />
 
|style="padding: 10px 0px 15px 15px;"|To bill your client as often as possible follow these steps:<br />
1.Go to '' 'Addons' '' → '' 'Advanced Billing 2.0.1' '' and select your product from '' 'Enable Advanced Billing 2.0 for:' ''.
+
1.Go to '' 'Addons' '' → '' 'Advanced Billing' '' and select your product from '' 'Enable Advanced Billing for:' ''.
 
|}
 
|}
 
{|
 
{|
Line 453: Line 475:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|2. Go to '' 'Credit Billing' '' and mark '' 'Enable Credit Pay' '' checkbox.<br />
+
|style="padding: 0px 0px 15px 15px;"|2. Go to '' 'Credit Billing' '' and mark '' 'Enable' '' and '' 'Enable Credit Pay' '' checkboxes.<br />
Afterwards, enter '' '1' '' into '' 'Create Invoices Each'' ', ' ''20' '' into '' 'Minimal Credit' '' and '' '50' '' into '' 'Low Credit Notify' ''.<br />
+
Afterwards, enter '' '1' '' into '' 'Create Invoices Each'' ', ' ''20' '' into '' 'Minimum Credit' '' and '' '50' '' into '' 'Low Credit Notify' ''.<br />
With these settings your client will be billed from credit balance as soon as payment for resource usage reach 20$.<br />
+
With these settings your client will be billed from credit balance as soon as the payment for resource usage reach 20$.<br />
He will also receive email if his credit balance fall below 50$.
+
They will also receive an email if their credit balance falls below 50$.
 
|}
 
|}
 
{|
 
{|
Line 462: Line 484:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|3. Scroll down and enter your pricing setting, afterwards, press '' 'Save Changes' ''.
+
|style="padding: 0px 0px 20px 15px;"|3. Scroll down and enter your pricing settings, afterwards, press '' 'Save Changes' ''.
 
|}
 
|}
 
{|
 
{|
Line 477: Line 499:
 
==How To Update==
 
==How To Update==
 
{|
 
{|
|style="padding: 10px 0px 30px 15px;"|Due to completely rewritten code in version 2.0, you have to use migration tool in order to upgrade your Advanced Billing to the latest version.<br />
+
|style="padding: 10px 0px 30px 15px;"|In order to upgrade, simply copy the files, any additional operation will be made automatically.
You can find instruction for it in [http://www.docs.modulesgarden.com/Advanced_Billing_For_WHMCS#Migration_Tool Migration Tool section].
+
 
|}
 
|}
  
 
=Tips=
 
=Tips=
 
{|
 
{|
|style="padding: 10px 0px 0px 15px;"|'''1. Deactivation of the module removes products configuration, usage records and awaiting invoices.'''<br />
+
|style="padding: 10px 0px 0px 15px;"|'''1. Deactivation of the module removes products' configuration, usage records and awaiting invoices.'''<br />
In order to update module, simply follow instruction in '' 'How To Update' '' .
+
In order to update the module, simply follow instruction in '' 'How To Update' '' .
 
|}
 
|}
 
{|
 
{|
|style="padding: 10px 0px 0px 15px;"|2. Installed Applications usage record supports both Softaculous and Installatron.
+
|style="padding: 10px 0px 0px 15px;"|2. '' 'Installed Applications' '' usage record supports both Softaculous and Installatron.
 
|}
 
|}
 
{|
 
{|
Line 493: Line 514:
 
|}
 
|}
 
{|
 
{|
|style="padding: 10px 0px 20px 15px;"|4. If your client use currency that is not WHMCS base currency (for example, WHMCS base currency is €, while client uses $):
+
|style="padding: 10px 0px 20px 15px;"|4. If your client uses currency that is not WHMCS base currency (for example, WHMCS base currency is €, while client uses $):
Invoice for him will be generated in his currency, while usage record and calculation in Advanced Billing will be using base currency.
+
An invoice for such client will be generated in the chosen currency, while usage record and calculation in Advanced Billing will use base currency.
 
|}
 
|}
  
 
=Common Problems=
 
=Common Problems=
 
{|
 
{|
|style="padding: 10px 0px 5px 15px;"|1. When you will see an error message as shown on the screen below, that means your '' 'cron' '' directory privileges are insufficient.<br />
+
|style="padding: 10px 0px 5px 15px;"|1. When you see an error message as shown on the screen below, that means your '' 'cron' '' directory privileges are insufficient.<br />
 
To fix this, allow <strong>Read</strong> permissions to directory. In most cases chmod 755 solves the problem.
 
To fix this, allow <strong>Read</strong> permissions to directory. In most cases chmod 755 solves the problem.
 
|}
 
|}

Revision as of 10:56, 4 December 2014

Contents

About Advanced Billing For WHMCS

Article update is ongoing on this page, watch out for broken links and unclear descriptions!
We are sorry for the inconvenience caused.

Advanced Billing For WHMCS is a module that allows you to set up additional billing options for your products like disk usage or number of email accounts basing on server resource usage.

In other words, our product will let you charge customers on the grounds of the resources used by them. What is more, it offers hourly billing, ticket billing and credit billing.
The module will also automatically generate invoices on the basis of the data gathered by the synchronization.

  • Features:
✔ Hourly Billing For Any WHMCS Module!
✔ cPanel & cPanel Extended Integration: Hourly, Bandwidth, Storage, Databases, Addon Domains, Subdomains, Parked Domains, Domain Forwarders, FTP Accounts, Installed Applications, Email Accounts
✔ Parallels Plesk Panel & Parallels Plesk Panel Extended Integration: Hourly, Subdomains, Disk Space, Email Boxes, Sites, Redirects, Mail Groups, Autoresponders, Mailing Lists, Users, Databases, Webapps, Traffic
✔ DirectAdmin & DirectAdmin Extended Integration: Hourly, Bandwidth, Storage, Subdomains, Domain Pointers, FTP Accounts, MySQL Databases, Virtual Domains, Mailing Lists, POP Accounts, Email Forwarders, Email Autoresponders
Parallels Cloud Server Integration: Templates, CPU Usage, Memory, Bandwidth IN, Bandwidth OUT, Disk Used, Backups Usage
✔ SolusVM & SolusVM Extended VPS Integration: Hourly, Disk Usage, Bandwidth, Memory Usage
SolusVM Extended Cloud Integration: Available Disk Size, Disk Usage, Available Bandwidth, Available Memory, Cores, IP Addresses, Disk Usage, Bandwidth Used, Memory Usage
Proxmox VPS Integration: Hourly, Disk Usage, Bandwidth IN, Bandwidth OUT, Memory Usage, Backups Usage, CPU Number, CPU Usage
Proxmox Cloud Integration: Disk Usage, Disk Size, Bandwidth IN, Bandwidth OUT, Memory Usage, Memory Size, Backups, CPU Number, CPU Usage
OpenStack VPS Integration: Hourly, VCPU Cores, Memory Usage, CPU Utilization, Incoming Bandwidth, Outgoing Bandwidth, Disk Root Used, Disk I/O Read, Disk I/O Write, Floating IP, Fixed IP, Backups Number
Rackspace Email & Rackspace Email Extended Integration: Hourly, Mailbox Storage, Mailboxes, Sync Licenses, Blackberry Licenses, Exchange Storage, Exchange Mailboxes
Zimbra Email Integration: Hourly, Mailboxes, Aliases, Storage
✔ Ticket Billing
✔ Credit Billing
✔ Configuration Per Product
✔ Current List Of Billable Items For Next Invoices
✔ List Of Summary Credit Billing Charges For Hostings
✔ Possibility To Generate Invoices Automatically Or Manually
✔ Bill When Invoice Is Generated For Hosting
✔ Bill On Terminate Account
✔ Bill Each 1st Day Of Month
✔ Automatically Apply Credits
✔ Bill On Demand
✔ Low Credit Notification Email
✔ Logs
  • General Info:
✔ Multi-Language Support
✔ Supports WHMCS V5 and Later

Installation

In this tutorial we will show you how to successfully install and manage Advanced Billing For WHMCS.

We will guide you step by step through the whole installation and configuration process.

1. Log in to your client area and download Advanced Billing For WHMCS.
AB2 1.png
2. Upload and extract the module into the main WHMCS directory.

Files in your WHMCS directory should look like this.

AB2 2.png
3. When you install Advanced Billing for the first time you have to rename 'license_RENAME.php' file.

File is located in 'modules/addons/AdvancedBilling/license_RENAME.php' . Rename it from 'license_RENAME.php' to 'license.php' .

File:AB2 3.png
4. In order to configure your license key you have to edit a previously renamed 'license.php' file.

Enter your license key between quotation marks as presented on the following screen. You can find your license key in your client area → 'My Products' .

File:AB2 4.png
5. Now you have to activate the module in your WHMCS system.

Log in to your WHMCS admin area. Click 'Setup' then choose 'Addon Modules' .
Afterwards find 'Advanced Billing' and press 'Activate' button.

File:AB2 5.png
6. In the next step you need to permit access to the module.

To do so, click on 'Configure' , choose desired admin roles and press 'Save Changes' .

File:AB2 6.png
7. The last step is setting up a cron job, you can find it in your WHMCS → 'Addons' 'Advanced Billing' as shown on the following screen.
File:AB2 7.png
Well done, you have just successfully installed Advanced Billing For WHMCS!

Configuration and Management

Now let's learn more about module's functionalities. We will present you the possibilities of our product on cPanel Extended For WHMCS example.

Please note that billing features are different in each module but the core functionality of Advanced Billing is the same for each.
First, choose your module from 'Enable Advanced Billing for' dropdown menu as it is shown on the following screen.
For presentation purposes we have chosen 'cPanel Premium' with cPanel Extended module.

AB2 8.png

Core

Our module core has been redesigned to allow collecting the records and invoices' management.

All other features are handled by extensions, which can be easily enabled/disabled, and are configured per product.

Configuration

Core configuration consists of 2 tabs.

You can access resource usage pricing from any tab.

General Settings Tab

Here you can find information about the module used by your product. If the module is not supported, 'Basic Module' mode will be used instead.

'Basic Module' enables you to bill your client for hourly usage of the product only.
In this tab you can also enable/disable Advanced Billing for product.
To disable it, simply unmark 'Enable' checkbox and press 'Save Changes' button, as shown on the following screen.

AB2 9.png

Module Settings Tab

This tab is visible only for cPanel/cPanel Extended modules.

Here you can set Application Manager (Softaculous/Installatron) and cPanel theme. 'x3' is a theme's default value.
To use different theme simply enter its name as shown on the screen below.

AB2 12.png

Used Resource Pricing

In the bottom part of the screen you can set up billing for specific server resource usage like e.g. bandwidth.
  • Free Limit - is used to set amount of usage records for which customer won't be charged.

In our example, customer won't be charged for 1GB (1024MB) bandwidth.

  • Price - defines how much your client will have to pay for specific resource. Note that we provide two types of charging: units per hour and units used since last cron run.

For example, user pays for subdomain quantity each hour, but when traffic is generated, bandwidth used since the last cron run will have to be paid once only.

  • Displayed Unit - category defines how record usage will be displayed. It does not affect free limit and pricing, they are calculated in basic unit.

If you select 'GB' , free limit will be still 1024 MB, and price will be MB/hr, not GB/hr.

  • Status - allows you to enable/disable billing for this resource.

To proceed, choose your usage records, units, status, set up the prices and free limits. Afterwards, press 'Save Changes' .

AB2 13.png
As you could notice on the screen below, 'Configure' column has been added.

It allows you to set up different free limits and pricing depending on resource origin.
Currently only Parallels Cloud Server submodule supports this feature.

AB2 13 1.png

Items

To view counted usage, go to 'Items' tab.

Each cron run will create an item for each customer, if it does not exist at the moment, and add new records to existing ones.
In that way you can see current server resources usage from the last billing period.
Automatic generation of invoices is basing precisely on previously created items.
To view more details click on 'Show usage records' as shown on the following screen.
You can also easily remove billing for specific hosting. To do so, press 'x' in 'Delete' column.

AB2 14.png
After pressing 'Show usage records', you can learn some detailed information on Bandwidth, Storage, Domains and many others.
AB2 15.png
In order to view the price for a specific element of the record, simply hover your mouse over it.

The following screen shows the situation after running cron only 2 times. Note that the first record is always empty as its task is to initialize billing for the account.

AB2 16.png
In addition to the above information you can check when each cron was run.

You can also order creation of invoice for product through pressing 'Bill On Demand' .
Note: Bill on demand feature is not available for credit billing.

AB2 17.png

Awaiting Invoices

Here you can check your awaiting invoices. Invoices can be generated automatically and manually.

On the screen below you can see a previously generated invoice for our cPanel Extended account.
To view detailed information about particular invoice press 'Show' button.

AB2 20.png
This is the place where you can verify and modify awaiting invoices. It's advised to check whether invoices are correct to avoid any risk.

You already know that you can set up automatic invoice generation in configuration section. Now let's generate an invoice for your customer manually.
For this purpose simply click on 'Generate Invoice' .

AB2 21.png
After changing product's package, invoice is automatically generated for an old package.

Settings

Under 'Settings' tab you can find pages such as logs and integration code.

Logs

In 'Logs' you will find information about the module activity. You can view informative logs, error logs and critical logs.

Choose .log file from a dropdown menu and press 'Show' as presented on the screen below.
To remove a log simply press 'Delete' instead of 'Show' button.
New log files are created every day to help you find information you are looking for.

AB2 18.png
On the following screen you can see how 'infolog-YYYY-MM-DD.log' can look like.
AB2 19.png

Integration Code

'Integration Code' page contains codes required to integrate Advanced Billing For WHMCS with your client area.

The first of them allows usage records and autoscaling related features to be displayed in the client area.
It is required for 'Autoscale' and 'Client Area Usage Records' extensions.
Placing the second one results in displaying prices on the order form.
Important: Edition of clientareaproductdetails.tpl for classic and portal templates goes a bit differently than shown on the screen below.
In this case place required code after this line:

<div align="center">{$moduleclientarea}</div>
AB2 22.png
Usage records in the client area. Note that disabled usage records will not be displayed.
AB2 23.png
Pricing on the order form. Note that disabled usage records will not be displayed.
AB2 24.png

Extensions

In this section we will describe each extension step by step.

Important: Only three of them are included in Advanced Billing For WHMCS product, the rest can be obtained separately.
Default extensions included into Advanced Bulling For WHMCS are 'Recurring Billing' , 'Usage Records' and 'Credit Billing' .
Each extension is configured per product, therefore you can use different sets of extensions according to your needs.
To start using an extension, you need to activate it firstly, proceed to 'Settings' 'Extensions' page.
Afterwards, press 'Activate' next to the extension you wish to use, new options will appear in Advanced Billing For WHMCS.

AB2 50.png

Autoscale (Sold Separately)

The main functionality of Autoscale For WHMCS extension is automatic upgrade/downgrade of a product according to its usage.

For more information about Autoscale For WHMCS, visit its Wiki.

AB2 51.png

Usage Records

This extension displays usage records and usage records history in the client area products page.

To use it, besides enabling in, you need to place an integration code.
This extension is configured per product, proceed to the product configuration in Advanced Billing.
As you can see, new tab is available here.

  • Enable - enables usage records being displayed for that product in the client area.
  • Display Summary From - defines period from which usage records will be counted.
  • Usage Records Precision - defines precision of usage records
  • Show Usage Records - displays history of usage records.
  • Usage Records Per Page - defines how many usage records should be displayed per page.
AB2 52.png
On the following screen you can see a sample of usage records and usage records history in the client area.
AB2 53.png
Additionally, a client can view history of records as shown below.
AB2 54.png

Credit Billing

'Credit Billing' extension allows you to charge for a product from client credit balance.
  • Enable Credit Billing - this option enables/disables credit billing for this module (if credit billing is enabled, standard billing will be turned off).
  • Create Invoices Each - this option defines how often invoice will be generated for this product (if nothing entered here, it will be 30 days).
  • Minimum Credit - minimum amount that will be charged from client account credit balance.
  • Low Credit Notify - if this value is higher than credits on client account, email to your client about low credit amount will be sent.
  • Email Interval - defines how often low credit notification email will be sent.
  • Autosuspend - when credit balance reaches 0, product ordered by client is automatically suspended and invoice with lacking amount is generated.
  • Due Date - the number of days that your customers will have, to pay the invoice.
AB2 55.png
When 'Autosuspend' is marked and your client's credit balance reach 0, the client's product will be suspended. Additionally, invoice with lacking payment will be generated.

If it is unmarked and credit balance reaches 0, the client's product will not be suspended and invoice will be generated according to number of days set in 'Create Invoices Each' field.

User Credits

All information related to credit payment for hosting can be found in 'User Credit' tab. As you can see, there are two columns with credits.

The first one, 'Internal Credit' contains credits which were not used for payment, but are reserved for it. It was created to increase accuracy of credit billing.
The second column, 'Already Paid For Hosting' contains summary credit payment for hosting.
You can order refund of any hosting through pressing 'Refund' button next to it. Client will receive sum of 'Internal Credit' and 'Already Paid For Hosting' rounded down to 0.01.

AB2 56.png

Recurring Billing

This extension allows you to set up recurring billing for product.
  • Enable Recurring Billing - check to enable this billing type.
  • Bill on Terminate - when account connected with your module is terminated, invoice for account will be generated.
  • Bill Type - enables you to choose how to bill your client.
    • Bill on Invoice Generate - customer will receive an invoice at the same time as the invoice for their hosting account.
    • Bill On Specific Day - will generate invoices each month on the day specified in the Billing Type Value.
    • Bill Each X Days - as its name suggests, it generates invoice each X days where X is a number specified in Billing Type Value field.
  • Due Date - the number of days in which your customers will have to pay the invoice.
  • Autogenerate Invoice - an important feature which if enabled, automatically sends previously generated invoices directly to your customers.
  • Auto Apply Credits - automatically applies any available credits when invoice is created, works only if 'Autogenerate Invoice' is enabled.
File:AB2 57.png

Hourly Billing

Hourly billing allows you to charge your customers for each hour of use of the product (hourly billing calculations are basing on product 'Registration Date' ).

You can enable hourly billing for any product type.
Regardless of whether it is a server, web hosting account or other, customer will be billed for each hour of using the product.

AB2 29.png

Ticket Billing

Ticket billing works exactly as it sounds. When enabled, it bills your customers for each opened ticket.

As in the case of hourly billing, you can enable ticket billing for any product type.

AB2 30.png

Sample Configuration

In this section we will show you two samples of configuration of Advanced Billing.

Two Weeks Billing

In order to set up generating invoice for resource usage each 2 weeks, follow this steps:

1. Go to 'Addons' 'Advanced Billing' and select your product from 'Enable Advanced Billing for:' .

AB2 31.png
2. Go to 'Recurring Billing' , mark 'Enable' and 'Bill on Terminate' checkboxes.

Additionally, choose 'Bill Every X Days' from 'Billing Type' dropdown menu and enter '14' into the 'Billing Type Value' textbox.

AB2 32.png
3. Scroll down and enter your pricing settings.

Afterwards, press 'Save Changes' .

AB2 33.png
You have just successfully configured billing!

You should see something like on screen below in your Advanced Billing main page.

AB2 34.png

20$ Billing

To bill your client as often as possible follow these steps:

1.Go to 'Addons' 'Advanced Billing' and select your product from 'Enable Advanced Billing for:' .

AB2 35.png
2. Go to 'Credit Billing' and mark 'Enable' and 'Enable Credit Pay' checkboxes.

Afterwards, enter '1' into 'Create Invoices Each ', ' 20' into 'Minimum Credit' and '50' into 'Low Credit Notify' .
With these settings your client will be billed from credit balance as soon as the payment for resource usage reach 20$.
They will also receive an email if their credit balance falls below 50$.

AB2 36.png
3. Scroll down and enter your pricing settings, afterwards, press 'Save Changes' .
AB2 37.png
You have just successfully configured billing!

In your Advanced Billing 'Configuration' tab you should see something similar to the following screen.

AB2 38.png

How To Update

In order to upgrade, simply copy the files, any additional operation will be made automatically.

Tips

1. Deactivation of the module removes products' configuration, usage records and awaiting invoices.

In order to update the module, simply follow instruction in 'How To Update' .

2. 'Installed Applications' usage record supports both Softaculous and Installatron.
3. You can set up as many products as you want.
4. If your client uses currency that is not WHMCS base currency (for example, WHMCS base currency is €, while client uses $):

An invoice for such client will be generated in the chosen currency, while usage record and calculation in Advanced Billing will use base currency.

Common Problems

1. When you see an error message as shown on the screen below, that means your 'cron' directory privileges are insufficient.

To fix this, allow Read permissions to directory. In most cases chmod 755 solves the problem.

AB2 39.png
2. When you have problems with connection, check whether your SELinux or firewall does not block ports.
3. You are unable to find specified line in clientareaproductdetails.tpl.

Cause 1: You are using Classic or Portal template.
Solution 1: In this case place required code after this line:

<div align="center">{$moduleclientarea}</div>

Cause 2: You are using heavily customized template.
Solution 2: Create a ticket and one of our specialists will help you set up the module.

Navigation
WHMCS Modules
WHMCS Widgets
Tools And Applications
Translations
General
FAQ
Community
Advanced Billing For WHMCS