JoomCourses includes a full coupon and discount system for running promotions, offering partner discounts, or providing special pricing.
How Coupons Work
The coupon system has two levels:
- Coupon Types — Templates that define the rules for a group of coupons (discount amount, validity, restrictions)
- Coupons — Individual coupon codes generated from a coupon type that users can redeem
Think of a coupon type as the "recipe" and individual coupons as the "instances" distributed to customers.
Coupon Types
Creating a Coupon Type
- Go to Components > JoomCourses > Coupon Types.
- Click New in the toolbar.
- Fill in the coupon type details:
| Field | Description |
|---|---|
| Title | A name for this coupon type (e.g., "Summer 2026 Early Bird") |
| Discount Type | How the discount is calculated (see below) |
| Valid From | Start date when coupons of this type become active |
| Valid Until | End date when coupons of this type expire |
| VAT Rate | VAT rate to apply to the discounted price |
| Number Mask | A pattern for auto-generating coupon codes (e.g., SUMMER-####) |
| Published | Whether this coupon type is active |
- Click Save.
Discount Types
JoomCourses supports three discount calculation methods:
| Type | Description | Example |
|---|---|---|
| Percentage | Reduces the price by a percentage | 20% off = a $100 course costs $80 |
| By Value | Subtracts a fixed amount from the price | $25 off = a $100 course costs $75 |
| Set Value | Sets the final price to a specific amount | Set to $50 = the course costs $50 regardless of original price |
Setting Discount Amounts
After creating a coupon type, configure the discount amount:
- Discount Amount — The percentage or fixed value of the discount
- Currency — The currency for fixed-amount discounts
You can set different discount amounts for different currencies if needed.
Restricting Coupons to Specific Courses
To limit a coupon type to certain courses only:
- Edit the coupon type.
- In the course restrictions section, select which courses this coupon applies to.
- If no courses are selected, the coupon applies to all courses.
Restricting Coupons to Specific Users
To create exclusive coupons for certain users:
- Edit the coupon type.
- In the user restrictions section, select which users can redeem this coupon.
- If no users are selected, anyone can use the coupon.
Coupons (Individual Codes)
Viewing Coupons
Go to Components > JoomCourses > Coupons to see all coupon codes.
The list shows:
- Coupon code (number)
- Title
- Coupon type
- Discount amount
- Valid dates
- Status (active, used, expired)
- Published/applied dates
Batch Generating Coupons
The most efficient way to create coupons is to generate them in bulk:
- Go to Components > JoomCourses > Coupons.
- Click Generate in the toolbar.
- Select:
- Coupon Type — Which coupon type template to use
- Amount — How many coupon codes to generate
- Click Generate.
- The system will create the specified number of coupons with unique codes based on the coupon type's number mask.
For example, if your number mask is SUMMER-####, generated codes might be SUMMER-0001, SUMMER-0002, etc.
Creating Individual Coupons
You can also create coupons one at a time:
- Go to Coupons and click New.
- Fill in:
- Coupon Type — Select the parent coupon type
- Number — The unique coupon code
- Title — Optional friendly name
- Valid From / Until — Override the coupon type's validity dates
- Discount Amount — Override the coupon type's discount
- Save the coupon.
Coupon Statuses
| Status | Meaning |
|---|---|
| Published | The coupon is active and can be redeemed |
| Unpublished | The coupon is deactivated |
| Used/Applied | The coupon has been redeemed by a user |
How Users Redeem Coupons
During the checkout process:
- The user adds a course to their cart.
- In the cart, they enter the coupon code in the Coupon Code field (if the coupon field is enabled in settings).
- They click Apply or Submit Coupon.
- The system validates the coupon:
- Is the code valid?
- Is the coupon within its validity dates?
- Does it apply to the courses in the cart?
- Is it restricted to a specific user?
- If valid, the discount is applied and the cart total is recalculated.
- A confirmation message shows the coupon is active, including the discount amount.
Adding Coupons to Existing Bookings
Administrators can apply coupons to applications after they've been created:
- Go to Applications and open the application.
- Click Add Coupon in the toolbar.
- Enter the coupon code.
- The pricing is recalculated with the discount applied.
This is useful when a customer contacts support with a coupon code after completing their booking.
Tracking Coupon Usage
From the coupons list, you can see:
- Which coupons have been used and when
- The user who redeemed each coupon
- The discount amount that was applied
- The associated application/transaction
Showing or Hiding the Coupon Field
To control whether the coupon code input appears during checkout:
- Go to Configuration > Cart.
- Set Show Coupon to Yes or No.
When set to No, the coupon input field is hidden from the checkout page. Administrators can still apply coupons from the backend.
Tips
- Set expiration dates on coupon types to create time-limited promotions.
- Use number masks for easy identification (e.g.,
PARTNER-####,VIP-####,EARLY-####). - Restrict by course for course-specific promotions rather than site-wide discounts.
- Restrict by user for loyalty rewards or partner-exclusive pricing.
- Generate in bulk when distributing codes at events or through marketing campaigns.