Skip to main content

Documentation Index

Fetch the complete documentation index at: https://sailia-mintlify-docs-reorg-1776565301.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

Discount codes let you offer fixed-amount or percentage-based discounts on bookings, shop products, activity passes, memberships, and add-ons. You control how many times a code can be used, which products it applies to, and whether it stacks with other discounts.
Managing discount codes requires the Financial Dashboard permission. Staff members with this permission can create, edit, and deactivate discount codes alongside other financial tools like payouts, receipts, and instalment plans.

Discount types

TypeDescription
FixedA flat monetary amount off the price (e.g. £5 off)
PercentageA percentage off the price (e.g. 20% off)
Both types also support tiered discounts, where the discount amount changes based on the number of items booked. For example, you could offer £5 off for 3 or more bookings and £10 off for 5 or more. A discount code uses either a single flat amount or a tiered structure — not both.

Create a discount code

When creating a discount code, you configure the following:
SettingDescription
CodeThe text customers enter at checkout (e.g. SUMMER20). Not required for auto-applied discounts.
TypeFixed amount or percentage
AmountThe discount value — a currency amount for fixed discounts, or a percentage for percentage discounts
DescriptionAn optional label shown to customers
Auto-applyWhen enabled, the discount is applied automatically without entering a code
StackableWhen enabled, this discount can be combined with other discounts in the same basket

Product eligibility

Control which product types the discount applies to:
  • Activities — courses, hires, and other bookable activities
  • Shop products — items sold through your shop
  • Add-ons — optional extras added to bookings
  • Activity passes — prepaid pass bundles
  • Memberships — recurring membership plans
You can further restrict a discount to specific items within each product type. For example, you could create a code that only applies to certain activities or specific shop products.
Auto-apply discounts only support activities and memberships. When you enable auto-apply, the other product types (shop products, add-ons, and activity passes) are not available for selection.

Usage limits

Usage limits control how many times a discount code can be redeemed. Each item in a basket that receives the discount counts as one usage.
Usage is counted per item, not per basket. A customer who applies a discount code to a basket with 3 activity passes uses 3 of the available limit — not 1.

Limit types

You can combine multiple limits on a single discount code:
LimitDescription
UsageA global cap on total redemptions across all customers
Max usages per familyThe maximum number of times a single family or customer account can use the code
Purchase dateThe code can only be used on purchases made within a start and end date
SurgeThe code is only valid within a certain number of days before an activity starts
Early birdThe code is only valid when booked at least a certain number of days before the activity starts
Activity date rangeThe code only applies to activities that take place within a specified date range
Min clientsA minimum number of clients must be registered on an activity
Same item quantityThe basket must contain a minimum quantity of the same item
Total items quantityThe basket must contain a minimum total number of items
Previous purchaseThe customer must have previously purchased the same activity
Activity combinationAll specified activities must be present in the basket

Surge and early bird

These limits both control when a discount can be used relative to an activity’s start date, but in opposite directions:
  • Surge — valid only within a specified number of days before the activity starts. Use for last-minute deals to fill remaining spots.
  • Early bird — valid only when the booking is made at least a specified number of days before the activity starts. Use to reward advance bookings.
For example, an early bird limit of 30 days means customers must book at least 30 days ahead. A surge limit of 7 days means the discount only applies in the final 7 days.
Both limits only apply to activity-based products (courses and hires). For non-activity products like shop items or memberships, the limit is ignored and the discount applies normally.

Activity date range

Restrict a discount so it only applies to activities scheduled within a specific date window. Unlike the purchase date limit — which controls when the code can be used — the activity date range checks the actual date the activity takes place. You can configure the range in four modes:
ModeBehavior
OnThe activity must take place on a specific date
BeforeThe activity must take place before a given date
AfterThe activity must take place after a given date
BetweenThe activity must take place within a start and end date
The activity date range limit only applies to activity-based products. For non-activity products, the limit is ignored.

Activity combination

Restrict a discount so it only applies when a customer’s basket contains all of a specified set of activities. Use this for bundle promotions. For example, a 10% discount that requires both “Kayaking” and “Paddleboarding” in the same basket. If either is missing, the discount does not apply. To configure:
  1. Open the discount code and navigate to the activity redemption limits
  2. Add an Activity combination limit
  3. Select all the activities that must be present in the basket
The activity combination limit only applies to activity-based products and is not available for auto-apply discount codes.

How usage counting works

When a customer checks out, each basket item that uses the discount increments the usage count by the item’s quantity:
  • 1 swimming lesson using the discount = 1 usage
  • 3 activity passes using the discount = 3 usages
  • 2 different items each using the discount = 2 usages
This per-item counting applies to both the global usage limit and the per-family usage limit.
Usage counts are validated in real time as items are added to the basket, so customers see an error immediately if a code has reached its limit.

Partially applied discounts

When a usage limit is close to being exhausted, the discount applies to as many items as the remaining limit allows rather than failing entirely. For example, if a code has a global limit of 10 and 8 are used, a customer adding 5 items receives the discount on 2 of the 5 — the remaining available usages. This works with both discount types:
  • Fixed — the per-item amount is applied only to the qualifying items.
  • Percentage — the percentage is prorated based on the number of qualifying items.
Partial application recalculates automatically when item quantities change.
Partial application only affects usage-based limits (global and per-family). All other limit types are all-or-nothing: the discount either applies to every qualifying item or none.

Membership discounts

Discount codes can be linked to a specific membership as a benefit. Membership-linked discounts are always auto-applied and stackable — members receive the discount automatically at checkout. For membership discounts, you can configure how long the associated Stripe coupon lasts:
  • Forever — the discount applies for the entire membership duration
  • Time-limited — the discount applies for a specified number of months

Stacking behavior

When stackable is enabled, a discount code can be combined with other discounts in the same basket. When disabled, only one non-stackable discount can be applied at a time. Membership-linked discounts are always stackable, so members can combine their membership benefit with a promotional code (if that code is also stackable).

Filtering discounts

The discounts table includes filter tabs to narrow the list by application type:
TabShows
AllEvery active discount code
Apply with codeDiscounts redeemed by entering a code at checkout
Auto-applyDiscounts applied automatically without a code
Each tab displays a count of matching discounts.

Deactivating a discount code

You can deactivate a discount code at any time. Deactivating a code:
  • Prevents it from being applied to new baskets
  • Cleans up any associated Stripe coupon (for membership discounts)
  • Does not affect baskets where the code was already applied

Memberships

Set up membership-linked discounts and recurring plans.

Activity passes

Sell prepaid session bundles to your customers.

Gift cards

Sell and redeem stored-value gift cards alongside discount codes.