Personal tools
Namespaces

Variants
Actions

Multibrand 1.X For WHMCS

From ModulesGarden Wiki
(Difference between revisions)
Jump to: navigation, search
(Plesk)
 
(44 intermediate revisions by 5 users not shown)
Line 2: Line 2:
 
<meta name="description" content="ModulesGarden Wiki Contains All The Information You Need About The Multibrand For WHMCS Module."></meta>
 
<meta name="description" content="ModulesGarden Wiki Contains All The Information You Need About The Multibrand For WHMCS Module."></meta>
  
=About [http://www.modulesgarden.com/products/whmcs/multibrand/features Multibrand For WHMCS]=
+
=About [https://www.modulesgarden.com/products/whmcs/multibrand Multibrand For WHMCS]=
 
{|
 
{|
 
|style="padding: 10px 0px 10px 0px;"|'''Multibrand For WHMCS''' will allow you to manage multiple brands on multiple websites while using just a single WHMCS installation.
 
|style="padding: 10px 0px 10px 0px;"|'''Multibrand For WHMCS''' will allow you to manage multiple brands on multiple websites while using just a single WHMCS installation.
Line 10: Line 10:
 
|}
 
|}
 
<!--a comment maybe? -->
 
<!--a comment maybe? -->
*'''Admin Area Features:'''
+
*'''Addon Features:'''
 
{|
 
{|
 
|style="padding: 10px 0px 0px 30px;"|✔ User Friendly Management Of Multiple Brands
 
|style="padding: 10px 0px 0px 30px;"|✔ User Friendly Management Of Multiple Brands
Line 30: Line 30:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Configure Payment Gateways For Each Brand Separately - PayPal And 2CheckOut (beta)
+
|style="padding: 0px 0px 0px 30px;"|✔ Configure Payment Gateways For Each Brand Separately:
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ PayPal - Single Payment And Subscription
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ 2CheckOut - Single Payment Only
 
|}
 
|}
 
{|
 
{|
Line 36: Line 42:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Quick Preview Of The Branded Client Area
+
|style="padding: 0px 0px 0px 30px;"|✔ Quick Preview Of Branded Client Area
 
|}
 
|}
 
{|
 
{|
Line 45: Line 51:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ View Brand Reports - The List Of Clients, Invoices, Orders, Tickets And Services
+
|style="padding: 0px 0px 0px 30px;"|✔ View Brand Reports - List Of Clients, Invoices, Orders, Tickets And Services
 
|}
 
|}
 
{|
 
{|
Line 61: Line 67:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 10px 30px;"|✔ Create Branded Invoices
+
|style="padding: 0px 0px 0px 30px;"|✔ Create Branded Invoices
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 10px 30px;"|✔ Create Branded Quotes
+
|style="padding: 0px 0px 0px 30px;"|✔ Create Branded Quotes
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 10px 30px;"|✔ Open Branded Tickets
+
|style="padding: 0px 0px 0px 30px;"|✔ Open Branded Tickets
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Create Branded Announcements
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Add Branded Knowledgebase Articles
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Add Branded Downloads
 
|}
 
|}
 
{|
 
{|
Line 74: Line 89:
 
*'''Client Area Features:'''
 
*'''Client Area Features:'''
 
{|
 
{|
|style="padding: 10px 0px 0px 30px;"|✔ Displayed Client Area Template And Default Language Depend On The Brand
+
|style="padding: 10px 0px 0px 30px;"|✔ Displayed Client Area Template And Default Language Depend On Brand
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Access To Products, Invoices, Ticket Departments and Payment Gateways Assigned To The Brand
+
|style="padding: 0px 0px 0px 30px;"|✔ Access To Products, Invoices, Downloads, Ticket Departments and Payment Gateways Assigned To Brand
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Receive Branded Emails And Invoices
+
|style="padding: 0px 0px 0px 30px;"|✔ View Articles And Announcements Assigned To Brand
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Unbranded Clients Can Only Log Into The Default Brand
+
|style="padding: 0px 0px 0px 30px;"|✔ Receive Branded Emails And Invoices
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Branded Clients Can Only Log Into The Brand They Are Assigned To
+
|style="padding: 0px 0px 0px 30px;"|✔ Branded Clients Can Only Log Into Brand They Are Assigned To
 
|}
 
|}
 
{|
 
{|
Line 133: Line 148:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Supports WHMCS V5 Up To V5.3.14
+
|style="padding: 0px 0px 0px 30px;"|✔ Supports PHP 5.4 Up To PHP 7
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 30px;"|✔ Requires PHP 5.3 and Later
+
|style="padding: 0px 0px 0px 30px;"|✔ Supports WHMCS Templates Five and Six
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 30px;"|✔ Supports WHMCS V6 and V7
 
|}
 
|}
  
Line 146: Line 164:
 
==Installation==
 
==Installation==
 
{|
 
{|
|style="padding: 10px 0px 20px 15px;"|'''1. Log in to your client area and download Multibrand For WHMCS.'''
+
|style="padding: 10px 0px 20px 15px;"|'''1. Log in to your client area and download the module.'''
 
|}
 
|}
 
{|
 
{|
Line 152: Line 170:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''2. Upload and extract the module into the main WHMCS directory.'''<br />
+
|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 7, while the second one is aimed at PHP 5.4 up to PHP 5.6.<br/>It does not apply to open source versions.<br/>
Files in your WHMCS directory should look like these.
+
'' '''Note''': You can check current PHP version in your WHMCS. To do so proceed to ''' 'Utilities' → 'System' → 'PHP Info'.'''
 
|}
 
|}
 
{|
 
{|
Line 159: Line 177:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''3. When you install Multibrand for the first time you have to rename '' 'license_RENAME.php' '' file.'''<br />
+
|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 />
 +
The content of PHP version files should look like this.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:MB_2_2.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|'''4. When you install Multibrand For WHMCS for the first time you have to rename '' 'license_RENAME.php' '' file.'''<br />
 
File is located in '' 'modules/addons/MultibrandFunctionality/license_RENAME.php'.''  Rename it from '' 'license_RENAME.php' '' to '' 'license.php'.''
 
File is located in '' 'modules/addons/MultibrandFunctionality/license_RENAME.php'.''  Rename it from '' 'license_RENAME.php' '' to '' 'license.php'.''
 
|}
 
|}
Line 166: Line 191:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''4. In order to configure your license key, you have to edit a previously renamed '' 'license.php' '' file.'''<br />
+
|style="padding: 0px 0px 15px 15px;"|'''5. In order to configure your license key, you have to edit a previously renamed '' 'license.php' '' file.'''<br />
 
Enter your license key between quotation marks as presented on the following screen. You can find your license key in your client area'' → 'My Products'.''
 
Enter your license key between quotation marks as presented on the following screen. You can find your license key in your client area'' → 'My Products'.''
 
|}
 
|}
Line 175: Line 200:
 
==Activating Addon Module==
 
==Activating Addon Module==
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|'''5. Now you have to activate the module in your WHMCS system.'''<br />
+
|style="padding: 10px 0px 15px 15px;"|'''6. 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 '' 'Multibrand' '' and press '' 'Activate' '' button.
 
Log in to your WHMCS admin area. Go to '' 'Setup' '' → '' 'Addon Modules'. '' Afterwards, find '' 'Multibrand' '' and press '' 'Activate' '' button.
 
|}
 
|}
Line 182: Line 207:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''6. In the next step you need to permit access to this module.'''<br />
+
|style="padding: 0px 0px 15px 15px;"|'''7. In the next step you need to permit access to this module.'''<br />
 
To do so click on '' 'Configure' '' button, tick '' 'Access Control' '' near required admin role groups and press '' 'Save Changes'.''
 
To do so click on '' 'Configure' '' button, tick '' 'Access Control' '' near required admin role groups and press '' 'Save Changes'.''
 
|}
 
|}
Line 190: Line 215:
 
==Additional Settings==
 
==Additional Settings==
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|'''7. Now, set up '' 'logos' '' folder as writable.'''<br />
+
|style="padding: 10px 0px 15px 15px;"|'''8. Now, set up '' 'logos' '' folder as writable.'''<br />
Folder is located in '' 'you_whmcs/modules/addons/MultibrandFunctionality/storage/'.''
+
Folder is located in '' 'your_whmcs/modules/addons/MultibrandFunctionality/storage/'.''
 
|}
 
|}
 
{|
 
{|
Line 197: Line 222:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''8. The last step is proceeding with integration code.<br />
+
|style="padding: 0px 0px 15px 15px;"|'''9. The last step is replacing '' 'invoicepdf.tpl' '' file with '' 'invoicepdf_RENAME.tpl' '' for each of the templates used.'''<br />
Integration code can be found under '' 'Addons' '' '' 'Multibrand' '' '' 'Settings' '' '' 'Integration Code'.''
+
'' 'invoicepdf_RENAME.tpl' '' is located in '' 'your_whmcs/templates/default/' ''.<br />
 +
Simply, remove default '' 'invoicepdf.tpl' '' file from template folder and copy '' 'invoicepdf_RENAME.tpl' '' into the folder.<br />
 +
Afterwards, rename the file to '' 'invoicepdf.tpl' ''.
 
|}
 
|}
 
{|
 
{|
Line 204: Line 231:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''9. You have just successfully installed Multibrand For WHMCS!'''<br />
+
|style="padding: 0px 0px 15px 15px;"|'''10. You have just successfully installed Multibrand For WHMCS!'''<br />
 
You can access your module in '' 'Addons' '' → '' 'Multibrand'.''
 
You can access your module in '' 'Addons' '' → '' 'Multibrand'.''
 
|}
 
|}
Line 227: Line 254:
 
==Brands==
 
==Brands==
 
{|
 
{|
|style="padding: 10px 0px 30px 15px;"|'' 'Brands Management' '' tab allows you to create and manage your brands using a single instance of WHMCS solution.
+
|style="padding: 10px 0px 30px 15px;"|Under '' 'Brands' '' tab you can create and manage your brands using a single instance of WHMCS solution.
 
|}
 
|}
 
===New Brand===
 
===New Brand===
Line 248: Line 275:
 
|style="padding: 0px 0px 15px 15px;"|Afterwards, select desired brand language, template and brand color.<br />
 
|style="padding: 0px 0px 15px 15px;"|Afterwards, select desired brand language, template and brand color.<br />
 
Additionally, upload the logo which will be used in branded invoices, emails and client area.<br />
 
Additionally, upload the logo which will be used in branded invoices, emails and client area.<br />
Finish through deciding whether to set this brand as default and press '' 'Save Changes'. ''<br />
+
'' 'Save Changes'. ''<br/>
''Note:'' New users created by admin or through API will be assigned to the default brand.
+
''Note:'' Only published brands can be set as default.<br>
 +
New users created by admin or through API will be assigned to the default brand.
 
|}
 
|}
 
{|
 
{|
Line 259: Line 287:
 
{|
 
{|
 
|style="padding: 0px 0px 30px 15px;"|'''The last step is setting up DNS record, which will point from branded domain towards your main domain used by WHMCS.'''<br />
 
|style="padding: 0px 0px 30px 15px;"|'''The last step is setting up DNS record, which will point from branded domain towards your main domain used by WHMCS.'''<br />
To learn more about setting up CNAME records, proceed to [[Multibrand_For_WHMCS#Creating_CNAME_Records|Creating CNAME Records section]].<br />
+
To learn more about setting up CNAME records, proceed to [[Multibrand_1.X_For_WHMCS#Domains_.26_CNAME_Records_Configuration|Domains & CNAME Records Configuration section]].<br />
 
Do not forget to publish the brand as soon as the CNAME record propagates worldwide.
 
Do not forget to publish the brand as soon as the CNAME record propagates worldwide.
 
|}
 
|}
Line 296: Line 324:
 
{|
 
{|
 
|style="padding: 10px 0px 15px 15px;"|This tab allows you to configure payment gateway for the brand.<br />
 
|style="padding: 10px 0px 15px 15px;"|This tab allows you to configure payment gateway for the brand.<br />
To enable payment gateway, mark checkbox next to it, fill out required details and press '' 'Save Changes' ''.<br />
+
To enable payment gateway, mark checkbox next to it, fill out required details and press '' 'Save Changes'. ''<br />
 
''Note 1: Remember, to use branded payment gateway you need to activate it first under '' 'Setup' → 'Payments' → 'Payment Gateways'.'' ''<br/>
 
''Note 1: Remember, to use branded payment gateway you need to activate it first under '' 'Setup' → 'Payments' → 'Payment Gateways'.'' ''<br/>
 
''Note 2: Owing to '' 'Payment Gateway' '' tab, you can use different details per brand.''<br/>
 
''Note 2: Owing to '' 'Payment Gateway' '' tab, you can use different details per brand.''<br/>
''Note 3: 2CheckOut payment gateway currently supports only single payments.''
+
''Note 3: 2Checkout payment gateway currently supports only single payments.''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:MB_18.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:MB_18.png]]
 +
|}
 +
{|
 +
|style="padding: 10px 0px 30px 15px;"|''Info: please note that only '' 'PayPal' '' and '' '2Checkout' '' payment gateways can be currently multibranded.''<br/>
 +
Still, you may use any other payment gateway that is active in your WHMCS system. Multibrand For WHMCS can work with any gateway <br/>that works within your WHMCS, the only limitation is that the other payment gateways use the same settings for all brands.
 
|}
 
|}
  
Line 323: Line 355:
 
{|
 
{|
 
|style="padding: 0px 0px 15px 15px;"|Each brand can be disabled/enabled through pressing '' 'Published'/'Unpublished' '' (red) or set up as default through clicking on '' 'Default' '' (blue) button.<br />
 
|style="padding: 0px 0px 15px 15px;"|Each brand can be disabled/enabled through pressing '' 'Published'/'Unpublished' '' (red) or set up as default through clicking on '' 'Default' '' (blue) button.<br />
Both of them are placed in '' 'Change Status' '' column as shown on the screen below.
+
Both of them are placed in '' 'Status' '' column as shown on the screen below.
 
|}
 
|}
 
{|
 
{|
Line 398: Line 430:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:MB_26_1.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:MB_26_1.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 15px;"|
 +
* For '''all''' WHMCS templates: <br/>
 +
'''1.''' Access the location of your template. For the '''Five''' template it is the '' ''' /yourWHMCS/templates/five/ ''' '' folder, while for the '''Six''' template, you need to go to the '' ''' /yourWHMCS/templates/six/ ''' '' location.<br />
 +
'''2.''' Make a copy of your '''invoicepdf.tpl''' and '''quotepdf.tpl''' files located in your template's folder. <br />
 +
'''3.''' Now, move to the '' 'yourWHMCS/templates/default' '' folder and rename '''invoicepdf_RENAME.tpl''' and '''quotepdf_RENAME.tpl''' to the original file names.<br />
 +
'''4.''' Lastly, replace these files in your template's folder.
 +
<br/><br/>
 +
 
 +
* For the '''Five''' WHMCS template<br/>
 +
'''1.''' Open the '''header.tpl''' file located in the '' ''' /yourWHMCS/templates/five/ ''' '' folder<br />
 +
'''2.''' Find and '''remove''' the following code (should be located in the line 7):
 +
{if $systemurl}<base href="{$systemurl}" />{/if}
 +
'''3.''' Next, find the following code:
 +
<pre><div id="whmcsimglogo"><a href="index.php"><img src="templates/{$template}/img/whmcslogo.png" alt="{$companyname}" /></a></div></pre>
 +
'''4.''' And replace it with:
 +
<a href="{$WEB_ROOT}/index.php"><img src="{if $logo}{$logo}{else}{$WEB_ROOT}/templates/{$template}/img/logo.png{/if}" alt="{$companyname}" /></a>
 +
<br/>
 +
 
 +
* For '''WHMCS V6''' and the '''Six''' template<br/>
 +
'''1.''' Open the '''header.tpl''' file located in the '' ''' /yourWHMCS/templates/six/ ''' '' folder<br />
 +
'''2.''' Find the following code:
 +
<a href="{$WEB_ROOT}/index.php"><img src="{$WEB_ROOT}/templates/{$template}/img/logo.png" alt="{$companyname}" /></a>
 +
'''4.''' And replace it with:
 +
<a href="{$WEB_ROOT}/index.php"><img src="{if $logo}{$logo}{else}{$WEB_ROOT}/templates/{$template}/img/logo.png{/if}" alt="{$companyname}" /></a>
 +
<br/>
 +
 +
* For '''WHMCS V7''' and the '''Six''' template <br/>
 +
'''1.''' Open the '''header.tpl''' file located in the '' ''' /yourWHMCS/templates/six/ ''' '' folder<br />
 +
'''2.''' Find the following block of code:
 +
<pre>
 +
{if $assetLogoPath}
 +
<a href="{$WEB_ROOT}/index.php" class="logo"><img src="{$assetLogoPath}" alt="{$companyname}"></a>
 +
{else}
 +
<a href="{$WEB_ROOT}/index.php" class="logo logo-text">{$companyname}</a>
 +
{/if}
 +
</pre>
 +
'''4.''' And replace it with:
 +
<a href="{$WEB_ROOT}/index.php"><img src="{if $logo}{$logo}{else}{$WEB_ROOT}/templates/{$template}/img/logo.png{/if}" alt="{$companyname}" /></a>
 +
<br />
 +
'''Note''' - Resellers Center For WHMCS v3.X module is no longer compatible with Multibrand For WHMCS v1.X module.
 
|}
 
|}
  
Line 413: Line 487:
 
{|
 
{|
 
|style="padding: 10px 0px 15px 15px;"|Multibrand For WHMCS makes management of WHMCS easier through introducing '' 'Brand Details' '' column.<br />
 
|style="padding: 10px 0px 15px 15px;"|Multibrand For WHMCS makes management of WHMCS easier through introducing '' 'Brand Details' '' column.<br />
'' 'Brand Details' '' column informs you about membership of clients, invoices, tickets, orders or services in certain brand.<br />
+
'' 'Brand Details' '' column informs you about membership of clients, invoices, tickets, orders or services to certain brand.<br />
 
Let's see how it looks in a '' 'Client List'.''
 
Let's see how it looks in a '' 'Client List'.''
 
|}
 
|}
Line 427: Line 501:
 
|style="padding: 0px 0px 30px 25px;"|[[File:MB_28.png]]
 
|style="padding: 0px 0px 30px 25px;"|[[File:MB_28.png]]
 
|}
 
|}
 +
 
==Invoices/Tickets/Quotes Creation From Admin Area==
 
==Invoices/Tickets/Quotes Creation From Admin Area==
 
{|
 
{|
Line 433: Line 508:
 
As you can see on the following screen, from the summary page you can create all of mentioned above as well as log into any of client's brands.<br />
 
As you can see on the following screen, from the summary page you can create all of mentioned above as well as log into any of client's brands.<br />
 
<br />
 
<br />
'''Important:''' Those can be done only from client summary page in the admin area, other possibilities of creating invoices/tickets/quotes was blocked.
+
'''Important:''' Those can be done only from client summary page in the admin area, other possibilities of creating invoices/tickets/quotes are blocked.
 
|}
 
|}
 
{|
 
{|
Line 449: Line 524:
 
{|
 
{|
 
|style="padding: 0px 0px 30px 25px;"|[[File:MB_28_3.png]]
 
|style="padding: 0px 0px 30px 25px;"|[[File:MB_28_3.png]]
 +
|}
 +
==Support Functionalities Branded==
 +
===Announcements===
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|Create branded announcements. To do so, simply while preparing a new announcement for your clients, choose a brand (from those you have previously added and assigned clients to)<br/>that the announcement will be viewed to.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:MB_32.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|On the full list of announcements you can find details on which brand the announcement is assigned to.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:MB_33.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|Clients will see only the announcements assigned to their brand in their client area.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:MB_34.png]]
 +
|}
 +
 +
===Downloads===
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|Branded ''Downloads'' option works just alike ''Announcements'' described above. While adding a new file to download for your clients,<br/> simply assign it to a brand you want it to be available for.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:MB_36.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|Note, that you can brand both the download or the category of the downloads itself!<br/>
 +
If you brand a category, then any of files in this category will be automatically visible only for clients of this brand.<br/> Remember that files in such category can still have a different brand assigned, then they will not be visible in this group in client area.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:MB_35.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|On the list of all categories you can see the just created and branded one next to the ones that already exist with the name of their assigned brands.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:MB_35_1.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|Only branded downloads will be visible for clients of a certain brand.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:MB_37.png]]
 +
|}
 +
 +
===Knowledgebase===
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|Using Multibrand For WHMCS you may also brand any article in your knowledgebas.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:MB_39.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|You may always brand categories, not only the articles in themselves.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:MB_38.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|On the list of all categories you can see which brand they are assigned to.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:MB_38_1.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|Only branded knowledgebase articles will be visible for clients of a certain brand.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:MB_40.png]]
 
|}
 
|}
  
Line 478: Line 626:
 
*there are a few email types: general/product/domain/invoice
 
*there are a few email types: general/product/domain/invoice
 
*there are a lot of default WHMCS templates in the system. These kinds of templates are "special" in a few ways.
 
*there are a lot of default WHMCS templates in the system. These kinds of templates are "special" in a few ways.
*we have only one tool that allows us to adjust emails ([http://docs.whmcs.com/Hooks:EmailPreSend link])
+
*we have only one tool that allows us to adjust emails ([https://developers.whmcs.com/hooks-reference/everything-else/ link])
 
<br />
 
<br />
 
'''How does email branding mechanism look like?'''<br />
 
'''How does email branding mechanism look like?'''<br />
Line 498: Line 646:
 
#In the last step, there is one significant mechanism: (let's just say, that it is the last resort mechanism)
 
#In the last step, there is one significant mechanism: (let's just say, that it is the last resort mechanism)
 
#*When we determine brand, for example '''MyBrand''' is a brand name
 
#*When we determine brand, for example '''MyBrand''' is a brand name
#*Hook checks if email template with unique name exists: '''$currentBrand->name.' '.$emailUniqueName'''  (prefix + space + the same unique name)
+
#*Hook checks if email template with unique name exists: '''$currentBrand name.' '.$emailUniqueName'''  (prefix + space + the same unique name)
 
#*If it exists, the hook disables sending email by WHMCS and the module will send email with found template by our own Mailer<br />(as a result, you will find in logs that email was aborted, and it will not be displayed in the list of emails sent to client)
 
#*If it exists, the hook disables sending email by WHMCS and the module will send email with found template by our own Mailer<br />(as a result, you will find in logs that email was aborted, and it will not be displayed in the list of emails sent to client)
 
<br />
 
<br />
Line 515: Line 663:
 
|}
 
|}
  
==Creating CNAME Records==
+
==Domains & CNAME Records Configuration==
 
{|
 
{|
|style="padding: 10px 0px 30px 0px;"|In this section you will find guides on how to create CNAME record in popular control panels.<br />
+
|style="padding: 10px 0px 10px 0px;"|In this section you will find guides on how to create CNAME record in popular control panels.<br />
 
For instance, if your branded domain is reseller.com and domain with your WHMCS is whmcs.domain.com, your CNAME will be '' 'www.reseller.com. CNAME whmcs.domain.com.'.''<br />
 
For instance, if your branded domain is reseller.com and domain with your WHMCS is whmcs.domain.com, your CNAME will be '' 'www.reseller.com. CNAME whmcs.domain.com.'.''<br />
 
''Note 1: As you can see above, each domain has to be closed with a dot.''<br />
 
''Note 1: As you can see above, each domain has to be closed with a dot.''<br />
''Note 2: To learn more about certificate requirements, visit [[Multibrand_For_WHMCS#Common_Problems|Common Problems section]].''
+
''Note 2: To learn more about certificate requirements, visit [[Multibrand_1.X_For_WHMCS#Common_Problems|Common Problems section]].''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 0px;"|Domain used by each of the brands MUST BE PARKED on the main domain.<br/>In case a domain cannot be parked or it is a subdomain, you must create CNAME records that will redirect from the brand domain to the main domain.<br/>
 +
Only when you have parked your domains you can move to setting CNAME records on your panels. See the tips below.
 
|}
 
|}
 
===cPanel===
 
===cPanel===
Line 534: Line 686:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 15px;"|4. Fill in '' 'Name' '' and '' 'CNAME' '' record and press '' 'Add CNAME Record' ''.<br />
+
|style="padding: 0px 0px 30px 15px;"|4. Fill in '' 'Name' '' and '' 'CNAME' '' record and press '' 'Add CNAME Record'. ''<br />
 
''Note: To define record's TTL, you have to use '' 'Advanced DNS Zone Editor'.
 
''Note: To define record's TTL, you have to use '' 'Advanced DNS Zone Editor'.
 
|}
 
|}
Line 565: Line 717:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 5px 15px;"|4. Find the domain to be edited, and click on the corresponding Control Panel link.<br />
+
|style="padding: 0px 0px 10px 15px;"|4. Add a new record or edit an existing one.
Afterwards, proceed to '' 'Websites & Domains' '' tab and press '' 'DNS Settings'.''
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 10px 15px;"|5. Add a new record or edit an existing one.
+
|style="padding: 0px 0px 10px 15px;"|5. Now, change the record type to '' 'CNAME' '' and fill in both '' 'Domain name' '' and '' 'Canonical name'.''<br />
|}
+
{|
+
|style="padding: 0px 0px 30px 15px;"|6. Now, change the record type to '' 'CNAME' '' and fill in both '' 'Domain name' '' and '' 'Canonical name'.''<br />
+
 
Finish by pressing '' 'Ok'.''<br />
 
Finish by pressing '' 'Ok'.''<br />
 
''Note: The changes will take between 4 to 8 hours to update worldwide.''
 
''Note: The changes will take between 4 to 8 hours to update worldwide.''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 15px;"|'''Remember to restart your server once it is configured.'''
 
|}
 
|}
  
Line 586: Line 737:
 
This is due the way in which WHMCS works. It is not the limitation of our module.<br />
 
This is due the way in which WHMCS works. It is not the limitation of our module.<br />
 
Additionally, in order to fix  connection support for secured connections, add the integration code shown below.<br />
 
Additionally, in order to fix  connection support for secured connections, add the integration code shown below.<br />
Edit '' 'configuration.php' '' located in the main WHMCS directory and place following code at the end of the file.  
+
Edit '' 'configuration.php' '' located in the main WHMCS directory and place following code at the end of the file.<br/>
 +
'''For WHMCS V6:'''
 
  require_once dirname(__FILE__).'/includes/MultiBrandSSLFixer.php';
 
  require_once dirname(__FILE__).'/includes/MultiBrandSSLFixer.php';
 
  $SSLFixer = new MultiBrandSSLFixer();
 
  $SSLFixer = new MultiBrandSSLFixer();
Line 599: Line 751:
 
     }
 
     }
 
  }
 
  }
 +
 +
'''For WHMCS V7:'''
 +
require_once dirname(__FILE__).'/includes/MultiBrandSSLFixer.php';
 +
$SSLFixer = new MultiBrandSSLFixer();
 +
if($SSLFixer->shouldBeInSSL() || $SSLFixer->issetSystemSSLURL($db_host, $db_username, $db_password, $db_name))
 +
  {   
 +
      if(! $SSLFixer->isInSSL())
 +
      {
 +
          $SSLFixer->forceRedirect(true);
 +
      }
 +
  }
 +
  else
 +
  {
 +
      if($SSLFixer->isInSSL())
 +
      {
 +
          $SSLFixer->forceRedirect(false);
 +
      }
 +
  }
 
|}
 
|}
 
===cPanel===
 
===cPanel===
Line 618: Line 788:
 
===Limitations===
 
===Limitations===
 
{|
 
{|
|style="padding: 10px 0px 20px 15px;"|In this section we will list the parts of WHMCS which cannot be branded or may be working in an odd way.
+
|style="padding: 10px 0px 20px 15px;"|'''WHMCS'''
 +
In this section we will list the parts of WHMCS which cannot be branded or may be working in an odd way.
 
*'''Bridges''' - Multibrand For WHMCS does not support any kind of bridges (WordPress, Jomla).
 
*'''Bridges''' - Multibrand For WHMCS does not support any kind of bridges (WordPress, Jomla).
*'''Link replacement''' - currently links are replaced with their branded counterparts with visible delay.<br />Currently this is the only way we could do that.<br />
+
*'''Link replacement''' - currently links are replaced with their branded counterparts with a visible delay.<br/>This is the only way we could do that for the time being.<br />
*'''Clients Profile → Send Email''' - if you try to send an email template, a branded counterpart of which exists, you will receive an error.<br />This is due to its branded counterpart being sent, while default email is blocked.  
+
*'''Clients Profile → Send Email''' - if you try to send an email template, a branded counterpart of which exists, you will receive an error.<br/>This is due to its branded counterpart being sent, while default email is blocked.  
 
*'''Branded Quote → Duplicate''' - duplicating a branded quote results in receiving unbranded quote.
 
*'''Branded Quote → Duplicate''' - duplicating a branded quote results in receiving unbranded quote.
*'''Emails''' - not branded due to the lack of possibility to determin from which brand an email should be sent:
+
*'''Emails''' - not branded due to the lack of possibility to determine from which brand an email should be sent:
 
**'''Affiliate Monthly Referrals Report'''
 
**'''Affiliate Monthly Referrals Report'''
 
**'''Clients Only Bounce Message'''
 
**'''Clients Only Bounce Message'''
 +
|}
 +
{|
 +
|style="padding: 10px 0px 20px 15px;"|'''WHMCS Modules'''
 +
In this section we will list the WHMCS modules which do not support multibranding or do not cooperate with Multibrand For WHMCS at all.<br />
 +
*'''SMS Center For WHMCS''' - SMS sent to customers cannot be branded. Default set of SMS templates is sent to clients from all brands.<br />
 +
*'''Resellers Center For WHMCS''' - This module is not compatible with our Multibrand For WHMCS module.
 +
|}
 +
{|
 +
|style="padding: 10px 0px 20px 15px;"|'''Cloudflare'''
 +
Cloudflare is a service that will [http://support.cloudflare.com/hc/en-us/articles/203322654-Why-is-my-domain-resolving-to-the-wrong-IP-when-I-do-a-DNS-lookup-or-ping mask your server IP address]. <br />
 +
This is because they use their own DNS to resolve to one of their many reverse proxy servers and  will cause incompatibility with Multibrand module. <br />
 +
You may disallow the CloudFlare network to assume NS authority and don't become the intermediary between a user and your server, but then your CloudFlare service may become useless.<br />
 +
 +
 
|}
 
|}
  
 
===Requirements===
 
===Requirements===
 
{|
 
{|
|style="padding: 10px 0px 20px 15px;"|Below we will list elements requiring special attention in order to work correctly.<br />
+
|style="padding: 10px 0px 20px 15px;"|Below we will list elements that require special attention in order to work correctly.<br />
*'''Product Bundle''' - bundle requires all of it's product to be assigned to the same brands that the product bundle is.
+
*'''Product Bundle''' - bundle requires all of its products to be assigned to the same brand that the product bundle is.
 
|}
 
|}
  
 
=Tips=
 
=Tips=
 
{|
 
{|
|style="padding: 10px 0px 30px 15px;"|'''1. The logo image is usually hard coded into the WHMCS template files.'''<br />
+
|style="padding: 10px 0px 5px 15px;"|'''1. The logo image is usually hard coded into the WHMCS template files.'''<br />
 
In order to use logo file provided in the '' 'Multibrand For WHMCS' '' module, find proper line at the template file and replace it with '' '{$logo}' '' variable.<br />
 
In order to use logo file provided in the '' 'Multibrand For WHMCS' '' module, find proper line at the template file and replace it with '' '{$logo}' '' variable.<br />
 
The line responsible for a displayed logo is placed at the '' 'header.tpl' '' file located in a currently used template.
 
The line responsible for a displayed logo is placed at the '' 'header.tpl' '' file located in a currently used template.
 
|}
 
|}
 
+
{|
 +
|style="padding: 0px 0px 10px 15px;"|2. If you want Captcha security option to be displayed in your client area for all branded domains, you need to configure each of those domains in your Google Account as well.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:MB_41.png]]
 +
|}
 
=Common Problems=
 
=Common Problems=
 
{|
 
{|
Line 657: Line 847:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 15px;"|'''4. If your branded domain or WHMCS domain are using SSL connection''', both of them need to have the same certificate.<br />
+
|style="padding: 0px 0px 5px 15px;"|'''4. If your branded domain or WHMCS domain are using SSL connection''', both of them need to have the same certificate.<br />
 
If both of them are using the same domain, you will need a wildcard certificate.<br />
 
If both of them are using the same domain, you will need a wildcard certificate.<br />
 
If they are using different domains, secure them with the SAN certificate.<br />
 
If they are using different domains, secure them with the SAN certificate.<br />
This is due the way in which WHMCS works. It is not the limitation of our module.
+
This is due to the way WHMCS works. It is not the limitation of our module.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 5px 15px;"|'''5. Please remember that Multibrand For WHMCS works flawlessly with the officially supported and pointed in features list templates.<br/>
 +
These are: ''Template 'Six' '' and '' 'Five'.''<br/> In case you are using some custom template, you must be aware that unexpected errors might occur and we cannot take the responsibility for solving them.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 15px;"|
 +
'''6. Multibrand For WHMCS module is not compatible with our Resellers Center For WHMCS.'''<br/>
 +
There is no integration between these modules and we '''do not''' recommend using them together.
 
|}
 
|}

Latest revision as of 15:18, 20 September 2017

Contents

[edit] About Multibrand For WHMCS

Multibrand For WHMCS will allow you to manage multiple brands on multiple websites while using just a single WHMCS installation.

You will be able to customize your brand through modifying factors like client area template, logo or brand language, and preview the changes with just a single click.
The module enables you to easily assign your clients to and migrate them between brands, as well as assign products and ticket departments to each brand.
Owing to Multibrand For WHMCS your customers will be able to log into specified client areas in accordance with the brand under which they purchased a product or service.

  • Addon Features:
✔ User Friendly Management Of Multiple Brands
✔ Easy Modification Of Existing Brands
✔ Assign/Unassign Clients To Multiple Brands
✔ Assign Products To Brands
✔ Assign Product Bundles To Brands
✔ Assign Ticket Departments To Brands
✔ Configure Payment Gateways For Each Brand Separately:
✔ PayPal - Single Payment And Subscription
✔ 2CheckOut - Single Payment Only
✔ Display Active Clients, Invoices, Orders, Tickets And Services Associated To Brands
✔ Quick Preview Of Branded Client Area
✔ Publish/Unpublish Brands On Click
✔ Set Brand As Default - Automatic Assignment Of New Clients
✔ View Brand Reports - List Of Clients, Invoices, Orders, Tickets And Services
✔ View Dynamic Brands Comparison Reports - Various Graph Types
✔ Generate Separate Email Templates For Each Brand
✔ Verify Integration Of Templates Used By Brands
  • Admin Area Features:
✔ Order Branded Products
✔ Create Branded Invoices
✔ Create Branded Quotes
✔ Open Branded Tickets
✔ Create Branded Announcements
✔ Add Branded Knowledgebase Articles
✔ Add Branded Downloads
✔ Log In As Client To Chosen Brand
  • Client Area Features:
✔ Displayed Client Area Template And Default Language Depend On Brand
✔ Access To Products, Invoices, Downloads, Ticket Departments and Payment Gateways Assigned To Brand
✔ View Articles And Announcements Assigned To Brand
✔ Receive Branded Emails And Invoices
✔ Branded Clients Can Only Log Into Brand They Are Assigned To
✔ Multibranded Clients Can Log Into All Existing Brands With The Same Access Details
  • Brand Configuration:
✔ Default Brand For New Accounts
✔ Brand Name
✔ Company Name
✔ Brand URL Address
✔ Brand Logo
✔ Brand Language
✔ Brand Template
✔ Brand Address
✔ Brand Signature
✔ Brand Email
✔ Brand Graph Color
✔ Brand Terms Of Service URL
  • General Info:
✔ Multi-Language Support
✔ Supports PHP 5.4 Up To PHP 7
✔ Supports WHMCS Templates Five and Six
✔ Supports WHMCS V6 and V7

[edit] Installation

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

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

[edit] Installation

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

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

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

The content of PHP version files should look like this.

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

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

MB 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 your client area → 'My Products'.

MB 4.png

[edit] Activating Addon Module

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

Log in to your WHMCS admin area. Go to 'Setup' 'Addon Modules'. Afterwards, find 'Multibrand' and press 'Activate' button.

MB 5.png
7. In the next step you need to permit access to this module.

To do so click on 'Configure' button, tick 'Access Control' near required admin role groups and press 'Save Changes'.

MB 6.png

[edit] Additional Settings

8. Now, set up 'logos' folder as writable.

Folder is located in 'your_whmcs/modules/addons/MultibrandFunctionality/storage/'.

MB 7.png
9. The last step is replacing 'invoicepdf.tpl' file with 'invoicepdf_RENAME.tpl' for each of the templates used.

'invoicepdf_RENAME.tpl' is located in 'your_whmcs/templates/default/' .
Simply, remove default 'invoicepdf.tpl' file from template folder and copy 'invoicepdf_RENAME.tpl' into the folder.
Afterwards, rename the file to 'invoicepdf.tpl' .

MB 7 1.png
10. You have just successfully installed Multibrand For WHMCS!

You can access your module in 'Addons' 'Multibrand'.

MB 8.png

[edit] Configuration and Management

In this section we will show you how to properly set up and use Multibrand For WHMCS.

[edit] Dashboard

Under 'Dashboard' you can find basic information about the module and current status of 'logos' folder.

It is required to set up 'logos' folder as writable in order to upload logos of your brands.
Additionally, here you can find links to articles that will guide through the set up of CNAME records process in the most popular platforms.

MB 9.png

[edit] Brands

Under 'Brands' tab you can create and manage your brands using a single instance of WHMCS solution.

[edit] New Brand

Let's start by creating a new brand. For that purpose go to 'Brands' tab and press 'Create New Brand' button.
MB 10.png
Now, fill out 'Brand Base URL', 'Brand Email', 'Brand Name', 'Company Name', 'Address', 'Terms of Service URL' and 'Signature' with desired values.
  • 'Address' - value from this field will be used as a company address and will be displayed for example on created invoices.
  • 'Brand Email' - will be used to send branded emails to clients.
  • 'Terms of Service URL' - defines URL to Terms of Service for the brand.
MB 11.png
Afterwards, select desired brand language, template and brand color.

Additionally, upload the logo which will be used in branded invoices, emails and client area.
'Save Changes'.
Note: Only published brands can be set as default.
New users created by admin or through API will be assigned to the default brand.

MB 12.png
Now, proceed to 'Settings' → 'Integration Code' and check whether chosen template is integrated correctly with Multibrand.
The last step is setting up DNS record, which will point from branded domain towards your main domain used by WHMCS.

To learn more about setting up CNAME records, proceed to Domains & CNAME Records Configuration section.
Do not forget to publish the brand as soon as the CNAME record propagates worldwide.

[edit] Management of Existing Brands

To manage your brand, press 'Manage' button next to it as shown on the following screen.

[edit] General

General tab contains configuration of the brand.

You can modify your brand at any time, simply alter wanted parameters and press 'Save Changes'.

MB 13.png

[edit] Products

This tab allows you to assign products and product bundles configured in your system to the brand.

Note: Products/product bundles can be assigned to multiple brands at the same time.

MB 14.png

[edit] Ticket Department

Here you can choose ticket departments available from the brand.

'Important': Only one brand for each department is allowed.

MB 15.png

[edit] Payment Gateway

This tab allows you to configure payment gateway for the brand.

To enable payment gateway, mark checkbox next to it, fill out required details and press 'Save Changes'.
Note 1: Remember, to use branded payment gateway you need to activate it first under 'Setup' → 'Payments' → 'Payment Gateways'.
Note 2: Owing to 'Payment Gateway' tab, you can use different details per brand.
Note 3: 2Checkout payment gateway currently supports only single payments.

MB 18.png
Info: please note that only 'PayPal' and '2Checkout' payment gateways can be currently multibranded.

Still, you may use any other payment gateway that is active in your WHMCS system. Multibrand For WHMCS can work with any gateway
that works within your WHMCS, the only limitation is that the other payment gateways use the same settings for all brands.

[edit] Email Templates

Here you are able to generate email templates for the brand only.

Check 'Create Brand Templates' and press 'Save Changes' to create them.

MB 19.png

[edit] Back To Brand Management

Alternatively, you can edit brand values visible in 'Brand Management' tab by pressing them.

Choose/type in the desired value and confirm changes.

MB 20.png
Each brand can be disabled/enabled through pressing 'Published'/'Unpublished' (red) or set up as default through clicking on 'Default' (blue) button.

Both of them are placed in 'Status' column as shown on the screen below.

MB 21.png
In order to view the details of a brand, press 'Toggle Details' button next to the brand.

Here you can find basic information about the brand as well as quick access links to the brand reports.

MB 22.png
You can also view the client area of the brand through pressing 'Preview' button.

The client area should appear in a popup window as shown on the following screen.
You can easily log into/register client account via this popup window.

MB 23.png

[edit] Clients

Any client can be in one of the three states:
  • branded - a client with only one brand assigned. They will be able to log into the brand they are assigned to.
  • semi multi-branded - a client assigned to multiple brands. They will be able to benefit from all brands they are assigned to.
  • fully multi-branded - a client with no brands assigned, such client will be able to log into any of your brands.

Additionally, if they own products from different brands, they will be fluidly redirected between brands when viewing them.

In 'Clients' page you can assign clients to chosen brands.
Note: It's worth mentioning that client can be assigned to multiple brands.
Note 2: We were forced to abandon quick reassigning clients due to optimization reasons.

MB 23 1.png
You can search clients by client name, email and company.
MB 23 2.png

[edit] Brand Reports

In 'Brand Reports' tab you can easily view the reports concerning specific brands.

You can view the reports of clients, invoices, orders, tickets and services bounded to the selected brand.

MB 24.png
In addition, you can select the quantity of records per page, search a specified record and sort records by selected column.
MB 25.png
You can also compare all your brands using tabs marked on the following screen.

Here you can compare them by the amount of clients, orders, services, tickets, invoices, domains and income with various graph types.
On the following screen you can see a web graph with a popup containing the amount of services in brands.
Popups with different information are shown upon hovering over specified parts of graph.

MB 26.png

[edit] Settings

Under settings you can find migration tool, integration code and direct link to the article you are currently reading.

[edit] Integration Code

This integration code is required for correct branding.
MB 26 1.png
  • For all WHMCS templates:

1. Access the location of your template. For the Five template it is the /yourWHMCS/templates/five/ folder, while for the Six template, you need to go to the /yourWHMCS/templates/six/ location.
2. Make a copy of your invoicepdf.tpl and quotepdf.tpl files located in your template's folder.
3. Now, move to the 'yourWHMCS/templates/default' folder and rename invoicepdf_RENAME.tpl and quotepdf_RENAME.tpl to the original file names.
4. Lastly, replace these files in your template's folder.

  • For the Five WHMCS template

1. Open the header.tpl file located in the /yourWHMCS/templates/five/ folder
2. Find and remove the following code (should be located in the line 7):

{if $systemurl}<base href="{$systemurl}" />{/if}

3. Next, find the following code:

<div id="whmcsimglogo"><a href="index.php"><img src="templates/{$template}/img/whmcslogo.png" alt="{$companyname}" /></a></div>

4. And replace it with:

<a href="{$WEB_ROOT}/index.php"><img src="{if $logo}{$logo}{else}{$WEB_ROOT}/templates/{$template}/img/logo.png{/if}" alt="{$companyname}" /></a>


  • For WHMCS V6 and the Six template

1. Open the header.tpl file located in the /yourWHMCS/templates/six/ folder
2. Find the following code:

<a href="{$WEB_ROOT}/index.php"><img src="{$WEB_ROOT}/templates/{$template}/img/logo.png" alt="{$companyname}" /></a>

4. And replace it with:

<a href="{$WEB_ROOT}/index.php"><img src="{if $logo}{$logo}{else}{$WEB_ROOT}/templates/{$template}/img/logo.png{/if}" alt="{$companyname}" /></a>


  • For WHMCS V7 and the Six template

1. Open the header.tpl file located in the /yourWHMCS/templates/six/ folder
2. Find the following block of code:

{if $assetLogoPath}
	<a href="{$WEB_ROOT}/index.php" class="logo"><img src="{$assetLogoPath}" alt="{$companyname}"></a>
{else}
	<a href="{$WEB_ROOT}/index.php" class="logo logo-text">{$companyname}</a>
{/if}

4. And replace it with:

<a href="{$WEB_ROOT}/index.php"><img src="{if $logo}{$logo}{else}{$WEB_ROOT}/templates/{$template}/img/logo.png{/if}" alt="{$companyname}" /></a>


Note - Resellers Center For WHMCS v3.X module is no longer compatible with Multibrand For WHMCS v1.X module.

[edit] Migration Tool

Migration tool allows you to migrate data from Multibrand For WHMCS in version earlier than 1.6.0.

Important: Migration disables branded payment gateways. You have to manually re-enable them.

MB 26 2.png

[edit] Membership In The Admin Area

Multibrand For WHMCS makes management of WHMCS easier through introducing 'Brand Details' column.

'Brand Details' column informs you about membership of clients, invoices, tickets, orders or services to certain brand.
Let's see how it looks in a 'Client List'.

MB 27.png
In 'Order List' it looks similar.

Through pressing a brand name, you will be moved directly to a report page of that brand.
Notice: Client, service etc. status has to be set to active in order to show brand it is assigned to.

MB 28.png

[edit] Invoices/Tickets/Quotes Creation From Admin Area

Due to multibranded clients, they will get invoices/tickets/quotes from multiple brands.

Therefore, you as an administrator have to be able to define from which brand create them.
As you can see on the following screen, from the summary page you can create all of mentioned above as well as log into any of client's brands.

Important: Those can be done only from client summary page in the admin area, other possibilities of creating invoices/tickets/quotes are blocked.

MB 28 1.png
From 'Invoices' tab you can choose brand for a new invoice.
MB 28 2.png
While 'Quotes' tab enables you to choose brand for a new quote.
MB 28 3.png

[edit] Support Functionalities Branded

[edit] Announcements

Create branded announcements. To do so, simply while preparing a new announcement for your clients, choose a brand (from those you have previously added and assigned clients to)
that the announcement will be viewed to.
MB 32.png
On the full list of announcements you can find details on which brand the announcement is assigned to.
MB 33.png
Clients will see only the announcements assigned to their brand in their client area.
MB 34.png

[edit] Downloads

Branded Downloads option works just alike Announcements described above. While adding a new file to download for your clients,
simply assign it to a brand you want it to be available for.
MB 36.png
Note, that you can brand both the download or the category of the downloads itself!

If you brand a category, then any of files in this category will be automatically visible only for clients of this brand.
Remember that files in such category can still have a different brand assigned, then they will not be visible in this group in client area.

MB 35.png
On the list of all categories you can see the just created and branded one next to the ones that already exist with the name of their assigned brands.
MB 35 1.png
Only branded downloads will be visible for clients of a certain brand.
MB 37.png

[edit] Knowledgebase

Using Multibrand For WHMCS you may also brand any article in your knowledgebas.
MB 39.png
You may always brand categories, not only the articles in themselves.
MB 38.png
On the list of all categories you can see which brand they are assigned to.
MB 38 1.png
Only branded knowledgebase articles will be visible for clients of a certain brand.
MB 40.png

[edit] Branded Client Area

Multibrand For WHMCS offers multiple client areas in one solution and lets you have your clients assigned to them.
MB 29.png
On the following screen you can see invoices generated for a brand.
MB 30.png

[edit] Branded Email Templates

Brand settings also apply to emails sent to clients.

On the following screen you can see an example of an order email.

MB 31.png
More About Email Branding

Let's consider how WHMCS has implemented email templates system:

  • there are a few email types: general/product/domain/invoice
  • there are a lot of default WHMCS templates in the system. These kinds of templates are "special" in a few ways.
  • we have only one tool that allows us to adjust emails (link)


How does email branding mechanism look like?

  1. Client enters the site which uses brand #1, and orders a product.
  2. WHMCS creates an order and performs email sending Hosting Account Welcome Email
  3. Using hook, we get:
    • Unique email template name, in this case Hosting Account Welcome Email
    • Parameter 'relid' which, depending on the email type, may be the ID of various entities:
      • for 'general' email type, it is Client ID
      • for 'product' email type, it is Service ID
      • for 'domain' email type, it is Domain ID
      • for 'invoice' email type, it is Invoice ID
    • Basing on that email unique name we are going to determine 'relid' type, so if a unique name contains "Hosting Account Welcome Email" string, we know that 'relid' is a service ID.
  4. Now, we need to determine the brand, so we use the brand of the service ('relid' is in this case our service ID; service brand is a brand from which it was ordered)
  5. As service is created for brand #1, we can obtain this specific brand details
  6. In the next step, all default variables for this email are overridden using once specified brand, such as:
    • company_name, company_domain, whmcs_url, whmcs_link, from (email and name), logo_url
    • As a result you have the same email subject/content with different stack of variables. Email sent from will be changed as well.
  7. In the last step, there is one significant mechanism: (let's just say, that it is the last resort mechanism)
    • When we determine brand, for example MyBrand is a brand name
    • Hook checks if email template with unique name exists: $currentBrand → name.' '.$emailUniqueName (prefix + space + the same unique name)
    • If it exists, the hook disables sending email by WHMCS and the module will send email with found template by our own Mailer
      (as a result, you will find in logs that email was aborted, and it will not be displayed in the list of emails sent to client)


Note: there is much more logic behind that, it is just an overview.

Point is, for predefined email templates everything works fine.
But as soon as admin specifies their own, custom template, and sets it manually to the product, there might be a problem.

So, as you set welcome email to your custom MyBrand Card Brief. Basing on this, we are unable to determine a proper brand.
But when I make the same email, with a unique name Other Product/Service Welcome Email for Copy Brief, it will work.
Why? There is a string inside the email name Other Product/Service Welcome Email so we know it is related to a product.
Following, we are able to get brand attached to that product and then we can brand this template.

Whole idea of this is that we have email, but we do not know for which brand it should be branded.
It is important for current Multibrand state to keep email templates unique names in proper pattern.

[edit] Domains & CNAME Records Configuration

In this section you will find guides on how to create CNAME record in popular control panels.

For instance, if your branded domain is reseller.com and domain with your WHMCS is whmcs.domain.com, your CNAME will be 'www.reseller.com. CNAME whmcs.domain.com.'.
Note 1: As you can see above, each domain has to be closed with a dot.
Note 2: To learn more about certificate requirements, visit Common Problems section.

Domain used by each of the brands MUST BE PARKED on the main domain.
In case a domain cannot be parked or it is a subdomain, you must create CNAME records that will redirect from the brand domain to the main domain.

Only when you have parked your domains you can move to setting CNAME records on your panels. See the tips below.

[edit] cPanel

1. Log into your cPanel.
2. Press 'Simple DNS Zone Editor' under 'Domains' section.
3. Select the domain you wish to manage from the menu.

Note: This step is required only if you own more than one domain.

4. Fill in 'Name' and 'CNAME' record and press 'Add CNAME Record'.

Note: To define record's TTL, you have to use 'Advanced DNS Zone Editor'.

[edit] DirectAdmin

1. Log into your DirectAdmin.
2. Click 'DNS Administration' .
3. Afterwards, press select the desired domain.
4. Fill in the full domain/subdomain into the CNAME record and press 'Add' next to it.

Note: Do not forget to place a dot at the end.

[edit] Plesk

1. Log into your Plesk panel.
2. Press 'Domains' under 'Hosting Services' section.
3. Find the domain to be edited, and click on the corresponding Control Panel link.

Afterwards, proceed to 'Websites & Domains' tab and press 'DNS Settings' .

4. Add a new record or edit an existing one.
5. Now, change the record type to 'CNAME' and fill in both 'Domain name' and 'Canonical name'.

Finish by pressing 'Ok'.
Note: The changes will take between 4 to 8 hours to update worldwide.

Remember to restart your server once it is configured.

[edit] SSL Certificate

In this section you will find all information related to SSL certificate in WHMCS using Multibrand.

If your branded domains or WHMCS domain are using SSL connection, all of them need to have the same certificate.
Certificate Type Required:

  • wildcard - if all brands and main WHMCS are using the same domain.
  • SAN - if your brands and main WHMCS are using different domains.

This is due the way in which WHMCS works. It is not the limitation of our module.
Additionally, in order to fix connection support for secured connections, add the integration code shown below.
Edit 'configuration.php' located in the main WHMCS directory and place following code at the end of the file.
For WHMCS V6:

require_once dirname(__FILE__).'/includes/MultiBrandSSLFixer.php';
$SSLFixer = new MultiBrandSSLFixer();

if($SSLFixer->shouldBeInSSL()){
    if(! $SSLFixer->isInSSL()){
        $SSLFixer->forceRedirect(true);
    }
}else{
    if($SSLFixer->isInSSL()){
        $SSLFixer->forceRedirect(false);
    }
}

For WHMCS V7:

require_once dirname(__FILE__).'/includes/MultiBrandSSLFixer.php';
$SSLFixer = new MultiBrandSSLFixer();
if($SSLFixer->shouldBeInSSL() || $SSLFixer->issetSystemSSLURL($db_host, $db_username, $db_password, $db_name))
  {    
      if(! $SSLFixer->isInSSL())
      {
          $SSLFixer->forceRedirect(true);
      }
  }
  else
  {
      if($SSLFixer->isInSSL())
      {
          $SSLFixer->forceRedirect(false);
      }
  }

[edit] cPanel

Installing SSL certificate for domains managed from cPanel consists of the following steps:
1. Log into your cPanel and press 'SSL/TSLS Manager' under 'Security' section.
2. Click on 'Manage SSL sites' under 'Install and Manage SSL for your site(HTTPS)'.
3a. (installing the certificate) Select the domain, paste certificate and private key and save the settings.

3b. (using already installed certificate) Select it from 'Browse Certificates' and save the settings.

[edit] Branding Limitations & Requirements

[edit] Limitations

WHMCS

In this section we will list the parts of WHMCS which cannot be branded or may be working in an odd way.

  • Bridges - Multibrand For WHMCS does not support any kind of bridges (WordPress, Jomla).
  • Link replacement - currently links are replaced with their branded counterparts with a visible delay.
    This is the only way we could do that for the time being.
  • Clients Profile → Send Email - if you try to send an email template, a branded counterpart of which exists, you will receive an error.
    This is due to its branded counterpart being sent, while default email is blocked.
  • Branded Quote → Duplicate - duplicating a branded quote results in receiving unbranded quote.
  • Emails - not branded due to the lack of possibility to determine from which brand an email should be sent:
    • Affiliate Monthly Referrals Report
    • Clients Only Bounce Message
WHMCS Modules

In this section we will list the WHMCS modules which do not support multibranding or do not cooperate with Multibrand For WHMCS at all.

  • SMS Center For WHMCS - SMS sent to customers cannot be branded. Default set of SMS templates is sent to clients from all brands.
  • Resellers Center For WHMCS - This module is not compatible with our Multibrand For WHMCS module.
Cloudflare

Cloudflare is a service that will mask your server IP address.
This is because they use their own DNS to resolve to one of their many reverse proxy servers and will cause incompatibility with Multibrand module.
You may disallow the CloudFlare network to assume NS authority and don't become the intermediary between a user and your server, but then your CloudFlare service may become useless.


[edit] Requirements

Below we will list elements that require special attention in order to work correctly.
  • Product Bundle - bundle requires all of its products to be assigned to the same brand that the product bundle is.

[edit] Tips

1. The logo image is usually hard coded into the WHMCS template files.

In order to use logo file provided in the 'Multibrand For WHMCS' module, find proper line at the template file and replace it with '{$logo}' variable.
The line responsible for a displayed logo is placed at the 'header.tpl' file located in a currently used template.

2. If you want Captcha security option to be displayed in your client area for all branded domains, you need to configure each of those domains in your Google Account as well.
MB 41.png

[edit] Common Problems

1. When you have problems with connection, check whether your SELinux or firewall does not block ports.
2. Using 'Login as Client' functionality returns:
The page isn't redirecting properly

Solution: This issue will be solved in the next version of module.

3. If your CNAME record is not working, remember that first domain name in CNAME record should be branded domain.

The second one is the domain on which you have your WHMCS. The redirection goes from the first domain to the second.
Dots after domains are also important.
Take note that there could be a delay with propagation of changes for DNS servers while using A type CNAME records.

4. If your branded domain or WHMCS domain are using SSL connection, both of them need to have the same certificate.

If both of them are using the same domain, you will need a wildcard certificate.
If they are using different domains, secure them with the SAN certificate.
This is due to the way WHMCS works. It is not the limitation of our module.

5. Please remember that Multibrand For WHMCS works flawlessly with the officially supported and pointed in features list templates.

These are: Template 'Six' and 'Five'.
In case you are using some custom template, you must be aware that unexpected errors might occur and we cannot take the responsibility for solving them.

6. Multibrand For WHMCS module is not compatible with our Resellers Center For WHMCS.
There is no integration between these modules and we do not recommend using them together.

Navigation
WHMCS Modules
WHMCS Widgets
Translations
cPanel Modules
General
FAQ
Community