Discount Center For WHMCS
Contents
|
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 |
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'. |
![]() |
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. |
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. |
Standard Discounts Configuration
To start, move to the 'Standard Discounts' section. There, press the 'Add Discount' button. |
![]() |
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. |
![]() |
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. |
![]() |
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:
|
![]() |
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. |
![]() |
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. |
![]() |
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. |
![]() |
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. |
![]() |
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. |
![]() |
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. |
![]() |
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:
|
![]() |
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. |
![]() |
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. |
![]() |
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. |
![]() |
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. |
![]() |
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:
|
![]() |
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. |
![]() |
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. |
![]() |
Settings
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
|
![]() |
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. |
![]() |
Tools
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. |
![]() |
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. |
![]() |
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. |
![]() |
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. |
![]() |
Documentation
The very last tab 'Documentation' once clicked will redirect you to the article you are currently reading! |
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. |
![]() |
![]() |
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 Breakedown" 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. |
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; |
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. |
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. |