Personal tools
Namespaces

Variants
Actions

Discount Center For WHMCS

From ModulesGarden Wiki
(Difference between revisions)
Jump to: navigation, search
(About Discount Center For WHMCS)
(Update Instructions)
 
(130 intermediate revisions by 9 users not shown)
Line 2: Line 2:
 
<meta name="description" content="ModulesGarden Wiki Contains All The Information You Need About The Discount Center For WHMCS Module."></meta>
 
<meta name="description" content="ModulesGarden Wiki Contains All The Information You Need About The Discount Center For WHMCS Module."></meta>
  
 
+
=About [https://www.modulesgarden.com/products/whmcs/discount-center Discount Center For WHMCS]=
=About [http://www.modulesgarden.com/products/whmcs/discount_center/features Discount Center For WHMCS]=
+
 
{|
 
{|
|style="padding: 10px 0px 10px 0px;"|'''Discount Center For WHMCS''' module allows you to set up discounts for products ordered in a specified combination or quantity.<br/> It will let you define discount rules and validity periods as well as exclude certain clients from being offered price cuts or promote new customers only!
+
|style="padding: 10px 0px 10px 0px;"|'''Discount Center For WHMCS''' module allows you to set up discounts for products ordered in a specified combination or quantity.<br/> It will let you define discount rules, validity periods, and limitations as well as exclude certain clients from being offered price cuts or promote new customers only!<br/>
 +
Achieve unprecedented sales success by leveraging the Discount Center For WHMCS and the '''[https://www.modulesgarden.com/products/whmcs/lagom-one-step-order-form Lagom One Step Order Form For WHMCS]''' in tandem.
 
|}
 
|}
  
 
<!-- fixed -->
 
<!-- fixed -->
*'''Admin Area Features:'''
+
*'''Admin Area:'''
 
{|
 
{|
 
|style="padding: 10px 0px 0px 30px;"|✔ Create Multiple Discounts For Products, Domains And Product Addons
 
|style="padding: 10px 0px 0px 30px;"|✔ Create Multiple Discounts For Products, Domains And Product Addons
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Create Multiple Quantity Discounts With Several Thresholds For Products, Domains And Product Addons
+
|style="padding: 0px 0px 0px 30px;"|✔ Create Multiple Quantity Discounts With Thresholds For Products, Product Groups, Domains And Product Addons
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ View Discounts Summary
+
|style="padding: 0px 0px 0px 30px;"|✔ Create Early Payment Discounts
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 10px 30px;"|✔ View Discounts Logs
+
|style="padding: 0px 0px 0px 30px;"|✔ Configure Module Settings:
 
|}
 
|}
*'''Client Area Features:'''
+
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Define Length Of New Client Status
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Auto-Apply Newly Created Discounts
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Select Order Form Type
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Enable Order Notes
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Hide Original Prices
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Enable Product Upgrade/Downgrade Discounts
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Specify Custom HTML Discount Label
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Enable Applying Discounts On Admin Area Orders
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ View Discount Summary And Their Usage Graph
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ View Discounts Usage History
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Update Applied Discounts And Pricing
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Customize Module Language Files With "Translations" Tool
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Control Staff Access Level To Specific Resources With ACL
 +
|}
 +
{|
 +
|style="padding: 0px 0px 10px 30px;"|✔ View And Manage Logs
 +
|}
 +
*'''Client Area:'''
 
{|
 
{|
 
|style="padding: 10px 0px 0px 30px;"|✔ View Before And After Discount Item Prices
 
|style="padding: 10px 0px 0px 30px;"|✔ View Before And After Discount Item Prices
Line 29: Line 71:
 
|style="padding: 0px 0px 10px 30px;"|✔ Build Your Own Discounted Product Bundle
 
|style="padding: 0px 0px 10px 30px;"|✔ Build Your Own Discounted Product Bundle
 
|}
 
|}
*'''Discounts Features:'''
+
*'''Standard Discounts:'''
 
{|
 
{|
|style="padding: 10px 0px 0px 30px;"|✔ Define Items To Apply Discount To
+
|style="padding: 10px 0px 0px 30px;"|✔ Define Items To Apply Discount To:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Define Discounts For Chosen Items Per Billing Cycle
+
|style="padding: 0px 0px 0px 45px;"|✔ Offered Items In Store
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Define Items Required In Cart To Apply Discount
+
|style="padding: 0px 0px 0px 45px;"|✔ Required Items In Client Shopping Cart
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Define Items Required To Be Owned By Client To Apply Discount
+
|style="padding: 0px 0px 0px 45px;"|✔ Active Items In Client Account
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Required Items' Billing Cycles
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Define Discounts For Chosen Items Per Billing Cycle:
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Percentage
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Fixed Amount
 
|}
 
|}
 
{|
 
{|
Line 46: Line 100:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ All Clients and Guests
+
|style="padding: 0px 0px 0px 45px;"|✔ All Clients And Guests
 
|}
 
|}
 
{|
 
{|
Line 59: Line 113:
 
{|
 
{|
 
|style="padding: 0px 0px 0px 30px;"|✔ Define Time Period For Recurring Discount
 
|style="padding: 0px 0px 0px 30px;"|✔ Define Time Period For Recurring Discount
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Enable Requirement Of Applied WHMCS Promotion Code
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Choose If Discount Should Be Applied When WHMCS Promotion Code Is Used
 
|}
 
|}
 
{|
 
{|
Line 64: Line 124:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 10px 30px;"|✔ Define If Discount Should Be Applied When Product Bundles Are Enabled
+
|style="padding: 0px 0px 0px 30px;"|✔ Define If Discount Should Be Applied When Product Bundles Are Enabled
 
|}
 
|}
*'''Quantity Discounts Features:'''
 
 
{|
 
{|
|style="padding: 10px 0px 0px 30px;"|✔ Define Multiple Promotion Thresholds And Discount Values
+
|style="padding: 0px 0px 0px 30px;"|✔ Define Discounts Limitations:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Define Items To Be Summed Up And Compared With Thresholds
+
|style="padding: 0px 0px 0px 45px;"|✔ Total Number Of Products, Product Addons And Domains
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Restrict Time Period To Apply Discount After Single Usage
 +
|}
 +
{|
 +
|style="padding: 0px 0px 10px 45px;"|✔ Maximum Number Of Items In Cart
 +
|}
 +
 
 +
*'''Quantity Discounts:'''
 +
{|
 +
|style="padding: 10px 0px 0px 30px;"|✔ Define Items To Apply Discount To:
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Offered Items In Store
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Required Items In Client Shopping Cart
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Active Items In Client Account
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Required Items' Billing Cycles
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Define Discounts For Chosen Items Per Billing Cycle:
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Percentage
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Fixed Amount
 +
|}
 +
{|
 +
|style="padding: 10px 0px 0px 30px;"|✔ Define Discount Type:
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Percentage
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Fixed Amount
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Define Items Required To Be In Shopping Cart To Apply Discount
 
|}
 
|}
 
{|
 
{|
 
|style="padding: 0px 0px 0px 30px;"|✔ Define Items Required To Be Owned By Client To Apply Discount  
 
|style="padding: 0px 0px 0px 30px;"|✔ Define Items Required To Be Owned By Client To Apply Discount  
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Define Multiple Promotion Thresholds And Discount Values
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Define Items To Be Summed Up And Compared With Thresholds
 
|}
 
|}
 
{|
 
{|
Line 90: Line 199:
 
{|
 
{|
 
|style="padding: 0px 0px 0px 45px;"|✔ Chosen Products/Addons/Domains
 
|style="padding: 0px 0px 0px 45px;"|✔ Chosen Products/Addons/Domains
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Number Of Active Services
 
|}
 
|}
 
{|
 
{|
Line 95: Line 207:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ All Clients and Guests
+
|style="padding: 0px 0px 0px 45px;"|✔ All Clients And Guests
 
|}
 
|}
 
{|
 
{|
Line 111: Line 223:
 
{|
 
{|
 
|style="padding: 0px 0px 0px 30px;"|✔ Define If Products With 'Allow Multiple Quantities' Should Be Supported
 
|style="padding: 0px 0px 0px 30px;"|✔ Define If Products With 'Allow Multiple Quantities' Should Be Supported
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Define Whether To Count User Owned Services
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Enable Requirement Of Applied WHMCS Promotion Code
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Choose If Discount Should Be Applied When WHMCS Promotion Code Is Used
 
|}
 
|}
 
{|
 
{|
Line 119: Line 240:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 10px 30px;"|✔ Define If Discount Should Be Applied When Product Bundles Are Enabled
+
|style="padding: 0px 0px 0px 30px;"|✔ Define If Discount Should Be Applied When Product Bundles Are Enabled
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Define Discounts Limitations:
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Total Number Of Products, Product Addons And Domains
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Maximum Number Of Items In Cart
 +
|}
 +
{|
 +
|style="padding: 0px 0px 10px 45px;"|✔ Restrict Time Period To Apply Discount After Single Usage
 +
|}
 +
*'''Early Payment Discounts:'''
 +
{|
 +
|style="padding: 10px 0px 0px 30px;"|✔ Define Number Of Days Of Discount Validity
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Define Items To Apply Discount To
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Define Discounts For Chosen Items Per Billing Cycle
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Define Email Notifications:
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ On Invoice Creation
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ On Discount Expiration
 +
|}
 +
{|
 +
|style="padding: 0px 0px 10px 45px;"|✔ Discount Cancelation Reminders With Defined Number Of Days Before Expiration
 
|}
 
|}
 
*'''General Info:'''
 
*'''General Info:'''
 
{|
 
{|
|style="padding: 10px 0px 0px 30px;"|✔ Recognize Unlogged Client Identity To Assign Discount Accordingly
+
|style="padding: 10px 0px 0px 30px;"|✔ Integrated With [https://www.modulesgarden.com/products/whmcs/lagom-one-step-order-form Lagom One Step Order Form For WHMCS] - Give Clients Instant Preview Of Discounted Prices While Completing The Order
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Recognizes Identity Of Not Logged In Client To Assign Discount Accordingly
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Updates Amounts On Unpaid Invoices Dynamically When 'Active Services Quantity' Discount Is Employed
+
|style="padding: 0px 0px 0px 30px;"|✔ Updates Amount On Unpaid Invoices Dynamically When 'Active Services Quantity' Discount Is Used
 
|}
 
|}
 
{|
 
{|
Line 132: Line 290:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Supports PHP 5.4 Up To PHP 7
+
|style="padding: 0px 0px 0px 30px;"|✔ Multi-Language Support With Custom Translations Tool
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Supports WHMCS Templates Five and Six
+
|style="padding: 0px 0px 0px 30px;"|✔ Supports PHP 8.3 Back To PHP 8.1
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 30px;"|✔ Supports WHMCS V6 an V7
+
|style="padding: 0px 0px 0px 30px;"|✔ Supports WHMCS Themes "Six", "Twenty-One" And "Lagom WHMCS Client Theme"
 
|}
 
|}
 
=Installation=
 
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|'''This tutorial will show you how to successfully install and configure Discount Center For WHMCS.''' <br/>
+
|style="padding: 0px 0px 0px 30px;"|✔ Supports WHMCS V8.13 Back To WHMCS V8.10
We will guide you step by step through the whole installation and configuration process.  
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|'''1. Log in to your client area and download Discount Center For WHMCS.'''
+
|style="padding: 0px 0px 0px 30px;"|✔ Requires ionCube Loader V14 Or Later
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DC_1.png]]
+
|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/discount-center#open-source-version Open Source Version]
 +
|}
 +
 
 +
=Installation=
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|'''This tutorial will show you how to successfully install and configure [https://www.modulesgarden.com/products/whmcs/discount-center Discount Center For WHMCS.]''' <br/>
 +
We will guide you step by step through the whole installation and configuration process.
 
|}
 
|}
 
{|
 
{|
|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/>
+
|style="padding: 0px 0px 20px 15px;"|'''1. Log in to our client area and download the module.'''
'' '''Note''': You can check current PHP version in your WHMCS. To do so proceed to ''' 'Utilities' → 'System' → 'PHP Info'.'''
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DC_2.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:DC2_1.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''3. Extract the downloaded file and choose the one with the right PHP version. Upload and extract the PHP file into the main WHMCS directory.'''<br />
+
|style="padding: 0px 0px 15px 15px;"|'''3. Extract the package and upload its content into the main WHMCS directory. <br/>
The content of PHP version files should look like this.  
+
The content of the package to upload should look like this.  
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DC_2_2.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:DC2_2.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''4. When you install Discount Center for the first time you have to rename '' 'license_RENAME.php' '' file.'''<br/>
+
|style="padding: 0px 0px 15px 15px;"|'''4. When you install Discount Center For WHMCS for the first time you have to rename the '' 'license_RENAME.php' '' file.'''<br/>
File is located in '' 'modules/addons/discount_center/license_RENAME.php'. '' Rename it from '' 'license_RENAME.php' '' to '' 'license.php'. ''
+
This file is located in '' 'modules/addons/discount_center/license_RENAME.php'. '' Rename it from '' 'license_RENAME.php' '' to '' 'license.php'. ''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DC_3.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:DC2_3.png]]
 
|}
 
|}
 
{|
 
{|
 
|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/>
 
|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 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 our client area → '' 'My Products'. ''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DC_4.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:DC2_4.png]]
 
|}
 
|}
 
{|
 
{|
 
|style="padding: 0px 0px 15px 15px;"|'''6. 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 '' 'Discount Center' '' and press '' 'Activate' '' button.
+
Log in to your WHMCS admin area. Go to '' 'System Settings' '' → '' 'Addon Modules'. '' Afterward, find '' 'Discount Center' '' and press the '' 'Activate' '' button.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DC_5.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:DC2_5.png]]
 
|}
 
|}
 
{|
 
{|
 
|style="padding: 0px 0px 15px 15px;"|'''7. 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, check required group of administrators and press '' 'Save Changes'. ''
+
To do so, click on the '' 'Configure' '' button, check required group of administrators and press '' 'Save Changes'. ''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DC_6.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:DC2_6.png]]
 
|}
 
|}
 
{|
 
{|
Line 199: Line 359:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:DC_7.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:DC2_7.png]]
 
|}
 
|}
  
Line 210: Line 370:
 
|style="padding: 10px 0px 30px 15px;"| In order to configure your module properly, proceed to '' 'Addons' '' → '' 'Discount Center' '' and start with setting up rules to offer attractive prices to your clients.
 
|style="padding: 10px 0px 30px 15px;"| In order to configure your module properly, proceed to '' 'Addons' '' → '' 'Discount Center' '' and start with setting up rules to offer attractive prices to your clients.
 
|}
 
|}
===Standard Discounts===
+
===Standard Discounts Configuration===
 
{|
 
{|
|style="padding: 10px 0px 20px 15px;"|To start, move to '' 'Discounts' '' section. There, press '' 'Add New' '' button.  
+
|style="padding: 10px 0px 20px 15px;"|To start, move to the '' 'Standard Discounts' '' section. There, press the '' 'Add Discount' '' button.  
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DC1_9.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:DC2_9.png]]
 
|}
 
|}
 +
====General Configuration====
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|You are moved to '' 'General' '' information page of the currently composed discount. Here you have to fill out the form to configure the rule.<br/>
+
|style="padding: 10px 0px 15px 15px;"|You will now be taken to the '''General''' information section of the discount you are configuring. This is where you define which products the discount should apply to, as well as any additional requirements.<br/>
Select the box to enable the discount, it will be put into practice immediately on creation. You may also configure this option under [http://www.docs.modulesgarden.com/Discount_Center_For_WHMCS#Settings '' 'Settings' ''].<br/>
+
Enable the discount here if you want it to become active immediately after saving. You can also activate it later at any time.<br/>
Name the discount and, the most importantly, declare promotional and required products. <br/>
+
Name the discount, enter its short description, and, most importantly, specify the eligible products and any related conditions.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DC1_10.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:DC2_9_1.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|''' 'Apply Promotion To' ''' - there can be products from your offer, addons and domains. According to a specified rule, pointed here items' price will be [http://www.docs.modulesgarden.com/Discount_Center_For_WHMCS#Product_Discounts adequately changed].<br/>  
+
|style="padding: 0px 0px 15px 15px;"|
''Note: You must select at least one promotional product to be allowed to move to the next step.''
+
* '''Apply Discount To''' - select the products, addons, and/or domains this discount should be applied to.<br/> According to a specified rule, pointed here items' price will be [[#Product Discounts|adequately changed]].<br/> '''''Note:''' You must select at least one promotional product to be allowed to move to the next step.''  
 +
 
 +
* '''Required Items in Cart''' - specify which additional items (products, addons, domains) must be in the client’s cart at checkout for the discount to apply.<br/> In case a client does not have all of the required products in the cart, the discount won't be applied. 
 +
 
 +
* '''Required Active Items''' - define which items (products, addons, domains) the client must already have active in their account to qualify for the discount.<br/ > A client must already own and have them active. Only then can the discount be applied.<br/> All of the chosen products here are required. Please note that only active products are taken into consideration. 
 +
 
 +
* '''Required Billing Cycles''' - indicate which billing cycles must be selected (per product in "Apply Discount To") for the discount to be valid.<br/>  The discount will be applied only if the items' billing cycle requirement is met. <br/>You may specify the required billing cycles for items in the cart. Every item in the cart must have one of the pointed here billing cycles.<br/> If an item in the cart is of a different billing cycle than pointed out here, the discount will not be applied. Leave this section blank if the billing cycle is not a demand for you.<br/>
 +
 
 +
'''Note:''' ''Only the "Apply Discount To" field is mandatory. All other fields are optional; leave them blank if you do not wish to enforce additional conditions.''<br/>
 +
 
 +
Press '' 'Next' '' to continue.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DC1_11.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:DC2_10.png]]
 
|}
 
|}
 +
 +
====Item Pricing====
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|Below, you can specify a list of ''' 'Products Required In Cart' ''' that a client must also have in the cart to be entitled to get the discount for promotional products.<br/> Among them, there can be again products, addons and domains. In case a client does not have all of the required products in the cart, the discount won't be applied.<br/> Surely, you  may leave these part blank if you do not demand any other products to be purchased at the time.<br/>
+
|style="padding: 10px 0px 10px 15px;"|Under the '''Item Pricing''' section, you need to define specific discount values for each item included in the rule. To begin, click the plus icon next to the item you are going to configure.  
Additionally, you may add any items into ''' 'Required Active Products' ''' -  a client must already own and have them active. Only then the discount can be applied.<br/> All of the chosen here products are required. Please note that only active products are taken into consideration.<br/>
+
Press '' 'Next' '' to continue.
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:DC1_12.png]]
+
|style="padding: 0px 0px 15px 15px;"|Select the discount type and then enter the corresponding value.
 +
* '''Percentage''' - a percentage-based discount calculated from the item’s price.
 +
* '''Fixed Amount''' - a flat value that will be subtracted from the final price and/or setup fee.<br/>
 +
 
 +
As shown in the screen:
 +
* The original price is marked in red
 +
* Your entered discount value is in the middle field
 +
* The final, discounted price is marked in green
 +
 
 +
Please make sure to set up the pricing for every item available for discount, click '''Next''' to proceed when you are ready.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:DC2_13.png]]
 
|}
 
|}
  
====Product Discounts====
+
====Activation Rules====
 
{|
 
{|
|style="padding: 10px 0px 20px 15px;"|Under '' 'Product Discounts' '' you have to set up discount rates for every product's pricing. To do so press the plus button as marked on the screen.
+
|style="padding: 10px 0px 15px 15px;"|Next, you are moved to activation rules. Here you may decide which of your clients should be entitled to purchase products with a discount.<br/>You may grant it to:
 +
*'''All Clients''' - all of your clients and guests.
 +
*'''New Clients Only''' - Move to '' 'Addons' → 'Discount Center' → 'Settings' '' to define which of your clients shall be considered '' 'new'. ''
 +
*'''Selected Clients Only''' - enumerate single '''clients''' or enter '''client groups''' names. All clients from this group will be given a discount.<br/><br/>
 +
 
 +
Additional Rules:
 +
*'''Recurring Discounts''' - enable discount for recurring orders. If you do not select this option, then discount will be applied only once with the first payment.<br/>
 +
** '''Recurring Billing Months''' -  If the above option is enabled, you also have to define the number of months that the discount will be applied to the invoice. You can also provide '''0''' value for lifetime discount.
 +
 
 +
* '''Require Promotion Code''' -  the discount will only apply if the selected WHMCS promotion code is entered during checkout.<br/> Select the required promo code from the dropdown list ''(codes must be pre-created in WHMCS to appear here)''. If set to "None," the discount will not require a code and will apply automatically.
 +
 
 +
* '''Promotion Code Restriction ''' - when enabled, this option disables the Discount Center discount if '''any''' WHMCS promotion code is used during checkout.<br/> If this option is turned off, the WHMCS promo code will be applied '''on top of''' the Discount Center discount ''(calculated from the already reduced price).''
 +
 
 +
* '''Discount Validity Period''' - If selected, you have to point the '''Start Date''' and '''Expiry Date''' of the promotion. This option is especially helpful when setting up sales like ''Cyber Monday'' or ''Black Friday.''<br/> It is usually clearly stated how long such sale shall last.
 +
 
 +
* '''Bundle Restriction''' - if enabled, the discount will not be applied for bundled offers.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DC1_13.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:DC2_15.png]]
 
|}
 
|}
 +
 +
====Usage Limits====
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|Enter the discount value and select its type.<br/> It can be either percentage that will be counted from the price or a fixed amount by which the final price and/or setup fee will be reduced.<br/> In case you are using more than one currency, you may quickly copy the rule to all available currencies to save the time.<br/>
+
|style="padding: 10px 0px 15px 15px;"|This section allows you to limit how many times a discount can be applied by a client, based on the criteria set below:
Press '' 'Next' '' when ready.
+
 
 +
* '''Global Discount Limits''' - defines the total number of products, addons, and domains that can receive this discount per client.<br/> This includes items with "Active", "Pending", or "Suspended" status, even if they were ordered earlier. Enter the maximum allowed quantity for all eligible items combined.
 +
 
 +
* '''Discount Reuse Limits''' - controls how often the discount can be used by the same client within a specific time frame.
 +
** '''Lock Duration''' - the duration during which the discount will be unavailable to the client after a single use.
 +
** '''Time Unit''' - choose whether the lock duration should be measured in days, weeks, or months.
 +
 
 +
* '''Discounted Items in Cart''' – limits the number of discounted items per cart, per order. <br/>This applies only to the current cart contents and does not count previously ordered items (unlike "Global Discount Limits").<br/>
 +
Press '''Submit''' to confirm and create your new discount.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:DC1_14.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:DC2_16.png]]
 
|}
 
|}
====Activation Rules====
+
 
 +
====Available Actions====
 
{|
 
{|
|style="padding: 10px 0px 20px 15px;"|Finally, you are moved to activation rules. Here you may decide which of your clients should be entitled to purchase products with a discount.<br/>You may grant it to:
+
|style="padding: 10px 0px 15px 15px;"|All available discounts are now visible with their current status, name, and the number of assigned products, addons, or domains.<br/>
*'''All''' - all of your clients and guests
+
You can easily '''enable or disable''' any discount, check its '''start and end dates''', or '''edit''' and '''delete''' it as needed.
*Offer it to '''new clients''' only. Move to '' 'Addons' → 'Discount Center' → 'Settings' '' section to define which of your clients shall be considered '' 'new'. ''
+
*'''Chosen''' clients only: enumerate specific clients or enter clients group name. All clients from this group will be given a discount.<br/><br/>
+
'''Recurring Discounts''' - enable discount for recurring orders. If you do not select this option, then discount will be applied only once with the first payment.<br/> If this option is enabled, you also have to define the number of months that the discount will be applied to the invoice.<br/><br/>
+
Finally, you may define the '''Validity Period.'''<br/> If selected, you have to point the starting and ending date of the promotion. This option is especially helpful when setting up sales like ''Cyber Monday'' or ''Black Friday.''<br/> It is usually clearly stated how long such sale shall last.<br/><br/>
+
Press '' 'Save Changes' '' to confirm creation of the new discount.
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DC1_15.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:DC2_17_0.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|All available discounts are now visible, with their name, status and number of assigned products/domains/addons.<br/> You may always change the status to disabled/enabled, check starting and ending dates of the promotion and edit the discount or delete it.<br/> Use action buttons to do so.
+
|style="padding: 0px 0px 15px 15px;"|Use the '''"$"''' button to update the pricing of assigned items. This button is only available for discounts with the '''Recurring Discount''' activation rule enabled. For other types of discounts, the button remains inactive.<br/>
 +
 
 +
After clicking the button, a table will appear showing the related services. It includes the service ID, type (product, addon, or domain), as well as the old and new pricing values. <br/>Please note that this data will only be available if the service pricing has been changed in your WHMCS settings.<br/>
 +
 
 +
To apply the updated pricing, press '''Update'''. This will adjust the price of each eligible service to reflect the most current discount configuration.<br/>
 +
 
 +
This action is only available for services that:
 +
* have an active recurring discount,
 +
* have already been purchased,
 +
* had their base pricing changed after the original order.<br/>
 +
 
 +
If you prefer to update pricing individually for specific services, go to the '''Discounts → [[#Usage_History|Usage History]]''' section instead.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:DC1_8.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:DC2_17_1.png]]
 
|}
 
|}
  
 
===Quantity Discounts===
 
===Quantity Discounts===
 
{|
 
{|
|style="padding: 10px 0px 20px 15px;"|'' 'Quantity Discounts' '' - offer different price depending on the number of products added into the cart. Press '' 'Add New' '' to begin.
+
|style="padding: 10px 0px 20px 15px;"|'''Quantity Discounts''' let you offer varying discounts based on how many eligible items a client adds to their cart. Click '''Add Discount''' to begin configuration.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DC1_16.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:DC2_18.png]]
 
|}
 
|}
 +
 +
====General====
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|In '' 'General' '' section you have to name the new discount rule, enable (if you want to apply it immediately on creation) and select required and required client products.<br/>
+
|style="padding: 10px 0px 15px 15px;"|
*'''Specified Products In Cart''' - select products/domains/addons which you expect to be in the cart.<br/>The sum of these items is compared with the set up later on thresholds to apply an adequate discount.<br/>
+
In the '''General''' section, enter the discount name, enable it (if you'd like it active right after creation), and choose the discount type — either a '''Fixed Amount''' or a '''Percentage''' applied to product pricing and/or setup fee.
''Please note that items added into these fields '''are required'''.''
+
 
*'''Required Active Products''' - only if the client already owns pointed here items, the discount can be applied.<br/>Please note that the products must be active!<br/>
+
Next, define the scope and conditions:
''Please note that items added into these fields '''are required'''.''
+
 
 +
* '''Specified Items in Cart''' - choose products, domains, addons, or product groups. These items are counted and matched against the defined thresholds to determine which discount should be applied.
 +
* '''Discount Type''' - choose between a flat amount or a percentage-based reduction.
 +
* '''Required Active Items''' - specify which items a client must already have in their account (with '''Active''' status) to qualify for the discount.
 +
* '''Required Billing Cycles''' - the discount will only apply if the billing cycle selected for the items matches the cycles defined here.
 +
 
 +
'''Important:''' At least one item must be defined under '''Specified Items in Cart'''.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DC1_17.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:DC2_19.png]]
 
|}
 
|}
 +
 +
====Discount Configuration====
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|Under '' 'Quantity Discount' '' you have to decide when the discount will be applicable.<br/>
+
|style="padding: 10px 0px 15px 15px;"|The '''Discount Configuration''' section defines how the discount will be applied to eligible items.
*'''If Price Is Higher Than''' - declare the price limit and only more expensive of the products than the limit here will be charged with the discount
+
 
*'''If Price Is Lower Than''' - declare the maximum price limit and only cheaper products than the limit declared here will be charged with the discount
+
* '''All Selected Products''' – apply the discount to all items listed in '''Specified Items in Cart'''.
 +
* '''Promotional Products Only''' – apply the discount only to specifically listed items (products, addons, domains).
 +
* '''Based On Active Services Count''' – the discount will depend on how many services a client already owns (with Active status), in combination with items being ordered.
 +
* '''If Price Is Higher Than''' – apply the discount only to items priced above the defined threshold.
 +
* '''If Price Is Lower Than''' – apply the discount only to items priced below the defined threshold.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DC1_18.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:DC2_20.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|
+
|style="padding: 0px 0px 15px 25px;"|Define '''Thresholds''' to apply different discount values depending on the quantity of eligible items in the cart. Each threshold consists of:
*'''Promotional Products''' - list items that the discount can be applied to (products/addons/domains)
+
 
 +
* a minimum quantity
 +
* a corresponding discount value (percentage)
 +
 
 +
You can define multiple thresholds by clicking the '''+''' button.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DC1_18_1.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:DC2_22.png]]
 
|}
 
|}
 +
 +
====Active Services Logic====
 
{|
 
{|
|style="padding: 0px 0px 0px 15px;"|
+
|style="padding: 10px 0px 15px 25px;"|When using the '''Based On Active Services Count''' method, the discount takes into account:
*'''All Specified Products''' - every product that is on the list of specified ''(see previous point)'' will be charged with the discount<br/>
+
 
 +
* existing active recurring services (applies to their next renewal),
 +
* new services being purchased (applies to first and possibly future invoices).
 +
 
 +
Items listed in '''Specified Items in Cart''' must also be matched.
 +
 
 +
In the '''Thresholds''' section, define how many total active services are required for a discount tier. The module dynamically calculates totals by combining active services and current cart items.
 +
 
 +
For example:
 +
* A 10% discount is set for 5 active services. A client with 3 existing services only needs to add 2 more to their cart to qualify.
 +
* If the admin also sets a 15% discount at 8 services, and the same client adds 5 new items (3 existing + 5 new = 8), they’ll receive the higher 15% rate.
 +
 
 +
If any service is later terminated, the discount is re-evaluated:
 +
* If no longer valid for the current tier, the discount is either removed or downgraded to the next applicable level.
 +
 
 +
Discounts are also updated on unpaid invoices if the client’s service count changes in the meantime.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 25px;"|In this section you also have to set up '' 'Thresholds'. '' <br/> These are the minimum numbers of products, that must fulfill the above application rule, and that must be in the cart of a single order.<br/> Specify a percentage discount for the threshold, you can set up more than one. Press '+' button to add more possibilities.<br/>
+
|style="padding: 0px 0px 20px 25px;"|[[File:DC2_23.png]]
 
|}
 
|}
 +
 +
====Activation Rules====
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DC1_19.png]]
+
|style="padding: 10px 0px 15px 15px;"|Next, you are moved to activation rules. Here you may decide which of your clients should be entitled to purchase products with a discount.<br/>You may grant it to:
 +
*'''All Clients''' - all of your clients and guests
 +
*'''New Clients Only''' - Move to '' 'Addons' → 'Discount Center' → 'Settings' '' to define which of your clients shall be considered '' 'new'. ''
 +
*'''Selected Clients Only''' - enumerate single '''clients''' or enter '''client groups''' names. All clients from this group will be given a discount.<br/><br/>
 +
 
 +
Additional Rules:
 +
*'''Recurring Discounts''' - enable discount for recurring orders. If you do not select this option, then discount will be applied only once with the first payment.<br/>
 +
** '''Recurring Billing Months''' -  If the above option is enabled, you also have to define the number of months that the discount will be applied to the invoice. You can also provide '''0''' value for lifetime discount.
 +
 
 +
* '''Require Promotion Code''' -  the discount will only apply if the selected WHMCS promotion code is entered during checkout.<br/> Select the required promo code from the dropdown list ''(codes must be pre-created in WHMCS to appear here)''. If set to "None," the discount will not require a code and will apply automatically.
 +
 
 +
* '''Promotion Code Restriction ''' - when enabled, this option disables the Discount Center discount if '''any''' WHMCS promotion code is used during checkout.<br/> If this option is turned off, the WHMCS promo code will be applied '''on top of''' the Discount Center discount ''(calculated from the already reduced price).''
 +
 
 +
* '''Discount Validity Period''' - If selected, you have to point the '''Start Date''' and '''Expiry Date''' of the promotion. This option is especially helpful when setting up sales like ''Cyber Monday'' or ''Black Friday.''<br/> It is usually clearly stated how long such sale shall last.
 +
 
 +
* '''Bundle Restriction''' - if enabled, the discount will not be applied for bundled offers.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 15px;"|
+
|style="padding: 0px 0px 30px 25px;"|[[File:DC2_24.png]]
*'''Active Services Quantity''' -  the discount takes account of the total number of ordered products and active services already owned by a client.<br/> The services have to be added in the 'Specified Products In Cart' section. 'Active Services Quantity' discount may apply to:<br/>
+
** the existing services of a recurring type - to its next billing cycle,
+
** the newly ordered services - to the first and subsequent invoices (if applicable).<br/>
+
 
|}
 
|}
 +
 +
====Usage Limits for Quantity Discounts====
 
{|
 
{|
|style="padding: 0px 0px 0px 25px;"|
+
|style="padding: 10px 0px 15px 15px;"|This section allows you to limit how many times a discount can be applied by a client, based on the criteria set below:
In  '' 'Thresholds' '' you set up the minimum number of client's active services which, together with products included in a new order, are taken into account by this application type.<br/> Specify a percentage value for each discount threshold, you can set up as many of them as you need by pressing '+' button.<br/>
+
  
For example:<br/>
+
* '''Global Discount Limits''' – defines the total number of products, addons, and domains that can receive this discount per client.<br/> This includes items with "Active", "Pending", or "Suspended" status, even if they were ordered earlier. Enter the maximum allowed quantity for all eligible items combined.
* The administrator sets a 10% discount valid when a number of active products amounts to 5. When a client who already owns 3 active services puts in a new order,<br/> only 2 additional products need to be added to the cart to activate this discount.<br/>
+
  
In case there are multiple discount levels configured, the module will adjust the discount to the highest tier possible. For instance:
+
* '''Discount Reuse Limits''' – controls how often the discount can be used by the same client within a specific time frame.
* The administrator formulates two rules: a 10% discount available when a number of active products amounts to 5 and a 15% discount valid if a quantity of active services equals 8.<br/>When a client owns 3 active services and purchases 5 new products, the module will switch the discount from 10% to 15%.<br/>
+
** '''Lock Duration''' – the duration during which the discount will be unavailable to the client after a single use.
 +
** '''Time Unit''' – choose whether the lock duration should be measured in days, weeks, or months.
  
What is more, if any of active services is terminated and a current number of active services is lower than the one set for the discount, the module removes the discount from all active products.<br/>
+
* '''Discounted Items in Cart''' – limits the number of discounted items per cart, per order. <br/>This applies only to the current cart contents and does not count previously ordered items (unlike "Global Discount Limits").
However, if there are multiple discount thresholds configured, then the module will downgrade the discount applied to the lower tier.<br/>
+
 
 +
<br/>Press '''Submit''' to confirm and create your new discount.
 
|}
 
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:DC2_25.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|Once saved, all configured quantity discounts will be listed with their status. You can enable/disable them, edit details, or delete them as needed using the available action buttons.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:DC2_26.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|Use the '''"$"''' button to update the pricing of assigned items. This button is only available for discounts with the '''Recurring Discount''' activation rule enabled. For other types of discounts, the button remains inactive.<br/>
  
 +
After clicking the button, a table will appear showing the related services. It includes the service ID, type (product, addon, or domain), as well as the old and new pricing values. <br/>Please note that this data will only be available if the service pricing has been changed in your WHMCS settings.<br/>
 +
 +
To apply the updated pricing, press '''Update'''. This will adjust the price of each eligible service to reflect the most current discount configuration.<br/>
 +
 +
This action is only available for services that:
 +
* have an active recurring discount,
 +
* have already been purchased,
 +
* had their base pricing changed after the original order.<br/>
 +
 +
If you prefer to update pricing individually for specific services, go to the '''Discounts → [[#Usage_History|Usage History]]''' section instead.
 +
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 25px;"|The process of increasing and decreasing of the discount levels also apply to unpaid invoices.<br/>If the customer has an unpaid invoice and the amount of active services has changed in the meantime, the amount on unpaid invoice will also be updated accordingly.<br/>
+
|style="padding: 0px 0px 30px 25px;"|[[File:DC2_26_0.png]]
 
|}
 
|}
 +
 +
===Early Payment Discounts===
 
{|
 
{|
|style="padding: 0px 0px 15px 25px;"|
+
|style="padding: 10px 0px 15px 15px;"|'' 'Early Payment Discounts' '' option allows creating and applying discounts to selected services when they are paid within defined time range.<br/>
When ready, press '' 'Next' '' to continue.
+
All you need to do is specify the number of days that the discount will be active since the invoice has been created.<br/> Look below to see how to configure such a discount exactly.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DC1_19_2.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:DC2_27.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|Finally, you are moved to '' 'Activation Rules'.''<br/>
+
|style="padding: 0px 0px 15px 15px;"|First of all, like in case of '' 'Standard Discounts' '' and '' 'Quantity Discount' '' decide whether to enable it on creation and enter the early discount name.<br/>
Here, you may decide which of your clients the discount should be entitled to purchase products with a discount.<br/>You may grant it to all of your clients and guests, offer it to new clients only or manually select desired usernames.<br/>It is also possible to enter client groups names here and offer discounts to bundles of clients.<br/>  
+
* '''Discount Duration''' - Enter the number of days that the early discount will remain active since the moment the invoice was created. This is an obligatory field.
Other options:
+
* '''Apply Discount to''' - Select which of the services will allow early payments with the discount, '' 'Products', 'Addons' '' and '' 'Domains' '' separately.  
*'' 'Recurring Discounts' '' - discount is applied to following payments as well
+
<br/>
*'' 'Multiple Quantity' '' - apply the discount to more than one product
+
'''''Note:''' Only services with '''recurring payment''' type setup are supported and visible in this section.''<br/>
*'' 'Promotion Code' '' - decide if you want to disable the discount if promotion code is used
+
'''''Important:''' Early payment's discount for recurring invoices is calculated based on the product pricing, not the service recurring amount.''
*'' 'Validity Period' '' - set up time frames
+
|}
*'' 'Bundle' '' - toggle to disable discount if product bundles are used<br/>
+
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:DC2_28.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|In '' 'Item Pricing' '' tab you can define the discount fixed amount or percentage for selected payments and currencies.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:DC2_29.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|'' 'Email Notifications' '' - set up reminders for clients to assure they are aware of the early payment benefits:
 +
* '''Notification Settings''' - select the email templates from the available ones that will be sent to clients when the invoice has been created.<br/> The other notification is sent on the day the discount expires.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:DC2_30.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|'''Discount Cancellation Reminders''' - select an email template that will be sent to clients just to remind about the early payment discount.<br/> Define the number of days before the cancellation date - it will be sent that day. You may specify here more than just one day.<br/>
 +
Remember to save the changes when the early payment discount configuration is ready.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:DC2_31.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:DC2_32.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|The just added Early Payment Discount is now visible on the list. As in case of other discount types, you may enable/disable it any moment, edit and delete.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:DC2_33.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|View of the discounted items on an invoice. Please note that the early payment discounts are presented with separate minus values.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:DC2_34.png]]
 +
|}
  
You can read more about these options and their functions [http://www.docs.modulesgarden.com/Discount_Center_For_WHMCS#Activation_Rules here]<br/>
+
====Email Templates====
Press '' 'Save Changes' '' to confirm creation of the new discount.
+
{|
 +
|style="padding: 10px 0px 15px 15px;"|There are three prepared custom email templates with basic information on the discounts:
 +
*''Discount Center - Early Payment Discount Created''
 +
*''Discount Center - Early Payment Discount Canceled''
 +
*''Discount Center - Early Payment Discount Notification''<br/>
 +
They are included in the module, once you install or update the module, they will appear in the ''System Settings → Email Templates → Invoice Messages'' section.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DC1_20.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:DC2_35.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|All available quantity discounts are now visible, with their name and status. You may always change the status to disabled/enabled, edit the discount or delete it.<br/>Use action buttons marked on the screen below to do so.
+
|style="padding: 0px 0px 20px 15px;"|Open an email template to see information included in the message.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:DC1_21.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:DC2_36.png]]
 
|}
 
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|You may edit the message, list of supported by module merge fields:
 +
''{$client_name}''
 +
''{$signature}''   
  
==Additional Options==
+
''{$invoice_num}''
===Settings===
+
''{$invoice_date_created}''
 +
''{$invoice_date_due''
 +
''{$invoice_total}''
 +
''{$invoice_balance}''
 +
''{$invoice_html_contents}''
 +
''{$invoice_link}''
 +
 
 +
''{$earlyPayment.name}''
 +
''{$earlyPayment.due_date}''
 +
''{$earlyPayment.period}''
 +
|}
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|Under '' 'Settings' '' tab you must define a few useful options.<br/>
+
|style="padding: 0px 0px 20px 15px;"|This is how an exemplary notification sent to a client may look.
*'''New Client Status - Number Of Days''' - set up the number of days a client will be considered '' 'New'. ''<br/>
+
|}
Such information is necessary when you select '' 'New - give promotion to new clients only' '' option as '' 'Activation Rule' '' for any of your set up discounts.<br/>If you enter for example 14, then, if this option is selected for any of the discounts, clients with accounts not older than 14 days can have the discount applied.
+
{|
*'''Hide Guide''' here if you are already familiar with its content or unselect to read it again.<br/>
+
|style="padding: 0px 0px 30px 25px;"|[[File:DC2_37.png]]
 +
|}
 +
 
 +
===Usage History===
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|The '''Discount Usages''' section lets you view, update, and manage discounts already applied to services (products, domains, or addons). <br/>This tool is especially useful when base pricing has changed in WHMCS after the original discount was applied.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:DC2_41.png]]
 +
|}
 +
 
 +
=====Updating Prices For Discounted Services=====
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|If the base price of a product is modified after a discount was used, the module allows you to recalculate the service’s price using the same discount logic.<br/> However, this action is only available if '''all services from the original discounted order are still active.'''<br/>
 +
 
 +
To update pricing:
 +
 
 +
# Navigate to the '''Discount Usages''' section.
 +
# Find the target service.
 +
# Click the '''$''' (Update Price) button.
 +
# A confirmation modal will show the current and recalculated price.
 +
# Confirm the update to apply the new price in WHMCS and log the change.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:DC2_42.png]]
 +
|}
 +
 
 +
=====Changing Applied Discounts=====
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|You can now change which discount is applied to a specific service without affecting its other configurations.<br/>
 +
 
 +
To update the assigned discount:
 +
 
 +
# Go to the '''Discount Usages''' section.
 +
# Click the '''Update Applied Discount''' icon next to the service.
 +
# In the modal window, select the new discount type (standard or quantity-based).
 +
# Choose the replacement discount rule from the dropdown.
 +
# Confirm to save the change.<br/>
 +
Only the discount reference and resulting service price are updated; no other settings or relations are modified.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:DC2_43.png]]
 +
|}
 +
 
 +
===== Bulk Updates from Discount List View =====
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|You can also use the '''$''' button from the main Standard or Quantity Discounts list view to bulk update all affected services under a given discount. <br/>This action scans for all services that:
 +
* Belong to active orders using the discount,
 +
* Have had their base price changed,
 +
* Qualify for recalculation.<br/>
 +
This way, you can apply consistent pricing updates across multiple services with a single action.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:DC2_44.png]]
 +
|}
 +
 
 +
==Settings==
 +
===General Settings===
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|Under the '' 'Settings' '' tab you must define a few useful options.<br/>
 +
*'''New Client Status - Number Of Days''' - set up the number of days a client will be considered '' 'New'. ''<br/> Such information is necessary when you select '' 'New - give promotion to new clients only' '' option as '' 'Activation Rule' '' for any of your setup discounts.<br/>If you enter, for example '''14''', then, if this option is selected for any of the discounts, clients with accounts not older than 14 days can have the discount applied.<br/> Note that providing '''0''' value will make discount applicable only for unregistered clients.
 +
 
 
*'''Autoapply Discounts''' - if checked, all newly created discounts will be enabled. You may change the status of a single discount manually.
 
*'''Autoapply Discounts''' - if checked, all newly created discounts will be enabled. You may change the status of a single discount manually.
*'''Order Form''' - define an order form if you are using a custom one
+
 
 +
*'''Order Form''' - define an order form if you are using a custom one.
 +
 
 +
*'''Hide Original Prices''' - select if you want only the final (discounted)  prices to be visible for clients.
 +
 
 +
*'''Order Note''' - decide if information about discounts should be saved in the order note.
 +
 
 +
*'''Hide Original Prices''' - enable this option if you want clients to see only the final discounted prices.
 +
 
 +
*'''Discounts on Upgrades/Downgrades''' - select if you want to add discounts to products that are being upgraded or downgraded
 +
 
 +
*'''Discount Label''' - enter a custom HTML label using variables: <code>{$oldPrice}</code>, <code>{$newPrice}</code>, <code>{$page}</code> and <code>{$showCrossedPrice}</code>. To adjust the appearance, modify the example as needed:
 +
<pre>
 +
{if $showCrossedPrice}<span class="discount_center-{$page}">{$oldPrice}</span> {/if}<span>{$newPrice}
 +
</pre>
 +
 
 +
The code responsible for formatting labels can be found in the '''discounts.css'' file, located at: ''modules/addons/DiscountCenter/storage/assets/discounts.css''
 +
 
 +
*'''Admin Area Discount''' - decide whether discounts should be applied to item prices when placing orders from the WHMCS admin area. <br/> '''''Important:''' Please note that when this option is enabled, the discount will be applied silently.<br/> You will not see crossed-out prices or any visual indication during the ordering process, as no dedicated integration code is used in the admin interface.<br/> The final price will be automatically adjusted at checkout.''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:DC_19.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:DC2_45.png]]
 
|}
 
|}
  
 
===Integration Code===
 
===Integration Code===
 
{|
 
{|
|style="padding: 10px 0px 20px 15px;"|There are two available variables that can be inserted into the order form template.<br/> These are:  
+
|style="padding: 10px 0px 20px 15px;"|A list of available variables that can be inserted into the order form template.<br/> These are:  
 
#''{$dc_product_price}'' - Variable that allows a full product price to be displayed
 
#''{$dc_product_price}'' - Variable that allows a full product price to be displayed
#''{$dc_product_discount_price}'' - Variable displaying discount product price.
+
#''{$dc_recurring_price}'' - Variable displaying full product recurring price
#''{$dc_product_setup_price}'' - Variable displaying full setup price.
+
#''{$dc_product_discount_price}'' - Variable displaying a discount product price
#''{$dc_product_setup_discount_price}'' - Variable displaying discount setup price.
+
#''{$dc_product_setup_discount_price}'' - Variable displaying a discount setup price
 +
#''{$dc_product_setup_price}'' - Variable displaying a full setup price
 
#''{$dc_addon_prices[$addon.name]}'' - Variable that allows a full addon price to be visible
 
#''{$dc_addon_prices[$addon.name]}'' - Variable that allows a full addon price to be visible
#''{$dc_total_discount_price}'' - Variable displaying total discount product price.
+
#''{$dc_total_discount_price}'' - Variable displaying total discount product price
 +
#''{$dc_hide_crossed_pricing}'' - Variable determining whether prices are to be crossed
  
 
Open the order form you are currently using, for example '' 'Modern', '' find '' 'ordersummary.tpl' '' file and enter the above variables as shown below:
 
Open the order form you are currently using, for example '' 'Modern', '' find '' 'ordersummary.tpl' '' file and enter the above variables as shown below:
Line 398: Line 825:
 
  <tr><td>+ {$addon.name}</td><td class="text-right"> VARIABLE FIVE </span>{/if} {$addon.recurring}</td></tr>
 
  <tr><td>+ {$addon.name}</td><td class="text-right"> VARIABLE FIVE </span>{/if} {$addon.recurring}</td></tr>
  
Please note that the below screen is just an example of variable usage, you may simply enter pure variable without any styles or change them according to your needs. <br/>Be careful when you change the code snippets. If you are not sure how to change it, then consult it firstly with a professional.
+
Please note that the below screen is just an example of variable usage; you may simply enter a pure variable without any styles or change them according to your needs. <br/>Be careful when you change the code snippets. If you are not sure how to change it, then consult a professional.
 
|}  
 
|}  
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DC1_23.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:DC2_46.png]]
 
|}
 
|}
 
{|
 
{|
Line 407: Line 834:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:DC_24.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:DC2_47.png]]
 
|}
 
|}
  
===Logs===
+
==Tools==
 +
===[https://www.docs.modulesgarden.com/Translations_Tool Translations]===
 
{|
 
{|
|style="padding: 10px 0px 20px 15px;"|In '' 'Logs' '' tab there are enumerated information on any orders that discounts were applied to. Invoice number, discount ID and value.
+
|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/>
|}  
+
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].
 +
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:DC_20.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:DC2_48.png]]
 
|}
 
|}
 +
 +
===Access Control===
 
{|
 
{|
|style="padding: 0px 0px 30px 15px;"|Clear all the entries or delete only some of them. Use buttons marked on the screen above.
+
|style="padding: 10px 0px 15px 15px;"|The '' 'Access Control' '' tool allows you to manage and restrict admin access to specific sections and features within the module.<br/> You can create rules to grant or deny access to resources, ensuring each team member has appropriate permissions.<br/> It also tracks admin activity through detailed logs, offering clear accountability. This tool is available in several WHMCS addons.<br/>
 +
For detailed instructions, refer to the dedicated article [https://www.docs.modulesgarden.com/Access_Control_Tool here].
 
|}
 
|}
===Dashboard===
 
 
{|
 
{|
|style="padding: 10px 0px 20px 15px;"|On the dashboard you can find '' 'Summary' '' table with detailed statistics on applied discounts with the most frequently used ones and the highest amount granted. <br/> Next to '' 'Summary' '' table, a chart can be found with number of discounts applied per specified period of time. You can display the chart per week, month or a year.
+
|style="padding: 0px 0px 30px 25px;"|[[File:DC2_49.png]]
|}  
+
|}
 +
 
 +
===[https://www.docs.modulesgarden.com/Logs Logs]===
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:DC_21.png]]
+
|style="padding: 10px 0px 15px 15px;"|The '' 'Logs' '' tool provides a structured way to track and manage module activity.<br/>
 +
It allows filtering logs by type, viewing detailed records, exporting data, and configuring automatic deletion rules. A bulk delete option is also available for easier management.<br/>
 +
 
 +
For detailed instructions on using this tool, refer to its dedicated article [https://www.docs.modulesgarden.com/Logs here].
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:DC2_50.png]]
 
|}
 
|}
  
===Documentation===
+
==Dashboard==
 +
 
 +
{|
 +
|style="padding: 10px 0px 20px 15px;"|The '''Dashboard''' offers a quick overview of your Discount Center module status. It includes useful performance metrics and a summary of available discount types.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:DC2_53.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|If you are just starting, a built-in configuration guide will walk you through the most important setup steps.<br/> Make sure you are familiar with the guide steps if you are a new user or return to the module after a while.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:DC2_51.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|You can hide the configuration guide at any time by going to '''Additional Actions → Settings'''.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:DC2_52.png]]
 +
|}
 +
 
 +
==Documentation==
 
{|
 
{|
 
|style="padding: 10px 0px 30px 15px;"|The very last tab '' 'Documentation' '' once clicked will redirect you to the article you are currently reading!  
 
|style="padding: 10px 0px 30px 15px;"|The very last tab '' 'Documentation' '' once clicked will redirect you to the article you are currently reading!  
 +
|}
 +
 +
 +
==Client Area Experience==
 +
{|
 +
|style="padding: 10px 0px 20px 15px;"|Discount Center integrates smoothly into the WHMCS client area, allowing customers to preview active discounts directly while placing orders.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:DC_54.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|The module also supports WHMCS domain pricing tables and can display discounted prices for selected TLDs, covering both domain registration and transfer.<br/>
 +
You can read more about the native WHMCS domain pricing feature [https://docs.whmcs.com/Domain_Pricing here].
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:DC2_55.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:DC2_56.png]]
 
|}
 
|}
  
 
=Tips=
 
=Tips=
 
{|
 
{|
|style="padding: 10px 0px 30px 15px;"|1. If a client adds to the cart a product that can have more than one discount applied, then a higher discount is applied on the invoice. <br/>
+
|style="padding: 10px 0px 10px 15px;"|1. If a client adds to the cart a product that can have more than one discount applied, then a higher discount is applied on the invoice.
2. If the 'Active Services Quantity' discount is used and statuses of services are switched manually without using 'Terminate' functionality (this action may be performed either manually or automatically by the system), the module will not take that action into account and thus will not remove the discount.
+
|}
 +
{|
 +
|style="padding: 0px 0px 5px 15px;"|2. If the 'Active Services Quantity' discount is used and statuses of services are switched manually without using 'Terminate' functionality (this action may be performed either manually or automatically by the system),<br/> the module will not take that action into account and thus will not remove the discount.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 15px;"|3. The Discount Center module supports the WHMCS "Monthly Pricing Breakdown" option which allows showing discounts for quarterly, semi-annual, annual, and biennial prices in the equivalent monthly price.<br/> You can read more about this option [https://docs.whmcs.com/Ordering_Tab#Monthly_Pricing_Breakdown here].
 +
|}
 +
 
 +
=Update Instructions=
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|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.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 15px;"|
 +
'''Before upgrading your WHMCS to version 8.9.0''', it is strongly recommended to perform the following steps:
 +
* '''Execute the following commands''', for instance, via phpMyAdmin;
 +
 
 +
  ALTER TABLE `disccent_EarlyPaymentRecurring` DROP FOREIGN KEY `disccent_EarlyPaymentRecurring_ibfk_1`;
 +
  ALTER TABLE `disccent_EarlyPaymentRecurring` DROP FOREIGN KEY `disccent_EarlyPaymentRecurring_ibfk_2`;
 +
  ALTER TABLE `disccent_EarlyPaymentRecurring` DROP FOREIGN KEY `disccent_EarlyPaymentRecurring_ibfk_3`;
 +
  ALTER TABLE `disccent_EarlyPaymentRecurring` DROP FOREIGN KEY `disccent_EarlyPaymentRecurring_ibfk_4`;
 +
 
 +
* Next, add the '''UNSIGNED''' attribute to the '''invoice_id''' column in the '''disccent_EarlyPaymentRecurring''' table.
 +
 
 +
* Finally, execute these commands '''after upgrading to version 8.9.0''':
 +
 
 +
  ALTER TABLE `disccent_EarlyPaymentRecurring` ADD FOREIGN KEY (invoice_id) REFERENCES tblinvoices(id) ON DELETE CASCADE;
 +
  ALTER TABLE `disccent_EarlyPaymentRecurring` ADD FOREIGN KEY (invoice_item_id) REFERENCES tblinvoiceitems(id) ON DELETE CASCADE;
 +
  ALTER TABLE `disccent_EarlyPaymentRecurring` ADD FOREIGN KEY (early_payment_id) REFERENCES disccent_EarlyPayment(id) ON DELETE CASCADE;
 +
  ALTER TABLE `disccent_EarlyPaymentRecurring` ADD FOREIGN KEY (early_payment_item_id) REFERENCES disccent_EarlyPaymentItems(id) ON DELETE CASCADE;
 +
 
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 15px;"|'''Updating Discount Center For WHMCS to Version 2.0'''<br/>
 +
If you are updating the module from version 1.x to 2.0, the migration process is '''fully automated'''. No additional steps are required beyond following the standard update procedure described [https://www.docs.modulesgarden.com/How_To_Update_WHMCS_Module here].<br/>
 +
 
 +
All of your current configuration will be retained after the update. Please note, however, that only the last 1,000 entries from the module logs will be migrated to the new version.
 +
|}
 +
 
 +
=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/discount-center#open-source-version Open Source version] of your Discount Center 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 does not block 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 0px 15px;"|2. The module is currently '''not''' compatible with:<br />
 +
 
 +
*'''[https://www.modulesgarden.com/products/whmcs/multibrand Multibrand For WHMCS]'''
 +
 
 +
*'''[https://www.modulesgarden.com/products/whmcs/payment-gateway-charges Payment Gateway Charges For WHMCS]'''
 +
 
 +
*'''[https://www.modulesgarden.com/products/whmcs/resellers-center Resellers Center For WHMCS]''' - Integration issues occur because each of the modules affects the product price in a different manner.<br/>
 +
 
 +
*'''[https://www.modulesgarden.com/products/whmcs/product-free-trial-manager Product Free Trial Manager For WHMCS]''' - Discounted prices are not displayed on product tiles in the client area when the Product Free Trial Manager for WHMCS module is active.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 15px;"|3. Currently, the configured discount limits are not calculated for product items with multiple quantities. Please do not impose "Limitations" on products with the "Multiple Quantity" option enabled.
 
|}
 
|}

Latest revision as of 15:01, 6 June 2025

Contents

[edit] About Discount Center For WHMCS

Discount Center For WHMCS module allows you to set up discounts for products ordered in a specified combination or quantity.
It will let you define discount rules, validity periods, and limitations as well as exclude certain clients from being offered price cuts or promote new customers only!

Achieve unprecedented sales success by leveraging the Discount Center For WHMCS and the Lagom One Step Order Form For WHMCS in tandem.

  • Admin Area:
✔ Create Multiple Discounts For Products, Domains And Product Addons
✔ Create Multiple Quantity Discounts With Thresholds For Products, Product Groups, Domains And Product Addons
✔ Create Early Payment Discounts
✔ Configure Module Settings:
✔ Define Length Of New Client Status
✔ Auto-Apply Newly Created Discounts
✔ Select Order Form Type
✔ Enable Order Notes
✔ Hide Original Prices
✔ Enable Product Upgrade/Downgrade Discounts
✔ Specify Custom HTML Discount Label
✔ Enable Applying Discounts On Admin Area Orders
✔ View Discount Summary And Their Usage Graph
✔ View Discounts Usage History
✔ Update Applied Discounts And Pricing
✔ Customize Module Language Files With "Translations" Tool
✔ Control Staff Access Level To Specific Resources With ACL
✔ View And Manage Logs
  • Client Area:
✔ View Before And After Discount Item Prices
✔ Build Your Own Discounted Product Bundle
  • Standard Discounts:
✔ Define Items To Apply Discount To:
✔ Offered Items In Store
✔ Required Items In Client Shopping Cart
✔ Active Items In Client Account
✔ Required Items' Billing Cycles
✔ Define Discounts For Chosen Items Per Billing Cycle:
✔ Percentage
✔ Fixed Amount
✔ Define Clients To Whom Discount Should Be Applied:
✔ All Clients And Guests
✔ New Clients
✔ Chosen Clients And Client Groups
✔ Define If Discount Should Be Applied One Time Or Recurring
✔ Define Time Period For Recurring Discount
✔ Enable Requirement Of Applied WHMCS Promotion Code
✔ Choose If Discount Should Be Applied When WHMCS Promotion Code Is Used
✔ Define Discount Validity Period
✔ Define If Discount Should Be Applied When Product Bundles Are Enabled
✔ Define Discounts Limitations:
✔ Total Number Of Products, Product Addons And Domains
✔ Restrict Time Period To Apply Discount After Single Usage
✔ Maximum Number Of Items In Cart
  • Quantity Discounts:
✔ Define Items To Apply Discount To:
✔ Offered Items In Store
✔ Required Items In Client Shopping Cart
✔ Active Items In Client Account
✔ Required Items' Billing Cycles
✔ Define Discounts For Chosen Items Per Billing Cycle:
✔ Percentage
✔ Fixed Amount
✔ Define Discount Type:
✔ Percentage
✔ Fixed Amount
✔ Define Items Required To Be In Shopping Cart To Apply Discount
✔ Define Items Required To Be Owned By Client To Apply Discount
✔ Define Multiple Promotion Thresholds And Discount Values
✔ Define Items To Be Summed Up And Compared With Thresholds
✔ Choose Type Of Discount Application:
✔ All Specified Items
✔ More Expensive Than Specified Value
✔ Less Expensive Than Specified Value
✔ Chosen Products/Addons/Domains
✔ Number Of Active Services
✔ Choose Clients To Which Discount Should Be Applied:
✔ All Clients And Guests
✔ New Clients
✔ Chosen Clients And Client Groups
✔ Define If Discount Is Of One Time Or Recurring Type
✔ Define Time Period For Recurring Discount
✔ Define If Products With 'Allow Multiple Quantities' Should Be Supported
✔ Define Whether To Count User Owned Services
✔ Enable Requirement Of Applied WHMCS Promotion Code
✔ Choose If Discount Should Be Applied When WHMCS Promotion Code Is Used
✔ Define If Discount Should Be Applied Along With Promotion Code
✔ Define Discount Validity Period
✔ Define If Discount Should Be Applied When Product Bundles Are Enabled
✔ Define Discounts Limitations:
✔ Total Number Of Products, Product Addons And Domains
✔ Maximum Number Of Items In Cart
✔ Restrict Time Period To Apply Discount After Single Usage
  • Early Payment Discounts:
✔ Define Number Of Days Of Discount Validity
✔ Define Items To Apply Discount To
✔ Define Discounts For Chosen Items Per Billing Cycle
✔ Define Email Notifications:
✔ On Invoice Creation
✔ On Discount Expiration
✔ Discount Cancelation Reminders With Defined Number Of Days Before Expiration
  • General Info:
✔ Integrated With Lagom One Step Order Form For WHMCS - Give Clients Instant Preview Of Discounted Prices While Completing The Order
✔ Recognizes Identity Of Not Logged In Client To Assign Discount Accordingly
✔ Updates Amount On Unpaid Invoices Dynamically When 'Active Services Quantity' Discount Is Used
✔ Supports Default And Custom Order Forms
✔ Multi-Language Support With Custom Translations Tool
✔ Supports PHP 8.3 Back To PHP 8.1
✔ Supports WHMCS Themes "Six", "Twenty-One" And "Lagom WHMCS Client Theme"
✔ Supports WHMCS V8.13 Back To WHMCS V8.10
✔ Requires ionCube Loader V14 Or Later
✔ Easy Module Upgrade To Open Source Version

[edit] Installation

This tutorial will show you how to successfully install and configure Discount Center 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.
DC2 1.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.

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

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

DC2 3.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'.

DC2 4.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 'Discount Center' and press the 'Activate' button.

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

To do so, click on the 'Configure' button, check required group of administrators and press 'Save Changes'.

DC2 6.png
8. You have just successfully installed Discount Center For WHMCS!

You can access your module under 'Addons' 'Discount Center'.

DC2 7.png

[edit] Configuration and Management

Discount Center For WHMCS has been created to help you vary your offer with personalized discounts that can be applied to chosen products and/or clients.
Configure advanced activation rules to make your offer the most attractive and competitive.

[edit] Configure Discounts

In order to configure your module properly, proceed to 'Addons' 'Discount Center' and start with setting up rules to offer attractive prices to your clients.

[edit] Standard Discounts Configuration

To start, move to the 'Standard Discounts' section. There, press the 'Add Discount' button.
DC2 9.png

[edit] General Configuration

You will now be taken to the General information section of the discount you are configuring. This is where you define which products the discount should apply to, as well as any additional requirements.

Enable the discount here if you want it to become active immediately after saving. You can also activate it later at any time.
Name the discount, enter its short description, and, most importantly, specify the eligible products and any related conditions.

DC2 9 1.png
  • Apply Discount To - select the products, addons, and/or domains this discount should be applied to.
    According to a specified rule, pointed here items' price will be adequately changed.
    Note: You must select at least one promotional product to be allowed to move to the next step.
  • Required Items in Cart - specify which additional items (products, addons, domains) must be in the client’s cart at checkout for the discount to apply.
    In case a client does not have all of the required products in the cart, the discount won't be applied.
  • Required Active Items - define which items (products, addons, domains) the client must already have active in their account to qualify for the discount.
    A client must already own and have them active. Only then can the discount be applied.
    All of the chosen products here are required. Please note that only active products are taken into consideration.
  • Required Billing Cycles - indicate which billing cycles must be selected (per product in "Apply Discount To") for the discount to be valid.
    The discount will be applied only if the items' billing cycle requirement is met.
    You may specify the required billing cycles for items in the cart. Every item in the cart must have one of the pointed here billing cycles.
    If an item in the cart is of a different billing cycle than pointed out here, the discount will not be applied. Leave this section blank if the billing cycle is not a demand for you.

Note: Only the "Apply Discount To" field is mandatory. All other fields are optional; leave them blank if you do not wish to enforce additional conditions.

Press 'Next' to continue.

DC2 10.png

[edit] Item Pricing

Under the Item Pricing section, you need to define specific discount values for each item included in the rule. To begin, click the plus icon next to the item you are going to configure.
Select the discount type and then enter the corresponding value.
  • Percentage - a percentage-based discount calculated from the item’s price.
  • Fixed Amount - a flat value that will be subtracted from the final price and/or setup fee.

As shown in the screen:

  • The original price is marked in red
  • Your entered discount value is in the middle field
  • The final, discounted price is marked in green

Please make sure to set up the pricing for every item available for discount, click Next to proceed when you are ready.

DC2 13.png

[edit] Activation Rules

Next, you are moved to activation rules. Here you may decide which of your clients should be entitled to purchase products with a discount.
You may grant it to:
  • All Clients - all of your clients and guests.
  • New Clients Only - Move to 'Addons' → 'Discount Center' → 'Settings' to define which of your clients shall be considered 'new'.
  • Selected Clients Only - enumerate single clients or enter client groups names. All clients from this group will be given a discount.

Additional Rules:

  • Recurring Discounts - enable discount for recurring orders. If you do not select this option, then discount will be applied only once with the first payment.
    • Recurring Billing Months - If the above option is enabled, you also have to define the number of months that the discount will be applied to the invoice. You can also provide 0 value for lifetime discount.
  • Require Promotion Code - the discount will only apply if the selected WHMCS promotion code is entered during checkout.
    Select the required promo code from the dropdown list (codes must be pre-created in WHMCS to appear here). If set to "None," the discount will not require a code and will apply automatically.
  • Promotion Code Restriction - when enabled, this option disables the Discount Center discount if any WHMCS promotion code is used during checkout.
    If this option is turned off, the WHMCS promo code will be applied on top of the Discount Center discount (calculated from the already reduced price).
  • Discount Validity Period - If selected, you have to point the Start Date and Expiry Date of the promotion. This option is especially helpful when setting up sales like Cyber Monday or Black Friday.
    It is usually clearly stated how long such sale shall last.
  • Bundle Restriction - if enabled, the discount will not be applied for bundled offers.
DC2 15.png

[edit] Usage Limits

This section allows you to limit how many times a discount can be applied by a client, based on the criteria set below:
  • Global Discount Limits - defines the total number of products, addons, and domains that can receive this discount per client.
    This includes items with "Active", "Pending", or "Suspended" status, even if they were ordered earlier. Enter the maximum allowed quantity for all eligible items combined.
  • Discount Reuse Limits - controls how often the discount can be used by the same client within a specific time frame.
    • Lock Duration - the duration during which the discount will be unavailable to the client after a single use.
    • Time Unit - choose whether the lock duration should be measured in days, weeks, or months.
  • Discounted Items in Cart – limits the number of discounted items per cart, per order.
    This applies only to the current cart contents and does not count previously ordered items (unlike "Global Discount Limits").

Press Submit to confirm and create your new discount.

DC2 16.png

[edit] Available Actions

All available discounts are now visible with their current status, name, and the number of assigned products, addons, or domains.

You can easily enable or disable any discount, check its start and end dates, or edit and delete it as needed.

DC2 17 0.png
Use the "$" button to update the pricing of assigned items. This button is only available for discounts with the Recurring Discount activation rule enabled. For other types of discounts, the button remains inactive.

After clicking the button, a table will appear showing the related services. It includes the service ID, type (product, addon, or domain), as well as the old and new pricing values.
Please note that this data will only be available if the service pricing has been changed in your WHMCS settings.

To apply the updated pricing, press Update. This will adjust the price of each eligible service to reflect the most current discount configuration.

This action is only available for services that:

  • have an active recurring discount,
  • have already been purchased,
  • had their base pricing changed after the original order.

If you prefer to update pricing individually for specific services, go to the Discounts → Usage History section instead.

DC2 17 1.png

[edit] Quantity Discounts

Quantity Discounts let you offer varying discounts based on how many eligible items a client adds to their cart. Click Add Discount to begin configuration.
DC2 18.png

[edit] General

In the General section, enter the discount name, enable it (if you'd like it active right after creation), and choose the discount type — either a Fixed Amount or a Percentage applied to product pricing and/or setup fee.

Next, define the scope and conditions:

  • Specified Items in Cart - choose products, domains, addons, or product groups. These items are counted and matched against the defined thresholds to determine which discount should be applied.
  • Discount Type - choose between a flat amount or a percentage-based reduction.
  • Required Active Items - specify which items a client must already have in their account (with Active status) to qualify for the discount.
  • Required Billing Cycles - the discount will only apply if the billing cycle selected for the items matches the cycles defined here.

Important: At least one item must be defined under Specified Items in Cart.

DC2 19.png

[edit] Discount Configuration

The Discount Configuration section defines how the discount will be applied to eligible items.
  • All Selected Products – apply the discount to all items listed in Specified Items in Cart.
  • Promotional Products Only – apply the discount only to specifically listed items (products, addons, domains).
  • Based On Active Services Count – the discount will depend on how many services a client already owns (with Active status), in combination with items being ordered.
  • If Price Is Higher Than – apply the discount only to items priced above the defined threshold.
  • If Price Is Lower Than – apply the discount only to items priced below the defined threshold.
DC2 20.png
Define Thresholds to apply different discount values depending on the quantity of eligible items in the cart. Each threshold consists of:
  • a minimum quantity
  • a corresponding discount value (percentage)

You can define multiple thresholds by clicking the + button.

DC2 22.png

[edit] Active Services Logic

When using the Based On Active Services Count method, the discount takes into account:
  • existing active recurring services (applies to their next renewal),
  • new services being purchased (applies to first and possibly future invoices).

Items listed in Specified Items in Cart must also be matched.

In the Thresholds section, define how many total active services are required for a discount tier. The module dynamically calculates totals by combining active services and current cart items.

For example:

  • A 10% discount is set for 5 active services. A client with 3 existing services only needs to add 2 more to their cart to qualify.
  • If the admin also sets a 15% discount at 8 services, and the same client adds 5 new items (3 existing + 5 new = 8), they’ll receive the higher 15% rate.

If any service is later terminated, the discount is re-evaluated:

  • If no longer valid for the current tier, the discount is either removed or downgraded to the next applicable level.

Discounts are also updated on unpaid invoices if the client’s service count changes in the meantime.

DC2 23.png

[edit] Activation Rules

Next, you are moved to activation rules. Here you may decide which of your clients should be entitled to purchase products with a discount.
You may grant it to:
  • All Clients - all of your clients and guests
  • New Clients Only - Move to 'Addons' → 'Discount Center' → 'Settings' to define which of your clients shall be considered 'new'.
  • Selected Clients Only - enumerate single clients or enter client groups names. All clients from this group will be given a discount.

Additional Rules:

  • Recurring Discounts - enable discount for recurring orders. If you do not select this option, then discount will be applied only once with the first payment.
    • Recurring Billing Months - If the above option is enabled, you also have to define the number of months that the discount will be applied to the invoice. You can also provide 0 value for lifetime discount.
  • Require Promotion Code - the discount will only apply if the selected WHMCS promotion code is entered during checkout.
    Select the required promo code from the dropdown list (codes must be pre-created in WHMCS to appear here). If set to "None," the discount will not require a code and will apply automatically.
  • Promotion Code Restriction - when enabled, this option disables the Discount Center discount if any WHMCS promotion code is used during checkout.
    If this option is turned off, the WHMCS promo code will be applied on top of the Discount Center discount (calculated from the already reduced price).
  • Discount Validity Period - If selected, you have to point the Start Date and Expiry Date of the promotion. This option is especially helpful when setting up sales like Cyber Monday or Black Friday.
    It is usually clearly stated how long such sale shall last.
  • Bundle Restriction - if enabled, the discount will not be applied for bundled offers.
DC2 24.png

[edit] Usage Limits for Quantity Discounts

This section allows you to limit how many times a discount can be applied by a client, based on the criteria set below:
  • Global Discount Limits – defines the total number of products, addons, and domains that can receive this discount per client.
    This includes items with "Active", "Pending", or "Suspended" status, even if they were ordered earlier. Enter the maximum allowed quantity for all eligible items combined.
  • Discount Reuse Limits – controls how often the discount can be used by the same client within a specific time frame.
    • Lock Duration – the duration during which the discount will be unavailable to the client after a single use.
    • Time Unit – choose whether the lock duration should be measured in days, weeks, or months.
  • Discounted Items in Cart – limits the number of discounted items per cart, per order.
    This applies only to the current cart contents and does not count previously ordered items (unlike "Global Discount Limits").


Press Submit to confirm and create your new discount.

DC2 25.png
Once saved, all configured quantity discounts will be listed with their status. You can enable/disable them, edit details, or delete them as needed using the available action buttons.
DC2 26.png
Use the "$" button to update the pricing of assigned items. This button is only available for discounts with the Recurring Discount activation rule enabled. For other types of discounts, the button remains inactive.

After clicking the button, a table will appear showing the related services. It includes the service ID, type (product, addon, or domain), as well as the old and new pricing values.
Please note that this data will only be available if the service pricing has been changed in your WHMCS settings.

To apply the updated pricing, press Update. This will adjust the price of each eligible service to reflect the most current discount configuration.

This action is only available for services that:

  • have an active recurring discount,
  • have already been purchased,
  • had their base pricing changed after the original order.

If you prefer to update pricing individually for specific services, go to the Discounts → Usage History section instead.

DC2 26 0.png

[edit] Early Payment Discounts

'Early Payment Discounts' option allows creating and applying discounts to selected services when they are paid within defined time range.

All you need to do is specify the number of days that the discount will be active since the invoice has been created.
Look below to see how to configure such a discount exactly.

DC2 27.png
First of all, like in case of 'Standard Discounts' and 'Quantity Discount' decide whether to enable it on creation and enter the early discount name.
  • Discount Duration - Enter the number of days that the early discount will remain active since the moment the invoice was created. This is an obligatory field.
  • Apply Discount to - Select which of the services will allow early payments with the discount, 'Products', 'Addons' and 'Domains' separately.


Note: Only services with recurring payment type setup are supported and visible in this section.
Important: Early payment's discount for recurring invoices is calculated based on the product pricing, not the service recurring amount.

DC2 28.png
In 'Item Pricing' tab you can define the discount fixed amount or percentage for selected payments and currencies.
DC2 29.png
'Email Notifications' - set up reminders for clients to assure they are aware of the early payment benefits:
  • Notification Settings - select the email templates from the available ones that will be sent to clients when the invoice has been created.
    The other notification is sent on the day the discount expires.
DC2 30.png
Discount Cancellation Reminders - select an email template that will be sent to clients just to remind about the early payment discount.
Define the number of days before the cancellation date - it will be sent that day. You may specify here more than just one day.

Remember to save the changes when the early payment discount configuration is ready.

DC2 31.png
DC2 32.png
The just added Early Payment Discount is now visible on the list. As in case of other discount types, you may enable/disable it any moment, edit and delete.
DC2 33.png
View of the discounted items on an invoice. Please note that the early payment discounts are presented with separate minus values.
DC2 34.png

[edit] Email Templates

There are three prepared custom email templates with basic information on the discounts:
  • Discount Center - Early Payment Discount Created
  • Discount Center - Early Payment Discount Canceled
  • Discount Center - Early Payment Discount Notification

They are included in the module, once you install or update the module, they will appear in the System Settings → Email Templates → Invoice Messages section.

DC2 35.png
Open an email template to see information included in the message.
DC2 36.png
You may edit the message, list of supported by module merge fields:

{$client_name} {$signature}

{$invoice_num} {$invoice_date_created} {$invoice_date_due {$invoice_total} {$invoice_balance} {$invoice_html_contents} {$invoice_link}

{$earlyPayment.name} {$earlyPayment.due_date} {$earlyPayment.period}

This is how an exemplary notification sent to a client may look.
DC2 37.png

[edit] Usage History

The Discount Usages section lets you view, update, and manage discounts already applied to services (products, domains, or addons).
This tool is especially useful when base pricing has changed in WHMCS after the original discount was applied.
DC2 41.png
[edit] Updating Prices For Discounted Services
If the base price of a product is modified after a discount was used, the module allows you to recalculate the service’s price using the same discount logic.
However, this action is only available if all services from the original discounted order are still active.

To update pricing:

  1. Navigate to the Discount Usages section.
  2. Find the target service.
  3. Click the $ (Update Price) button.
  4. A confirmation modal will show the current and recalculated price.
  5. Confirm the update to apply the new price in WHMCS and log the change.
DC2 42.png
[edit] Changing Applied Discounts
You can now change which discount is applied to a specific service without affecting its other configurations.

To update the assigned discount:

  1. Go to the Discount Usages section.
  2. Click the Update Applied Discount icon next to the service.
  3. In the modal window, select the new discount type (standard or quantity-based).
  4. Choose the replacement discount rule from the dropdown.
  5. Confirm to save the change.

Only the discount reference and resulting service price are updated; no other settings or relations are modified.

DC2 43.png
[edit] Bulk Updates from Discount List View
You can also use the $ button from the main Standard or Quantity Discounts list view to bulk update all affected services under a given discount.
This action scans for all services that:
  • Belong to active orders using the discount,
  • Have had their base price changed,
  • Qualify for recalculation.

This way, you can apply consistent pricing updates across multiple services with a single action.

DC2 44.png

[edit] Settings

[edit] General Settings

Under the 'Settings' tab you must define a few useful options.
  • New Client Status - Number Of Days - set up the number of days a client will be considered 'New'.
    Such information is necessary when you select 'New - give promotion to new clients only' option as 'Activation Rule' for any of your setup discounts.
    If you enter, for example 14, then, if this option is selected for any of the discounts, clients with accounts not older than 14 days can have the discount applied.
    Note that providing 0 value will make discount applicable only for unregistered clients.
  • Autoapply Discounts - if checked, all newly created discounts will be enabled. You may change the status of a single discount manually.
  • Order Form - define an order form if you are using a custom one.
  • Hide Original Prices - select if you want only the final (discounted) prices to be visible for clients.
  • Order Note - decide if information about discounts should be saved in the order note.
  • Hide Original Prices - enable this option if you want clients to see only the final discounted prices.
  • Discounts on Upgrades/Downgrades - select if you want to add discounts to products that are being upgraded or downgraded
  • Discount Label - enter a custom HTML label using variables: {$oldPrice}, {$newPrice}, {$page} and {$showCrossedPrice}. To adjust the appearance, modify the example as needed:
{if $showCrossedPrice}<span class="discount_center-{$page}">{$oldPrice}</span> {/if}<span>{$newPrice} 

The code responsible for formatting labels can be found in the 'discounts.css file, located at: modules/addons/DiscountCenter/storage/assets/discounts.css

  • Admin Area Discount - decide whether discounts should be applied to item prices when placing orders from the WHMCS admin area.
    Important: Please note that when this option is enabled, the discount will be applied silently.
    You will not see crossed-out prices or any visual indication during the ordering process, as no dedicated integration code is used in the admin interface.
    The final price will be automatically adjusted at checkout.
DC2 45.png

[edit] Integration Code

A list of available variables that can be inserted into the order form template.
These are:
  1. {$dc_product_price} - Variable that allows a full product price to be displayed
  2. {$dc_recurring_price} - Variable displaying full product recurring price
  3. {$dc_product_discount_price} - Variable displaying a discount product price
  4. {$dc_product_setup_discount_price} - Variable displaying a discount setup price
  5. {$dc_product_setup_price} - Variable displaying a full setup price
  6. {$dc_addon_prices[$addon.name]} - Variable that allows a full addon price to be visible
  7. {$dc_total_discount_price} - Variable displaying total discount product price
  8. {$dc_hide_crossed_pricing} - Variable determining whether prices are to be crossed

Open the order form you are currently using, for example 'Modern', find 'ordersummary.tpl' file and enter the above variables as shown below:

<tr><td>{$producttotals.productinfo.name}</td><td class="text-right"> VARIABLE ONE {$producttotals.pricing.baseprice}</td></tr>
<tr><td>+ {$addon.name}</td><td class="text-right"> VARIABLE FIVE </span>{/if} {$addon.recurring}</td></tr>

Please note that the below screen is just an example of variable usage; you may simply enter a pure variable without any styles or change them according to your needs.
Be careful when you change the code snippets. If you are not sure how to change it, then consult a professional.

DC2 46.png
If entered correctly, your order summary will include the discounts applied, with the new price counted and the final price visible in the order summary.
DC2 47.png

[edit] Tools

[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.

DC2 48.png

[edit] Access Control

The 'Access Control' tool allows you to manage and restrict admin access to specific sections and features within the module.
You can create rules to grant or deny access to resources, ensuring each team member has appropriate permissions.
It also tracks admin activity through detailed logs, offering clear accountability. This tool is available in several WHMCS addons.

For detailed instructions, refer to the dedicated article here.

DC2 49.png

[edit] Logs

The 'Logs' tool provides a structured way to track and manage module activity.

It allows filtering logs by type, viewing detailed records, exporting data, and configuring automatic deletion rules. A bulk delete option is also available for easier management.

For detailed instructions on using this tool, refer to its dedicated article here.

DC2 50.png

[edit] Dashboard

The Dashboard offers a quick overview of your Discount Center module status. It includes useful performance metrics and a summary of available discount types.
DC2 53.png
If you are just starting, a built-in configuration guide will walk you through the most important setup steps.
Make sure you are familiar with the guide steps if you are a new user or return to the module after a while.
DC2 51.png
You can hide the configuration guide at any time by going to Additional Actions → Settings.
DC2 52.png

[edit] Documentation

The very last tab 'Documentation' once clicked will redirect you to the article you are currently reading!


[edit] Client Area Experience

Discount Center integrates smoothly into the WHMCS client area, allowing customers to preview active discounts directly while placing orders.
DC 54.png
The module also supports WHMCS domain pricing tables and can display discounted prices for selected TLDs, covering both domain registration and transfer.

You can read more about the native WHMCS domain pricing feature here.

DC2 55.png
DC2 56.png

[edit] Tips

1. If a client adds to the cart a product that can have more than one discount applied, then a higher discount is applied on the invoice.
2. If the 'Active Services Quantity' discount is used and statuses of services are switched manually without using 'Terminate' functionality (this action may be performed either manually or automatically by the system),
the module will not take that action into account and thus will not remove the discount.
3. The Discount Center module supports the WHMCS "Monthly Pricing Breakdown" option which allows showing discounts for quarterly, semi-annual, annual, and biennial prices in the equivalent monthly price.
You can read more about this option here.

[edit] Update Instructions

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.

Before upgrading your WHMCS to version 8.9.0, it is strongly recommended to perform the following steps:

  • Execute the following commands, for instance, via phpMyAdmin;
 ALTER TABLE `disccent_EarlyPaymentRecurring` DROP FOREIGN KEY `disccent_EarlyPaymentRecurring_ibfk_1`;
 ALTER TABLE `disccent_EarlyPaymentRecurring` DROP FOREIGN KEY `disccent_EarlyPaymentRecurring_ibfk_2`;
 ALTER TABLE `disccent_EarlyPaymentRecurring` DROP FOREIGN KEY `disccent_EarlyPaymentRecurring_ibfk_3`;
 ALTER TABLE `disccent_EarlyPaymentRecurring` DROP FOREIGN KEY `disccent_EarlyPaymentRecurring_ibfk_4`;
  • Next, add the UNSIGNED attribute to the invoice_id column in the disccent_EarlyPaymentRecurring table.
  • Finally, execute these commands after upgrading to version 8.9.0:
 ALTER TABLE `disccent_EarlyPaymentRecurring` ADD FOREIGN KEY (invoice_id) REFERENCES tblinvoices(id) ON DELETE CASCADE;
 ALTER TABLE `disccent_EarlyPaymentRecurring` ADD FOREIGN KEY (invoice_item_id) REFERENCES tblinvoiceitems(id) ON DELETE CASCADE;
 ALTER TABLE `disccent_EarlyPaymentRecurring` ADD FOREIGN KEY (early_payment_id) REFERENCES disccent_EarlyPayment(id) ON DELETE CASCADE;
 ALTER TABLE `disccent_EarlyPaymentRecurring` ADD FOREIGN KEY (early_payment_item_id) REFERENCES disccent_EarlyPaymentItems(id) ON DELETE CASCADE;
Updating Discount Center For WHMCS to Version 2.0

If you are updating the module from version 1.x to 2.0, the migration process is fully automated. No additional steps are required beyond following the standard update procedure described here.

All of your current configuration will be retained after the update. Please note, however, that only the last 1,000 entries from the module logs will be migrated to the new version.

[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 Discount Center 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. The module is currently not compatible with:
  • Resellers Center For WHMCS - Integration issues occur because each of the modules affects the product price in a different manner.
3. Currently, the configured discount limits are not calculated for product items with multiple quantities. Please do not impose "Limitations" on products with the "Multiple Quantity" option enabled.
Navigation
WHMCS Modules
WHMCS Widgets
Tools And Applications
Translations
cPanel Modules
General
FAQ
Community
Discount Center For WHMCS