Personal tools
Namespaces

Variants
Actions

Advanced Billing For WHMCS

From ModulesGarden Wiki
Revision as of 11:48, 21 August 2015 by Peter (Talk | contribs)

Jump to: navigation, search

Contents

About Advanced Billing For WHMCS

Advanced Billing For WHMCS allows you to set up additional billing options for your products like bandwidth or CPU usage, basing on actual server resource usage.

In other words, the module will let you charge customers on the grounds of the resources used by them. It offers also hourly billing, ticket billing, credit billing and recurring billing.
The module will also automatically generate invoices on the basis of the data gathered by the synchronization. It is integrated with many modules including cPanel and SolusVM.

  • Core Features:
✔ Hourly Billing For Any WHMCS Module
✔ Ticket Billing
✔ Configuration Per Product
✔ Manage Extensions And Configure Them Per Product
✔ Current List Of Billable Items For Next Invoices
✔ View Resources Usage History Of Any Item
✔ Manage Awaiting Invoices And Convert Them To Invoices
✔ Logs
  • 'Recurring Billing' Extension Features:
✔ Bill On Account Terminate
✔ Bill When Invoice Is Generated For Hosting
✔ Bill Each X Day Of Month
✔ Bill Each X Days
✔ Automatically Generate An Invoice
✔ Define Invoice Payment Due Date
✔ Automatically Apply Credits
  • 'Credit Billing' Extension Features:
✔ Generate Invoice Each X Days
✔ Define Minimal Amount Of Credit To Charge
✔ Sent Email When Client's Credit Balance Falls Below Defined Credit Amount
✔ Automatically Suspend Account When Client Is Out Of Credits
✔ Define Invoice Payment Due Date
✔ List Summary Credit Billing Charges Of Any Hosting
✔ Refund Credit Payment To Client
✔ Automatically Refill Client's Credit Balance Using Their Credit Card
✔ Client Can Enable/Disable Auto Refilling And Define A Single Refill Amount
  • 'Resource Usage' Extension Features:
✔ Define Period For Counted Resource Usage
✔ Define Resource Usage Counting Precision
✔ Show History Of Resource Usage
  • Supported Modules:
Autoscaling - Standalone Extension - Automatically Adjust And Upgrade/Downgrade The Products Of Your Clients According To The Server Resource Usage
✔ 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, Memory Usage (except KVM virtualization), Bandwidth Used
SolusVM Extended Cloud Integration: Available Disk Size, Disk Usage, Available Bandwidth, Available Memory, Cores, IP Addresses, Disk Usage, Memory Usage (except KVM virtualization), Bandwidth Used
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
  • General Info:
✔ Count Usage Of All Accounts Assigned To Reseller - cPanel, cPanel Extended, DirectAdmin & DirectAdmin Extended
Multi-Language Support
✔ Supports Templates Five and Six
✔ Supports WHMCS V5 and V6

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. 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
4. 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
5. Now, proceed to Extensions section to find more about configuring license.
6. 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.

Note: To display usage records in the client area, you need to enable 'Usage Records' extension.

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
If you skip steps 3-4 of the installation instruction, you have to configure the license for each of the 3 base extensions.

Note that each of them uses Advanced Billing license key.
Press 'Configure' , paste your license and confirm changes.

AB2 50 1.png

Autoscaling (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

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.
  • Autorefill - if enabled, client's credit balance will be refilled from his credit card each time it became empty.
  • Gateway - gateway used to charge client's credit card.
  • Minimum Amount - minimum amount to charge from client's CC.
  • Maximum Amount - maximum amount to charge from client's CC.

'Note: Clients can define if they wish to use autorefill functionality as well as choose amount to refill in a single run.

AB2 52.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 53.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.
AB2 54.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 55.png
On the following screen you can see a sample of usage records and usage records history in the client area.
AB2 56.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
Translations
cPanel Modules
General
FAQ
Community
Advanced Billing For WHMCS