Overview
Price Lists let you set custom pricing for your courses and materials, then share that pricing with specific clients or students through Coupons. Together, they give you precise control over who pays what — whether you're offering a corporate discount, a bulk rate, or a partner markup.
Available for: Service Provider Admins
How Price Lists Work
A Price List is a named set of pricing rules that adjust your standard course and material prices — either up (markup) or down (discount). Once you've created a Price List, you attach Coupons to it so students or clients can access those prices at checkout.
The three-step process:
Create a Price List — define the pricing adjustment (e.g., 10% discount) and which products it applies to
Add a Coupon — give the price list a shareable code or URL
Share with users — send the coupon code or link; Hovn applies the pricing automatically at checkout
Part 1: Price Lists
What You Can Do
Set a default price adjustment that applies to all (or selected) courses and materials
Choose from four adjustment types: percentage discount, dollar discount, percentage markup, or dollar markup
Override the default adjustment for individual products with custom pricing
Apply the list automatically to all current and future courses and/or materials
Archive a price list when it is no longer needed
Creating a Price List
Navigate to Price Lists in your admin sidebar, then click + Price List.
Step 1: Internal Name and Description
Internal Name (required) — A label for your reference only. Students and clients never see this. Example: Acme Dental Pricing or Corporate Client Discount.
Internal Description (optional) — Add notes about the purpose and usage of this list. Useful when you manage multiple lists for different clients.
Step 2: Default Price Adjustment
Every product in the list uses this adjustment unless you override it per product. Choose an Adjustment Type and enter the Price Adjustment value.
Adjustment Type | What it does | Example |
Discount Percentage | Reduces the price by a percentage | 10% off → a $100 course costs $90 |
Discount Amount | Reduces the price by a fixed dollar amount | $15 off → a $100 course costs $85 |
Markup Percentage | Increases the price by a percentage | 20% markup → a $100 course costs $120 |
Markup Amount | Increases the price by a fixed dollar amount | $25 markup → a $100 course costs $125 |
Tip: Discounts are used most often for client-specific pricing. Markups are useful when reselling or billing a client organization at a different rate.
Step 3: Product Selection
Decide which products the default adjustment applies to automatically:
Apply to all Courses — When turned on, every course (existing and new) in your catalog uses this price adjustment automatically. You don't need to add courses one by one.
Apply to all Materials — Same behavior for materials.
Important: If you leave both toggles off, the price list will have no products in it until you manually add them one by one from the Products tab. In most cases, turning on "Apply to all Courses" is the easiest setup.
Click Save to create the price list. You'll be taken directly to the Coupons tab.
Managing Products
The Products tab shows every course and material that has a price entry in this price list.
If "Apply to all Courses" is enabled, all your courses appear here automatically with their calculated final prices.
You can add individual products to set a custom price override that is different from the default adjustment.
Adding or Overriding a Product Price
Click + Add Product (or the edit icon next to an existing product) to open the product pricing dialog.
Product Type — Select Course or Material. Note: if "Apply to all Courses" is already on, you cannot manually add a course (it's already included). Use this to add individual materials or set overrides.
Select Course / Material — Choose from your catalog.
Base Price — Automatically populated from the course or material's standard price. You cannot edit this directly.
Price Adjustment Type — Choose the adjustment method for this specific product (can be different from the list default).
Price Adjustment — Enter the amount.
Final Price — Calculated automatically. Review this before saving.
Click Save to apply the custom price.
How overrides work: A product-level price always takes priority over the default price list adjustment. For example, if your list has a 10% discount but you set a specific course to a 20% discount, that course uses 20%.
Removing a Product
Click the trash icon next to any product in the table to remove it from the price list. This does not delete the course or material — it only removes its custom pricing entry from this list.
Archiving a Price List
When a price list is no longer needed, go to the Edit tab and scroll to the bottom. Click Archive [Price List Name] and confirm.
What archiving does:
The price list and all its coupons become inactive
Any coupon codes linked to this list will no longer work at checkout
The price list cannot be edited once archived
Archived price lists are hidden from the active list but are not deleted
Important: This action cannot be undone. Make sure you notify anyone who has shared the coupon links before archiving.
Part 2: Coupons
What Is a Coupon?
A Coupon is the key that unlocks a specific Price List for a student at checkout. Each coupon has a unique code and a matching URL that automatically applies the pricing.
Students can access the discounted pricing in two ways:
Enter the coupon code manually during checkout
Use the coupon URL link you share with them — pricing is applied automatically
Creating a Coupon
Navigate to a Price List and click the Coupons tab. Click + Coupon to open the creation form.
Fields explained:
Field | Description |
Internal Name | Your label for this coupon — not visible to students. E.g., Acme Dental Annual Promo |
Internal Description | Optional notes for your team about this coupon's purpose |
Code | The text code students enter at checkout (e.g., |
URL | Auto-generated from the code. Share this link to apply the coupon automatically. Copy it with the copy icon. |
Effective Date | The date the coupon becomes active. Defaults to today. |
Expiration Date | Optional. Leave blank for no expiration. Must be on or after the effective date. |
Payment Responsibility | Who pays at checkout when this coupon is used (see below). |
Client | Optional. Link this coupon to a specific client for reporting. |
Restrict Discovery Catalog | Optional. Limits courses visible to students. |
Payment Responsibility
The Payment Responsibility setting controls who pays when a student uses this coupon.
Student Pays
The student checks out normally and pays directly at checkout. The price list pricing applies (e.g., the discounted price). This is the most common setting.
Use this when:
Offering a discount to individual students
Running a promotional code campaign
Giving a client's employees a discount they pay themselves
Client Pays (coming soon — currently not selectable in UI)
An order is created and assigned to the client account. The client receives an invoice and is billed separately. Students complete their training without paying upfront.
Use this when:
A company is paying for their employees' training
You have a billing relationship with the organization, not the individual
Note: When "Client Pays" is selected, you must choose a specific client from the Client dropdown. When "Student Pays" is selected, the Client field is optional — linking a client is for reporting purposes only.
Coupon Status
A coupon can be in one of three states:
Status | Meaning |
Active | Effective date has passed and it has not expired. Students can use it now. |
Inactive | The effective date is in the future. The coupon exists but cannot be used yet. |
Expired | The expiration date has passed. The coupon code no longer works. |
Sharing a Coupon
There are two ways to give students access to the special pricing:
Option 1: Share the Coupon Code
Copy the code (e.g.,
ACME-DENTAL-2025) and send it to students via email, SMS, etc.Students enter the code at checkout on the booking/session page.
Option 2: Share the Coupon URL
Click the link/copy icon next to the URL field in the coupon form, or the link icon in the coupons table.
The URL looks like:
https://hovn.app/your-slug?coupon=ACME-DENTAL-2025When a student opens this URL, the coupon is applied automatically — they don't need to type anything.
Best practice: The URL link is easier for students because it removes the manual entry step. Use it whenever you're sharing via email or a digital channel.
Limit the course catalog with a coupon (Restrict Discovery Catalog)
By default, a coupon changes pricing but visitors can still browse your full course catalog. Turn on Restrict Discovery Catalog on a coupon when only certain courses should appear—for example, a client's employees should only see courses on that price list.
When the toggle is on: Visitors and students who apply the coupon only see courses on that coupon’s price list.
When the toggle is off: The full catalog stays visible; the coupon still applies at checkout where the price list applies.
Learn more about setting up a coupon with restricted discovery enabled. Read the article: Limit Course Catalog with a Coupon in the Help Center
Learn more about What visitors and students see when a coupon link is used in the Help Center.
Example Use Cases
Scenario 1: Corporate Client Discount
Your client Acme Dental wants all their employees to get 15% off CPR classes.
Create a Price List: Acme Dental Pricing, 15% Discount Percentage, Apply to all Courses: ON
Create a Coupon: code
ACME2025, no expiration, Payment Responsibility: Student Pays, Client: Acme DentalShare the coupon URL with Acme Dental's HR contact
Employees click the link and book at the discounted rate
Scenario 2: Seasonal Promotional Code
You want to run a back-to-school promotion: $10 off all courses in September.
Create a Price List: Back to School Promo, $10 Discount Amount, Apply to all Courses: ON
Create a Coupon: code
SCHOOL25, Effective Date: Sept 1, Expiration Date: Sept 30, Payment Responsibility: Student PaysAnnounce the code on your website or email newsletter
The coupon automatically expires on October 1
Scenario 3: Client Pricing
A healthcare staffing agency sends you students and expects to pay a flat $5 less per person per course.
Create a Price List: Healthcare Staffing Discount, $5 Discount Amount, Apply to all Courses: ON
Create a Coupon: code
HCSTAFF, no expiration, Payment Responsibility: Student PaysShare the link with the client's coordinator
All bookings using this coupon are attributed to the staffing agency client in your reports
Scenario 4: Client catalog and external billing
Acme Dental employees should only see agreed courses, register for open sessions at no charge, and Acme is billed outside Hovn:
Create a price list named "Acme Dental" with Apply to all Courses
offOn the Products tab, add only Acme-eligible courses and materials; set pricing to 100% off where appropriate
Create coupon ACME100 with
Student Pays(untilClient Paysis available)Assign the
Clientfield to Acme Dental for reportingTurn Restrict Discovery Catalog
onShare the coupon URL from the coupon form
Track orders under Price Lists → [list] → Orders and invoice Acme outside Hovn
Limitations
What you CAN do:
Create multiple price lists for different clients or promotions (e.g. Back to School Promo is one price list for each year you create a coupon code SCHOOL25, SCHOOL26 etc.)
Have multiple coupons per price list (useful for tracking different groups e.g. Nursing Department vs. Physician Group)
Mix product-level overrides with a list-wide default adjustment
Link a coupon to a client for reporting without requiring the client to pay
What you CANNOT do:
Use a price list without a coupon — coupons are always required for students to access the custom pricing
Edit a price list that has been archived
Create two coupons with the same code (codes must be unique within your account)
Set a coupon expiration date before its effective date
Troubleshooting
Coupon code isn't working at checkout
Coupon code isn't working at checkout
Check the status — go to the Coupons tab and verify the coupon shows as "Active" (not Inactive or Expired)
Check effective date — if the effective date is in the future, the coupon is not yet usable
Check the price list — make sure the price list is not archived
Check the code spelling — codes are uppercase and hyphenated; share via URL link to avoid typos
Student is seeing full price, not the discounted price
Student is seeing full price, not the discounted price
Confirm the student used the coupon code or URL before checkout
Check whether the course has a product-level override in the price list that sets a different price
Verify "Apply to all Courses" is turned on in the price list, or that the specific course has been manually added to the Products tab
I accidentally archived a price list
I accidentally archived a price list
Archived price lists cannot be unarchived. You will need to create a new price list with the same settings and issue new coupon codes. Notify anyone who had the old coupon URL that it is no longer active.







