Skip to content
PDF

Discount codes ​

Discount codes give clients a percentage or fixed price reduction when they enter the code during online checkout. Codes are managed on the promotions page (Configurations > Promotions), on the Discounts tab. There is no editing dialog: the tab is an inline-editable table, and each row saves as soon as you change a field. For the client's side — entering the code in the online booking cart — see Promotions in online booking. Codes need the Promotions and Vouchers modules; see Promotions for all prerequisites.

Overview ​

Every code is one row in the table. Add discount adds a new row; fill in its fields directly in the table. There is no save button and no active/inactive switch — a code is live from the start and applies for as long as it is within its validity dates and limits. To pause a code, set Valid until to today's date. The only other lifecycle action is deleting it with the delete icon at the end of the row, which removes it immediately and without confirmation.

Editing requires the Configuration & settings right with Manage; without it the table is read-only. The Columns button in the table header adds audit columns showing who created or last changed a row, and when. The table does not show how often a code has been used so far.

ColumnWhat it does
CodeWhat clients type at checkout.
Valid from / Valid untilWhen the code can be redeemed.
Max usesHow many orders may use the code in total.
Max valueThe total amount the code may deduct across all orders.
Discount type / Discount value% percent or Fixed, and the size of the reduction.
SessionsWhich session resources the code covers; empty = the whole cart.
Client groupsWhich member groups may use the code; empty = everyone.

Code ​

Enter the Code clients will type at checkout. It is converted to capital letters automatically as you type, and clients may type it in any case. A code text can exist only once in your organisation — also after its row has been deleted — so a new campaign needs a new code text.

go flow never shows the code to clients on its own. Publish it yourself, for example in an announcement or an email.

Validity period ​

Valid from and Valid until bound when the code can be redeemed. Leave either date empty to leave that side open.

  • Valid from — the code works from 00:00 on that date.
  • Valid until — the code stops working at 00:00 on that date, so that date itself is no longer included. To let a code run through 31 October, choose 1 November.

Times are midnight in the time zone of the computer you picked the date on.

Usage limits ​

  • Max uses — how many orders may use the code in total. One order counts as one use, however many places it books. A use is counted when the order is paid, or confirmed without payment (for example when wallet credit or a voucher covers the rest). A cart that is abandoned does not count. Clients who are already checking out when the last use is taken still receive the reduction, so the limit can be exceeded by a few orders.
  • Max value — a cap on the total amount the code may deduct across all orders. The order that reaches the cap still receives its full reduction; after that the code stops applying.

Leave either field empty for no limit. Once Max uses is reached, the cart rejects the code with "Invalid voucher code"; Max value is only checked when the client checks out.

Discount type and value ​

Choose the Discount type — % percent or Fixed — and enter the Discount value.

  • % percent — that percentage of the amount the code covers. Enter a value between 1 and 100.
  • Fixed — that amount, deducted once per order (not per place), and never more than the amount the code covers.

How a code deducts ​

Sessions settingWhat the code reduces
Empty (unscoped)The whole cart: sessions, treatment appointments and products such as a gift voucher bought in the same cart.
Session resources selected (scoped)Only the places on sessions of the selected session resources. Treatment appointments and products are never covered.

The reduction is spread over the covered lines in proportion to their price. A gift voucher bought with an unscoped code carries the amount the client actually paid for it, not its list value — a CHF 100 voucher bought with a 20% code is worth CHF 80. Cancellation refunds are also based on the amount actually paid.

A client may enter several different codes in one cart; each is deducted in turn, a percentage from the amount that is left. How a code combines with an automatic early-bird or last-minute price depends on Allow discount stacking, see Combining discounts.

Clients can enter a code only in a cart that holds at least one session or treatment appointment; a cart with products only has no code field. Pay at the desk is not offered once a code is applied.

Codes limited to sessions. A code with Sessions set is accepted in the cart when the cart holds a place on a covered session; otherwise it is refused with "This code is not valid for the sessions in your cart". The cart shows the amount checkout will deduct: a percentage code limited to sessions appears as the amount off the covered places, not as a percentage of the whole cart. To reduce certain sessions automatically, without a code, use a pricing rule with Sessions set on the Pricing promotions tab.

Client groups ​

Client groups limits the code to clients in the selected groups; when empty, anyone can use it. The select is only available when your organisation has a Group membership field (see Client groups). A client in any one of the selected groups qualifies.

Membership is checked on the client record when the client checks out, not when the code is typed: the cart accepts the code for anyone and shows the reduction, and checkout then drops it for a client outside the groups, who is asked to pay the full price. Merely knowing the code does not make a client eligible. Check both an eligible and an ineligible client before making a members-only offer public — the test is described in Run a promotion or discount code.

Changing or ending a code ​

Every change applies to checkouts after the dashboard has synchronised it. Orders that are already paid or confirmed never change.

ChangeExisting bookings and ordersCarts in progress
Edit Discount type, Discount value, Sessions or Client groupsUnchangedCheckout uses the new values.
Change the Code textUnchangedThe old text no longer matches; a client who added it gets no reduction at checkout.
Valid until passed, or a limit reachedUnchangedNo reduction at checkout.
Delete the rowUnchanged; the order keeps its discountNo reduction at checkout. The code text stays reserved.

In every "no reduction at checkout" case the cart and the order summary may still show the reduction the client saw when they entered the code; the amount on the payment page and on the receipt is what counts. In Orders, a code's reduction appears in Discount total.