Promotions add discounts to your products, product addons, and domains. For example, you can offer one-time, limited, or recurring discounts, percentage or monetary discounts, price overrides, free setup, free trials, or incentives for new customers.

You can access this feature at Configuration () > System Settings > Promotions

Create a Promotion

  • You can also click Create Custom Promo when you create an order at Orders > Add New Order to specify a custom promotion code that the system will automatically create and apply.
  • Press Ctrl+Click to select multiple entries.

To create a new promotion:

  1. Click Add New.

  2. Enter a promotion code. This is the code that customers will need to enter on the order form to receive the discount.

  3. Choose one of the four promotion types:

    • Percentage — Discount by a percentage of the original price (for example, 25% Off discounts).
    • Fixed Amount — Discount a specified amount from the original price (for example, $5 Off discounts).
    • Price Override — Changes the product price to this value. Use this to offer a consistent discount across multiple billing cycles.
    • Free Setup — Discount any setup fee from the original price.
  4. If you want the discount to apply to every invoice for the service, check Recurring.

    Do not check Recurring if you only want the promotion to apply to the initial purchase.
  5. If you checked Recurring, enter a number of times for the promotion to recur for Set Recur For.

    • This number is in addition to the initial invoice (for example, if you enter 1 the customer will receive the discount on their initial invoice and on the first renewal).
    • The system calculates this by counting the number of invoice line items that have occurred for the service. After that number of invoice line items have occurred, the service reverts to the standard price and no longer uses the promotion code. However, deleting invoices that include this line item will not extend the promotion.
    • Increasing the Set Recur For value will extend the promotion for all services that currently use it.
  6. For Value, enter the amount of the discount up to two decimals.

    If you selected Fixed Amount, make certain that you enter this value in your base currency. For example, if you base currency is USD, entering 100 for Value will result in a $100 discount.
  7. For Applies To, select the products, addons, and domain TLDs that the promotion applies to.

  8. For Requires, select the billing cycles or registration periods that the discount requires. Clients cannot apply the promotion to the shopping cart until it contains all of the required items.

    • Make certain that you select the correct billing cycles of registration periods to match the products’ configuration.
    • You can use this, for example, to offer Buy X Get Y Half Price promotions.
    • Check Also allow existing products in account to quality for promotion to include active products that the client has already purchased when it checks whether the cart meets these requirements. If you do not check this, the customer must purchase the required item in the same order in order to receive the discount.
  9. Optionally, set the start and expiration dates. If you use one or both of these settings, the coupon will only start working after the start date and will stop working at expiration.

  10. If you want to limit the number of times to give the promotion to customers, enter that number in Maximum Uses.

  • This limits the total number of times that the system will allow use of the promotion, not the number of times per customer.
  • The total number of times that the system has already applied the promotion displays below this setting.
  • To allow unlimited use, enter 0.
  1. Use the following checkboxes to specify who can use the promotion:
  • Lifetime Promotion — The client will retain this discount even if they upgrade or downgrade their service in future, regardless of settings like maximum uses or expiration dates.
  • Apply Once — If the client orders multiple qualifying products, the system only applies the discount once.
  • New Signups — Only new clients can use the promotion.
  • Apply Once / Client — If a client has an existing active order that uses this promotion, they will not be able to use the code a second time.
  • Existing Client — Only existing clients with one or more active orders can use the promotion.
  • Upgrades/Downgrades – Allow the client to use the promotion with upgrades and downgrades. After you enable this, select an Upgrade Type option:
    • If you select Products/Services, you can use Type, Recurring, and Value to specify the discount value and promotion length. The client will receive the promotional discount when they place an order upgrading from a product that you select for Requires to a product that you selected for Applies To.
    • If you select Configurable Options, you can use Upgrade Discount to specify the discount value as a percentage or fixed value for the configurable options. Then, select the configurable option that the discount applies to for Config Options.
      If you use Type, Recurring, and Value, the system will apply a discount to the parent product and the configurable option. Leave this blank to only apply the discount to the configurable option.
  1. For Admin Notes, add information that admins may need about the promotion.

Expire a Promotion

When you create a promotion, you can specify an expiry date. If you want an existing promotion code to become invalid before this date, click Expire Now.

Duplicate a Promotion

You can create a copy of any promotion by clicking Duplicate Promotion. This is particularly useful for quickly running a successful promotion again or providing a personalised promotion code to a client.

You can give your customers links that will automatically apply a promotion code to their order if it applies. For example, you could append either of these examples to your WHMCS URL to offer the TEST promotion:

cart.php?promocode=TEST OR cart.php?a=add&pid=1&promocode=TEST

Using the first link, the user can choose the package they want. With the second, they will go directly to step 2 of the order process with product ID 1 selected.

Applying Promotions

Promotion codes change the First Payment Amount value when a customer or admin uses the code while ordering. It does not change the Recurring Amount value. If it did automatically update the recurring amount, this would prevent admins from manually updating the Recurring Amount value when a promotion code was in use.

Instead, the system uses the promotion code to discount the Recurring Amount automatically on renewal invoices.

Manually Apply a Promotion to an Existing Service

WHMCS allows you to manually add a promotion code to an existing service when you view it in the Products/Services tab in the client’s profile.

To do this:

  1. Click Promotion Code.
  2. Select the promotion to apply to the service.
  3. Click Save Changes.
  4. Update the Recurring Amount value using one of the following methods:
    1. Manually calculate the amount to charge the customer, enter it in Recurring Amount, and click Save Changes.
    2. Select Auto Recalculate on Save and click Save Changes. WHMCS will apply the promotion code discount to the current pricing and set Recurring Amount to the resulting value.
      You must use one of these methods to update the Recurring Amount value. Selecting a promotion code by itself will not change the invoice amount.

Promotion Codes on Invoices

When a service uses a promotion code, WHMCS alters how it displays on renewal invoices. WHMCS will generate one invoice item that displays the sum of the Recurring Amount value and the discount amount and a second invoice item that displays the discount amount.

For example, if you apply a 50% discount promotion code to a service with a Recurring Amount value of 10.00, the system will generate the following invoice items when the service renews:

Invoice Item for Service Renewal: 20.00
Promotion Code (50% Off): -10.00
Invoice Total: 10.00

If you had this same service with no promotion code, then the system would generate the following invoice items upon renewal instead:

Invoice Item for Service Renewal: 10.00
Invoice Total: 10.00

Both invoices result in a charge of 10.00, but one shows the client that they are paying this price because of a promotion code.

If you want to provide the client with a discount but not create a promotion code invoice item, do not use a promotion code. Instead, manually specify a Price Override value when creating the order or modify the Recurring Amount value for existing services.

Promotions and Metric Billing

When the system applies a recurring promotion to a service that uses metric billing, the discount only applies to the cost of the base product.

Any usage (metric) charge that the recurring invoice includes will not receive the promotion or discount.

Last modified: June 14, 2024