Recurring Billing Extended For WHMCS

From ModulesGarden Wiki
Jump to: navigation, search

Contents

About Recurring Billing Extended For WHMCS

Recurring Billing Extended For WHMCS will allow you to draw up fixed-term contracts for your clients in relation to the offered products and services.

You will be able to define which products require contract acceptance, then set the time span of each contract along with its possible discount and penalty amount.
The module will also let you preview vital statistics and logs gathered in transparent manner on the dashboard.

  • Admin Area Features:
✔ Create Multiple Contracts Per Product
✔ View And Manage Signed Contracts
✔ Configure Contract Signature Types
✔ Define Time & Modify Contract End Notifications
✔ Modify Contract Renewal Notifications
✔ Define Time After Which Contract Is Defined As Broken
✔ View Logs
  • Contact Features:
✔ Define Contract Content In Multiple Languages
✔ Assign Product To Contract
✔ Define Promo And Penalty Types
✔ Define Multiple Contracts Sets
✔ Define Contract Length - Up To 10 Years
✔ Define Promo And Penalty Amounts
✔ Define Days Before Expiration To Cancel Contract Without Penalty
✔ Define Trial Period Length
✔ Define Time To Send Renewal Notification
✔ View Total And Recurring Prices
✔ View Amount Of Penalty
✔ Choose Contract Signature Type:
✔ Checkbox
✔ File Upload
✔ Adobe Sign
✔ DocuSign
✔ Allow Orders Without Contract
✔ Define Renewal Type
✔ Renewal Without Contract
✔ Renewal With Contract
✔ Cancel
✔ Toggle Availability Of Cancellation Request
  • Client Area Features:
✔ Choose Contract Length During Order
✔ View Contract Content Before Accepting It
✔ View Details Of All Signed Contracts
✔ View History Of Any Signed Contract
  • General Info:
✔ Multi-Language Support
✔ Supports PHP 5.4 Up To PHP 7
✔ Supports WHMCS Templates Five and Six
✔ Supports WHMCS V6 and V7

Installation

This tutorial will show you how to successfully install and configure Recurring Billing Extended For WHMCS.

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

Installation

1. Log in to your client area and download the module.
RB 1.png
2. In the downloaded file you will find two packages that support different PHP versions.
As presented on the screen below, the first one is dedicated to PHP 7, while the second one is aimed at PHP 5.4 up to PHP 5.6.
It does not apply to open source versions.

Note: You can check current PHP version in your WHMCS. To do so proceed to 'Utilities' → 'System' → 'PHP Info'.

RB 2.png
3. Extract the downloaded file and choose the one with the right PHP version. Upload and extract the PHP file into the main WHMCS directory.

The content of PHP version files should look like this.

Drter.png
4. When you install Recurring Billing Extended For WHMCS for the first time you have to rename 'license_RENAME.php' file.

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

RB 3.png
5. The next step is setting up 'storage' folder as writable.

It is located in 'your_whmcs/modules/addons/recurringBilling/'.

RB 3 2.png
6. In order to configure your license key, you have to edit the 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'.

RB 4.png

Activation

7. Now, you have to activate the module in your WHMCS system.

Log in to your WHMCS admin area and proceed to 'Setup' 'Addon Modules'.
Afterwards, find 'Recurring Billing Extended' and press 'Activate' button.

RB 5.png
8. In the next step you need to permit access to this module.

To do so, click on 'Configure' button, tick checkboxes to assign desired admin roles.
Press 'Save Changes'.

RB 6.png
9. Now it is time to insert proper integration codes.

  • WHMCS V6 x.x. and V7

Module requires alterations into your order form template. Open your currently used order form and follow the instructions.
You will find it in: yourWHCMS/templates/orderforms/yourOrderForm/viewcart.tpl

Find line:

{if $securityquestions && !$loggedin}

Insert this code snippet above that line:

 <div class="sub-heading" id="recurring-biling-contracts">
    <span>{$contractTitle}</span>
</div>
{$contractOutput} 

This is how a properly inserted code should look like:

RB 6 1.png
Note: For illustration purposes we have used modern orderform, please make changes in the form you are using!
Remember that the content of other order forms may slightly vary from the description above!
Check the 'Utilities' → 'Integration' tab in your module for valid code.
  • WHMCS V5 x.x

Open your currently used order form and follow the instructions.
You will find it in: yourWHCMS/templates/orderforms/yourOrderForm/viewcart.tpl

Find line:

{if $securityquestions && !$loggedin}

Insert this code snippet above that line:

<div class="signupfields">
        <h2>{$contractTitle}</h2>
        {$contractOutput}
    </div>

This is how a properly inserted code should look like:

RB 6 2.png
Note: For illustration purposes we have used modern orderform, please make changes in the form you are using!
Remember that the content of other order forms may slightly vary from the description above!
10. You have just successfully installed Recurring Billing Extended For WHMCS!

Configuration and Management

Once you have properly installed and activated the product you may move to its actual configuration.

Read the below sections to learn how to use Recurring Billing Extended For WHMCS completely.

Configuration

In order to start using your Recurring Billing Extended For WHMCS move to 'Addons → Recurring Billing'.

By default, you will be moved to the addon's dashboard with a guide opened. You will find there short notes on how to configure the product.
In this article we will expand these instructions a bit more.

RB 7.png
Hide the guide when you have completed the configuration and learned how to reconstruct the process.

Contract Content

First off all, create your first contract's content. To do so, move to 'Contract Content' section and press 'Add New' button.
RB 8.png
Here you can compose the content of a contract.
  • Type in the 'Name' of a contract
  • Fill out the filed with 'Content', you may use 'Available Merge Fields' to do so
    • Client Fields
    • Product Fields
    • Contract Fields
  • Use advanced edition tool to perfectly shape the contract.
  • Compose the contract translation, just select required language from a dropdown menu and type in the translated content.

Do not forget to 'Save' the changes once you have finished.

RB 9.png
Your newly created contract draft is now visible on the list.

Use action buttons to edit the contract or delete it if you are sure it is useless.

RB 11.png

Sign Types

In this tab you can configure the methods of signing contracts, which you will then be able to use for creating a contract template.
You can configure the following methods:
  • Adobe Sign
  • DocuSign
  • File Upload

Note: The checkbox sign method does not require any configuration, so it is not visible in this tab, but you will still be able to select it when creating a contract template.

RB 42.png

Adobe Sign

To set up the Adobe Sign , take the following steps:

1. Log in to your Adobe Sign profile.
2. Go to the API tab.
3. Choose the API Applications from the menu on the left and press the + button

RB 43.png

4. Enter the 'Name' and 'Display Name' of your application and select 'CUSTOMER' domain. Press 'Save' when ready.
5. Now, select the created application in the list and click on 'Configure OAuth for Application' .
6. While there, you will find your 'Client ID' and 'Client Secret' which are required for the configuration. Please keep them safe.
7. Next, you need to provide a proper callback 'Redirect URIs' from your WHMCS installation in the following format:

https://yourdomain.com/includes/RecurringBilling/getCode.php

Note: Provided URI also has to start with https:// . You will find the already customized address in your module sign types configuration.
8. Finally you have to enable all the scopes. Press 'Save' when ready.

RB 44.png

9. Now return to the configuration of the WHMCS module and enter the previously obtained data. As the 'Client Email' use the one from your Adobe Sign login.
Do not forget to 'Save' the settings first because only then you will be able to click the 'Authorization' button.

RB 45.png

10. You will have to confirm your access to the authorization for Adobe Sign.

RB 46.png

10. Finally, if you provided all data correctly you should receive the notice that authorization has been completed successfully.

DocuSign

1. You can set up DocuSign in to ways:
  • for the 'Demo' environment, log in here.
  • for the 'Live' environment, log in here.

2. After successful login to the selected environment, select 'API and Keys' tab from the left menu.
3. To access 'My Integrator Keys' section you may need to login again for security reasons.
4. Now press the 'ADD INTEGRATOR KEY' button.
Important: Integrator keys can be created only through a developer demo account. To go live with your API integration, you need a live DocuSign production account to promote the key to!

RB 47.png

5. Enter the desired 'App Description' and optionally links to your 'Privacy Policy' and 'Terms of Use' . Press 'Add' when ready.
6. You should now see the expanded 'API Integration Key' details. Save the 'Integration Key' ' which is your 'Client ID' that you will use at a later stage of the configuration.
7. In 'Redirect URIs' tab press 'ADD URI' button. There, you need to provide a proper callback 'Redirect URIs' from your WHMCS installation in the following format:

https://yourdomain.com/includes/RecurringBilling/getCodeESignature.php

Note: You will find the already customized address in your module sign types configuration.

RB 48.png

8. Then click on the 'ADD SECRET KEY' button. It will show you your secret key which is the 'Client Secret' for module configuration.
Note: Copy and save that key immediately because you won't be able to fully read it anymore.
When ready save the changes.

RB 49.png

9. Now return to the configuration of the WHMCS module and where you can enter the previously obtained data, but first choose if you are using demo environment.
Next provide:

  • Client ID - it is your 'Integration Key'
  • Client Secret - it is your early created 'Secret Key'
  • Client Email - use the one from your 'DocuSign login'
  • Client Password - use the one from your 'DocuSign password login'

Do not forget to 'Save' first because only then you will be able to click the 'Authorization' button.

RB 50.png

10. You will have to confirm your access authorization for DocuSign.

RB 51.png

11. Finally, if you provided all data correctly you should receive notice that authorization has been completed successfully.

File Upload

Here you can configure the minimum and maximum size of files uploaded by your clients as contract signs.

Note: Currently all image, MS Word and PDF formats are supported for upload.

The values provided here must be given as bytes (B) units. E.g.:

  • 1024 B = 1 KB
  • 1048576 B = 1024 KB = 1 MB
  • 1073741824 B = 1048576 KB = 1024 MB = 1 GB

So, if you want to allow uploaded files e.g. being in between 1 and 8 megabytes in size provide '1048576' and '8388608' values accordingly.
If you do not want to limit the uploaded file sizes, leave '0' value.

Important: The maximum value of the uploaded file size also depends on the configuration of these values in the php.ini file of the server.
If you want to give a higher value, you must also increase the 'upload_max_filesize' and 'upload_max_filesize' in php.ini file accordingly.
Otherwise, the higher value specified in the module will automatically be decreased to the values specified in the php.ini configuration file.

RB 52.png

Contract Templates

Now, that you have a contract's content draft, move to 'Contract Templates'.

In this section you can predefine which contract content draft a specific product a template will refer to.
Press 'Add New' to begin.

RB 12.png
Fill out the contract template form. Name the template, as mentioned before, choose content name from the ones you prepared previously (see 'Contract Content' section).
Select product that this template will be available with.
Note: You can assign only one template to a single product, it is not possible to alter the product assignment once you save the changes!

Define one of the methods by which your customers will be able to sign contracts. Choose from the following:

  • Adobe Sign
  • Checbox
  • DocuSign
  • File Upload

Note: Don't forget to set up their initial configuration.
Choose Fixed or Percentage values for Promotion and Penalty amounts.
Define contract renewal option:

  • Renew with contract
  • Renew without contract
  • Cancel

Finally, you may decide whether ta allow your clients to cancel the contract while it is active or not.
Once ready, remember to 'Save' the changes.

RB 13.png
Once you have added a new template, you have to fill out contract's details. An appropriate box should appear next to the template form.

You will find there a payment type and the price, number of signed contracts and a checkbox,
which, when selected, allows to order assigned product without the need to accept this contract.
Press '+' to see more.

RB 14.png
In this form you can define:
  • Length - how long such contract shall last
  • Promo Amount - as fixed amount or percentage, depending on the previously selected type in the template form
  • Penalty Amount - as fixed amount or percentage, depending on the previously selected type in the template form
  • Days To Cancel - number of days to the end of the contract from which the customer will no longer have to pay a cancellation penalty
  • Trial Period - number of days when a client may resign from the contact without any consequences or giving reason of resignation
  • Notice Time - define time when a renewal notification will be sent

Next to each of the options (except 'Trial Period') there will appear counted pricing of product.
Remember to 'Save' the changes again.

RB 15.png

Configuration

The last step mentioned in the 'Guide' is setting up 'Notifications' and 'Penalty'.
These options can be found under 'Configuration' tab in 'Utilities' section.
RB 16.png
Select which email notifications you want your clients to receive, enter number of days before due date to send the notification.

Move to 'Setup' → 'Email Templates' → 'General Messages' in your WHMCS to view and edit the notifications. You will find them under 'Ending Contract Notification' name.
Enabled notifications are sent automatically with daily cron run.

RB 17.png
Define number of days when a client can be late with payment.
If a client misses to make payment for longer than the specified here number of days, a penalty will be imposed on such client.
Note: penalty type and amount are specified in 'Contract Template' details.
RB 18.png
Here you can also turn off the guide or turn it on again once you have hidden it.

'Save' the changes once your configuration is ready.

RB 19.png

Management

In the following sections we will try to explain how previously configured contracts are forced on clients.

Client Area

Place Order

To illustrate the process, let's say a client orders one of your products with recurring payment (it is important that you have previously prepared a contract for this product).
RB 20.png
On the order form, there is a box where a client needs to select one of the available billing cycles.
RB 21.png
Once a billing cycle is chosen, in 'Additional Required Information' a client must select contract length from the available.
RB 22.png
Before accepting any Terms of Use, a client may view the contract and read it.
RB 23.png
Once familiar with the content of the contract accept 'Contract Terms of Use', only then you will be allowed to view the cart with the selected product.

Note: 'Checkbox' method is used in the following example.

RB 24.png
If you do not accept the terms of use you will not be allowed to move to the cart.
RB 25.png
In the cart all contracts are available to view, make sure you accepted all of them before you check out.
Otherwise, you will not be allowed to proceed.
RB 26.png

Service Contracts

To view all accepted contracts, find 'Service Contracts' section.

Note, if you are working with WHMCS V 5 x.x., you will find 'Service Contracts' tab in your navigation menu under 'Billing' section.

RB 27.png
There is a full list of client's contracts with the most important information about them.

Use action buttons to:

  • view the contract details page
  • open a PDF version of the contract
  • see the contract content changes history
RB 28.png
View the contract's details page:
RB 28 1.png
View PDF version:
RB 29.png
History of any changes in the contract content:

View PDF to see the previous version of the contract.

RB 30.png

Admin Area

Come back to your admin area addon view to manage signed contracts.

Signed Contracts

In 'Signed Contracts' section you will find a list of all contracts accepted by your clients.

On the main page you can see name of the client with service used, recurring payment amount for their product and contract details such as signing and ending dates, length and status.
Use action buttons to cancel or edit contracts. If you use edit button, you will be moved to a full view of the contract.

RB 31.png
On this page you can see once again details of a contract accepted between a client and you.
RB 32.png
Here, you are allowed to modify the content of this very contract. Note that used 'Contract Content' will not be altered, only this signed item.
RB 33.png
In case you decide to make any changes to the contract, the previous (before changes) version of the contract is added to the 'History'.

Thanks to that, you may always come back to the original, restore it (changes made will be overwritten with the previous content) or view PDF version.

RB 34.png

Dashboard

On the Dashboard of your addon you will find the most important information in a nutshell.

These are:

  • Recently Signed Contracts
  • Recently Ended Contracts (including finished, canceled and broken ones)
  • Contract Status
  • Logs
RB 35.png

Logs

In 'Logs' section you have a full view on any attempted action on any contract.
RB 38.png

Advanced Billing For WHMCS Integration

It is possible to combine your Recurring Billing For WHMCS module with one of our most favored products which is Advanced Billing For WHMCS.

In order to configure the two modules to work together move to 'Advanced Billing addon' → 'Configuration' and find the product you want to work with.
Move to 'Settings' → 'Recurring Billing' section, as billing type select 'Bill On Invoice Generation' option.
Learn more about Advanced Billing configuration here.

RB 40.png
When ready, Recurring Billing For WHMCS will be in constant cooperation with the other module within the configured product. If you want to combine the functionalities
of the two modules for more than one product, please remember to select 'Bill On Invoice Generation' option for all of them!

Tips

1. If you mark checkbox 'Select to permit orders without contract' in a contract template, while placing an order a client will be allowed
to select 'I do not want to sign a contract' option form 'Contract Length'.
No 'Terms of Use' will have to be accepted then and the client will not be charged according to the contract's details.
RB 39.png
2. The contracts are automatically broken in two cases:
  • The invoice has not been paid - module counts the number of days set up in configuration 'penalty after x days' until the moment the payment is noted in the system.
  • Client has sent a cancellation request for the product.
3. As this module supports templates system, any changes made in the module's templates files will be saved after the upgrade process.

Common Problems

1. When you have problems with connection, check whether your SELinux or firewall does not block ports.
2. Remember that Recurring Billing Extended For WHCMS contracts can be applied to products with recurring payment type only.
RB 41.png
Personal tools
Namespaces

Variants
Actions
Navigation
WHMCS Modules
cPanel Modules
Magento Extensions
Magento Themes
PrestaShop Modules
Blesta Extensions
General
Social
Recurring Billing Extended For WHMCS