Personal tools
Namespaces

Variants
Actions

Product Linker For WHMCS

From ModulesGarden Wiki
(Difference between revisions)
Jump to: navigation, search
(Add Relation)
(Logs)
 
(142 intermediate revisions by 8 users not shown)
Line 2: Line 2:
 
<meta name="description" content="ModulesGarden Wiki Contains All The Information You Need About The Product Linker For WHMCS Module."></meta>
 
<meta name="description" content="ModulesGarden Wiki Contains All The Information You Need About The Product Linker For WHMCS Module."></meta>
  
=About [http://www.modulesgarden.com/products/whmcs/product_linker/features Product Linker For WHMCS]=
+
<h4 style="color: #ff0000; font-weight:bold; text-align:center;">Article update is ongoing on this page, watch out for broken links, unclear descriptions and images!<br/>
 +
We are sorry for the inconvenience caused.</h4>
 +
 
 +
=About [https://www.modulesgarden.com/products/whmcs/product-linker Product Linker For WHMCS]=
 
{|
 
{|
|style="padding: 10px 0px 5px 0px;"|'''Product Linker For WHMCS''' allows you to sell your products in bundles.<br />
+
|style="padding: 10px 0px 5px 0px;"|'''Product Linker For WHMCS''' enables you to establish dynamic connections between products, addons, and configurable options.<br/> This facilitates bundled purchases for customers, supported by flexible discounts.<br/>
Product bundles content is defined by clients through chosen addons or configurable options.<br />
+
The module also provides an intuitive interface for viewing, filtering, and managing existing product associations, giving you full control over the active connections used by your clients.
Module will also allow you to view, filter and delete existing connections used by your customers.
+
 
|}
 
|}
*'''Features:'''
+
*'''Automation Features:'''
 
{|
 
{|
|style="padding: 10px 0px 0px 30px;"|✔ Create A Single Or Multiple Relations Between Your WHMCS Products, Addons And Configurable Options
+
|style="padding: 10px 0px 0px 30px;"|✔ Handle Dependencies Between Module Actions:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Allow Your Clients To Purchase Multiple Products, Addons And Configurable Options Through Ordering Just One Of Them
+
|style="padding: 0px 0px 0px 45px;"|✔ Each Create/Terminate/Suspend/Unsuspend Action Performed On Main Product Triggers Such Action On Child Products
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Dependencies Between Module Actions - Every Action: Create, Terminate, Suspend Or Unsuspend Called On The Main Product Will Result With The Same Action Performed On The Child Products
+
|style="padding: 0px 0px 10px 30px;"|✔ Copy Configurable Options From Parent To Child Product
 
|}
 
|}
 +
*'''Admin Area Features:'''
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Product Updates With Automatic Email Notifications To Admin
+
|style="padding: 10px 0px 0px 30px;"|✔ Define Relations Between Chosen Products And:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ View And Delete Existing Connections
+
|style="padding: 0px 0px 0px 45px;"|✔ Product Addons
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Flexible Filtering Of Existing Connections
+
|style="padding: 0px 0px 0px 45px;"|✔ Configurable Options
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 10px 30px;"|✔ Advanced Module Logs
+
|style="padding: 0px 0px 0px 45px;"|✔ Linked Products
 
|}
 
|}
*'''Additionally:'''
 
 
{|
 
{|
|style="padding: 10px 0px 0px 30px;"|✔ Integrated With <u>cPanel Manage2 For WHMCS</u> - Easy Reselling Of cPanel Licenses [http://www.modulesgarden.com/products/whmcs/cpanel_manage2/features (read more)]
+
|style="padding: 0px 0px 0px 30px;"|✔ Define If Product Addon Price Should Be Switched With Linked Product Price
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Integrated With DirectAdmin Licenses For WHMCS - Easy DirectAdmin Licenses Reselling (soon)
+
|style="padding: 0px 0px 0px 30px;"|✔ Copy Custom Fields Between Configured Relations
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Integrated With Parallels Key Administrator For WHMCS - Easy Parallels Licenses Reselling (soon)
+
|style="padding: 0px 0px 0px 30px;"|✔ Assign Custom Promo Codes To Relations:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Improved Update Of Products
+
|style="padding: 0px 0px 0px 45px;"|✔ Select Discount Priority
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Multi-Language Support
+
|style="padding: 0px 0px 0px 45px;"|✔ Define Minimum Discount Amount
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 30px;"|✔ Supports WHMCS V5 and Later
+
|style="padding: 0px 0px 0px 30px;"|✔ View, Filter And Delete Existing Connections Between Linked Products
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Enable Related Products Notices In Client Cart
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ View Product Upgrades/Downgrades Tasks Queue
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Customize Module Language Files With "Translations" Tool
 +
|}
 +
{|
 +
|style="padding: 0px 0px 10px 30px;"|✔ View And Manage Logs
 +
|}
 +
*'''Client Area Features:'''
 +
{|
 +
|style="padding: 10px 0px 0px 30px;"|✔ Purchase Multiple Products, Addons And Configurable Options By Ordering Just One
 +
|}
 +
{|
 +
|style="padding: 0px 0px 10px 30px;"|✔ View Linked Product Added To Order After Relation Is Triggered
 +
|}
 +
 
 +
*'''General Info:'''
 +
{|
 +
|style="padding: 10px 0px 0px 30px;"|✔ Integrated With [https://www.modulesgarden.com/products/whmcs/cpanel-manage2 cPanel Manage2 For WHMCS] - Easy Reselling Of cPanel Licenses
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Integrated With [https://www.modulesgarden.com/products/whmcs/directadmin-licenses DirectAdmin Licenses For WHMCS] - Easy Reselling Of DirectAdmin Licenses
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Integrated With [https://www.modulesgarden.com/products/whmcs/plesk-key-administrator Plesk Key Administrator For WHMCS] - Easy Reselling Of Plesk Licenses
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Multi-Language Support With Custom Translations Tool
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Supports PHP 8.2 Back To PHP 8.1
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Supports WHMCS Themes "Six" And "Twenty-One"
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Supports WHMCS V8.12 Back To WHMCS V8.9
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Requires ionCube Loader V14 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/product-linker#open-source-version Open Source Version]
 
|}
 
|}
  
 
=Installation=
 
=Installation=
 
{|
 
{|
|style="padding: 10px 0px 0px 0px;"|'''This tutorial will show you how to successfully install Product Linker For WHMCS.''' <br />
+
|style="padding: 10px 0px 0px 0px;"|'''This tutorial will show you how to successfully install [https://www.modulesgarden.com/products/whmcs/product-linker Product Linker For WHMCS.]''' <br />
 
We will guide you step by step through the whole installation and configuration process. <br />
 
We will guide you step by step through the whole installation and configuration process. <br />
 
|}
 
|}
 
{|
 
{|
|style="padding: 20px 0px 20px 15px;"|'''1. Log in to your client area and download Product Linker For WHMCS.'''
+
|style="padding: 20px 0px 20px 15px;"|'''1. Log in to our client area and download the module.'''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:PL1.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_0.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''2. Upload and extract the module into the main WHMCS directory.'''<br />
+
|style="padding: 0px 0px 15px 15px;"|'''3. Extract the package and upload its content into the main WHMCS directory.
Files in your WHMCS directory should look like this.
+
The content of the package to upload should look like this.  
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:PL2.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:gfhdr.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''3. When you install Product Linker for the first time you have to rename '' 'license_RENAME.php' '' file.'''<br />
+
|style="padding: 0px 0px 15px 15px;"|'''4. When you install Product Linker For WHMCS for the first time you have to rename '' 'license_RENAME.php' '' file.'''<br />
File is located at '' 'modules/addons/productlinker/license_RENAME.php' '' . Rename it from '' 'license_RENAME.php' '' to '' 'license.php' '' .
+
The file is located in '' 'modules/addons/ProductLinker/license_RENAME.php'. '' Rename it from '' 'license_RENAME.php' '' to '' 'license.php'. ''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:PL3.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_1.png]]
 
|}
 
|}
 
{|
 
{|
|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 the previously renamed '' 'license.php' file.' '' '''<br />
Enter your license key between quotation marks as presented on the following screen. You can find your license key at your client area → '' 'My Products' ''.
+
Enter your license key between quotation marks as presented on the following screen. You can find your license key in our client area → '' 'My Products'. ''  
 
|}
 
|}
 
{|
 
{|
Line 83: Line 133:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''5. Now you have to activate the module in your WHMCS system. '''<br />
+
|style="padding: 0px 0px 15px 15px;"|'''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 '' 'Product Linker' '' and press '' 'Activate' '' button.
+
Log in to your WHMCS admin area. Go to '' 'System Settings' '' → '' 'Addon Modules'. '' Afterward, find '' 'Product Linker' '' and press the '' 'Activate' '' button.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:PL5.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_3.png]]
 
|}
 
|}
 
{|
 
{|
|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, select administrator groups which should have access to this addon and press '' 'Save Changes' ''.
+
To do so, click on the '' 'Configure' '' button, select administrator groups that should have access to this addon and press '' 'Save Changes'. ''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:PL6.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_4.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''7. To enable logs from failed actions, go to '' 'Utilities' '' → '' 'Logs' '' → '' 'Module Log' ''.<br />
+
|style="padding: 0px 0px 15px 15px;"|'''8. Optionally, set up a cron job, that automatically terminates linked products when the main product is upgraded/downgraded.'''<br/> 5-minute interval is recommended, the cron can be run as often as every minute, but at the cost of increased WHMCS server load.
Afterwards, press '' 'Enable Debug Logging' ''.
+
php -q /your_WHMCS/modules/addons/ProductLinker/cron/cron.php queue
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:PL7.png]]
+
|style="padding: 0px 0px 15px 15px;"|'''9. You have just successfully installed Product Linker For WHMCS!'''<br />
 +
You can access your module at '' 'Addons' '' → '' 'Product Linker'. ''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''8. You have just successfully installed Product Linker For WHMCS!'''<br />
+
|style="padding: 0px 0px 30px 25px;"|[[File:PL3_5.png]]
You can access your module at '' 'Addons' '' → '' 'Product Linker' ''.
+
 
|}
 
|}
 +
 +
=Configuration and Management=
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:PL8.png]]
+
|style="padding: 10px 0px 30px 15px;"|'''Product Linker For WHMCS allows to sell bundles of products through ordering one product with specific product addons and configurable options.'''<br />
 +
It also automatically forwards basic commands from the main product to all child products.<br />
 +
You can define the relationship between products through a product add-on or configurable option.
 +
|}
 +
==Basic Relations==
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|At the '' 'Basic Relations' '' tab you can define links between products through product addons and configurable options.<br />
 +
They will be triggered once your client makes an order for a product with the product addon/configurable option chosen at the relation.<br />
 +
Additionally, you can define a discount added to the order by triggering the relation.<br/>
 +
To add a new relation, go to '' 'Relations' '' → '' 'Basic Relations' '' and click on '' 'Add Relation'.''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_6.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|To set up a relation:<br/>
 +
*'''Type''' - Choose a relation type from the '' 'Type' '' dropdown menu, selecting either a relation triggered by a product addon or a configurable option.
 +
*'''Addon/Configurable Option''' - Select a product addon or configurable option that will trigger the relation.
 +
*'''Swap Price''' - If you select the '' 'Addon' '' type, you can also enable the '' 'Swap Price' '' option, which will overwrite the price of the linked product with the addon price.
 +
*'''Configurable Option Value''' - if you choose the '' 'Configurable Option' '' relation type, you must also select a specific configurable option.
 +
*'''Linked Product''' - select a child product that will be linked after the relation is triggered. This product should be set to 'hidden' and 'free'.
 +
*'''Promotion''' - optionally, choose a discount that will be added to the order.<br/>'''''Note:''' Keep in mind that only one discount can be assigned to an order, and you can manage discount assignments on the 'Settings' page.''
 +
*'''Copy Custom Fields''' - decide if you want Custom Fields copied from the main product to the linked product.<br/>'''''Note:''' The Custom Fields are copied from the main product, '''not from the addon.'''''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_7.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|Added relations can be edited or deleted by using the relative action buttons.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:PL3_8.png]]
 
|}
 
|}
  
=Configuration and Management=
+
==Product Relations==
 
{|
 
{|
|style="padding: 10px 0px 30px 15px;"|'''Product Linker For WHMCS allows to sell bundle of products through ordering one product with specific product addons and configurable options.'''<br />
+
|style="padding: 10px 0px 15px 15px;"|At the '' 'Product Relations' '' tab you can set up a relation linking one product with another.<br />
It also automatically forwards basic commands ordered by admin on main product to all linked products.<br />
+
To create a new configuration simply click on the '' 'Add Relation' '' button.
You can define link between product by product addon or configurable options. You will find more information about it in '' 'Add Relation' '' section.
+
 
|}
 
|}
==Relation Management==
 
 
{|
 
{|
|style="padding: 10px 0px 20px 15px;"|'''At '' 'Relation Management' '' tab you can define links between products.'''<br />
+
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_9.png]]
They will be triggered as soon as your client will make an order for product with product addon/configurable option chosen at relation.
+
 
|}
 
|}
===Add Relation===
 
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|To add new relation, go to '' 'Product Linker' '' '' 'Relation Management' '' and find table '' 'Create' ''.<br />
+
|style="padding: 0px 0px 15px 15px;"|Provide the following information to create the relation:
Select relation type from '' 'Type' '' dropdown menu, you can choose between relation triggered by product addon or configurable option.
+
*'''Main Product''' - choose a product from the 'Main Product' dropdown menu to trigger the relation.
 +
*'''Linked Product''' - select a product from the 'Linked Product' dropdown menu that will be added when the relation is triggered. This product should be set to 'hidden' and 'free'.
 +
*'''Promotion''' - optionally, assign a promotion.
 +
*'''Configurable Option Groups''' - select configurable options to transfer values for.<br/>'''''Note:''' Configurable option copying can only be enabled if the configurable option is assigned to both the parent and child products.''
 +
*'''Copy Custom Fields''' - decide if you want Custom Fields copied from the main product to the linked product.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:PL9.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_10.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|Next, select addon name or configurable option name from '' 'Product Addon/Configurable Option' '' dropdown menu.<br />
+
|style="padding: 0px 0px 20px 15px;"|Created product relations can be edited or deleted by clicking on the respective action buttons.
If you have chosen '' 'Configurable option' '' relation type, additionally you have to select configurable option value.
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:PL10.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:PL3_11.png]]
 
|}
 
|}
 +
 +
==Existing Connections==
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|Finish through selecting product which will be linked by triggering this relation.<br />
+
|style="padding: 10px 0px 15px 15px;"|'' 'Existing Connections' '' tab allows you to view the list of all products ordered by your clients for which relations exist.<br />
Save relation through pressing '' 'Add Relation' '' button.
+
You can find all the information about a relation, like the main product, linked product, their owner, or domain used by both products.<br/>
 +
If a need arises, you can also delete a connection and optionally terminate the linked product.<br/>
 +
'''''Note:''' Keep in mind that 'Suspend', 'Unsuspend' and 'Terminate' actions performed on the Main Product will be reflected on the Linked Product.''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:PL11.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:PL3_12.png]]
 
|}
 
|}
  
===Edit Relation===
+
==Settings==
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|Editing relations is quite easy, go to '' 'Relation Management' '' tab and start making changes.<br />
+
|style="padding: 10px 0px 15px 15px;"|Due to the assignment of promotions to the relation, a situation may occur where multiple promotions will be assigned to one order.<br/> WHMCS does not support such a situation, therefore only one promotion has to be chosen.
You can alter one relation or multiple relations simultaneously, difference is button used to save changes.<br />
+
*'''Highest Discount''' - the promotion giving the highest discount to your clients will be chosen in the order form.
If you are making changes in only one relation, press '' 'Save Changes' '' button next to it (green arrow), otherwise use '' 'Save Changes' '' at the bottom of the page (red arrow).
+
*'''Lowest Discount''' - the promotion giving the lowest discount to your clients will be chosen in the order form.
 +
*'''Minimum Reduction Amount''' - if the 'Lowest Discount' is selected, provide the lowest reduction value ''(order subtotal * promotion rate)'' that can be used.<br/> If the promotion value is below the limit, a higher discount will be applied until the provided amount is met or exceeded.
 +
*'''Display Product Info''' - information about the linked product will be visible on the order form when this option is enabled.
 +
<br/>
 +
'''Minimum Reduction Amount Example:'''
 +
<pre>
 +
Client's order qualifies for 3 discounts: 20%, 50% and 80%
 +
We have set the Discount Priority to 'Lowest Discount'
 +
The Minimum Reduction Amount is set to '10'
 +
 
 +
The order subtotal is '36.39'
 +
The reduction is calculated:
 +
36.39 * 20% = 7.28
 +
36.39 * 50% = 18.20
 +
36.39 * 80% = 29.11
 +
 
 +
Since the calculation with the lowest discount did not exceed the 'Minimum Reduction Amount', the next discount (50%) is applied as it does exceed the minimum.
 +
</pre>
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:PL12.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:PL3_13.png]]
 
|}
 
|}
 +
<!--
 +
==[https://www.docs.modulesgarden.com/Queue Queue]==
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|The "Queue" tool helps you track and manage the tasks created by the module.<br/>
 +
It allows you to view and interact with task details, including task IDs, statuses, and related items.<br/>
 +
You can filter tasks, execute actions like deleting or running tasks, and even use mass actions for bulk operations.<br/>
 +
For detailed guidance on using this tool, please refer to the dedicated article available [https://www.docs.modulesgarden.com/Queue here].
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:PL3_12_1.png]]
 +
|}
 +
-->
  
==Existing Connections==
+
==Queue==
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|'' 'Existing Connections' '' tab allows you to view list of all products ordered by your clients for which relation was triggered.<br />
+
|style="padding: 10px 0px 15px 15px;"|The '' 'Queue' '' section is designed to handle product upgrades and downgrades for products that have a relation established.<br/>
You can find all information related to created link, like for example main product, linked product, their owner or domain which both product uses.<br />
+
The cron will automatically create tasks to terminate linked products after upgrade/downgrade of the main product.<br/>
You can quickly move to user or any of his product by simply clicking on client/product name.
+
If you allow your clients to upgrade/downgrade products that you have created relations for, it is recommended to run a dedicated cron job every 5 minutes:
 +
php -q /your_WHMCS/modules/addons/ProductLinker/cron/cron.php queue
 +
The table below the cron job information will allow you to see the status of each task, see its details, run it manually, or delete it.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:PL13.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_12_1.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|We also allow you to order records on list by selected column through pressing on its headline.<br />
+
|style="padding: 0px 0px 20px 15px;"|You can delete multiple tasks at once by using the mass action function.
For example, to order by client name, press on '' 'Client Name' '' column header as shown on the following screen.
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:PL14.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_12_2.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|To display only specific records you can use filters.<br />
+
|style="padding: 0px 0px 20px 15px;"|Additional actions include the auto prune system and the ability to hide the cron information.
To open filters form, press '' 'Toggle Filters' ''.
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:PL15.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_12_3.png]]
 
|}
 
|}
 +
 +
==[https://www.docs.modulesgarden.com/Translations_Tool Translations]==
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|You are able to set up filtering by client name, both main and linked product and domain.<br />
+
|style="padding: 10px 0px 15px 15px;"|Customizing language files is now extremely easy with the '' "Translations" '' tool that is now available directly in the addon.<br.> Its user-friendly design makes managing various language file tweaks a smooth and efficient process. <br/>
When you select values you desire, click'' 'Filter Results' '' button (red arrow).<br />
+
Prepare translations for the original English files with this handy built-in tool. For specific instructions on how to use this tool please refer to its dedicated article, you will find it [https://www.docs.modulesgarden.com/Translations_Tool here].
If you decide to clear filters you have set up earlier, open filters form and press '' 'Clear Filter' '' (green arrow).
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:PL16.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:PL3_13_1.png]]
 
|}
 
|}
  
==Module Logs==
+
==[https://www.docs.modulesgarden.com/Logs Logs]==
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|The '' 'Logs' '' provides access to all activity records generated by the module. It serves as a central hub for monitoring and troubleshooting module behavior.<br/> You can easily filter the displayed logs by category using the  '' 'Show' '' buttons, allowing you to focus on specific types of events or actions.<br/>
 +
For a more detailed breakdown of log types, usage scenarios, and filtering capabilities, please refer to our [https://www.docs.modulesgarden.com/Logs dedicated documentation article].
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:PL3_14.png]]
 +
|}
 +
<!--
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|Furthermore, the logs feature additional actions. Changing the logs' settings, exporting the logs to a '' '.csv' '' file, and a way to delete specific log types.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_15.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|In the settings you can specify which log types should be recorded, and whether they should be deleted automatically after a specific time.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_16.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|While exporting you will pick a time frame and the log types to export.
 +
|}
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|If there was any trouble with linked products, information about error will appear in '' 'Module Logs' '' tab.<br />
+
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_17.png]]
Error message can be found at '' 'Clean Response' '' and '' 'Parsed Response' '' column.<br />
+
To localize products for which error occurred, you can use data in '' 'Request Parameters' '' column.<br />
+
For example, '' '[accountid]' '' and '' '[domain]' '' should be enough to quickly localize products.<br />
+
''Note: Module also checks if module log is turn on and provide link to it.''
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:PL17.png]]
+
|style="padding: 0px 0px 20px 15px;"|Here you can decide which log types to delete, you can also specify how old the logs have to be to qualify for deletion. Leave the first field empty to delete all logs.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 15px;"|You can look for product with details you found in previous step, but way quicker way is to use a link.<br />
+
|style="padding: 0px 0px 30px 25px;"|[[File:PL3_18.png]]
All you have to do is enter value of '' '[accountid]' '' in place of account_id in link below.<br />
+
your_whmcs/admin/clientsservices.php?id=account_id<br />
+
To confirm if you are looking at right product, check if domain in product math domain you found in error log.
+
 
|}
 
|}
 +
-->
  
==Example Settings==
+
=Client Area=
 
{|
 
{|
|style="padding: 10px 0px 20px 15px;"|At '' 'Example Settings' '' we will show you how to set up relations between specific products.
+
|style="padding: 10px 0px 20px 15px;"|When the client orders a product with a relation created for it, the relation will be displayed on the order form, provided the option is enabled in the addon's settings.<br/>
 +
If included in the relations, promotions will be applied based on the settings.
 
|}
 
|}
===cPanel Extended + cPanel Manage2===
 
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|Before following these steps, make sure both products are configured correctly.<br />
+
|style="padding: 0px 0px 30px 25px;"|[[File:PL3_19.png]]
In these steps we will show you linking product through product addon, while you can also link them using configurable options.<br />
+
|}
Product linked to main product should be set to hidden and free, you will set his price at product addon.
+
 
1. Start from creating '' 'IP' '' custom field at main product visible on order form.<br />
+
=Use Cases=
In order to do so, go to '' 'Setup' '' → '' 'Products/Services' '' → '' 'Products/Services' '' and edit your cPanel Extended product.
+
{|
 +
|style="padding: 10px 0px 15px 15px;"|'''This section provides scenarios that demonstrate common use cases, along with detailed explanations of how the module’s features can be utilized in real-world situations. '''<br/>
 +
Review the following examples to understand better how the module can be applied in practice.
 +
|}
 +
==Basic Relation: Proxmox VE VPS & Cloud and cPanel Manage2==
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|'''In these steps, we will show you how to link Proxmox VE VPS & Cloud with cPanel Manage2 through a product addon.''' <br/>You can also link them using configurable options if you would prefer.<br />
 +
1. First create the product addon which will trigger the relation.<br />
 +
Go to '' 'System Settings' '' → '' 'Products/Services' '' → '' 'Products Addons' '' and press '' 'Add New Addon'. ''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_21.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|2. Name your addon, there is no need to select a module since the addon will only be used to trigger the relation for the cPanel Manage2 product to be added.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_21_1.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|3. Make sure you check the '' 'Show on Order' '' checkbox under '' 'Details'.''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_21_2.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|4. It is advised to set up the same billing cycle as in the main product. The price of the addon will effectively be the price of the linked product.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_21_3.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|5. Finally, select the main product which the addon will be available for, in this case, it is '' 'Proxmox VE VPS & Cloud - VPS KVM'.''<br/>
 +
Next, press '' 'Save Changes'. ''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_22.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|6. Now, create a relation at your '' 'Product Linker' '' → '' 'Relations' '' → '' 'Basic Relations'. ''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_23.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|Configure the relation:
 +
*'''Type''' - select '' 'Addon' '' for this example.
 +
*'''Addon''' - select your newly created addon.
 +
*'''Swap Price''' - Leave this option disabled.
 +
*'''Linked Product''' - Select the product that will be added when the relation is triggered.<br/> It should be set to hidden and free. You have indirectly set its price at the product addon configuration.
 +
*'''Promotion''' - include a promotion, if you would like, you can add new promotions under '' 'System Settings' '' → '' 'Payments' '' → '' 'Promotions'.''
 +
*'''Copy Custom Fields''' - Leave disabled unless you want to copy custom fields from the main product to the linked product.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_24.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|To check if the relation works as it should, place an order from the admin area for the main product with the product addon triggering the relation.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_25.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|The linked product will be added to the order along with the main product.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:PL3_26.png]]
 +
|}
 +
<!--
 +
==cPanel Extended + cPanel Manage2==
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|In these steps, we will show you how to link cPanel Manage2 with cPanel Extended through the product addon.<br />
 +
''Note: You can also link them using configurable options.''<br />
 +
1. Start by creating the '' 'IP' '' custom field at the main product visible on the order form.<br />
 +
To do so, go to '' 'System Settings' '' → '' 'Products/Services' '' → '' 'Products/Services' '' and edit your cPanel Extended product.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:PL18.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_20.png]]
 
|}
 
|}
  
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|2. Open '' 'Custom Fields' '' tab, enter '' 'IP' '' into '' 'Field Name' '' and mark '' 'Show on Order Form' '' checkbox.<br />
+
|style="padding: 0px 0px 15px 15px;"|2. Open the '' 'Custom Fields' '' tab, enter '' 'IP' '' into '' 'Field Name' '' and mark the '' 'Show on Order Form' '' checkbox.<br />
Confirm changes through pressing '' 'Save Changes' '', you successfully created '' 'IP' '' custom field.
+
Confirm changes by pressing '' 'Save Changes'. ''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:PL19.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_20.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|3. Afterwards, it is time to create product addon which will trigger relation.<br />
+
|style="padding: 0px 0px 15px 15px;"|3. It is time to create the product addon which will trigger the relation.<br />
Go to '' 'Setup' '' → '' 'Products/Services' '' → '' 'Products Addons' '' and press '' 'Add New Addon' ''.
+
Go to '' 'System Settings' '' → '' 'Products/Services' '' → '' 'Products Addons' '' and press '' 'Add New Addon'. ''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:PL20.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_21.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|4. Enter addon name, description and recurring price.<br />
+
|style="padding: 0px 0px 15px 15px;"|4. Enter the addon name, its description, and recurring price. Choose the billing cycle from the '' 'Billing Cycle' '' dropdown menu.<br />
Choose billing cycle from '' 'Billing Cycle' '' dropdown menu.<br />
+
It is advised to set up the same billing cycle as in the main product. Additionally, you have to mark the'' 'Show on Order' '' checkbox and the checkbox next to the main product.<br/> In this example it will be '' 'cPanel - cPanel Extended'. ''<br />
It is adviced to set up same billing cycle as in main product.<br />
+
Next, press '' 'Save Changes'. ''
You also have to mark '' 'Show on Order' '' checkbox and checkbox next to main product, in this example it will be '' 'Cpanel - cPanel Extended' ''.<br />
+
Press '' 'Save Changes' ''.
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:PL21.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_22.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|5. Now, create relation at your '' 'Product Linker' '' → '' 'Relation Management' ''.
+
|style="padding: 0px 0px 20px 15px;"|5. Now, create a relation at your '' 'Product Linker' '' → '' 'Basic Relations'. ''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:PL22.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_23.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|To check if relation works as it should, place an order from admin area for main product with addon triggering relation.<br />
+
|style="padding: 0px 0px 15px 15px;"|To check if the relation works as it should, place an order from the admin area for the main product with the product addon triggering the relation.<br />
Do not forget to type domain and IP address. Afterwards, press '' 'Submit Order' ''.
+
Do not forget to type the domain and IP address. Afterward, press '' 'Submit Order'. ''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:PL23.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_24.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|Select '' 'Run Module Create' '' and press '' 'Accept Order' ''.
+
|style="padding: 0px 0px 20px 15px;"|Select '' 'Run Module Create' '' and press '' 'Accept Order'. ''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:PL24.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_25.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|If new entry appeared as the one marked on the following screen you have successfully configured both product and linked them through addon.
+
|style="padding: 0px 0px 20px 15px;"|If a new entry appeared as the one marked on the following screen, you have successfully configured both products and linked them through the addon.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:PL25.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:PL3_26.png]]
 +
|}
 +
 
 +
==DirectAdmin Extended + DirectAdmin Licenses==
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|In these steps, we will show you how to link DirectAdmin Licenses to DirectAdmin Extended through the product addon.<br />
 +
''Note: You can also link them using configurable options.''<br />
 +
1. Start by creating the '' 'IP' '' custom field at the main product visible on the order form.<br />
 +
To do so, go to '' 'System Settings' '' → '' 'Products/Services' '' → '' 'Products/Services' '' and edit your DirectAdmin Extended product.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_27.png]]
 +
|}
 +
 
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|2. Open the '' 'Custom Fields' '' tab, enter '' 'IP' '' into '' 'Field Name' '' and mark the '' 'Show on Order Form' '' checkbox.<br />
 +
Confirm changes by pressing '' 'Save Changes'. ''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_28.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|3. It is time to create the product addon which will trigger the relation.<br />
 +
Go to '' 'System Settings' '' → '' 'Products/Services' '' → '' 'Products Addons' '' and press '' 'Add New Addon'. ''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_29.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|4. Enter the addon name, its description, and a recurring price. Choose a billing cycle from the '' 'Billing Cycle' '' dropdown menu.<br />
 +
It is advised to set up the same billing cycle as in the main product. You also have to mark the '' 'Show on Order' '' checkbox and the checkbox next to the main product.<br />
 +
In this example, it will be '' 'DirectAdmin - DirectAdmin Extended'. ''<br />
 +
Next, press '' 'Save Changes'. ''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_30.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|5. Now, create a relation at your '' 'Product Linker' '' → '' 'Basic Relations'. ''<br/> Note that the '' 'Swap Price' '' option has been also marked here. Consequently, the price for the addon will be changed with the price for the linked product/hosting.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_31.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|To check if the relation works as it should, place an order from the admin area for the main product with the product addon triggering the relation.<br />
 +
Do not forget to type in the domain and IP address. Afterward, press '' 'Submit Order'. ''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_32.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|Select '' 'Run Module Create' '' and press '' 'Accept Order'. ''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_33.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|If a new entry appeared as the one marked on the following screen, you have successfully configured both products and linked them through the product addon.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:PL3_34.png]]
 +
|}
 +
==Virtuozzo Hybrid Server + Plesk Key Administrator==
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|In these steps, we will show you how to link Odin Key Administrator with Virtuozzo Hybrid Server through a product addon.<br />
 +
It is required to set a key type in your '' 'Odin Key Administrator' → 'Module Settings' '' to '' 'VIRTUOZZO'. ''<br />
 +
Only in this way, a linked product will create a license for a Virtuozzo VPS product.<br />
 +
''Note 1: You can also link these products using configurable options.''<br />
 +
''Note 2: In order to create a license successfully, you have to select at least one feature from the dropdown menu.''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_35.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|1. Start by creating the '' 'IP' '' custom field at the main product which will be visible on the order form.<br />
 +
To do so, go to '' 'System Settings' '' → '' 'Products/Services' '' → '' 'Products/Services' '' and edit your VirtuozzoVPS product.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_36.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|2. Open '' 'Custom Fields' '' tab, enter '' 'IP' '' into '' 'Field Name' '' and mark the '' 'Show on Order Form' '' checkbox.<br />
 +
Additionally, you can enter a description of this custom field and set up field validation (it is a one-line validation, do not split it into two lines):<br />
 +
/\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)<br />
 +
\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b/<br />
 +
Confirm changes by pressing '' 'Save Changes'. ''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_37.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|3. It is time to create the product addon which will trigger the relation.<br/>
 +
Go to '' 'System Settings' '' → '' 'Products/Services' '' → '' 'Products Addons' '' and press '' 'Add New Addon'. ''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_38.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|4. Enter the addon name, its description, and a recurring price.<br />
 +
Choose the billing cycle from the '' 'Billing Cycle' '' dropdown menu. It is advised to set up the same billing cycle as in the main product.<br />
 +
Additionally, you have to mark the '' 'Show on Order' '' checkbox and the checkbox next to the main product. In this example, it will be '' 'Odin Group - VirtuozzoVPS'. ''<br />
 +
Next, press '' 'Save Changes'. ''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_39.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|5. Now, create a relation at your '' 'Product Linker' '' → '' 'Basic Relations'. ''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_40.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|To check if the relation works as it should, place an order from the admin area for the main product with the product addon triggering the relation.<br />
 +
Do not forget to type the IP address. Afterward, press '' 'Submit Order'. ''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_41.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|Select '' 'Run Module Create' '' and press '' 'Accept Order'. ''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_42.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|If a new entry appeared as the one marked on the following screen, you have successfully configured both products and linked them through the product addon.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:PL3_43.png]]
 +
|}
 +
 
 +
 
 +
 
 +
==Plesk Extended + Plesk Key Administrator==
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|In these steps, we will show you how to link Plesk Key Administrator with Plesk Extended through a product addon.<br />
 +
There are a few key types in your Plesk Key Administrator that are licenses for Plesk Extended.<br />
 +
In this example we will use '' 'PLESK_10_AND_LATER' '' key type.<br />
 +
''Note 1: You can also link these products using configurable options.''<br />
 +
''Note 2: In order to create a license successfully, you have to select at least one feature from the dropdown menu.''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_44.png]]
 +
|}
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|1. Start by creating the '' 'IP' '' custom field at the main product which will be visible on the order form.<br />
 +
Go to '' 'System Settings' '' → '' 'Products/Services' '' → '' 'Products/Services' '' and edit your Plesk Extended product.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_45.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|2. Open the '' 'Custom Fields' '' tab, enter '' 'IP' '' into '' 'Field Name' '' and mark the '' 'Show on Order Form' '' checkbox.<br />
 +
Additionally, you can enter a description of this custom field and set up field validation (it is a one-line validation, do not split it into two lines):<br />
 +
/\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)<br />
 +
\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b/<br />
 +
Confirm changes by pressing '' 'Save Changes'. ''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_46.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|3. It is time to create the product addon which will trigger the relation.<br />
 +
Go to '' 'System Settings' '' → '' 'Products/Services' '' → '' 'Products Addons' '' and press '' 'Add New Addon'. ''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_47.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|4. Enter an addon name, its description, and a recurring price.<br />
 +
Choose the billing cycle from the '' 'Billing Cycle' '' dropdown menu. It is advised to set up the same billing cycle as in the main product.<br />
 +
You also have to mark the '' 'Show on Order' '' checkbox and the checkbox next to the main product. In this example, it will be '' 'Odin Group - Plesk Extended'. ''<br />
 +
Next, press '' 'Save Changes'. ''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_48.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|5. Now, create a relation at your '' 'Product Linker' '' → '' 'Basic Relations'. ''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_49.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|To check if the relation works as it should, place an order from the admin area for the main product with the addon triggering the relation.<br />
 +
Do not forget to type an IP address. Afterward, press '' 'Submit Order'. ''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_50.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|Select '' 'Run Module Create' '' and press '' 'Accept Order'. ''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_51.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|If a new entry appeared as the one marked on the following screen, you have successfully configured both products and linked them through the product addon.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:PL3_52.png]]
 +
|}
 +
-->
 +
 
 +
==Product Relation: Proxmox VE VPS & Cloud and Plesk Key Administrator==
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|'''In these steps, we will show you how to link independent Proxmox VE VPS & Cloud and Plesk Key Administrator products.''' <br/>The linked product will always be added when the main product is ordered.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|Create a relation at your '' 'Product Linker' '' → '' 'Relations' '' → '' 'Product Relations'.''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_27.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|Configure the relation:
 +
*'''Main Product''' - select the main product which will trigger the relation on its own.
 +
*'''Linked Product''' - Select the product that will be added when the relation is triggered.<br/>It should be set to hidden and free. You can indirectly set its price by balancing the main product price and the promotion.
 +
*'''Promotion''' - include a promotion, if you would like, you can add new promotions under '' 'System Settings' '' → '' 'Payments' '' → '' 'Promotions'.''
 +
*'''Copy Custom Fields''' - Leave disabled unless you want to copy custom fields from the main product to the linked product.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_28.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|To check if the relation works as it should, place an order from the admin area for the main product with the product addon triggering the relation.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PL3_29.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|The linked product will be added to the order along with the main product.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:PL3_30.png]]
 
|}
 
|}
  
 
=Tips=
 
=Tips=
 
{|
 
{|
|style="padding: 10px 0px 10px 15px;"|1. If your client order product with settings triggering two relation to the same product, only one product will be created.
+
|style="padding: 10px 0px 10px 15px;"|1. If your client orders a product with settings triggering two relations with the same product, only one product will be created.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 15px;"|2. If your client order product configurable options upgrade/downgrade, old linked product bound by previous configurable option will stay active.<br />
+
|style="padding: 0px 0px 5px 15px;"|2. If your client orders a product configurable options upgrade/downgrade, the old linked product bound by a previous configurable option will stay active.<br /> You need to remove the link between the old linked product and the main product in the addon and terminate the old linked product manually.
You need to remove link between old linked product and main product in addon and terminate old linked product manually.
+
|}
 +
{|
 +
|style="padding: 0px 0px 10px 15px;"|3. If a child product is at the same time a parent product in the other relation, changes made on its parent will be also commanded on its child.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 15px;"|4. Keep in mind that the second product, linked by the module, is never visible in the cart. It is automatically added once the first one is ordered.
 +
|}
 +
 
 +
=Update Instructions=
 +
{|
 +
|style="padding: 10px 0px 5px 15px;"|An essential guidance through the process of updating the module is offered '''[https://www.docs.modulesgarden.com/How_To_Update_WHMCS_Module here]'''.<br/>
 +
Ensure successful completion of the module update by carefully following each step, thereby preventing data loss or any unforeseen issues.<br/> Additionally, you will find a current list of supplementary actions necessary for a smooth update process there.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 15px;"|'''1. Data migration to version 2.0.0 is handled automatically upon module activation.''' <br/>
 +
 
 +
* '''Download the latest version of the module''' from our [https://www.modulesgarden.com/client-area/products client area].
 +
* '''Remove the old module's files''' from the WHMCS root directory.<br/>'''''Note:''' The module folder name has been changed from 'productlinker' to 'ProductLinker'. Ensure that the old 'productlinker' folder is deleted completely.''
 +
* '''Upload and extract the new files''' into your WHMCS root directory.
 +
* '''Activate the 'Product Linker' addon module.'''
 +
|}
 +
 
 +
=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/product-linker#open-source-version Open Source version] of your Product Linker 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=
 
{|
 
{|
|style="padding: 10px 0px 30px 15px;"|1. When you have problems with connection, check whether your SELinux or firewall is not blocking ports.
+
|style="padding: 10px 0px 10px 15px;"|'''1. When you have problems with connection, check whether your SELinux or firewall does not block ports.'''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 15px;"|'''2. We do not recommend using Product Linker For WHMCS with the following modules:'''
 +
* Product Free Trial Manager For WHMCS
 +
* Resellers Center For WHMCS<br/>
 +
Integration between these modules is hampered due to specific features of each one of them and their individual workflow.<br/>
 +
We are continually working on eliminating these limitations wherever possible.
 
|}
 
|}

Latest revision as of 10:26, 29 April 2025

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

Contents

[edit] About Product Linker For WHMCS

Product Linker For WHMCS enables you to establish dynamic connections between products, addons, and configurable options.
This facilitates bundled purchases for customers, supported by flexible discounts.

The module also provides an intuitive interface for viewing, filtering, and managing existing product associations, giving you full control over the active connections used by your clients.

  • Automation Features:
✔ Handle Dependencies Between Module Actions:
✔ Each Create/Terminate/Suspend/Unsuspend Action Performed On Main Product Triggers Such Action On Child Products
✔ Copy Configurable Options From Parent To Child Product
  • Admin Area Features:
✔ Define Relations Between Chosen Products And:
✔ Product Addons
✔ Configurable Options
✔ Linked Products
✔ Define If Product Addon Price Should Be Switched With Linked Product Price
✔ Copy Custom Fields Between Configured Relations
✔ Assign Custom Promo Codes To Relations:
✔ Select Discount Priority
✔ Define Minimum Discount Amount
✔ View, Filter And Delete Existing Connections Between Linked Products
✔ Enable Related Products Notices In Client Cart
✔ View Product Upgrades/Downgrades Tasks Queue
✔ Customize Module Language Files With "Translations" Tool
✔ View And Manage Logs
  • Client Area Features:
✔ Purchase Multiple Products, Addons And Configurable Options By Ordering Just One
✔ View Linked Product Added To Order After Relation Is Triggered
  • General Info:
✔ Integrated With cPanel Manage2 For WHMCS - Easy Reselling Of cPanel Licenses
✔ Integrated With DirectAdmin Licenses For WHMCS - Easy Reselling Of DirectAdmin Licenses
✔ Integrated With Plesk Key Administrator For WHMCS - Easy Reselling Of Plesk Licenses
✔ Multi-Language Support With Custom Translations Tool
✔ Supports PHP 8.2 Back To PHP 8.1
✔ Supports WHMCS Themes "Six" And "Twenty-One"
✔ Supports WHMCS V8.12 Back To WHMCS V8.9
✔ Requires ionCube Loader V14 Or Later
✔ Easy Module Upgrade To Open Source Version

[edit] Installation

This tutorial will show you how to successfully install Product Linker For WHMCS.

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

1. Log in to our client area and download the module.
PL3 0.png
3. Extract the package and upload its content into the main WHMCS directory.

The content of the package to upload should look like this.

Gfhdr.png
4. When you install Product Linker For WHMCS for the first time you have to rename 'license_RENAME.php' file.

The file is located in 'modules/addons/ProductLinker/license_RENAME.php'. Rename it from 'license_RENAME.php' to 'license.php'.

PL3 1.png
5. In order to configure your license key, you have to edit the previously renamed 'license.php' file.'

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

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

Log in to your WHMCS admin area. Go to 'System Settings' 'Addon Modules'. Afterward, find 'Product Linker' and press the 'Activate' button.

PL3 3.png
7. In the next step, you need to permit access to this module.

To do so, click on the 'Configure' button, select administrator groups that should have access to this addon and press 'Save Changes'.

PL3 4.png
8. Optionally, set up a cron job, that automatically terminates linked products when the main product is upgraded/downgraded.
5-minute interval is recommended, the cron can be run as often as every minute, but at the cost of increased WHMCS server load.
php -q /your_WHMCS/modules/addons/ProductLinker/cron/cron.php queue
9. You have just successfully installed Product Linker For WHMCS!

You can access your module at 'Addons' 'Product Linker'.

PL3 5.png

[edit] Configuration and Management

Product Linker For WHMCS allows to sell bundles of products through ordering one product with specific product addons and configurable options.

It also automatically forwards basic commands from the main product to all child products.
You can define the relationship between products through a product add-on or configurable option.

[edit] Basic Relations

At the 'Basic Relations' tab you can define links between products through product addons and configurable options.

They will be triggered once your client makes an order for a product with the product addon/configurable option chosen at the relation.
Additionally, you can define a discount added to the order by triggering the relation.
To add a new relation, go to 'Relations' 'Basic Relations' and click on 'Add Relation'.

PL3 6.png
To set up a relation:
  • Type - Choose a relation type from the 'Type' dropdown menu, selecting either a relation triggered by a product addon or a configurable option.
  • Addon/Configurable Option - Select a product addon or configurable option that will trigger the relation.
  • Swap Price - If you select the 'Addon' type, you can also enable the 'Swap Price' option, which will overwrite the price of the linked product with the addon price.
  • Configurable Option Value - if you choose the 'Configurable Option' relation type, you must also select a specific configurable option.
  • Linked Product - select a child product that will be linked after the relation is triggered. This product should be set to 'hidden' and 'free'.
  • Promotion - optionally, choose a discount that will be added to the order.
    Note: Keep in mind that only one discount can be assigned to an order, and you can manage discount assignments on the 'Settings' page.
  • Copy Custom Fields - decide if you want Custom Fields copied from the main product to the linked product.
    Note: The Custom Fields are copied from the main product, not from the addon.
PL3 7.png
Added relations can be edited or deleted by using the relative action buttons.
PL3 8.png

[edit] Product Relations

At the 'Product Relations' tab you can set up a relation linking one product with another.

To create a new configuration simply click on the 'Add Relation' button.

PL3 9.png
Provide the following information to create the relation:
  • Main Product - choose a product from the 'Main Product' dropdown menu to trigger the relation.
  • Linked Product - select a product from the 'Linked Product' dropdown menu that will be added when the relation is triggered. This product should be set to 'hidden' and 'free'.
  • Promotion - optionally, assign a promotion.
  • Configurable Option Groups - select configurable options to transfer values for.
    Note: Configurable option copying can only be enabled if the configurable option is assigned to both the parent and child products.
  • Copy Custom Fields - decide if you want Custom Fields copied from the main product to the linked product.
PL3 10.png
Created product relations can be edited or deleted by clicking on the respective action buttons.
PL3 11.png

[edit] Existing Connections

'Existing Connections' tab allows you to view the list of all products ordered by your clients for which relations exist.

You can find all the information about a relation, like the main product, linked product, their owner, or domain used by both products.
If a need arises, you can also delete a connection and optionally terminate the linked product.
Note: Keep in mind that 'Suspend', 'Unsuspend' and 'Terminate' actions performed on the Main Product will be reflected on the Linked Product.

PL3 12.png

[edit] Settings

Due to the assignment of promotions to the relation, a situation may occur where multiple promotions will be assigned to one order.
WHMCS does not support such a situation, therefore only one promotion has to be chosen.
  • Highest Discount - the promotion giving the highest discount to your clients will be chosen in the order form.
  • Lowest Discount - the promotion giving the lowest discount to your clients will be chosen in the order form.
  • Minimum Reduction Amount - if the 'Lowest Discount' is selected, provide the lowest reduction value (order subtotal * promotion rate) that can be used.
    If the promotion value is below the limit, a higher discount will be applied until the provided amount is met or exceeded.
  • Display Product Info - information about the linked product will be visible on the order form when this option is enabled.


Minimum Reduction Amount Example:

 Client's order qualifies for 3 discounts: 20%, 50% and 80%
 We have set the Discount Priority to 'Lowest Discount'
 The Minimum Reduction Amount is set to '10'

 The order subtotal is '36.39'
 The reduction is calculated:
 36.39 * 20% = 7.28
 36.39 * 50% = 18.20
 36.39 * 80% = 29.11

 Since the calculation with the lowest discount did not exceed the 'Minimum Reduction Amount', the next discount (50%) is applied as it does exceed the minimum.
PL3 13.png

[edit] Queue

The 'Queue' section is designed to handle product upgrades and downgrades for products that have a relation established.

The cron will automatically create tasks to terminate linked products after upgrade/downgrade of the main product.
If you allow your clients to upgrade/downgrade products that you have created relations for, it is recommended to run a dedicated cron job every 5 minutes:

php -q /your_WHMCS/modules/addons/ProductLinker/cron/cron.php queue

The table below the cron job information will allow you to see the status of each task, see its details, run it manually, or delete it.

PL3 12 1.png
You can delete multiple tasks at once by using the mass action function.
PL3 12 2.png
Additional actions include the auto prune system and the ability to hide the cron information.
PL3 12 3.png

[edit] Translations

Customizing language files is now extremely easy with the "Translations" tool that is now available directly in the addon.
Its user-friendly design makes managing various language file tweaks a smooth and efficient process.

Prepare translations for the original English files with this handy built-in tool. For specific instructions on how to use this tool please refer to its dedicated article, you will find it here.

PL3 13 1.png

[edit] Logs

The 'Logs' provides access to all activity records generated by the module. It serves as a central hub for monitoring and troubleshooting module behavior.
You can easily filter the displayed logs by category using the 'Show' buttons, allowing you to focus on specific types of events or actions.

For a more detailed breakdown of log types, usage scenarios, and filtering capabilities, please refer to our dedicated documentation article.

PL3 14.png

[edit] Client Area

When the client orders a product with a relation created for it, the relation will be displayed on the order form, provided the option is enabled in the addon's settings.

If included in the relations, promotions will be applied based on the settings.

PL3 19.png

[edit] Use Cases

This section provides scenarios that demonstrate common use cases, along with detailed explanations of how the module’s features can be utilized in real-world situations.

Review the following examples to understand better how the module can be applied in practice.

[edit] Basic Relation: Proxmox VE VPS & Cloud and cPanel Manage2

In these steps, we will show you how to link Proxmox VE VPS & Cloud with cPanel Manage2 through a product addon.
You can also link them using configurable options if you would prefer.

1. First create the product addon which will trigger the relation.
Go to 'System Settings' 'Products/Services' 'Products Addons' and press 'Add New Addon'.

PL3 21.png
2. Name your addon, there is no need to select a module since the addon will only be used to trigger the relation for the cPanel Manage2 product to be added.
PL3 21 1.png
3. Make sure you check the 'Show on Order' checkbox under 'Details'.
PL3 21 2.png
4. It is advised to set up the same billing cycle as in the main product. The price of the addon will effectively be the price of the linked product.
PL3 21 3.png
5. Finally, select the main product which the addon will be available for, in this case, it is 'Proxmox VE VPS & Cloud - VPS KVM'.

Next, press 'Save Changes'.

PL3 22.png
6. Now, create a relation at your 'Product Linker' 'Relations' 'Basic Relations'.
PL3 23.png
Configure the relation:
  • Type - select 'Addon' for this example.
  • Addon - select your newly created addon.
  • Swap Price - Leave this option disabled.
  • Linked Product - Select the product that will be added when the relation is triggered.
    It should be set to hidden and free. You have indirectly set its price at the product addon configuration.
  • Promotion - include a promotion, if you would like, you can add new promotions under 'System Settings' 'Payments' 'Promotions'.
  • Copy Custom Fields - Leave disabled unless you want to copy custom fields from the main product to the linked product.
PL3 24.png
To check if the relation works as it should, place an order from the admin area for the main product with the product addon triggering the relation.
PL3 25.png
The linked product will be added to the order along with the main product.
PL3 26.png

[edit] Product Relation: Proxmox VE VPS & Cloud and Plesk Key Administrator

In these steps, we will show you how to link independent Proxmox VE VPS & Cloud and Plesk Key Administrator products.
The linked product will always be added when the main product is ordered.
Create a relation at your 'Product Linker' 'Relations' 'Product Relations'.
PL3 27.png
Configure the relation:
  • Main Product - select the main product which will trigger the relation on its own.
  • Linked Product - Select the product that will be added when the relation is triggered.
    It should be set to hidden and free. You can indirectly set its price by balancing the main product price and the promotion.
  • Promotion - include a promotion, if you would like, you can add new promotions under 'System Settings' 'Payments' 'Promotions'.
  • Copy Custom Fields - Leave disabled unless you want to copy custom fields from the main product to the linked product.
PL3 28.png
To check if the relation works as it should, place an order from the admin area for the main product with the product addon triggering the relation.
PL3 29.png
The linked product will be added to the order along with the main product.
PL3 30.png

[edit] Tips

1. If your client orders a product with settings triggering two relations with the same product, only one product will be created.
2. If your client orders a product configurable options upgrade/downgrade, the old linked product bound by a previous configurable option will stay active.
You need to remove the link between the old linked product and the main product in the addon and terminate the old linked product manually.
3. If a child product is at the same time a parent product in the other relation, changes made on its parent will be also commanded on its child.
4. Keep in mind that the second product, linked by the module, is never visible in the cart. It is automatically added once the first one is ordered.

[edit] Update Instructions

An essential guidance through the process of updating the module is offered here.

Ensure successful completion of the module update by carefully following each step, thereby preventing data loss or any unforeseen issues.
Additionally, you will find a current list of supplementary actions necessary for a smooth update process there.

1. Data migration to version 2.0.0 is handled automatically upon module activation.
  • Download the latest version of the module from our client area.
  • Remove the old module's files from the WHMCS root directory.
    Note: The module folder name has been changed from 'productlinker' to 'ProductLinker'. Ensure that the old 'productlinker' folder is deleted completely.
  • Upload and extract the new files into your WHMCS root directory.
  • Activate the 'Product Linker' addon module.

[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 Product Linker 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. We do not recommend using Product Linker For WHMCS with the following modules:
  • Product Free Trial Manager For WHMCS
  • Resellers Center For WHMCS

Integration between these modules is hampered due to specific features of each one of them and their individual workflow.
We are continually working on eliminating these limitations wherever possible.

Navigation
WHMCS Modules
WHMCS Widgets
Tools And Applications
Translations
cPanel Modules
General
FAQ
Community
Product Linker For WHMCS