Personal tools
Namespaces

Variants
Actions

Domains Reseller For WHMCS

From ModulesGarden Wiki
(Difference between revisions)
Jump to: navigation, search
(About Domains Reseller For WHMCS)
 
(146 intermediate revisions by 7 users not shown)
Line 9: Line 9:
 
|}
 
|}
 
<!--a comment maybe? -->
 
<!--a comment maybe? -->
*'''Provider Features:'''
+
*'''Provider:'''
 
{|
 
{|
|style="padding: 10px 0px 0px 30px;"|✔ Utilize Your Own API For Domains Reselling
+
|style="padding: 10px 0px 0px 30px;"|✔ View Resellers And TLDs Income Statistics
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Generate Domain Registrar Module For WHMCS & HostBill
+
|style="padding: 0px 0px 0px 30px;"|✔ View Most Profitable Resellers And Latest Invoices
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Enable/Disable API
+
|style="padding: 0px 0px 0px 30px;"|✔ Create And Manage Resellers:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Whitelist Reseller IP Addresses
+
|style="padding: 0px 0px 0px 45px;"|✔ Assign To Dedicated Group
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Set API Requests Limit
+
|style="padding: 0px 0px 0px 45px;"|✔ Assign Client's Account
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Disable API For New Users Automatically
+
|style="padding: 0px 0px 0px 45px;"|✔ Generate Access API Key
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Generate API Key For New Users Automatically
+
|style="padding: 0px 0px 0px 45px;"|✔ Restrict Access To Specific IP Addresses
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Toggle SSL Connection
+
|style="padding: 0px 0px 0px 45px;"|✔ Allow API Access
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Manage API User:
+
|style="padding: 0px 0px 0px 45px;"|✔ Define API Limits Interval And Requests
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ View Details Of API User
+
|style="padding: 0px 0px 0px 45px;"|✔ View Reseller's Orders And Income
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Enable/Disable User API
+
|style="padding: 0px 0px 0px 45px;"|✔ Automatically Create Resellers From Clients Using Provisioning Module
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Assign Promo Codes
+
|style="padding: 0px 0px 0px 30px;"|✔ Create And Manage Groups:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Generate Key
+
|style="padding: 0px 0px 0px 45px;"|✔ Allow API Access With Defined Permissions
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Restrict IP Addresses
+
|style="padding: 0px 0px 0px 45px;"|✔ Allow Access To API Documentation
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Define API Requests Restriction
+
|style="padding: 0px 0px 0px 45px;"|✔ Select Pricing Method For Reselling TLDs:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Order Mass Actions On API User:
+
|style="padding: 0px 0px 0px 60px;"|✔ Override With Own Pricing Slab
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Generate Keys
+
|style="padding: 0px 0px 0px 60px;"|✔ Use Default WHMCS Pricing Slab
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Enable Keys
+
|style="padding: 0px 0px 0px 45px;"|✔ Provide Promotion Code With WHMCS Pricing Method
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Disable Keys
+
|style="padding: 0px 0px 0px 45px;"|✔ Send Low Credit Notification
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Send Low Credit Notification
+
|style="padding: 0px 0px 0px 45px;"|✔ Define Payment Collection Type:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Choose TLDs Enabled For Reselling via API
+
|style="padding: 0px 0px 0px 60px;"|✔ After Domain Registration
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Allow Chosen Resellers To:
+
|style="padding: 0px 0px 0px 60px;"|✔ After Order Placement
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Pay After Order - No Credits Required
+
|style="padding: 0px 0px 0px 45px;"|✔ Define Refund Policy Upon Unsuccessful Domain Registration:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Pay After Registration - No Credits Required
+
|style="padding: 0px 0px 0px 60px;"|✔ Disabled
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Set Up IP Addresses Restrictions And Their Limits
+
|style="padding: 0px 0px 0px 60px;"|✔ Via Credits Only
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Define Type Of Refund Upon Unsuccessful Domain Registration
+
|style="padding: 0px 0px 0px 60px;"|✔ Via Invoice Refund
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Overwrite Registrar Message Displayed To End Customers
+
|style="padding: 0px 0px 0px 45px;"|✔ Allow Reseller Debit Within Defined Unpaid Invoices Limit
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Generate API Knowledgebase
+
|style="padding: 0px 0px 0px 45px;"|✔ Define Default Domain Registrant
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 10px 30px;"|✔ View API Logs
+
|style="padding: 0px 0px 0px 45px;"|✔ Define Tech/Admin/Billing Domain Contact Details
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Define Domain Contacts To Be Edited By End Clients
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Create Domain Registrar Integration Modules For Resellers:
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Choose Dedicated Platform:
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 75px;"|✔ WHMCS
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 75px;"|✔ Blesta
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Define Name And Description
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Provide Logo
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Attach Additional Fields Integration File
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ Attach Documentation
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Assign Offered TLDs For Resellers
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Define Pricing For Each TLD Extension:
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ For Register, Transfer And Renew Action
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ For Each Year Period
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 60px;"|✔ For Each Currency
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Create Response Templates To Overwrite Registrars Messages Displayed To End Clients
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Configure Default Settings:
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Toggle Global API Status
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Toggle Global API IP Restriction
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Toggle Global API Requests Restriction
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Define Default Group Settings
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ View API Request And Response Logs
 +
|}
 +
{|
 +
|style="padding: 0px 0px 10px 30px;"|✔ View API Documentation
 
|}
 
|}
  
*'''API Functionality:'''
+
*'''Resellers:'''
 
{|
 
{|
|style="padding: 10px 0px 0px 30px;"|✔ Register/Transfer/Renew Domain
+
|style="padding: 10px 0px 0px 30px;"|✔ Access Dedicated Reseller Area
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Release/Delete Domain
+
|style="padding: 0px 0px 0px 30px;"|✔ View Domains Orders
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Modify Contact Details
+
|style="padding: 0px 0px 0px 30px;"|✔ View TLDs Pricing
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Get EPP Code
+
|style="padding: 0px 0px 0px 30px;"|✔ View And Assign Bought Domains
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Get/Save DNS Records
+
|style="padding: 0px 0px 0px 30px;"|✔ Access Reseller Settings:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Get/Modify Nameservers
+
|style="padding: 0px 0px 0px 45px;"|✔ View Available Account Credits
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Register/Modify/Delete Nameserver
+
|style="padding: 0px 0px 0px 45px;"|✔ Access API Details:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Registrar Lock
+
|style="padding: 0px 0px 0px 60px;"|✔ View Available Credentials
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Get/Save Email Forwarding
+
|style="padding: 0px 0px 0px 60px;"|✔ View/Generate API Key
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ ID Protection
+
|style="padding: 0px 0px 0px 60px;"|✔ View/Modify IP Addresses Restrictions
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 10px 30px;"|✔ Domain Cron Synchronization
+
|style="padding: 0px 0px 0px 45px;"|✔ Download Domain Registrar Integration Module
 
|}
 
|}
*'''End User Features:'''
+
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Download Provider Documentation
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Download Additional Fields Integration File
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ View API Request And Response Logs
 +
|}
 +
{|
 +
|style="padding: 0px 0px 10px 30px;"|✔ View API Documentation
 +
|}
 +
 
 +
*'''End Clients:'''
 
{|
 
{|
 
|style="padding: 10px 0px 0px 30px;"|✔ Manage Contact Information
 
|style="padding: 10px 0px 0px 30px;"|✔ Manage Contact Information
Line 148: Line 227:
 
|style="padding: 0px 0px 10px 30px;"|✔ Enable/Disable ID Protection
 
|style="padding: 0px 0px 10px 30px;"|✔ Enable/Disable ID Protection
 
|}
 
|}
 +
 +
*'''API Functionality:'''
 +
{|
 +
|style="padding: 10px 0px 0px 30px;"|✔ Register/Transfer/Renew Domain
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Release/Delete Domain
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Get Domain Information
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Get Domain Suggestions
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Get Cart TLDs Register/Renew/Transfer Pricing
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Get/Modify Contact Details
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Get EPP Code
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Get/Modify Registrar Lock Status
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Get/Save DNS Records
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Get/Register/Modify/Delete Nameservers
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Get/Save Email Forwarding
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Modify ID Protection
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Check Domain And Transfer Synchronization
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Check Domain Availability
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Get Available TLDs
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Get Available Credits
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Get Version
 +
|}
 +
 
*'''General Info:'''
 
*'''General Info:'''
 
{|
 
{|
|style="padding: 10px 0px 0px 30px;"|✔ Orders Paid By Resellers' Credit
+
|style="padding: 10px 0px 0px 30px;"|✔ Transactions Between Resellers And Provider Settled With Credits
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Reseller Can Manage API From The WHMCS Client Area
+
|style="padding: 0px 0px 0px 30px;"|✔ Integrated With [https://www.modulesgarden.com/products/whmcs/domain-orders-extended Domain Orders Extended For WHMCS] - Innovative Way Of Selling TLDs & gTLDS
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Integrated With <u>Domain Orders Extended For WHMCS</u> - Innovative Way Of Selling TLDs & gTLDS [https://www.modulesgarden.com/products/whmcs/domain-orders-extended (read more)]
+
|style="padding: 0px 0px 0px 30px;"|✔ Fully Integrated With [https://lagom.rsstudio.net/extensions/whmcs-modules-integration/domains-reseller-by-modulesgarden Lagom WHMCS Client Theme]
 
|}
 
|}
 
{|
 
{|
Line 162: Line 295:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Supports PHP 5.6 Up To PHP 7.2
+
|style="padding: 0px 0px 0px 30px;"|✔ Supports PHP 8.1 Back To PHP 7.4
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Supports WHMCS Template Six
+
|style="padding: 0px 0px 0px 30px;"|✔ Supports WHMCS Themes "Six" And "Twenty-One"
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 30px;"|✔ Supports WHMCS V7
+
|style="padding: 0px 0px 0px 30px;"|✔ Supports WHMCS V8.10 Back To WHMCS V8.6
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Requires Database With InnoDB Storage Engine
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Requires ionCube Loader V12 Or Later
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 30px;"|✔ Easy [https://www.docs.modulesgarden.com/How_To_Upgrade_WHMCS_Module Module Upgrade] To [https://www.modulesgarden.com/products/whmcs/domains-reseller#open-source-version Open Source Version]
 
|}
 
|}
  
 
=Installation=
 
=Installation=
 
{|
 
{|
|style="padding: 10px 0px 30px 0px;"|'''This tutorial will show you how to successfully install and configure Domains Reseller For WHMCS.''' <br />
+
|style="padding: 10px 0px 15px 0px;"|'''This tutorial will show you how to successfully install and configure [https://www.modulesgarden.com/products/whmcs/domains-reseller Domains Reseller For WHMCS.]''' <br />
 
We will guide you step by step through the whole installation and configuration process.
 
We will guide you step by step through the whole installation and configuration process.
 
|}
 
|}
==Module Installation - Provider==
+
<h5 style="color: #ff0000; font-weight:bold;">Please be aware that when updating from version 1.x. to 2.0.0 of the module no data are migrated!<br/>
 +
All the resellers and their configuration will need to be set up from the beginning.</h5>
 +
'' '''Note:''' If you are using Domains Reseller For WHMCS in any version '''prior to v2.x''', [https://www.docs.modulesgarden.com/Domains_Reseller_1_X_For_WHMCS follow these instructions].''
 +
 
 
{|
 
{|
|style="padding: 10px 0px 20px 15px;"|'''1. Log in to our client area and download the module.'''
+
|style="padding: 20px 0px 20px 15px;"|'''1. Log in to our client area and download the module.'''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DR_1.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:DR3_1.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 10px 15px;"|'''2. In the downloaded file you will find two packages that support different PHP versions.'''<br/>As presented on the screen below, the first one is dedicated to PHP 5.6 up to PHP 7.0, while the second one is aimed at PHP 7.1 up to PHP 7.2.<br/>It does not apply to open source versions.<br/>
+
|style="padding: 0px 0px 15px 15px;"|'''2. In the downloaded file you might find one or two packages that support different PHP versions.'''<br/>
'' '''Note''': You can check the current PHP version in your WHMCS. To do so, proceed to ''' 'Utilities' › 'System' › 'PHP Info'.'''
+
In the most recent versions of the module, you will find only one package that supports PHP 7.4 and later.<br/> <!-- If you need a package for the previous versions of PHP, please [https://www.modulesgarden.com/support/ticket/general-support contact our support]. -->
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:PHP56_72.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:PHP74_81.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''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.'''<br />
+
|style="padding: 0px 0px 15px 15px;"|Previous updates of the module may contain a package dedicated to other PHP versions, that are no longer officially supported. Find more info [http://php.net/supported-versions.php here] <br/>
The content of PHP version files should look like this.  
+
'''''Note''': You can check the current PHP version in your WHMCS. To do so, proceed to ''' 'Utilities' → 'System' → 'PHP Info'.'''''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:jioui.png]]
+
|style="padding: 0px 0px 15px 15px;"|'''3. Extract the package and upload its content into the main WHMCS directory.
 +
The content of the package to upload should look like this
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''4. When you install Domains Reseller For WHMCS for the first time you have to rename '' 'license_RENAME.php' '' file.'''<br />
+
|style="padding: 0px 0px 20px 25px;"|[[File:DR_2.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|'''4. When you install Domains Reseller For WHMCS for the first time you have to rename the '' 'license_RENAME.php' '' file.'''<br />
 
File is located in '' 'modules/addons/domainsReseller/license_RENAME.php'. '' Rename it from '' 'license_RENAME.php' '' to '' 'license.php'. ''
 
File is located in '' 'modules/addons/domainsReseller/license_RENAME.php'. '' Rename it from '' 'license_RENAME.php' '' to '' 'license.php'. ''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DR_3.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:DR3_3.png]]
 
|}
 
|}
 
{|
 
{|
Line 212: Line 361:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''6. Edit '' 'header.tpl' '' file located in '' 'your_whmcs/templates/default/header.tpl'. ''<br />
+
|style="padding: 0px 0px 15px 15px;"|'''6. In the next step, set up the  '' 'storage' '' folder as recursively writable.'''<br />
''Important! This edition is required only if you use WHMCS V5x.x. <br/>There are no alterations in templates for WHMCS V6x.x.''<br/>
+
This folder is available at '' 'yourWHMCS/modules/addons/DomainsReseller/'. ''
Add this code:
+
<nowiki>{if $DR2_show_button}<li><a href="index.php?m=domainsReseller">Reseller Registrar Credentials</a></li>{/if}</nowiki>
+
After:
+
<nowiki><li><a id="Menu-Domains-Whois_Lookup" href="domainchecker.php">{$LANG.navwhoislookup}</a></li></nowiki>
+
Take a look at the screenshot below and verify your changes:
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DR2_5.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:dr3_5.png]]
 
|}
 
|}
 
{|
 
{|
 
|style="padding: 0px 0px 15px 15px;"|'''7. Now you have to activate the module in your WHMCS system. '''<br />
 
|style="padding: 0px 0px 15px 15px;"|'''7. Now you have to activate the module in your WHMCS system. '''<br />
Log in to your WHMCS admin area. Go to '' 'Setup' '' → '' 'Addon Modules'. '' Afterwards, find '' 'Domains Reseller' '' and press '' 'Activate' '' button.
+
Log in to your WHMCS admin area. Go to '' 'System Settings' '' → '' 'Addon Modules'. '' Afterwards, find '' 'Domains Reseller' '' and press '' 'Activate' '' button.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DR2_6.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:DR3_6.png]]
 
|}
 
|}
 
{|
 
{|
Line 235: Line 379:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DR2_7.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:DR3_7.png]]
 
|}
 
|}
 
{|
 
{|
 
|style="padding: 0px 0px 15px 15px;"|'''9. You have just successfully installed Domains Reseller!'''<br />
 
|style="padding: 0px 0px 15px 15px;"|'''9. You have just successfully installed Domains Reseller!'''<br />
 
You can access your module at '' 'Addons' '' → '' 'Domains Reseller'. ''<br />
 
You can access your module at '' 'Addons' '' → '' 'Domains Reseller'. ''<br />
Now it's time to set up registrar module, it will be used by your resellers registrar to manage domains.
 
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DR2_8.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:DR3_8.png]]
 
|}
 
|}
 +
 +
=Configuration and Management=
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|'''10. Activate and configure registrar at '' 'Setup' '' → '' 'Products/Services' '' → '' 'Domains Registrar'. '''''
+
|style="padding: 10px 0px 30px 15px;"|'''Domains Reseller For WHMCS allows your customers to resell domains on their own WHMCS.'''
 
|}
 
|}
 +
 +
==Dashboard==
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DR2_9.png]]
+
|style="padding: 10px 0px 20px 15px;"|Dashboard page includes some truly valuable graphs and summaries on income generated from reselling TLDs. <br/> The '' 'Income' '' section presents your income which is converted into USD basing on '' 'Base Conv. Rate' '' in ''System Settings → Currencies''.  
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''11. Go to '' 'Setup' '' → '' 'Products/Services' '' → '' 'Domains Pricing'. '''''<br />
+
|style="padding: 0px 0px 20px 25px;"|[[File:DR3_24.png]]
Add TLD, set pricing for it and choose automatic registrar you have just configured.
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DR2_10.png]]
+
|style="padding: 0px 0px 20px 15px;"|You may easily change the graph settings by changing the time scope and selecting TLDs you are interested in.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''12. To generate registrar for your resellers, make sure that '' 'module_generator' '' folder has chmod set to '755' or '777'.'''<br />
+
|style="padding: 0px 0px 20px 25px;"|[[File:DR3_25.png]]
Folder is located in '' 'your_whmcs/modules/addons/domainsReseller/pages/ '. ''
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DR_11.png]]
+
|style="padding: 0px 0px 20px 15px;"|Most Profitable Resellers & Latest Invoices summaries:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''13. Go to Domains Reseller addon and switch to '' 'Configuration' '' tab.'''<br />
+
|style="padding: 0px 0px 20px 25px;"|[[File:DR3_26.png]]
Mark checkbox next to TLD you want to resell and press '' 'Save Changes' '' button.
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DR2_12.png]]
+
|style="padding: 0px 0px 15px 15px;"|To allow more flexibility. you are given a chance to freely customize your dashboard and turn off/on single elements visible on it.<br/>
 +
To do so, find and open the '' "dashboard.yml" '' configuration file located at: ''(...)modules\addons\DomainsReseller\app\Config\UIElements\AdminArea''  directory.<br/> There manage the dashboard elements' status by changing it from on to off according to your needs.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:DR3_26-0.png]]
 
|}
 
|}
  
 +
==General Settings==
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|'''14. In '' 'Module Generator' '' tab enter module name into textbox and press '' 'Generate Module' '' button.'''
+
|style="padding: 10px 0px 15px 15px;"|'' 'Settings' '' tab allows you to access general settings of your Domain Reseller API. <br/>
 +
Here you may set up general options but still, you will be able to change them per single group. If you skip group settings, this configuration will be taken into account.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DR2_13.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:DR3_28.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''15. Download of the module you have just generated will start shortly.'''<br />
+
|style="padding: 0px 0px 15px 15px;"|We will describe these options below.<br />
You can provide registrar module for your resellers in two ways, by sending them a file or a link to it.<br />
+
'''Global API''' related section:<br/>
The link should appear right after the module has been generated.<br />  
+
*'' 'API Status'' ' - enable/disable Domains Reseller API.<br />
'''Important:''' Save the link and the installation instruction marked on the screen below, it will not appear again.<br />
+
*'' 'IP Addresses Restriction' '' - enable/disable restricting connection to Domains Reseller API only for IP addresses specified in the '' 'Allowed IP Addresses' '' field.<br />
''Note: You have to provide integration code (step 5. of installation instructions) to your resellers.''
+
*'' 'API Requests Restriction' '' - enable option to restrict the number of API requests.<br />
 +
*'' 'Remove Logs After (days)' '' - define the number of days, log records older than the provided here number will be automatically deleted.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DR2_14.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:DR3_29.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''16. Now you have to generate API key for your client. Go to '' 'API Users' '' tab.<br />
+
|style="padding: 0px 0px 15px 15px;"|'''Miscellaneous:'''<br />
Afterwards, press '' 'Generate New Key' '' next to the user you want to generate API key for.<br />
+
*'' 'Low Credit Notification' '' - a notification to your client will be sent when credit balance on client's account falls below entered value.<br /> You may view and edit the '' "Low Credit Notification" '' custom email template sent to clients at '' 'WHMCS' 'System Settings' → 'Email Templates'.'' This email message is sent with the main WHMCS cron job.
Note that API key and the user's email are needed as credentials at the registrar module you have just generated.
+
 
 +
*'' 'Low Credit Amount' '' - the number of credits, when reached a notification will be sent.<br/>
 +
 
 +
*'' 'Payment Type' ''options:
 +
**'' 'Pay After Registration' '' - resellers must have sufficient credits amount, but he is charged only after a domain has been successfully registered.
 +
**'' 'Pay After Order' '' - resellers must settle the payment just after the order, the amount due is taken from their account instantly.<br />
 +
 
 +
*'' 'Refund Type' '' - defines behavior of the module upon unsuccessful domain registration.<br />
 +
**'' 'Credits Only' '' - if selected, refunds are granted in form of credits only.
 +
**'' 'Refund Invoice' '' - if selected, refunds are delivered in form of credits along with a newly generated invoice.
 +
**'' 'Disabled' '' - if selected, refunds are not accepted.
 +
 
 +
*'' 'Allow Debits' '' - if enabled, resellers with no credits on their account will be allowed to order domains. In such a case, an invoice with '' 'Unpaid' '' status will be created for the ordered domain.<br/>
 +
**'' 'Maximum Debit Amount' '' - define the amount the reseller may use to order domains without credits.<br/> '''''Important:''' The provided here amount is a total sum on '''all invoices''' with 'Unpaid' status that exist in your system.''
 +
 
 +
*'' 'Default Registrant' '' - select default contact that will be used during registration. This option is available only if registrant contact uses WHMCS details.<br />
 +
*'' 'Default Admin/Tech/Billing' '' - select default admin that will be used for contact. This option is available only if Admin/Tech/Billing contact uses admin details from WHMCS.<br />
 +
*'' 'End User Allowed To Edit Contacts' '' - select which of the End Clients will be allowed to edit contact details. You may choose more than one.<br />
 +
Remember to submit the changes, once you have finished.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DR2_15.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:DR3_30.png]]
 
|}
 
|}
 +
 +
==Groups==
 
{|
 
{|
|style="padding: 0px 0px 30px 15px;"|'''Your Domains Reseller module is ready to use!'''<br />
+
|style="padding: 10px 0px 15px 15px;"|At the '' 'API Users' '' tab you can manage all aspects related to your resellers who will be assigned to these groups later on.<br />
Your clients can use their registrars as soon as they install them on their WHMCS and '''add credits''' to their accounts in your WHMCS.
+
Start by creating the first group for your resellers. Use either of the buttons marked on the screen below.
 
|}
 
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:DR3_30_1.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|Then, simply type in a unique name of your group. <br/>Create as many groups as you will need and set up different configuration to adjust them and then assign resellers to adequate groups.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:DR3_31_1.png]]
 +
|}
 +
===Configuration Per Group===
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|You can set up configuration for resellers who are assigned to this very group only.<br/> These settings will overwrite the general [[#General Settings|settings]] defined in the previous step.
 +
*'' 'API Status' '' - enable/disable Domains Reseller API for Resellers assigned to this very group only.<br />
 +
*'' 'IP Address Restriction' '' - enable/disable restricting connection to Domains Reseller API only for IP addresses specified in the 'Allowed IP Addresses' field.
 +
*'' 'API Requests Restriction' '' - enable the option to restrict the number of API requests.
 +
*'' 'Show API Documentation' '' - toggle to allow resellers access to API documentation directly from their Reseller Area.
 +
*'' 'Pricing Method' '' - choose the preferred pricing method from the two available:
 +
**'' 'Override' ''- you will be able to set pricing in the TLD's Tab.
 +
**'' 'WHMCS' '' - pricing is copied from that one set in WHMCS and you will not be able to set pricing in the TLD's Tab.
 +
*'' 'Promotion Code' '' - provide a WHMCS promo code if you own one, the discount will be applied to every order covering pro code restrictions '''''(WHMCS pricing method only.)'''''
 +
*'' 'Low Credit Notification' '' - turn on sending notifications to your client when credit balance on client's account falls below entered value.<br/>You may view and edit the '' "Low Credit Notification" '' custom email template sent to clients at '' 'WHMCS' → 'System Settings' → 'Email Templates'.'' This email message is sent with the main WHMCS cron job.
 +
*'' 'Low Credit Level' '' -  amount of credits, when reached a notification will be sent.
 +
*'' 'Payment Type' '' options:
 +
**'' 'Pay After Registration' - resellers must have sufficient credits amount, but he is charged only after a domain has been successfully registered.
 +
**'' 'Pay After Order' - resellers must settle the payment just after the order, the amount due is taken from their account instantly.
 +
*'' 'Refund Type' '' - defines behavior of the module upon unsuccessful domain registration.
 +
**'' 'Credits Only' '' - if selected, refunds are granted in form of credits only.
 +
**'' 'Refund Invoice' '' - if selected, refunds are delivered in form of credits only.
 +
**'' 'Disabled' '' - if selected, refunds are not accepted.
 +
*'' 'Allow Debits' '' - resellers with no credits on their account will be allowed to order domains, invoice with '' 'Unpaid' '' status will be created for such order.
 +
**'' 'Maximum Debit Amount'' ' - define the maximum amount a reseller may spend on new domains (if there are no credits on the account).<br/> '''''Important:''' This amount is a total of all the 'Unpaid' invoices created in your system.''
 +
*'' 'Default Registrant' '' -  select default contact that will be used during registration. This option is available only if registrant contact uses WHMCS details.
 +
*'' 'Default Tech/Admin/Billing' '' - select default admin that will be used for contact. This option is available only if Admin/Tech/Billing contact uses admin details from WHMCS.
 +
*'' 'End Client Allowed to Edit Contact' '' - select which of the End Clients will be allowed to edit contact details. You may choose more than one.
  
==Module Installation - Reseller==
+
Save the changes when ready.
 +
|}
 
{|
 
{|
|style="padding: 10px 0px 20px 15px;"|'''Below you can find instructions for installation of the registrar module on reseller WHMCS.'''
+
|style="padding: 0px 0px 30px 25px;"|[[File:DR3_32.png]]
 
|}
 
|}
 +
 +
===API Permissions===
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|'''1. Upload and extract the registrar module into your WHMCS.'''
+
|style="padding: 10px 0px 20px 15px;"|Toggle options that resellers will be allowed to use via API. Select single options or use '' 'Switch All' '' button to toggle all permissions.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 25px;"|[[File:DR2_16.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:DR3_34.png]]
 
|}
 
|}
 +
 +
===Integrations===
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''2. Enter integration code that you got from your provider.<br />
+
|style="padding: 10px 0px 15px 15px;"|In this section you can create and manage integration modules which resellers will need to upload and activate to be able to resell domains you offer them.<br/>
Please move to ''yourWHMCS/resources/domains'' directory and find '' 'dist.additionalfields.php' ''file.'''<br/>
+
Press '' 'Add Integration' '' to begin.  
This file should not be edited. If you do not have ''' 'additionalfields.php' ''' file yet, create it manually and paste the code you received at the end of the file.<br/>
+
''Note that the path '/resources/domains/additionalfields.php' refers to '''WHMCS V7'''.<br/>
+
''For '''WHMCS V5''' and '''V6''' paste the code into '/includes/additionaldomainfields.php' file.''
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DR_17.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:DR3_35.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|'''3. Go to '' 'Setup' '' → '' 'Products/Services' '' → '' 'Domains Registrar' '', find the module you have just uploaded and press '' 'Activate' '' next to it.'''
+
|style="padding: 0px 0px 15px 15px;"|To generate a new integration module you need to provide following data:
 +
*Select the target platform for the submodule: WHMCS or Blesta
 +
 
 +
*Enter your module unique name
 +
 
 +
*Toggle on to allow downloading a file with additional fields required by the provider's registrar to register domains. <br/> Data typed in by End Clients will be correctly delivered by the provider to the domains' registrar. Learn more [https://docs.whmcs.com/Additional_Domain_Fields here].
 +
 
 +
*Type in a short description of the module, it will be visible on the activation page of the registrar
 +
 
 +
*Upload logo image, it will be visible on the activation page of the registrar
 +
 
 +
*Upload file with documentation if you have prepared any - you may use any format.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DR2_18.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:DR3_36.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''4. Now, press '' 'Configure' '' button, enter '' 'User Email' '' and '' 'API Key' '' provided along with the module.'''<br />
+
|style="padding: 0px 0px 15px 15px;"|Newly created Integration will appear on the list. You may:
Afterwards, press '' 'Save Changes'. ''
+
#Edit its details (change logo, description etc.) at any time
 +
#Download domain additional fields
 +
#Download documentation if any has been provided
 +
#Download the integration package
 +
#Delete the integration
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DR2_19.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:DR3_37.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''5. To continue, go to '' 'Setup' '' → '' 'Products/Services' '' → '' 'Domains Pricing'. '''''<br />
+
|style="padding: 0px 0px 20px 15px;"|In order to delete numerous integration at once, use the mass action button.
Set up TLD your provider allows you to resell, select additional features, choose registrar you have just installed from a dropdown menu and save it through pressing '' 'Save Changes'. ''
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DR2_20.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:DR3_37_1.png]]
 
|}
 
|}
 +
 +
===TLDs===
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''6. Afterwards, set pricing for your TLD. To do so, press '' 'Open Pricing' '' text.'''<br />
+
|style="padding: 10px 0px 15px 15px;"|Create a list of TLDs with their custom pricing details that resellers assigned to this group will be allowed to offer to their clients.<br/>
It will open in a new window, so make sure your browser does not block it.  
+
Press '' 'Assign TLD' '' button to begin.  
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DR2_21.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:DR3_38.png]]
 
|}
 
|}
 +
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|'''7. Next, enter prices for specific actions. Press '' 'Save Changes' '' to confirm.'''
+
|style="padding: 0px 0px 15px 15px;"|Select TLDs from the available and press '' 'Confirm'. '' <br/> To learn more about available TLDs, please refer to the official documentation [https://help.whmcs.com/m/setup/l/848612-configure-the-extensions-tlds-you-wish-to-offer here].  
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DR2_22.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:DR3_39.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''8. Congratulations, you have just successfully installed your registrar!'''<br />  
+
|style="padding: 0px 0px 20px 15px;"|Assigned TLDs will appear on the list, you may also preview here the registrar name of the TLD extension and pricing details. <br/>Press the '' 'Pricing' '' icon to set up your custom prices per TLD for resellers assigned to this group.
You can start using registrar as soon as you add credits to your account on provider's WHMCS.<br />
+
If you order a domain using this registrar, you should see in your admin area something similar to the screen below.
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:DR2_23.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:DR3_41.png]]
 
|}
 
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|In the '' Set Pricing '' tab, you can set the domain pricing for each of the registration periods in each available currency per every active TLD for resellers.<br />
  
=Configuration and Management=
+
In addition, if you put:
 +
* ''' -1 ''' (minus one) value in the chosen field, then it will be treated as '''disabled'''. E.g. provide '''-1''' for transfer pricing to completely '''disable''' the possibility of domain transfers with that TLD. <br/>'' '''Important:''' If you provide '''-1''' value for registration pricing, then the whole TLD will be treated as '''disabled''', including transfer and renewal pricing.''
 +
* ''' 0 ''' (zero) value in the chosen field, then it will be treated as '''free'''. E.g. provide '''0''' for registration pricing if you want to offer the selected TLD for '''free''', but with paid transfers and renewals.
 +
* any value '''above 0''' (zero) will be of course treated as '''paid'''.
 +
|}
 
{|
 
{|
|style="padding: 10px 0px 30px 15px;"|'''Domains Reseller For WHMCS allows your customers to resell domains on their own WHMCS.'''
+
|style="padding: 0px 0px 20px 25px;"|[[File:DR3_42.png]]
 
|}
 
|}
==Configuration==
 
 
{|
 
{|
|style="padding: 10px 0px 20px 15px;"|'' 'Configuration' '' tab allows you to access general settings of your Domain Reseller API.
+
|style="padding: 0px 0px 15px 15px;"|If you want to set up the same prices for all TLDs in this group, simply use the mass action button to do it almost with one click. <br/> In the same way you may unassign numerous TLDs from the group.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DR2_24.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:DR3_42_1.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 10px 15px;"|We will describe these options below.<br />
+
|style="padding: 0px 0px 15px 15px;"|You can also set up pricing and margins with WHMCS [https://docs.whmcs.com/Registrar_TLD_Sync Registrar TLD Sync].<br/>
'''Connection''' related section:<br/>
+
Your group configuration is now ready. If you have more groups, repeat these steps for each of them.<br/>
*'' 'API Status'' ' - enable/disable Domains Reseller API.<br />
+
Remember that you may always edit the single group name or delete it if no longer needed. Just press adequate buttons to do so.
*'' 'Restricted By IP Addresses' '' - enable/disable restricting connection to Domains Reseller API only for IP addresses specified in the '' 'Allowed IP Addresses' '' field.<br />
+
*'' 'Auto Disable API For New Users' '' -  API will be disabled for newly created clients.<br />
+
*'' 'Auto Generate API Key For New Users' '' - API key will be generated automatically when client's account is created.<br />
+
*'' 'SSL Connection' '' - define here, if connection with your API will use SSL or not. When you change it, you will need to generate new registrars for your resellers.<br />
+
*'' 'API Request Number Restriction' '' - enable option to restrict the number of API requests.<br />
+
**'' 'API Restriction Interval' '' - select time interval within which API responses can be called. <br />
+
**'' 'Max Request Number' '' - define a maximum number of API responses that can be called within the previously defined time interval.<br />
+
*'' 'Allow Resellers To Set IP Restriction' '' - enable and set a limit, if you want to allow your resellers to define their own restricted IP addresses.
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|To restrict access to the Domains Reseller API by IP address, simply choose '' 'Enable' '' from '' 'Restrict IP Addresses' '' dropdown menu.<br />
+
|style="padding: 0px 0px 20px 25px;"|[[File:DR3_42_2.png]]
New text field should appear, enter IP addresses you want to whitelist, one IP address per line.<br />
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DR2_24_1.png]]
+
|style="padding: 0px 0px 15px 15px;"|Keep in mind that you may never delete a group if there are any resellers assigned to the group.<br/> Before deleting it, you must choose an alternative group to which the resellers will be reassigned.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''Payment''' related options:<br/>
+
|style="padding: 0px 0px 20px 25px;"|[[File:DR3_42_3.png]]
*'' 'Pay After Registration' '' - select resellers that will be allowed to register domains without any credits.<br />
+
*'' 'Pay After Order' '' - a list of resellers who are able to pay for a domain after ordering it.<br />
+
*'' 'Refund' '' - defines behavior of the module upon unsuccessful domain registration.<br />
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DR2_24_2.png]]
+
|style="padding: 0px 0px 15px 15px;"|'''''Important:''' In the case of integration with '''Blesta''' you also have to '''manually add all the TLDs to the registrar's "config" file''', otherwise they will not be available in the dedicated platform.''<br/>
 +
The '' 'config' '' file is located in: ''/Registrar_Name/components/modules/registrarname/config/registrarname.php''. Open the file, at the bottom you will find a section: ''"All available TLDs"'' with a few examples added by default, fill in the list with your TLDs.<br/> Below you can see what an exemplary list of TLDs may look like.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 10px 15px;"|'''Miscellaneous:'''<br />
+
|style="padding: 0px 0px 30px 25px;"|[[File:DR3_42_4.png]]
*'' 'Low Credit Notification' '' - a notification to your client will be sent when credit balance on client's account falls below entered value.<br />
+
*'' 'Default Registrant' '' - select default contact that will be used during registration. This option is available only if registrant contact uses WHMCS details.<br />
+
*'' 'Default Admin/Tech/Billing' '' - select default admin that will be used for contact. This option is available only if Admin/Tech/Billing contact uses admin details from WHMCS.<br />
+
*'' 'Allow End-Users To Edit Contacts' '' - select which of the End-Users will be allowed to edit contact details.<br />
+
*'' 'TLDs Enabled For API' '' - available TLDs to offer.<br />
+
 
|}
 
|}
 +
 +
==Resellers==
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|Last, but not least important thing you can do here is enabling TLD for resell.<br />
+
|style="padding: 10px 0px 20px 15px;"|In this section you will find a list of your active Resellers. Press '' 'Add Reseller' '' to make one of your clients a reseller.  
It can be done simply by ticking TLD.<br/>
+
Remember to save the changes, once you have finished.
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:DR2_25.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:DR3_43.png]]
 
|}
 
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|
 +
*Select one of your previously created '''groups''', to which the reseller will be assigned.
  
==API==
+
*Then select one of your '''clients''' from the dropdown, start typing to see a list of clients
 +
 
 +
*Generate an '''API Key''' for the Reseller, it will be necessary when configuring the integration module with the Reseller's platform
 +
 
 +
*Prepare a list of '''allowed IP addresses''', use comma or a space to separate - note that this option must have been enabled previously in the module general settings [[#General Settings|here]]
 +
 
 +
*'''API Status''' - toggle to allow reseller generate the API key in the Reseller area
 +
 +
*'''API Limits''' - toggle to be able to define precise limits
 +
**'''API Interval [Min]''' - enter a time interval in minutes in which a provided below number of API requests can be called
 +
**'''API Requests Limit''' - maximum number of API requests in the time interval
 +
|}
 
{|
 
{|
|style="padding: 10px 0px 30px 15px;"|At the '' 'API' '' tab you can find a lot of information about Domains Reseller API, as well as generate and share API knowledgebase.
+
|style="padding: 0px 0px 20px 25px;"|[[File:DR3_44.png]]
 
|}
 
|}
===Introduction===
 
 
{|
 
{|
|style="padding: 10px 0px 20px 15px;"|'' 'Introduction' '' subtab contains information about actions supported by the API.
+
|style="padding: 0px 0px 15px 15px;"|Instead of adding single resellers one by one, you may use the '' 'Add Resellers In Bulk' '' option.<br/> Then all your remaining users will be converted into resellers.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:DR2_28.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:DR3_44_1.png]]
 
|}
 
|}
===Connection===
 
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|In this subtab you can read about request and response data format as well as authentication.<br />
+
|style="padding: 0px 0px 20px 15px;"|Select a group to which the newly created resellers will be assigned.
You can also find URL to the API here.
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:DR2_29.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:DR3_44_2.png]]
 +
|}
 +
===Reseller Details===
 +
====API Configuration====
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|Here you may easily alter the settings that you have defined when creating the reseller.<br/>
 +
Apart from them, you may preview the '''API Email Address''' and '''API Key''' required to activate and configure the integration module.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:DR3_45.png]]
 
|}
 
|}
  
===Examples===
+
====Orders====
 
{|
 
{|
|style="padding: 10px 0px 20px 15px;"|Here you can find sample API request and response.
+
|style="padding: 10px 0px 15px 25px;"|This section includes a list of orders placed to purchase a domain with offered to this reseller TLDs. <br/> Take a look at any crucial details on the orders.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:DR2_30.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:DR3_45_1.png]]
 
|}
 
|}
===Knowledgebase===
+
 
 +
====Income====
 
{|
 
{|
|style="padding: 10px 0px 20px 15px;"|'' 'Knowledgebase' '' subtab allows you to generate API knowledgebase for your resellers in your WHMCS client area and locate link to it (if already generated).
+
|style="padding: 10px 0px 15px 25px;"|'' 'Income' '' tab contains a current list of invoices that generate any income for the reseller.<br/> Press the invoice ID and you will be redirected to the invoice summary.
 
|}
 
|}
 +
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DR2_31.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:DR3_45_2.png]]
 
|}
 
|}
 +
 +
==Response Templates==
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|When your clients follow a link to the knowledgebase they should see something similar to the screen below.
+
|style="padding: 10px 0px 15px 15px;"|In '' 'Response Templates' '' section you may add and edit new templates with text messages/information that are sent to clients instead of defined here system responses.<br/>
 +
In order to add a new response template press the '' 'Create Template' '' button and then follow the below instructions.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:DR2_32.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:DR3_46.png]]
 
|}
 
|}
==API Users==
 
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|At the '' 'API Users' '' tab you can manage all aspects related to your resellers.<br />
+
|style="padding: 0px 0px 15px 15px;"|Provide the pattern for search and replace in the system response depending on the type.<br>
For your convenience we also implemented filters, you can use them to find a specific user or a group of users.<br />
+
*For '''Text''' type, simply provide a string like '' 'Error Response'. ''<br/>
''Note: Remember to set default payment method for every reseller. It can be set up at client profile in 'Payment Method' dropdown menu.''
+
*For '''Regular Expression''' type, you need to provide a regular expression which will be replaced.<br/> ''For example, if you want to replace any dollar price in the response provide'' '\$\d+\.\d+', ''in this case it will replace strings like'' '$8.25'.<br/>
 +
*If you want to replace '''any response,''' simply type '.+' in here.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DR2_33.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:DR3_47.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|You can set up IP restriction per client (1), assign a promotion code to a single user (2), generate a new key for them(3), set up API restriction (4) and disable API key for this client (5).
+
|style="padding: 0px 0px 15px 15px;"|In the second step '''Replace With''' you need to enter a text message that will be sent to a client when the above entered pattern is found.<br/> The two messages will be replaced with one another.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DR2_34.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:DR3_48.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|Our module also allows performing these actions for all clients at once.
+
|style="padding: 0px 0px 15px 15px;"|Define '''Priority'''. The higher number you enter, the higher priority will be assigned.<br/> '''Important!''' All active patterns within the same group found with different priorities are performed starting from the higher to lower priority.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:DR2_35.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:DR3_49.png]]
 
|}
 
|}
===IP Restriction===
 
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|Let's ensure, that specific clients are able to connect with Domains Reseller API only from defined IP addresses.<br />
+
|style="padding: 0px 0px 15px 15px;"|Finally,  
Press '' 'IP Restriction', '' fill in IP address and press '' 'Save'. ''<br />
+
*choose '' 'Text' '' or '' 'Regular Expression' '' from '''Type''' dropdown menu.<br/>
''Note: To add multiple IP addresses, press 'Add Field'.''
+
''It will specify if provided text in the first field should be treated as a text or a regular expression while searching for a pattern.''
 +
*''' Registrar Action''' -'' must be chosen from dropdown menu as well to specify upon which action provided patterns will be searched for.''
 +
Remember, to finish successfully you need to press '' 'Confirm' '' button.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:DR2_36.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:DR3_50.png]]
 
|}
 
|}
 
===API Restriction===
 
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|If you want to force API restriction limit for a single client check the adequate box.<br/> Then choose time interval within which not more than a declared 'Requests Number' can be called. '' 'Save Changes' ''as usual.
+
|style="padding: 0px 0px 15px 15px;"|Now you can see a newly configured response is visible on the list. You may edit the added response or remove it any time you need.<br/> Just use action buttons marked on the screen.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:DR2_36_1.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:DR3_51.png]]
 
|}
 
|}
  
===Assigning Promotion Codes===
+
==Module Logs==
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|You can create and assign promotion codes to your users.<br />
+
|style="padding: 10px 0px 20px 15px;"|In '' 'Logs' '' section you may preview a list of API requests and responses, including errors with the most important details on them.
Firstly, go to '' 'Setup' '' → '' 'Payments' '' → '' 'Promotions' '' and press '' 'Create New Promotion'. ''
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DR2_37.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:DR3_51_1.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|Afterwards, press '' 'Auto Generate Code', '' select type from a dropdown menu, enter value and save through pressing '' 'Save Changes'. ''
+
|style="padding: 0px 0px 20px 15px;"|Use action buttons to delete selected logs or just single entries.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DR2_38.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:DR3_51_2.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|Your promotion is ready to use, let's assign it to a single user.<br />
+
|style="padding: 0px 0px 20px 15px;"|You can also delete all logs by using the "Delete All Logs" function.
Move to '' 'Addon' '' → '' 'Domains Reseller' '' → '' 'API User' '' and press '' 'Assign Promocode' '' next to the user you want to assign the promotion to.
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DR2_39.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:DR3_51_3.png]]
 
|}
 
|}
 +
 +
==Documentation==
 +
 +
===API Documentation===
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|Now, select the previously created promotion and press '' 'Save Changes'. ''
+
|style="padding: 10px 0px 15px 15px;"|Under '' 'Documentation' '' tab you will find two subsections. The first one is dedicated to API.<br/>
 +
This API documentation has been prepared to allow you to write your own integration modules for platforms other than WHMCS and Blesta (included by default).<br/>
 +
 
 +
'' 'Information' '' subtab contains:
 +
*'''Endpoint''' - URL to which all the API requests are directed
 +
 
 +
*'''Authorization''' - Username and token parameters to authenticate the client in the API request
 +
 
 +
*'''Example''' - exemplary request to API to renew a domain
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DR2_40.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:DR3_53.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|You should see, that the promotion code appeared next to the client, as shown on the following screen.
+
|style="padding: 0px 0px 15px 15px;"|'' 'Calls' '' subtab contains information about actions supported by the API.<br/>
 +
'''''Note:''' The screen below does not capture all the supported functions.<br/>Full API functionality can be found on the module features list at the top of this documentation.''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:DR2_41.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:DR3_54.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|The last section includes '' 'Models' '' details.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:DR3_55.png]]
 
|}
 
|}
  
==API Logs==
+
===Module Documentation===
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|You can display the logs of requests to the API. As well as responses to these requests and information about who sent the request to the API.<br />
+
|style="padding: 10px 0px 20px 15px;"|'' 'Module Documentation'' ' is a hyperlink. It leads to the '' 'Domains Reseller For WHMCS' '' wiki article you are currently reading.
You can find the desired log using filters. Fields left empty will not be considered during the search.
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:DR2_42.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:DR3_52.png]]
 
|}
 
|}
==Module Generator==
+
 
 +
==Reseller Area==
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|Rebranding registrar module has never been easier. With our generator all you have to do is fill in its name and press '' 'Generate Module' ''.<br />
+
|style="padding: 10px 0px 15px 15px;"|Resellers can manage API connection credentials directly from the provider WHMCS client area as well as see any details on its TLDs offer.<br />
''Note: You can generate registrar module both for WHMCS and HostBill systems.''
+
Go to '' 'Domains' '' '' 'Reseller Area' '' to access them.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DR2_43.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:DR3_56.png]]
 
|}
 
|}
 +
===Orders===
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|As soon as you do that, the module will be generated. Save the link to it and copy installation instructions.<br />
+
|style="padding: 10px 0px 15px 15px;"|As you can see, '' 'Orders' '' section includes a detailed list of orders placed on domains with offered TLDs, with any payment details and date.
'''Important:''' As soon as the new module is generated, integration code for it will appear as the 5th step of installation instruction.<br />
+
It is crucial to save the code and deliver it to resellers in installation instructions along with the link to the module.
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:DR2_44.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:DR3_57.png]]
 
|}
 
|}
  
==Response Templates==
+
===Pricing===
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|In '' 'Response Templates' '' section you may add and edit new templates with text messages/information that are sent to clients instead of defined here system responses.<br/>
+
|style="padding: 10px 0px 20px 15px;"|'' 'Pricing' '' section includes a list of the Reseller's TLDs with the option to preview its pricing set up by the provider.
In order to add a new response template press '' Add '' button and then follow the below instructions.
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DR2_56.png]]
+
|style="padding: 0px 0px 10px 25px;"|[[File:DR3_58.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|Provide the pattern for search and replace in the system response depending on the type.<br>
+
|style="padding: 0px 0px 30px 25px;"|[[File:DR3_59.png]]
*For '''Text''' type, simply provide a string like '' 'Error Response'. ''<br/>
+
*For '''Regular Expression''' type, you need to provide a regular expression which will be replaced.<br/> ''For example, if you want to replace any dollar price in the response provide'' '\$\d+\.\d+', ''in this case it will replace strings like'' '$8.25'.<br/>
+
*If you want to replace '''any response,''' simply type '.+' in here.
+
 
|}
 
|}
 +
===Domains===
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DR2_57.png]]
+
|style="padding: 10px 0px 20px 15px;"|The'' 'Domains' '' section allows Resellers to manage their domains. <br/> If you want to assign any domains that were bought previously, simply click on the following button.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|In he second step '''Replace With''' you need to enter a text message that will be sent to a client when the above entered pattern is found.<br/> The two messages will be replaced with one another.
+
|style="padding: 0px 0px 10px 25px;"|[[File:DR3_58_1.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DR2_58.png]]
+
|style="padding: 10px 0px 20px 15px;"|Now you can select one or more domains from the dropdown menu.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|Define '''Priority'''. The higher number you enter, the higher priority will be assigned.<br/> Important! Only the first occurrence with the highest priority will be replaced.
+
|style="padding: 0px 0px 10px 25px;"|[[File:DR3_58_2.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DR2_59.png]]
+
|style="padding: 10px 0px 20px 15px;"|There is also the possibility to unassign the particular domain. <br/> '''Note:''' ''Please remember that once a domain is unassigned, you are not able to manage it until it is assigned again.''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|Finally,
+
|style="padding: 0px 0px 30px 25px;"|[[File:DR3_58_3.png]]
*choose '' 'Text' '' or '' 'Regular Expression' '' from '''Type''' dropdown menu.<br/> 
+
''It will specify if provided text in the first field should be treated as a text or a regular expression while searching for a pattern.''
+
*''' Registrar Action''' -'' must be chosen from dropdown menu as well to specify upon which action provided patterns will be searched for.''
+
Remember, to finish successfully you need to press '' 'Add' '' button.
+
 
|}
 
|}
 +
 +
===Settings===
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DR2_59_1.png]]
+
|style="padding: 10px 0px 20px 15px;"|Under '' 'Settings' '' section you will find any API details necessary to install and activate the integration module.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|Now you can see a newly configured response is visible on the list. You may edit the added response or remove it any time you need.<br/> Just use action buttons marked on the screen.
+
|style="padding: 0px 0px 20px 25px;"|[[File:DR3_60.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:DR2_60.png]]
+
|style="padding: 0px 0px 15px 15px;"|Underneath the API details you will find a list of generated integrations.<br/> Depending on the provider, you may download the packages, download the additional fields and documentation per Integration.
 
|}
 
|}
 
==Documentation==
 
 
{|
 
{|
|style="padding: 10px 0px 20px 15px;"|This tab is a hyperlink. It leads to Domains Reseller For WHMCS Wiki article you are currently reading.
+
|style="padding: 0px 0px 30px 25px;"|[[File:DR3_61.png]]
 
|}
 
|}
 +
 +
===Logs===
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:DR2_45.png]]
+
|style="padding: 10px 0px 20px 15px;"|Preview a list of logs on API requests and responses, including errors stored in the module.
 
|}
 
|}
==Email To Reseller==
 
 
{|
 
{|
|style="padding: 10px 0px 30px 15px;"|Email to your reseller should consist of:<br />
+
|style="padding: 0px 0px 30px 25px;"|[[File:DR3_62.png]]
1. Registrar module you generated or link to its download.<br />
+
2. Installation instructions (with integration code).<br />
+
3. Connection credentials (user API key and email).
+
 
|}
 
|}
  
==Provider Client Area==
+
===API Documentation===
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|Resellers can manage API connection credentials directly from the provider WHMCS client area.<br />
+
|style="padding: 10px 0px 15px 15px;"|Access API documentation details with basic information and API Calls and Models.<br/>
Go to '' 'Domains' '' '' 'Reseller Registrar Credentials' '' to access them.
+
This API documentation has been prepared to allow you to write your own integration modules for platforms other than WHMCS and Blesta (included by default).<br/>
 +
 
 +
'' 'Information' '' tab contains:
 +
*'''Endpoint''' - URL to which all the API requests are directed
 +
 
 +
*'''Authorization''' - Username and token parameters to authenticate the client in the API request
 +
 
 +
*'''Example''' - exemplary request to API to renew a domain
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DR2_46.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:DR3_63.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|As you can see, you can find all the information linked with your registrar.<br />
+
|style="padding: 0px 0px 15px 25px;"|Available '' 'Calls' '' list:<br/>
To view your API key, press '' 'Show' '' button.
+
'''''Note:''' The screen below does not capture all the supported functions.''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DR2_47.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:DR3_63_1.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|If your API key was exposed, generate a new one through pressing '' 'Generate Key' ''.
+
|style="padding: 0px 0px 20px 25px;"|Available '' 'API Models' '' list:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:DR2_48.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:DR3_63_2.png]]
 
|}
 
|}
  
==End User Client Area==
+
==Domains Reselling Workflow==
 +
===Installation Of Integration Module===
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|Domains Reseller registrar module allows an end user to register, transfer and renew domain.<br />
+
|style="padding: 10px 0px 5px 15px;"|'''Below you can find instructions for installation of the integration module on the reseller's WHMCS.'''<br/>
Client can also manage private nameservers (1),  enable/disable ID protection (2), modify contact information (3), manage DNS records (4) and  set up email forwarding (5).
+
Please refer to section [[#Integrations|Integrations]] to learn how to generate an integration module for your resellers.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DR2_49.png]]
+
|style="padding: 0px 0px 10px 15px;"|An exemplary flow of installation and configuration of the integration module to resell TLDs on Blesta, can be found in Blesta [https://docs.blesta.com/pages/viewpage.action?pageId=2621862 official documentation].
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|At the '' 'Register Nameservers' '' (1) you can manage your custom nameservers.
+
|style="padding: 0px 0px 15px 15px;"|'''1. Upload and extract the registrar module into your WHMCS.'''<br/>
 +
Once you have extracted the module, you should find a new folder with the registrar in '' 'resellerWHMCS/modules/registrars/' '' directory.<br/>
 +
'''''Important:''' The folder and module name, logo and description of the extracted integration module is customized by the provider and will be different than the one presented in the example below.''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DR2_50.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:DR3_16.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|To enable/disable ID protection (2), proceed to the '' 'Addons' '' subtab.
+
|style="padding: 0px 0px 20px 15px;"|'''2. Go to '' 'System Settings' '' → '' 'Domains Registrars' '', find the module you have just uploaded and press '' 'Activate' '' next to it.'''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DR2_51.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:DR3_18.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|At '' 'Contact Information' '' (3) you can decide which contact information use for registrant and admin/tech/billing contact:<br/> your existing account contact or custom information.
+
|style="padding: 0px 0px 15px 15px;"|'''3. Now, press '' 'Configure' '' button, enter '' 'User Email' '' and '' 'API Key' '' provided along with the module.'''<br />
 +
You can find these data in your [[#Settings|Reseller Area]] in the Provider's Client Area.
 +
Afterwards, press '' 'Save Changes'. ''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DR2_52.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:DR3_19.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'' 'Manage DNS' '' (4) allows you to manage your DNS records.<br />
+
|style="padding: 0px 0px 15px 15px;"|'''5. To continue, go to '' 'System Settings' '' → '' 'Domains Pricing'. '''''<br />
 +
Set up TLD your provider allows you to resell, select additional features, choose registrar you have just installed from a dropdown menu and save it through pressing '' 'Save Changes'. ''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DR2_53.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:DR3_20.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|At the '' 'Manage Email Forwards' '' (5) you can redirect your emails to another domain.
+
|style="padding: 0px 0px 15px 15px;"|'''6. Afterwards, set pricing for your TLD. To do so, press '' 'Open Pricing' '' text.'''<br />
 +
It will open in a new window, so make sure your browser does not block it.  
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DR2_54.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:DR3_21.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|Get EPP code for your domain:
+
|style="padding: 0px 0px 20px 15px;"|'''7. Next, enter prices for specific actions. Press '' 'Save Changes' '' to confirm.'''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:DR2_54_1.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:DR3_22.png]]
 
|}
 
|}
 
==Workflow==
 
 
{|
 
{|
|style="padding: 10px 0px 30px 15px;"|In this section we will present to you a sample workflow of the module.<br />
+
|style="padding: 0px 0px 30px 15px;"|'''8. Congratulations, you have just successfully installed your registrar!'''<br />  
In a basic workflow 3 characters take part:<br />
+
'''Provider''' – a person with Domains Reseller For WHMCS installed in their system.<br />
+
'''Reseller''' - a person with a client account in the provider's WHMCS system.<br />
+
Additionally, the reseller has its own system with registrar generated by Domains Reseller For WHMCS.<br />
+
'''End-Customer''' – a person with a client account in the Reseller's system.<br />
+
<br />
+
Additionally, there also must be a product, which in this case will be domain 'sample.com' .<br />
+
<br />
+
'''Provider Part'''<br />
+
Let's start from the beginning. Provider installs Domains Reseller For WHMCS in the system.<br />
+
He or she already has a few TLDs in the offer and wishes to allow the reseller to offer them from their systems.<br />
+
Now, the provider configures Domains Reseller For WHMCS through enabling its API and enabling .com TLD for API.<br />
+
Afterwards, he or she proceeds to API Users, enables Reseller and generates API key for them.<br />
+
Additionally, he or she assigns a 10% discount for Reseller under API Users tab.<br />
+
'''Reseller'''<br />
+
From this moment, Reseller is able to access API details from the client account in the Reseller area.<br />
+
Additionally, he or she receives an email form the Provider with registrar module and instruction on how to install it .<br />
+
Reseller installs the registrar in the system according to the instruction received.<br />
+
He or she also sets up .com TLD in the system and assigns the previously installed registrar to it.<br />
+
Now, there is one step that separates them from offering the domain from their system.<br />
+
Reseller top-up his credit balance in the provider system.<br />
+
Provider creates an invoice for the Reseller, the Reseller pays the invoice and then again the Provider manually adds the same amount to Reseller's credit balance.<br />
+
Form now on, any .com domain can be ordered.<br />
+
'''End-Customer'''<br />
+
End-Customer orders 'sample.com' domain from his or her client area in the Reseller system.<br />
+
They are now able to fully manage the domain.<br />
+
<br />
+
'''Last Word About Payment'''<br />
+
Payment goes to the Reseller while, during registration process, credits from Reseller balance are withdrawn.<br />
+
It is worth mentioning that the amount a customer paid is defined by a Reseller.<br />
+
Credits withdrawn are equal to a domain price in the Provider system minus the promocode assigned to the Reseller.<br />
+
 
|}
 
|}
==Extended TLDs Management - Integration With [https://www.docs.modulesgarden.com/Domain_Orders_Extended_For_WHMCS Domain Orders Extended For WHMCS]==
 
<!--
 
'' '''Important:''' The following description of integration is dedicated to Domain Orders Extended For WHMCS in [https://www.docs.modulesgarden.com/Domain_Orders_Extended_2.X_For_WHMCS earlier module version 2.X].''
 
-->
 
  
 +
===Extended TLDs Management - Integration With [https://www.docs.modulesgarden.com/Domain_Orders_Extended_For_WHMCS Domain Orders Extended For WHMCS]===
 +
 +
{|
 +
|style="padding: 10px 0px 5px 15px;"|'''Domain Orders Extended For WHMCS allows quick and easy management of multiple TLDs that may turn out to be a fundamental tool for your resellers!'''<br />In this part we are going to present how fluently these two modules may work together to gain the most from the integration. <br />
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|The provider in '' 'Domains Reseller' '' module must have previously configured and set up the pricing for domains he wants to offer to a reseller.
 +
|}
 
{|
 
{|
|style="padding: 10px 0px 5px 15px;"|'''Domain Orders Extended For WHMCS allows quick and easy management of multiple TLDs and lets you offer these TLDs to your resellers at hand!'''<br />In this part we are going to present how fluently these two modules may work together to let you gain the most from the integration. <br />
+
|style="padding: 0px 0px 20px 25px;"|[[File:DR3_54_5.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|Open your Domain Orders Extended For WHMCS addon module, move to '' 'Predefined TLD Sets' '' section and install one of the TLD groups of your wish.
+
|style="padding: 0px 0px 20px 15px;"|Open your Domain Orders Extended For WHMCS addon module, move to '' 'Predefined TLD Sets' '' section and install the ones the provider has offered you to resell.
 
|}
 
|}
 
{|
 
{|
Line 743: Line 970:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|It is time to set up the pricing. Save the changes once ready.<br/>
+
|style="padding: 0px 0px 15px 15px;"|It is time to quickly set up the pricing, do not forget to define higher prices that the provider has stated in your Reseller Area to assure incomes!  Save the changes once ready.<br/>
 
You can find more information about the pricing in Domain Orders Extended For WHMCS [https://www.docs.modulesgarden.com/Domain_Orders_Extended_For_WHMCS#Edit_TLD_Pricing here].
 
You can find more information about the pricing in Domain Orders Extended For WHMCS [https://www.docs.modulesgarden.com/Domain_Orders_Extended_For_WHMCS#Edit_TLD_Pricing here].
 
|}
 
|}
Line 751: Line 978:
 
{|
 
{|
 
|style="padding: 0px 0px 15px 15px;"|Select all TLDs the same way you did earlier and '' 'Edit TLDs Configuration'. ''<br />
 
|style="padding: 0px 0px 15px 15px;"|Select all TLDs the same way you did earlier and '' 'Edit TLDs Configuration'. ''<br />
There, find '' 'Overwrite Registrar' '' option and toggle it. A dropdown menu with available registrars will appear. Select the one used in Domains Reseller module.  
+
There, find '' 'Overwrite Registrar' '' option and toggle it. A dropdown menu with available registrars will appear. Select the integration module delivered by your provider.  
 
|}
 
|}
 
{|
 
{|
 
|style="padding: 0px 0px 20px 25px;"|[[File:DR_54_4.png]]
 
|style="padding: 0px 0px 20px 25px;"|[[File:DR_54_4.png]]
|}
 
{|
 
|style="padding: 0px 0px 15px 15px;"|It is time to go back to '' 'Domains Reseller' '' module. Move to the '' 'Configuration' '' section to enable the previously configured TLDs.<br />
 
Your TLDs are now ready to be offered by your resellers.
 
|}
 
{|
 
|style="padding: 0px 0px 20px 25px;"|[[File:DR_54_5.png]]
 
|}
 
{|
 
|style="padding: 0px 0px 15px 15px;"|Your resellers, who also own Domain Orders Extended For WHMCS, can quickly update their offer by installing the very same gTLD category.<br />
 
The next steps are exactly the same as those you have just performed: setting up the pricing and assigning the TLDs to the Domains Reseller For WHMCS registrar module generated by you.
 
|}
 
{|
 
|style="padding: 0px 0px 20px 25px;"|[[File:DR_54_6.png]]
 
 
|}
 
|}
 
{|
 
{|
Line 782: Line 995:
 
{|
 
{|
 
|style="padding: 0px 0px 15px 15px;"|There is surely a solution for resellers who do not own [https://www.modulesgarden.com/products/whmcs/domain-orders-extended Domain Orders Extended] module yet.<br />
 
|style="padding: 0px 0px 15px 15px;"|There is surely a solution for resellers who do not own [https://www.modulesgarden.com/products/whmcs/domain-orders-extended Domain Orders Extended] module yet.<br />
They will simply have to add and set up each TLD separately at the '' 'Setup' '' → '' 'Products/Services' '' → '' 'Domain Pricing', '' which may be time consuming.<br/> That is why we highly recommend using the modules together to manage your time optimally.   
+
They will simply have to add and set up each TLD separately at the '' 'System Settings' '' → '' 'Domain Pricing', '' which may be time consuming.<br/> That is why we highly recommend using the modules together to manage the time optimally.   
 
|}
 
|}
 
{|
 
{|
Line 792: Line 1,005:
 
|}
 
|}
  
=Tips=
+
===End Client Area===
 
{|
 
{|
|style="padding: 10px 0px 0px 15px;"|1. If you forget to save the link to the registrar module you generated or integration code for it, do not worry, there is a way!<br />
+
|style="padding: 10px 0px 15px 15px;"|Domains Reseller integration module allows end clients to register, transfer and renew domain as well as run standard actions on domains.<br/>
Simply generate the module with the same name and save what you forgot to save the last time.
+
WHMCS Client Area view with an ordered domain via integration module.
 
|}
 
|}
 
{|
 
{|
|style="padding: 10px 0px 20px 15px;"|2. If your reseller gets an error '' 'Unable to register domain, please contact administration (license problem).' '', that means your license is invalid or expired.
+
|style="padding: 0px 0px 20px 25px;"|[[File:DR2_64.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DR_55.png]]
+
|style="padding: 0px 0px 20px 15px;"|Blesta Client Area view with an ordered domain via integration module.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|3. Make sure that you are not blocking access to the '' 'domainsResellerAPI' '' catalog by your '' '.htaccess' '' file.
+
|style="padding: 0px 0px 30px 25px;"|[[File:DR2_64_1.png]]
 +
|}
 +
 
 +
===Sample Workflow===
 +
{|
 +
|style="padding: 10px 0px 30px 15px;"|In this section we will present to you a sample workflow of the module.<br />
 +
 
 +
In a basic workflow 3 users take part:<br />
 +
'''Provider''' – a person with Domains Reseller For WHMCS installed on the WHMCS system.<br />
 +
'''Reseller''' - a provider's client who aims at reselling TLDs offered to him by the provider.<br />
 +
The reseller must own a system with integration module generated for him by the provider with Domains Reseller For WHMCS.<br />
 +
'''End Client''' – a person with a client account in the Reseller's system (WHMCS, Blesta or others).<br />
 +
<br />
 +
'''Provider's Part'''<br />
 +
Let us start from the beginning. Provider installs Domains Reseller For WHMCS in the system.<br />
 +
He already has some TLDs in the offer and wishes to allow the reseller to resell them.<br />
 +
Now, the provider configures Domains Reseller For WHMCS,  creates groups, configures them and assigns TLDs and defines their pricing for the reseller who is assigned to one of the groups.<br />
 +
Finally, selects which of the clients will become resellers, assigns them to previously created groups and generates access details.<br />
 +
<br />
 +
'''Reseller Part'''<br />
 +
The  Reseller has access to the Reseller Area once logged into the provider's client area. <br />
 +
There, he can download both the integration module and its documentation as well as generate and copy any API details required to activate the integration module in his own system.<br/>
 +
Then, the reseller needs to set up TLDs that the provider allows him to resell with the integration module delivered by the provider.  Defines the pricing (prices must be higher than the ones the provider has set up to generate any income). <br />
 +
There is one step that separates the reseller from offering the domain from his system.<br />
 +
The reseller must [https://docs.whmcs.com/Add_Funds add funds] to his credit balance in the provider system to be able to pay off the charges and settle the amounts  owed to the provider for his resold TLDs .<br />
 +
Provider creates an '' 'add funds invoice' '' for the Reseller, the Reseller pays the invoice and then again the Provider adds the same amount to Reseller's credit balance.<br />
 +
From now on, any domain can be ordered.<br />
 +
<br/>
 +
'''End Client'''<br />
 +
End Client orders a domain from his client area in the Reseller's system.<br />
 +
<br />
 +
'''Last Word About Payment'''<br />
 +
Now, that the End-Client has ordered and paid the reseller for the domain, at the provider's system a new invoice for that domain is created automatically (on behalf of the reseller).<br/>
 +
Depending on the selected "Payment Type" configuration the invoice will be paid with credits and domain attempted to be registered or attempt to register the domain and if successful, the invoice will be paid with credits. <br/>
 +
In case the reseller does not have sufficient credits on his account to pay for the domain registration the process is stopped until the invoice is manually paid by the reseller.<br/>
 +
The reseller's income is the difference between the price of the sold domain to the End-Client and the price he paid to the provider.
 +
|}
 +
 
 +
==Domains Reseller Product==
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|Domains Reseller For WHMCS module may also be configured as a provisioning module. You will have to create a new product that will be offered to purchase for resellers. <br/>This simple trick will allow you to skip the manual configuration of all resellers. The process will be automatized once the reseller orders such product.<br/>
 +
<br/>
 +
Follow the steps below to create and configure the Domains Reseller product:<br/>
 +
 
 +
'''1. In order to create a new Domains Reseller product, go to '' 'Setup' → 'Products/Services' → 'Products/Services'.'' '''<br/>
 +
Press '' 'Create New Group' '' to add a new one.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:DR2_65.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|'''2. Fill in a product group name and press '' 'Save Changes'.'' '''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:DR2_65_1.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|'''3. Next, add a new product in the previously created group.'''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:DR2_65_2.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|'''4. Set the product type to '' 'Other','' name the product and assign it to the ''Domians Reseller'' module.'''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:DR2_65_3.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|'''5.  Now, go to the '' 'Module Settings' '' section and choose one of the previously created in the addon groups of resellers from dropdown menu. Press 'Save Changes' .'''<br/>
 +
Note that there is no server that shall be selected. Your product is ready to order!
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:DR2_65_4.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|Allowed actions on the product:<br/>
 +
 
 +
*'''Create''' - once a client orders the product, go to Client's ''Products/Services'' and run the '' 'Create' '' action.<br/> When successful, the client appears on the list of resellers in your addon ''(see the screen below).''
 +
 
 +
*'''Suspend''' - after successful ''Suspend'' action in the Client's ''Products/Services'', the ' ''API Key Status'' ' of this reseller is switched off.
 +
 
 +
*'''Unsuspend''' - run '' 'Unsuspend'' ' command to again switch on the reseller's '' 'API Key Status.' ''
 +
 
 +
*'''Terminate''' - when the product is terminated, the Reseller's '' 'API Key Status' '' is again switched off.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:DR2_65_7.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|Addon view:
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:DR2_65_6.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|'''Once any of your clients orders this product, they will automatically become resellers.''' <br/>
 +
They will get access to the '' 'Reseller Area', '' from where they can resell the domains, that belong to their pricing group.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:DR2_65_5.png]]
 +
|}
 +
 
 +
=Tips=
 +
{|
 +
|style="padding: 10px 0px 10px 15px;"|1. If your reseller gets an error '' 'Unable to register domain, please contact administration (license problem).', '' that means your license is invalid or expired.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 10px 15px;"|2. Make sure that you are not blocking access to the '' 'api' '' catalog by your '' '.htaccess' '' file.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 10px 15px;"|3. Domains Reseller For WHMCS enables you to resell your domains not only to WHMCS and Blesta systems.<br />
 +
You are able to easily prepare registrar module for any system (HostBill, Clientexec, BoxBilling and many more) using Domains Reseller For WHMCS API.<br />
 +
All you need is knowledge of for example PHP programming language and our module's [[#API Documentation|API]].
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|4. Domains Reseller For WHMCS enables you to resell your domains not only to WHMCS and HostBill systems.<br />
+
|style="padding: 0px 0px 30px 15px;"|4. If a client buys a domain from the reseller and pays in a different currency than the reseller's default currency <br /> then the amount will be converted into the reseller's default currency basing on the '' 'Base Conv. Rate' '' (''your WHMCS → System Settings → Currencies'').  
You are able to easily prepare registrar module for any system (Blesta, Clientexec, BoxBilling and many more) using Domains Reseller For WHMCS API.<br />
+
All you need is knowledge of for example PHP programming language and [[#Knowledgebase|knowledgebase]] of our module's API.
+
 
|}
 
|}
  
 
=Update Instructions=
 
=Update Instructions=
 
{|
 
{|
|style="padding: 10px 0px 30px 15px;"|Essential guidance through the process of updating the module is offered '''[https://www.docs.modulesgarden.com/How_To_Update_WHMCS_Module here]'''.<br/><br/>
+
|style="padding: 10px 0px 30px 15px;"|Essential guidance through the process of updating the module is offered '''[https://www.docs.modulesgarden.com/How_To_Update_WHMCS_Module here]'''.<br/>
Keep in mind there is a quick and easy option in our client area that will let you upgrade the license of your module to an open source version at any time - and at a lower price!<br/>
+
 
To take advantage of it, simply use the '''License Upgrade''' button located on the product's page and a discounted invoice will be generated automatically.<br/>
+
<h5 style="color: #ff0000; font-weight:bold;">Please be aware that when updating from version 1.x. to 2.0.0 of the module no data are migrated!<br/>
 +
All the resellers and their configuration will need to be set up from the beginning.</h5>
 
|}
 
|}
 +
=Upgrade Guide=
 +
{|
 +
|style="padding: 10px 0px 30px 15px;"|Seeking a solution that offers greater flexibility, customization tailored to your precise needs, and unrestricted availability?<br/> There is an option that not only proves to be cost-effective in the long run but also includes prioritized support services, making it a truly valuable investment.<br/>
 +
 +
Opt for the [https://www.modulesgarden.com/products/whmcs/domains-reseller#open-source-version Open Source version] of your Domains Reseller For WHMCS module to unlock these benefits.<br/> Simply click on either the '''Get Source Code''' or '''Upgrade To Lifetime''' button found on the product's page in our client area to complete the one-step upgrade process, with a '''dedicated discount''' already applied.<br/>
 +
 +
Follow a [https://www.docs.modulesgarden.com/How_To_Upgrade_WHMCS_Module comprehensive guide] covering the transition process, the advantages it brings, and step-by-step instructions on what to do next after the order has been successfully finalized.
 +
|}
 +
 
=Common Problems=
 
=Common Problems=
 
{|
 
{|
Line 823: Line 1,157:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 15px;"|2. Error '' 'Function Not Supported by Registrar Module' '' means that registrar on main WHMCS does not support the operation you were trying to do.
+
|style="padding: 0px 0px 5px 15px;"|2. In the case of problems with connection between the main WHMCS and the reseller's module, make sure the '''firewall''' does not interfere with:
 +
* the reseller's WHMCS server
 +
* the provider's server
 +
|}
 +
{|
 +
|style="padding: 0px 0px 5px 15px;"|3. Error '' 'Function Not Supported by Registrar Module' '' means that registrar on main WHMCS does not support the operation you were trying to do.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|4. Error: '' 'Provided domain has not been found in reseller account' '' <br/>
 +
'''Explanation:''' The Domains Reseller For WHMCS module does not support the "[https://docs.whmcs.com/Clients:Domains_Tab#Transfer_Ownership Transfer Ownership]" action. If you attempt to transfer a domain between WHMCS clients (resellers), the above error will appear. <br/>
 +
'''Solution:''' Transfer the domain between resellers manually at the database level. To do so, execute the following command: <br/>
 +
<code>
 +
UPDATE `DomainsReseller_ResellerRelations` SET `resellerid` = (SELECT id FROM `DomainsReseller_Resellers` WHERE `clientid` = :newClientID) WHERE relid = :domainId and type = 'domain';
 +
</code>
 +
<br/>
 +
'''Where:'''
 +
* ''clientid'' - ID number of a WHMCS client (a reseller) to which a domain has been transferred
 +
* ''relid'' - ID number of the transferred domain<br/>
 +
based on the data from WHMCS system activity log.<br/>
 +
 
 +
'''For example:'''<br/>
 +
<code>
 +
UPDATE `DomainsReseller_ResellerRelations` SET `resellerid` = (SELECT id FROM `DomainsReseller_Resellers` WHERE `clientid` = 3804) WHERE relid = 5176 and type = 'domain';
 +
</code>
 +
 
 +
Based on system activity log data:
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:DR2 66.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 5px 15px;"|5. Error: '' 'Provided domain has not been found in reseller account' '' <br/>
 +
'''Explanation:''' When the above error is returned by the API for any reseller domain action, it means that the order for this domain was added by default by WHMCS and not by the API of the module (reseller functionality).<br/>
 +
'''Solution:''' The domain should be additionally [[#Domains|imported]] to the reseller manually.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 15px;"|6. Do not upload any non ".php" files into the '' 'modules/addons/DomainsReseller/app/Libs/Resources/Submodules/Types'' ' folder, as it might cause certain issues with the functioning of the module.
 
|}
 
|}

Latest revision as of 13:47, 26 April 2024

Contents

[edit] About Domains Reseller For WHMCS

Domains Reseller For WHMCS allows you to resell TLDs as well as manage obtained income and resellers. All these in a single pane of glass.

The module facilitates its own API which can be used by your resellers to offer domains within various systems like WHMCS, HostBill, Blesta and others.
Just generate your own registrar module with just a couple of clicks, hand it over to your resellers and admire the sales they generate.

  • Provider:
✔ View Resellers And TLDs Income Statistics
✔ View Most Profitable Resellers And Latest Invoices
✔ Create And Manage Resellers:
✔ Assign To Dedicated Group
✔ Assign Client's Account
✔ Generate Access API Key
✔ Restrict Access To Specific IP Addresses
✔ Allow API Access
✔ Define API Limits Interval And Requests
✔ View Reseller's Orders And Income
✔ Automatically Create Resellers From Clients Using Provisioning Module
✔ Create And Manage Groups:
✔ Allow API Access With Defined Permissions
✔ Allow Access To API Documentation
✔ Select Pricing Method For Reselling TLDs:
✔ Override With Own Pricing Slab
✔ Use Default WHMCS Pricing Slab
✔ Provide Promotion Code With WHMCS Pricing Method
✔ Send Low Credit Notification
✔ Define Payment Collection Type:
✔ After Domain Registration
✔ After Order Placement
✔ Define Refund Policy Upon Unsuccessful Domain Registration:
✔ Disabled
✔ Via Credits Only
✔ Via Invoice Refund
✔ Allow Reseller Debit Within Defined Unpaid Invoices Limit
✔ Define Default Domain Registrant
✔ Define Tech/Admin/Billing Domain Contact Details
✔ Define Domain Contacts To Be Edited By End Clients
✔ Create Domain Registrar Integration Modules For Resellers:
✔ Choose Dedicated Platform:
✔ WHMCS
✔ Blesta
✔ Define Name And Description
✔ Provide Logo
✔ Attach Additional Fields Integration File
✔ Attach Documentation
✔ Assign Offered TLDs For Resellers
✔ Define Pricing For Each TLD Extension:
✔ For Register, Transfer And Renew Action
✔ For Each Year Period
✔ For Each Currency
✔ Create Response Templates To Overwrite Registrars Messages Displayed To End Clients
✔ Configure Default Settings:
✔ Toggle Global API Status
✔ Toggle Global API IP Restriction
✔ Toggle Global API Requests Restriction
✔ Define Default Group Settings
✔ View API Request And Response Logs
✔ View API Documentation
  • Resellers:
✔ Access Dedicated Reseller Area
✔ View Domains Orders
✔ View TLDs Pricing
✔ View And Assign Bought Domains
✔ Access Reseller Settings:
✔ View Available Account Credits
✔ Access API Details:
✔ View Available Credentials
✔ View/Generate API Key
✔ View/Modify IP Addresses Restrictions
✔ Download Domain Registrar Integration Module
✔ Download Provider Documentation
✔ Download Additional Fields Integration File
✔ View API Request And Response Logs
✔ View API Documentation
  • End Clients:
✔ Manage Contact Information
✔ Manage Email Forwarders
✔ Manage DNS Records
✔ Register/Manage Private Nameservers
✔ Enable/Disable ID Protection
  • API Functionality:
✔ Register/Transfer/Renew Domain
✔ Release/Delete Domain
✔ Get Domain Information
✔ Get Domain Suggestions
✔ Get Cart TLDs Register/Renew/Transfer Pricing
✔ Get/Modify Contact Details
✔ Get EPP Code
✔ Get/Modify Registrar Lock Status
✔ Get/Save DNS Records
✔ Get/Register/Modify/Delete Nameservers
✔ Get/Save Email Forwarding
✔ Modify ID Protection
✔ Check Domain And Transfer Synchronization
✔ Check Domain Availability
✔ Get Available TLDs
✔ Get Available Credits
✔ Get Version
  • General Info:
✔ Transactions Between Resellers And Provider Settled With Credits
✔ Integrated With Domain Orders Extended For WHMCS - Innovative Way Of Selling TLDs & gTLDS
✔ Fully Integrated With Lagom WHMCS Client Theme
✔ Multi-Language Support
✔ Supports PHP 8.1 Back To PHP 7.4
✔ Supports WHMCS Themes "Six" And "Twenty-One"
✔ Supports WHMCS V8.10 Back To WHMCS V8.6
✔ Requires Database With InnoDB Storage Engine
✔ Requires ionCube Loader V12 Or Later
✔ Easy Module Upgrade To Open Source Version

[edit] Installation

This tutorial will show you how to successfully install and configure Domains Reseller For WHMCS.

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

Please be aware that when updating from version 1.x. to 2.0.0 of the module no data are migrated!
All the resellers and their configuration will need to be set up from the beginning.

Note: If you are using Domains Reseller For WHMCS in any version prior to v2.x, follow these instructions.

1. Log in to our client area and download the module.
DR3 1.png
2. In the downloaded file you might find one or two packages that support different PHP versions.

In the most recent versions of the module, you will find only one package that supports PHP 7.4 and later.

PHP74 81.png
Previous updates of the module may contain a package dedicated to other PHP versions, that are no longer officially supported. Find more info here

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

3. Extract the package and upload its content into the main WHMCS directory.

The content of the package to upload should look like this

DR 2.png
4. When you install Domains Reseller For WHMCS for the first time you have to rename the 'license_RENAME.php' file.

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

DR3 3.png
5. 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 our client area → 'My Products'.

DR 4.png
6. In the next step, set up the 'storage' folder as recursively writable.

This folder is available at 'yourWHMCS/modules/addons/DomainsReseller/'.

Dr3 5.png
7. Now you have to activate the module in your WHMCS system.

Log in to your WHMCS admin area. Go to 'System Settings' 'Addon Modules'. Afterwards, find 'Domains Reseller' and press 'Activate' button.

DR3 6.png
8. In the next step you need to permit access to this module.

To do so click on 'Configure' button, tick 'Full Administrator' and press 'Save Changes'.

DR3 7.png
9. You have just successfully installed Domains Reseller!

You can access your module at 'Addons' 'Domains Reseller'.

DR3 8.png

[edit] Configuration and Management

Domains Reseller For WHMCS allows your customers to resell domains on their own WHMCS.

[edit] Dashboard

Dashboard page includes some truly valuable graphs and summaries on income generated from reselling TLDs.
The 'Income' section presents your income which is converted into USD basing on 'Base Conv. Rate' in System Settings → Currencies.
DR3 24.png
You may easily change the graph settings by changing the time scope and selecting TLDs you are interested in.
DR3 25.png
Most Profitable Resellers & Latest Invoices summaries:
DR3 26.png
To allow more flexibility. you are given a chance to freely customize your dashboard and turn off/on single elements visible on it.

To do so, find and open the "dashboard.yml" configuration file located at: (...)modules\addons\DomainsReseller\app\Config\UIElements\AdminArea directory.
There manage the dashboard elements' status by changing it from on to off according to your needs.

DR3 26-0.png

[edit] General Settings

'Settings' tab allows you to access general settings of your Domain Reseller API.

Here you may set up general options but still, you will be able to change them per single group. If you skip group settings, this configuration will be taken into account.

DR3 28.png
We will describe these options below.

Global API related section:

  • 'API Status ' - enable/disable Domains Reseller API.
  • 'IP Addresses Restriction' - enable/disable restricting connection to Domains Reseller API only for IP addresses specified in the 'Allowed IP Addresses' field.
  • 'API Requests Restriction' - enable option to restrict the number of API requests.
  • 'Remove Logs After (days)' - define the number of days, log records older than the provided here number will be automatically deleted.
DR3 29.png
Miscellaneous:
  • 'Low Credit Notification' - a notification to your client will be sent when credit balance on client's account falls below entered value.
    You may view and edit the "Low Credit Notification" custom email template sent to clients at 'WHMCS' → 'System Settings' → 'Email Templates'. This email message is sent with the main WHMCS cron job.
  • 'Low Credit Amount' - the number of credits, when reached a notification will be sent.
  • 'Payment Type' options:
    • 'Pay After Registration' - resellers must have sufficient credits amount, but he is charged only after a domain has been successfully registered.
    • 'Pay After Order' - resellers must settle the payment just after the order, the amount due is taken from their account instantly.
  • 'Refund Type' - defines behavior of the module upon unsuccessful domain registration.
    • 'Credits Only' - if selected, refunds are granted in form of credits only.
    • 'Refund Invoice' - if selected, refunds are delivered in form of credits along with a newly generated invoice.
    • 'Disabled' - if selected, refunds are not accepted.
  • 'Allow Debits' - if enabled, resellers with no credits on their account will be allowed to order domains. In such a case, an invoice with 'Unpaid' status will be created for the ordered domain.
    • 'Maximum Debit Amount' - define the amount the reseller may use to order domains without credits.
      Important: The provided here amount is a total sum on all invoices with 'Unpaid' status that exist in your system.
  • 'Default Registrant' - select default contact that will be used during registration. This option is available only if registrant contact uses WHMCS details.
  • 'Default Admin/Tech/Billing' - select default admin that will be used for contact. This option is available only if Admin/Tech/Billing contact uses admin details from WHMCS.
  • 'End User Allowed To Edit Contacts' - select which of the End Clients will be allowed to edit contact details. You may choose more than one.

Remember to submit the changes, once you have finished.

DR3 30.png

[edit] Groups

At the 'API Users' tab you can manage all aspects related to your resellers who will be assigned to these groups later on.

Start by creating the first group for your resellers. Use either of the buttons marked on the screen below.

DR3 30 1.png
Then, simply type in a unique name of your group.
Create as many groups as you will need and set up different configuration to adjust them and then assign resellers to adequate groups.
DR3 31 1.png

[edit] Configuration Per Group

You can set up configuration for resellers who are assigned to this very group only.
These settings will overwrite the general settings defined in the previous step.
  • 'API Status' - enable/disable Domains Reseller API for Resellers assigned to this very group only.
  • 'IP Address Restriction' - enable/disable restricting connection to Domains Reseller API only for IP addresses specified in the 'Allowed IP Addresses' field.
  • 'API Requests Restriction' - enable the option to restrict the number of API requests.
  • 'Show API Documentation' - toggle to allow resellers access to API documentation directly from their Reseller Area.
  • 'Pricing Method' - choose the preferred pricing method from the two available:
    • 'Override' - you will be able to set pricing in the TLD's Tab.
    • 'WHMCS' - pricing is copied from that one set in WHMCS and you will not be able to set pricing in the TLD's Tab.
  • 'Promotion Code' - provide a WHMCS promo code if you own one, the discount will be applied to every order covering pro code restrictions (WHMCS pricing method only.)
  • 'Low Credit Notification' - turn on sending notifications to your client when credit balance on client's account falls below entered value.
    You may view and edit the "Low Credit Notification" custom email template sent to clients at 'WHMCS' → 'System Settings' → 'Email Templates'. This email message is sent with the main WHMCS cron job.
  • 'Low Credit Level' - amount of credits, when reached a notification will be sent.
  • 'Payment Type' options:
    • 'Pay After Registration' - resellers must have sufficient credits amount, but he is charged only after a domain has been successfully registered.
    • 'Pay After Order' - resellers must settle the payment just after the order, the amount due is taken from their account instantly.
  • 'Refund Type' - defines behavior of the module upon unsuccessful domain registration.
    • 'Credits Only' - if selected, refunds are granted in form of credits only.
    • 'Refund Invoice' - if selected, refunds are delivered in form of credits only.
    • 'Disabled' - if selected, refunds are not accepted.
  • 'Allow Debits' - resellers with no credits on their account will be allowed to order domains, invoice with 'Unpaid' status will be created for such order.
    • 'Maximum Debit Amount ' - define the maximum amount a reseller may spend on new domains (if there are no credits on the account).
      Important: This amount is a total of all the 'Unpaid' invoices created in your system.
  • 'Default Registrant' - select default contact that will be used during registration. This option is available only if registrant contact uses WHMCS details.
  • 'Default Tech/Admin/Billing' - select default admin that will be used for contact. This option is available only if Admin/Tech/Billing contact uses admin details from WHMCS.
  • 'End Client Allowed to Edit Contact' - select which of the End Clients will be allowed to edit contact details. You may choose more than one.

Save the changes when ready.

DR3 32.png

[edit] API Permissions

Toggle options that resellers will be allowed to use via API. Select single options or use 'Switch All' button to toggle all permissions.
DR3 34.png

[edit] Integrations

In this section you can create and manage integration modules which resellers will need to upload and activate to be able to resell domains you offer them.

Press 'Add Integration' to begin.

DR3 35.png
To generate a new integration module you need to provide following data:
  • Select the target platform for the submodule: WHMCS or Blesta
  • Enter your module unique name
  • Toggle on to allow downloading a file with additional fields required by the provider's registrar to register domains.
    Data typed in by End Clients will be correctly delivered by the provider to the domains' registrar. Learn more here.
  • Type in a short description of the module, it will be visible on the activation page of the registrar
  • Upload logo image, it will be visible on the activation page of the registrar
  • Upload file with documentation if you have prepared any - you may use any format.
DR3 36.png
Newly created Integration will appear on the list. You may:
  1. Edit its details (change logo, description etc.) at any time
  2. Download domain additional fields
  3. Download documentation if any has been provided
  4. Download the integration package
  5. Delete the integration
DR3 37.png
In order to delete numerous integration at once, use the mass action button.
DR3 37 1.png

[edit] TLDs

Create a list of TLDs with their custom pricing details that resellers assigned to this group will be allowed to offer to their clients.

Press 'Assign TLD' button to begin.

DR3 38.png
Select TLDs from the available and press 'Confirm'.
To learn more about available TLDs, please refer to the official documentation here.
DR3 39.png
Assigned TLDs will appear on the list, you may also preview here the registrar name of the TLD extension and pricing details.
Press the 'Pricing' icon to set up your custom prices per TLD for resellers assigned to this group.
DR3 41.png
In the Set Pricing tab, you can set the domain pricing for each of the registration periods in each available currency per every active TLD for resellers.

In addition, if you put:

  • -1 (minus one) value in the chosen field, then it will be treated as disabled. E.g. provide -1 for transfer pricing to completely disable the possibility of domain transfers with that TLD.
    Important: If you provide -1 value for registration pricing, then the whole TLD will be treated as disabled, including transfer and renewal pricing.
  • 0 (zero) value in the chosen field, then it will be treated as free. E.g. provide 0 for registration pricing if you want to offer the selected TLD for free, but with paid transfers and renewals.
  • any value above 0 (zero) will be of course treated as paid.
DR3 42.png
If you want to set up the same prices for all TLDs in this group, simply use the mass action button to do it almost with one click.
In the same way you may unassign numerous TLDs from the group.
DR3 42 1.png
You can also set up pricing and margins with WHMCS Registrar TLD Sync.

Your group configuration is now ready. If you have more groups, repeat these steps for each of them.
Remember that you may always edit the single group name or delete it if no longer needed. Just press adequate buttons to do so.

DR3 42 2.png
Keep in mind that you may never delete a group if there are any resellers assigned to the group.
Before deleting it, you must choose an alternative group to which the resellers will be reassigned.
DR3 42 3.png
Important: In the case of integration with Blesta you also have to manually add all the TLDs to the registrar's "config" file, otherwise they will not be available in the dedicated platform.

The 'config' file is located in: /Registrar_Name/components/modules/registrarname/config/registrarname.php. Open the file, at the bottom you will find a section: "All available TLDs" with a few examples added by default, fill in the list with your TLDs.
Below you can see what an exemplary list of TLDs may look like.

DR3 42 4.png

[edit] Resellers

In this section you will find a list of your active Resellers. Press 'Add Reseller' to make one of your clients a reseller.
DR3 43.png
  • Select one of your previously created groups, to which the reseller will be assigned.
  • Then select one of your clients from the dropdown, start typing to see a list of clients
  • Generate an API Key for the Reseller, it will be necessary when configuring the integration module with the Reseller's platform
  • Prepare a list of allowed IP addresses, use comma or a space to separate - note that this option must have been enabled previously in the module general settings here
  • API Status - toggle to allow reseller generate the API key in the Reseller area
  • API Limits - toggle to be able to define precise limits
    • API Interval [Min] - enter a time interval in minutes in which a provided below number of API requests can be called
    • API Requests Limit - maximum number of API requests in the time interval
DR3 44.png
Instead of adding single resellers one by one, you may use the 'Add Resellers In Bulk' option.
Then all your remaining users will be converted into resellers.
DR3 44 1.png
Select a group to which the newly created resellers will be assigned.
DR3 44 2.png

[edit] Reseller Details

[edit] API Configuration

Here you may easily alter the settings that you have defined when creating the reseller.

Apart from them, you may preview the API Email Address and API Key required to activate and configure the integration module.

DR3 45.png

[edit] Orders

This section includes a list of orders placed to purchase a domain with offered to this reseller TLDs.
Take a look at any crucial details on the orders.
DR3 45 1.png

[edit] Income

'Income' tab contains a current list of invoices that generate any income for the reseller.
Press the invoice ID and you will be redirected to the invoice summary.
DR3 45 2.png

[edit] Response Templates

In 'Response Templates' section you may add and edit new templates with text messages/information that are sent to clients instead of defined here system responses.

In order to add a new response template press the 'Create Template' button and then follow the below instructions.

DR3 46.png
Provide the pattern for search and replace in the system response depending on the type.
  • For Text type, simply provide a string like 'Error Response'.
  • For Regular Expression type, you need to provide a regular expression which will be replaced.
    For example, if you want to replace any dollar price in the response provide '\$\d+\.\d+', in this case it will replace strings like '$8.25'.
  • If you want to replace any response, simply type '.+' in here.
DR3 47.png
In the second step Replace With you need to enter a text message that will be sent to a client when the above entered pattern is found.
The two messages will be replaced with one another.
DR3 48.png
Define Priority. The higher number you enter, the higher priority will be assigned.
Important! All active patterns within the same group found with different priorities are performed starting from the higher to lower priority.
DR3 49.png
Finally,
  • choose 'Text' or 'Regular Expression' from Type dropdown menu.

It will specify if provided text in the first field should be treated as a text or a regular expression while searching for a pattern.

  • Registrar Action - must be chosen from dropdown menu as well to specify upon which action provided patterns will be searched for.

Remember, to finish successfully you need to press 'Confirm' button.

DR3 50.png
Now you can see a newly configured response is visible on the list. You may edit the added response or remove it any time you need.
Just use action buttons marked on the screen.
DR3 51.png

[edit] Module Logs

In 'Logs' section you may preview a list of API requests and responses, including errors with the most important details on them.
DR3 51 1.png
Use action buttons to delete selected logs or just single entries.
DR3 51 2.png
You can also delete all logs by using the "Delete All Logs" function.
DR3 51 3.png

[edit] Documentation

[edit] API Documentation

Under 'Documentation' tab you will find two subsections. The first one is dedicated to API.

This API documentation has been prepared to allow you to write your own integration modules for platforms other than WHMCS and Blesta (included by default).

'Information' subtab contains:

  • Endpoint - URL to which all the API requests are directed
  • Authorization - Username and token parameters to authenticate the client in the API request
  • Example - exemplary request to API to renew a domain
DR3 53.png
'Calls' subtab contains information about actions supported by the API.

Note: The screen below does not capture all the supported functions.
Full API functionality can be found on the module features list at the top of this documentation.

DR3 54.png
The last section includes 'Models' details.
DR3 55.png

[edit] Module Documentation

'Module Documentation ' is a hyperlink. It leads to the 'Domains Reseller For WHMCS' wiki article you are currently reading.
DR3 52.png

[edit] Reseller Area

Resellers can manage API connection credentials directly from the provider WHMCS client area as well as see any details on its TLDs offer.

Go to 'Domains' 'Reseller Area' to access them.

DR3 56.png

[edit] Orders

As you can see, 'Orders' section includes a detailed list of orders placed on domains with offered TLDs, with any payment details and date.
DR3 57.png

[edit] Pricing

'Pricing' section includes a list of the Reseller's TLDs with the option to preview its pricing set up by the provider.
DR3 58.png
DR3 59.png

[edit] Domains

The 'Domains' section allows Resellers to manage their domains.
If you want to assign any domains that were bought previously, simply click on the following button.
DR3 58 1.png
Now you can select one or more domains from the dropdown menu.
DR3 58 2.png
There is also the possibility to unassign the particular domain.
Note: Please remember that once a domain is unassigned, you are not able to manage it until it is assigned again.
DR3 58 3.png

[edit] Settings

Under 'Settings' section you will find any API details necessary to install and activate the integration module.
DR3 60.png
Underneath the API details you will find a list of generated integrations.
Depending on the provider, you may download the packages, download the additional fields and documentation per Integration.
DR3 61.png

[edit] Logs

Preview a list of logs on API requests and responses, including errors stored in the module.
DR3 62.png

[edit] API Documentation

Access API documentation details with basic information and API Calls and Models.

This API documentation has been prepared to allow you to write your own integration modules for platforms other than WHMCS and Blesta (included by default).

'Information' tab contains:

  • Endpoint - URL to which all the API requests are directed
  • Authorization - Username and token parameters to authenticate the client in the API request
  • Example - exemplary request to API to renew a domain
DR3 63.png
Available 'Calls' list:

Note: The screen below does not capture all the supported functions.

DR3 63 1.png
Available 'API Models' list:
DR3 63 2.png

[edit] Domains Reselling Workflow

[edit] Installation Of Integration Module

Below you can find instructions for installation of the integration module on the reseller's WHMCS.

Please refer to section Integrations to learn how to generate an integration module for your resellers.

An exemplary flow of installation and configuration of the integration module to resell TLDs on Blesta, can be found in Blesta official documentation.
1. Upload and extract the registrar module into your WHMCS.

Once you have extracted the module, you should find a new folder with the registrar in 'resellerWHMCS/modules/registrars/' directory.
Important: The folder and module name, logo and description of the extracted integration module is customized by the provider and will be different than the one presented in the example below.

DR3 16.png
2. Go to 'System Settings' 'Domains Registrars' , find the module you have just uploaded and press 'Activate' next to it.
DR3 18.png
3. Now, press 'Configure' button, enter 'User Email' and 'API Key' provided along with the module.

You can find these data in your Reseller Area in the Provider's Client Area. Afterwards, press 'Save Changes'.

DR3 19.png
5. To continue, go to 'System Settings' 'Domains Pricing'.

Set up TLD your provider allows you to resell, select additional features, choose registrar you have just installed from a dropdown menu and save it through pressing 'Save Changes'.

DR3 20.png
6. Afterwards, set pricing for your TLD. To do so, press 'Open Pricing' text.

It will open in a new window, so make sure your browser does not block it.

DR3 21.png
7. Next, enter prices for specific actions. Press 'Save Changes' to confirm.
DR3 22.png
8. Congratulations, you have just successfully installed your registrar!

[edit] Extended TLDs Management - Integration With Domain Orders Extended For WHMCS

Domain Orders Extended For WHMCS allows quick and easy management of multiple TLDs that may turn out to be a fundamental tool for your resellers!
In this part we are going to present how fluently these two modules may work together to gain the most from the integration.
The provider in 'Domains Reseller' module must have previously configured and set up the pricing for domains he wants to offer to a reseller.
DR3 54 5.png
Open your Domain Orders Extended For WHMCS addon module, move to 'Predefined TLD Sets' section and install the ones the provider has offered you to resell.
DR 54 1.png
Come back to the 'TLDs Configuration', find your group with newly assigned TLDs and define pricing for each of them. To make it faster, select all TLDs and use a mass action button.
DR 54 2.png
It is time to quickly set up the pricing, do not forget to define higher prices that the provider has stated in your Reseller Area to assure incomes! Save the changes once ready.

You can find more information about the pricing in Domain Orders Extended For WHMCS here.

DR 54 3.png
Select all TLDs the same way you did earlier and 'Edit TLDs Configuration'.

There, find 'Overwrite Registrar' option and toggle it. A dropdown menu with available registrars will appear. Select the integration module delivered by your provider.

DR 54 4.png
Most importantly, the offer can be now extremely client-friendly due to a high range of selection of Domain Orders Extended domain registration forms including:
  • Lagom theme
  • General Category View
  • Multi Category View
  • List View
DR 54 7.png
There is surely a solution for resellers who do not own Domain Orders Extended module yet.

They will simply have to add and set up each TLD separately at the 'System Settings' 'Domain Pricing', which may be time consuming.
That is why we highly recommend using the modules together to manage the time optimally.

DR 54 8.png
As you can see, integrating of Domains Resellers For WHMCS with Domain Orders Extended For WHMCS allows you to offer vast array of TLDs with ease.

A win-win situation with benefits for all: you expanding and perfecting your offer, your resellers managing the TLDs and surely for the end-clients enjoying the final outcomes!

[edit] End Client Area

Domains Reseller integration module allows end clients to register, transfer and renew domain as well as run standard actions on domains.

WHMCS Client Area view with an ordered domain via integration module.

DR2 64.png
Blesta Client Area view with an ordered domain via integration module.
DR2 64 1.png

[edit] Sample Workflow

In this section we will present to you a sample workflow of the module.

In a basic workflow 3 users take part:
Provider – a person with Domains Reseller For WHMCS installed on the WHMCS system.
Reseller - a provider's client who aims at reselling TLDs offered to him by the provider.
The reseller must own a system with integration module generated for him by the provider with Domains Reseller For WHMCS.
End Client – a person with a client account in the Reseller's system (WHMCS, Blesta or others).

Provider's Part
Let us start from the beginning. Provider installs Domains Reseller For WHMCS in the system.
He already has some TLDs in the offer and wishes to allow the reseller to resell them.
Now, the provider configures Domains Reseller For WHMCS, creates groups, configures them and assigns TLDs and defines their pricing for the reseller who is assigned to one of the groups.
Finally, selects which of the clients will become resellers, assigns them to previously created groups and generates access details.

Reseller Part
The Reseller has access to the Reseller Area once logged into the provider's client area.
There, he can download both the integration module and its documentation as well as generate and copy any API details required to activate the integration module in his own system.
Then, the reseller needs to set up TLDs that the provider allows him to resell with the integration module delivered by the provider. Defines the pricing (prices must be higher than the ones the provider has set up to generate any income).
There is one step that separates the reseller from offering the domain from his system.
The reseller must add funds to his credit balance in the provider system to be able to pay off the charges and settle the amounts owed to the provider for his resold TLDs .
Provider creates an 'add funds invoice' for the Reseller, the Reseller pays the invoice and then again the Provider adds the same amount to Reseller's credit balance.
From now on, any domain can be ordered.

End Client
End Client orders a domain from his client area in the Reseller's system.

Last Word About Payment
Now, that the End-Client has ordered and paid the reseller for the domain, at the provider's system a new invoice for that domain is created automatically (on behalf of the reseller).
Depending on the selected "Payment Type" configuration the invoice will be paid with credits and domain attempted to be registered or attempt to register the domain and if successful, the invoice will be paid with credits.
In case the reseller does not have sufficient credits on his account to pay for the domain registration the process is stopped until the invoice is manually paid by the reseller.
The reseller's income is the difference between the price of the sold domain to the End-Client and the price he paid to the provider.

[edit] Domains Reseller Product

Domains Reseller For WHMCS module may also be configured as a provisioning module. You will have to create a new product that will be offered to purchase for resellers.
This simple trick will allow you to skip the manual configuration of all resellers. The process will be automatized once the reseller orders such product.


Follow the steps below to create and configure the Domains Reseller product:

1. In order to create a new Domains Reseller product, go to 'Setup' → 'Products/Services' → 'Products/Services'.
Press 'Create New Group' to add a new one.

DR2 65.png
2. Fill in a product group name and press 'Save Changes'.
DR2 65 1.png
3. Next, add a new product in the previously created group.
DR2 65 2.png
4. Set the product type to 'Other', name the product and assign it to the Domians Reseller module.
DR2 65 3.png
5. Now, go to the 'Module Settings' section and choose one of the previously created in the addon groups of resellers from dropdown menu. Press 'Save Changes' .

Note that there is no server that shall be selected. Your product is ready to order!

DR2 65 4.png
Allowed actions on the product:
  • Create - once a client orders the product, go to Client's Products/Services and run the 'Create' action.
    When successful, the client appears on the list of resellers in your addon (see the screen below).
  • Suspend - after successful Suspend action in the Client's Products/Services, the ' API Key Status ' of this reseller is switched off.
  • Unsuspend - run 'Unsuspend ' command to again switch on the reseller's 'API Key Status.'
  • Terminate - when the product is terminated, the Reseller's 'API Key Status' is again switched off.
DR2 65 7.png
Addon view:
DR2 65 6.png
Once any of your clients orders this product, they will automatically become resellers.

They will get access to the 'Reseller Area', from where they can resell the domains, that belong to their pricing group.

DR2 65 5.png

[edit] Tips

1. If your reseller gets an error 'Unable to register domain, please contact administration (license problem).', that means your license is invalid or expired.
2. Make sure that you are not blocking access to the 'api' catalog by your '.htaccess' file.
3. Domains Reseller For WHMCS enables you to resell your domains not only to WHMCS and Blesta systems.

You are able to easily prepare registrar module for any system (HostBill, Clientexec, BoxBilling and many more) using Domains Reseller For WHMCS API.
All you need is knowledge of for example PHP programming language and our module's API.

4. If a client buys a domain from the reseller and pays in a different currency than the reseller's default currency
then the amount will be converted into the reseller's default currency basing on the 'Base Conv. Rate' (your WHMCS → System Settings → Currencies).

[edit] Update Instructions

Essential guidance through the process of updating the module is offered here.
Please be aware that when updating from version 1.x. to 2.0.0 of the module no data are migrated!
All the resellers and their configuration will need to be set up from the beginning.

[edit] Upgrade Guide

Seeking a solution that offers greater flexibility, customization tailored to your precise needs, and unrestricted availability?
There is an option that not only proves to be cost-effective in the long run but also includes prioritized support services, making it a truly valuable investment.

Opt for the Open Source version of your Domains Reseller For WHMCS module to unlock these benefits.
Simply click on either the Get Source Code or Upgrade To Lifetime button found on the product's page in our client area to complete the one-step upgrade process, with a dedicated discount already applied.

Follow a comprehensive guide covering the transition process, the advantages it brings, and step-by-step instructions on what to do next after the order has been successfully finalized.

[edit] Common Problems

1. When you have problems with connection, check whether your SELinux or firewall does not block ports.
2. In the case of problems with connection between the main WHMCS and the reseller's module, make sure the firewall does not interfere with:
  • the reseller's WHMCS server
  • the provider's server
3. Error 'Function Not Supported by Registrar Module' means that registrar on main WHMCS does not support the operation you were trying to do.
4. Error: 'Provided domain has not been found in reseller account'

Explanation: The Domains Reseller For WHMCS module does not support the "Transfer Ownership" action. If you attempt to transfer a domain between WHMCS clients (resellers), the above error will appear.
Solution: Transfer the domain between resellers manually at the database level. To do so, execute the following command:
UPDATE `DomainsReseller_ResellerRelations` SET `resellerid` = (SELECT id FROM `DomainsReseller_Resellers` WHERE `clientid` = :newClientID) WHERE relid = :domainId and type = 'domain';
Where:

  • clientid - ID number of a WHMCS client (a reseller) to which a domain has been transferred
  • relid - ID number of the transferred domain

based on the data from WHMCS system activity log.

For example:
UPDATE `DomainsReseller_ResellerRelations` SET `resellerid` = (SELECT id FROM `DomainsReseller_Resellers` WHERE `clientid` = 3804) WHERE relid = 5176 and type = 'domain';

Based on system activity log data:

DR2 66.png
5. Error: 'Provided domain has not been found in reseller account'

Explanation: When the above error is returned by the API for any reseller domain action, it means that the order for this domain was added by default by WHMCS and not by the API of the module (reseller functionality).
Solution: The domain should be additionally imported to the reseller manually.

6. Do not upload any non ".php" files into the 'modules/addons/DomainsReseller/app/Libs/Resources/Submodules/Types ' folder, as it might cause certain issues with the functioning of the module.
Navigation
WHMCS Modules
WHMCS Widgets
Translations
cPanel Modules
General
FAQ
Community
Domains Reseller For WHMCS