Discount Center For WHMCS
(→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 [ | + | |
{| | {| | ||
− | |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 | + | |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 | + | *'''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 | + | |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;"|✔ | + | |style="padding: 0px 0px 0px 30px;"|✔ Create Early Payment Discounts |
|} | |} | ||
{| | {| | ||
− | |style="padding: 0px 0px | + | |style="padding: 0px 0px 0px 30px;"|✔ Configure Module Settings: |
|} | |} | ||
− | *'''Client Area | + | {| |
+ | |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 | + | *'''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 | + | |style="padding: 0px 0px 0px 45px;"|✔ Offered Items In Store |
|} | |} | ||
{| | {| | ||
− | |style="padding: 0px 0px 0px | + | |style="padding: 0px 0px 0px 45px;"|✔ Required Items In Client Shopping Cart |
|} | |} | ||
{| | {| | ||
− | |style="padding: 0px 0px 0px 30px;"|✔ Define Items | + | |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 | + | |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 | + | |style="padding: 0px 0px 0px 30px;"|✔ Define If Discount Should Be Applied When Product Bundles Are Enabled |
|} | |} | ||
− | |||
{| | {| | ||
− | |style="padding: | + | |style="padding: 0px 0px 0px 30px;"|✔ Define Discounts Limitations: |
|} | |} | ||
{| | {| | ||
− | |style="padding: 0px 0px 0px 30px;"|✔ Define Items To Be | + | |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 | + | |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 | + | |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;"|✔ | + | |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 | + | |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;"|✔ | + | |style="padding: 0px 0px 0px 30px;"|✔ Multi-Language Support With Custom Translations Tool |
|} | |} | ||
{| | {| | ||
− | |style="padding: 0px 0px 0px 30px;"|✔ Supports | + | |style="padding: 0px 0px 0px 30px;"|✔ Supports PHP 8.3 Back To PHP 8.1 |
|} | |} | ||
{| | {| | ||
− | |style="padding: 0px 0px | + | |style="padding: 0px 0px 0px 30px;"|✔ Supports WHMCS Themes "Six", "Twenty-One" And "Lagom WHMCS Client Theme" |
|} | |} | ||
− | |||
− | |||
{| | {| | ||
− | |style="padding: | + | |style="padding: 0px 0px 0px 30px;"|✔ Supports WHMCS V8.13 Back To WHMCS V8.10 |
− | + | ||
|} | |} | ||
{| | {| | ||
− | |style="padding: 0px 0px | + | |style="padding: 0px 0px 0px 30px;"|✔ Requires ionCube Loader V14 Or Later |
|} | |} | ||
{| | {| | ||
− | |style="padding: 0px 0px | + | |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 | + | |style="padding: 0px 0px 20px 15px;"|'''1. Log in to our client area and download the module.''' |
− | + | ||
|} | |} | ||
{| | {| | ||
− | |style="padding: 0px 0px 20px 25px;"|[[File: | + | |style="padding: 0px 0px 20px 25px;"|[[File:DC2_1.png]] |
|} | |} | ||
{| | {| | ||
− | |style="padding: 0px 0px 15px 15px;"|'''3. Extract the | + | |style="padding: 0px 0px 15px 15px;"|'''3. Extract the package and upload its content into the main WHMCS directory. <br/> |
− | The content of | + | The content of the package to upload should look like this. |
|} | |} | ||
{| | {| | ||
− | |style="padding: 0px 0px 20px 25px;"|[[File: | + | |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/> |
− | + | 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: | + | |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 | + | 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: | + | |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 '' ' | + | 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: | + | |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: | + | |style="padding: 0px 0px 20px 25px;"|[[File:DC2_6.png]] |
|} | |} | ||
{| | {| | ||
Line 199: | Line 359: | ||
|} | |} | ||
{| | {| | ||
− | |style="padding: 0px 0px 30px 25px;"|[[File: | + | |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 | + | |style="padding: 10px 0px 20px 15px;"|To start, move to the '' 'Standard Discounts' '' section. There, press the '' 'Add Discount' '' button. |
|} | |} | ||
{| | {| | ||
− | |style="padding: 0px 0px | + | |style="padding: 0px 0px 30px 25px;"|[[File:DC2_9.png]] |
|} | |} | ||
+ | ====General Configuration==== | ||
{| | {| | ||
− | |style="padding: | + | |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/> |
− | + | 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, | + | 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: | + | |style="padding: 0px 0px 20px 25px;"|[[File:DC2_9_1.png]] |
|} | |} | ||
{| | {| | ||
− | |style="padding: 0px 0px 15px 15px;"| | + | |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 | + | |style="padding: 0px 0px 30px 25px;"|[[File:DC2_10.png]] |
|} | |} | ||
+ | |||
+ | ====Item Pricing==== | ||
{| | {| | ||
− | |style="padding: 0px | + | |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. |
− | + | ||
− | + | ||
|} | |} | ||
{| | {| | ||
− | |style="padding: 0px 0px 30px 25px;"|[[File: | + | |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]] | ||
|} | |} | ||
− | ==== | + | ====Activation Rules==== |
{| | {| | ||
− | |style="padding: 10px 0px | + | |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 | + | |style="padding: 0px 0px 30px 25px;"|[[File:DC2_15.png]] |
|} | |} | ||
+ | |||
+ | ====Usage Limits==== | ||
{| | {| | ||
− | |style="padding: | + | |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 '' ' | + | |
+ | * '''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: | + | |style="padding: 0px 0px 30px 25px;"|[[File:DC2_16.png]] |
|} | |} | ||
− | ==== | + | |
+ | ====Available Actions==== | ||
{| | {| | ||
− | |style="padding: 10px 0px | + | |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/> |
− | + | You can easily '''enable or disable''' any discount, check its '''start and end dates''', or '''edit''' and '''delete''' it as needed. | |
− | + | ||
− | + | ||
− | ''' | + | |
− | + | ||
− | + | ||
|} | |} | ||
{| | {| | ||
− | |style="padding: 0px 0px 20px 25px;"|[[File: | + | |style="padding: 0px 0px 20px 25px;"|[[File:DC2_17_0.png]] |
|} | |} | ||
{| | {| | ||
− | |style="padding: 0px 0px 15px 15px;"| | + | |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: | + | |style="padding: 0px 0px 30px 25px;"|[[File:DC2_17_1.png]] |
|} | |} | ||
===Quantity Discounts=== | ===Quantity Discounts=== | ||
{| | {| | ||
− | |style="padding: 10px 0px 20px 15px;"|'' 'Quantity Discounts' '' | + | |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 | + | |style="padding: 0px 0px 30px 25px;"|[[File:DC2_18.png]] |
|} | |} | ||
+ | |||
+ | ====General==== | ||
{| | {| | ||
− | |style="padding: | + | |style="padding: 10px 0px 15px 15px;"| |
− | *'''Specified | + | 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. |
− | '' | + | |
− | *'''Required | + | 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'''. | ||
|} | |} | ||
{| | {| | ||
− | |style="padding: 0px 0px | + | |style="padding: 0px 0px 30px 25px;"|[[File:DC2_19.png]] |
|} | |} | ||
+ | |||
+ | ====Discount Configuration==== | ||
{| | {| | ||
− | |style="padding: | + | |style="padding: 10px 0px 15px 15px;"|The '''Discount Configuration''' section defines how the discount will be applied to eligible items. |
− | *''' | + | |
− | *'''If Price Is Lower Than''' | + | * '''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: | + | |style="padding: 0px 0px 20px 25px;"|[[File:DC2_20.png]] |
|} | |} | ||
{| | {| | ||
− | |style="padding: 0px 0px | + | |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: |
− | + | ||
+ | * a minimum quantity | ||
+ | * a corresponding discount value (percentage) | ||
+ | |||
+ | You can define multiple thresholds by clicking the '''+''' button. | ||
|} | |} | ||
{| | {| | ||
− | |style="padding: 0px 0px | + | |style="padding: 0px 0px 30px 25px;"|[[File:DC2_22.png]] |
|} | |} | ||
+ | |||
+ | ====Active Services Logic==== | ||
{| | {| | ||
− | |style="padding: | + | |style="padding: 10px 0px 15px 25px;"|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. | ||
|} | |} | ||
{| | {| | ||
− | |style="padding: 0px 0px | + | |style="padding: 0px 0px 20px 25px;"|[[File:DC2_23.png]] |
|} | |} | ||
+ | |||
+ | ====Activation Rules==== | ||
{| | {| | ||
− | |style="padding: 0px | + | |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 | + | |style="padding: 0px 0px 30px 25px;"|[[File:DC2_24.png]] |
− | + | ||
− | + | ||
− | + | ||
|} | |} | ||
+ | |||
+ | ====Usage Limits for Quantity Discounts==== | ||
{| | {| | ||
− | |style="padding: 0px | + | |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: |
− | + | ||
− | + | * '''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 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 | + | |style="padding: 0px 0px 30px 25px;"|[[File:DC2_26_0.png]] |
|} | |} | ||
+ | |||
+ | ===Early Payment Discounts=== | ||
{| | {| | ||
− | |style="padding: | + | |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/> |
− | + | 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: | + | |style="padding: 0px 0px 20px 25px;"|[[File:DC2_27.png]] |
|} | |} | ||
{| | {| | ||
− | |style="padding: 0px 0px 15px 15px;"| | + | |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/> |
− | + | * '''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. | |
− | + | <br/> | |
− | + | '''''Note:''' Only services with '''recurring payment''' type setup are supported and visible in this section.''<br/> | |
− | + | '''''Important:''' Early payment's discount for recurring invoices is calculated based on the product pricing, not the service recurring amount.'' | |
− | *'' ' | + | |} |
− | + | {| | |
+ | |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]] | ||
+ | |} | ||
− | + | ====Email Templates==== | |
− | + | {| | |
+ | |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: | + | |style="padding: 0px 0px 20px 25px;"|[[File:DC2_35.png]] |
|} | |} | ||
{| | {| | ||
− | |style="padding: 0px 0px 20px 15px;"| | + | |style="padding: 0px 0px 20px 15px;"|Open an email template to see information included in the message. |
|} | |} | ||
{| | {| | ||
− | |style="padding: 0px 0px | + | |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}'' | ||
− | + | ''{$invoice_num}'' | |
− | + | ''{$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 | + | {| |
− | + | |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: | + | |style="padding: 0px 0px 30px 25px;"|[[File:DC2_45.png]] |
|} | |} | ||
===Integration Code=== | ===Integration Code=== | ||
{| | {| | ||
− | |style="padding: 10px 0px 20px 15px;"| | + | |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_discount_price}'' - Variable displaying a discount product 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 | + | 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: | + | |style="padding: 0px 0px 20px 25px;"|[[File:DC2_46.png]] |
|} | |} | ||
{| | {| | ||
Line 407: | Line 834: | ||
|} | |} | ||
{| | {| | ||
− | |style="padding: 0px 0px 30px 25px;"|[[File: | + | |style="padding: 0px 0px 30px 25px;"|[[File:DC2_47.png]] |
|} | |} | ||
− | === | + | ==Tools== |
+ | ===[https://www.docs.modulesgarden.com/Translations_Tool Translations]=== | ||
{| | {| | ||
− | |style="padding: 10px 0px | + | |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 | + | |style="padding: 0px 0px 30px 25px;"|[[File:DC2_48.png]] |
|} | |} | ||
+ | |||
+ | ===Access Control=== | ||
{| | {| | ||
− | |style="padding: 0px | + | |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]. | ||
|} | |} | ||
− | |||
{| | {| | ||
− | |style="padding: | + | |style="padding: 0px 0px 30px 25px;"|[[File:DC2_49.png]] |
− | |} | + | |} |
+ | |||
+ | ===[https://www.docs.modulesgarden.com/Logs Logs]=== | ||
{| | {| | ||
− | |style="padding: 0px 0px 30px 25px;"|[[File: | + | |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]] | ||
|} | |} | ||
− | === | + | ==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 | + | |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 | + | |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. |
![]() |
3. Extract the package and upload its content into the main WHMCS directory. The content of the package to upload should look like this. |
![]() |
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'. |
![]() |
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'. |
![]() |
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. |
![]() |
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'. |
![]() |
8. You have just successfully installed Discount Center For WHMCS! You can access your module under 'Addons' → 'Discount Center'. |
![]() |
[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. |
![]() |
[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. |
![]() |
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. |
![]() |
[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.
As shown in the screen:
Please make sure to set up the pricing for every item available for discount, click Next to proceed when you are ready. |
![]() |
[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:
Additional Rules:
|
![]() |
[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:
Press Submit to confirm and create your new discount. |
![]() |
[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. |
![]() |
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. 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:
If you prefer to update pricing individually for specific services, go to the Discounts → Usage History section instead. |
![]() |
[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. |
![]() |
[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:
Important: At least one item must be defined under Specified Items in Cart. |
![]() |
[edit] Discount Configuration
The Discount Configuration section defines how the discount will be applied to eligible items.
|
![]() |
Define Thresholds to apply different discount values depending on the quantity of eligible items in the cart. Each threshold consists of:
You can define multiple thresholds by clicking the + button. |
![]() |
[edit] Active Services Logic
When using the Based On Active Services Count method, the discount takes into account:
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:
If any service is later terminated, the discount is re-evaluated:
Discounts are also updated on unpaid invoices if the client’s service count changes in the meantime. |
![]() |
[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:
Additional Rules:
|
![]() |
[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:
|
![]() |
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. |
![]() |
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. 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:
If you prefer to update pricing individually for specific services, go to the Discounts → Usage History section instead. |
![]() |
[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. |
![]() |
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.
|
![]() |
In 'Item Pricing' tab you can define the discount fixed amount or percentage for selected payments and currencies. |
![]() |
'Email Notifications' - set up reminders for clients to assure they are aware of the early payment benefits:
|
![]() |
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. |
![]() |
![]() |
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. |
![]() |
View of the discounted items on an invoice. Please note that the early payment discounts are presented with separate minus values. |
![]() |
[edit] Email Templates
There are three prepared custom email templates with basic information on the discounts:
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. |
![]() |
Open an email template to see information included in the message. |
![]() |
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. |
![]() |
[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. |
![]() |
[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:
|
![]() |
[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:
Only the discount reference and resulting service price are updated; no other settings or relations are modified. |
![]() |
[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:
This way, you can apply consistent pricing updates across multiple services with a single action. |
![]() |
[edit] Settings
[edit] General Settings
Under the 'Settings' tab you must define a few useful options.
{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
|
![]() |
[edit] Integration Code
A list of available variables that can be inserted into the order form template. These are:
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. |
![]() |
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. |
![]() |
[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. |
![]() |
[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. |
![]() |
[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. |
![]() |
[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. |
![]() |
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. |
![]() |
You can hide the configuration guide at any time by going to Additional Actions → Settings. |
![]() |
[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. |
![]() |
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. |
![]() |
![]() |
[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:
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`;
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. 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:
|
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. |