
Setting up discount reasons
- Go to Settings > Discounts
- Click Add reason
- Enter:
- Name - A descriptive label (e.g. “Team discount”, “Goodwill”, “First Visit”)
- Type - Choose Percentage (e.g. 20% off) or Fixed amount (e.g. 15.00 off, in your currency)
- Value - The discount amount or percentage
- Review the change summary, then click Apply
How discounts work
Team members can apply discounts at two levels:Per-line discount
Apply a discount to one row of a bill. Each service or product row in the checkout or edit view has an Add discount link - click it to select a preset reason or create an ad-hoc discount on the spot. Product rows on a sale with no appointment work the same way.- Available in both Edit and Checkout modes
- Applied discounts appear as an amber pill on the row showing the reason and amount
- Rows can each have their own discount
- On a service row the discount applies to the base service price only - add-ons are not discounted per line, consistent with membership benefits and package coverage (see Service Add-ons)
- On a product row the base is the whole line: the unit price times the quantity, so three units at 30 each discount against 90
- Either way the discount is clamped to what is left on the row once any coverage already sitting on it has come off
Appointment-level discount
Apply a discount to the entire appointment total, after any per-line discounts. Select a reason from the Discount dropdown in the checkout or edit panel.- Available in both Edit and Checkout modes
- In Edit mode, the discount is saved as a pending adjustment and automatically applied when the appointment is checked out
- Calculated on the remaining total after per-line discounts, loyalty rewards, and package deductions
Ad-hoc discounts
Don’t have a preset that fits? Click Add discount at the bottom of the reason list to enter a one-off value:- Choose Percentage or Fixed amount and enter the value
- Optionally type a Name - if left blank, the discount is labelled “Discount” on the receipt
- Toggle Save as reason for future use to add it as a permanent preset
How they stack
Per-line and appointment-level discounts stack naturally:- Package credits cover specific services first
- Membership benefits discount specific services and products
- Per-line manual discounts reduce individual rows (clamped to what is left on the row)
- Appointment-level discount reduces the remaining total
- Gift card covers whatever remains
Bundles are covered - by service, not as an object. A discount or promo code scopes to specific services or all services (and, for products, specific or all products) - never to a bundle as a single object. When a scoped service is booked as part of a bundle, the discount reaches that service’s matching component line inside the bundle and discounts it there; the bundle’s other lines are unaffected. Scope the discount to the bundle’s component services, or apply it to all services, to cover a bundle. As everywhere, the discount applies to the base service price only - add-on charges are not discounted per line (see Service Add-ons); an appointment-level discount reduces the remaining total, which does include add-ons.
Promo codes
Promo codes are discount reasons with a code. Clients enter the code when they book online, in your online shop or when they buy a gift card, and your team enters it at checkout.Creating a promo code
- Go to Settings > Discounts
- Add a new reason or edit an existing one
- Toggle This is a promo code on
- Enter:
- Code - The code clients will enter (e.g. SUMMER25). Automatically converted to uppercase.
- Applies to - What the code discounts. Switch on any mix of Services, Products and Gift cards; at least one stays on. New codes start with Services and Products on.
- Which services - Shown when Services is on. Leave it on All services, or pick Specific services and choose the ones the code can discount. A bundle is covered through the services it includes.
- Which products - Shown when Products is on. Leave it on All products, or pick Specific products and choose the ones the code can discount, at the till and in the online shop.
- Start date - Optional. The first day the code works. Set a sale code up ahead and it starts working on the day by itself.
- Expiry date - Optional. The last day the code works. Both dates are whole days in your business’s timezone: a code from 27 to 30 November works from the start of 27 November until the end of 30 November.
- Max uses - Optional. Total number of times the code can be redeemed across all clients.
- Limit to one use per client - When ticked, each client can use the code once.
- Hide from the discount picker at checkout, code entry only - When enabled, the code doesn’t appear in the discount picker your team uses at checkout. Clients (or your team) must type the code to use it.
- Review the change summary, then click Apply
What “Applies to” means
Applies to decides which of an order’s items a code can discount. It is about the ITEMS, not about where the code is typed:
Switch on more than one and the code discounts each of them.
A code is only refused when the order in front of it holds nothing it can discount. So a Products code works on a mixed appointment bill and in the online shop, but not on a booking with no products; a Services code cannot be used in the product shop, and a code without Gift cards cannot be used on a gift card.
Worked example - a haircut at $100 and a shampoo at $30, with a 20% code:
Each list limits its own side. Which services shows when Services is on and Which products when Products is on, so a code with both on can cover, say, your brow services plus two serums and nothing else. A list left on All covers every item on that side. Gift cards has no list: it covers every gift card, whether it’s for an amount, a service or a bundle.
What’s never discounted by a promo code: service add-ons, custom items, appointment fees, and package or membership purchases. That matches how memberships and packages already cover services, and it applies to every “Applies to” choice. A service at an off-peak price never carries a code on top either: online, the client gets whichever is cheaper, the off-peak price or the normal price with the code.
How clients use promo codes
During online booking, clients open Gift card or promo code on the Review & book step and enter the code there. In the online product shop, the cart has a Have a promo code? link, and so does the summary on the Gift cards page. Each way the discount is applied before payment, and the client can remove the code again before they pay. If a promo code is invalid, hasn’t started yet, has expired, or has nothing it can discount in that order, they see a clear message explaining why. A code typed before its start date says the day it starts. A birthday reward code typed during booking works differently: see what a client sees. A birthday reward or new-client offer code typed in the shop or on the Gift cards page is recognised and told it can only be used when booking an appointment. A code beside a gift card for a service is refused, because that card pays for the service in full.How team members use promo codes
At checkout, your team picks Enter promo code in the Discount dropdown and enters the code. Picking a promo code from the discount list instead of typing it runs exactly the same checks - its Applies to, its start and expiry dates, its usage limit and its once-per-client rule. An appointment carrying a promo code shows an amber tag icon on its scheduler card (space permitting), reading Promo code applied on hover. An ad-hoc discount applied by hand carries no tag.Promo codes on gift cards
Switch on Gift cards under Applies to and the code takes its percentage or amount off a gift card being bought. The client pays less and the card keeps its full value: a $150 gift card bought with a 20% code costs $120, and the recipient still has $150 to spend.- Online: on the Gift cards page of your booking site, the summary has a Have a promo code? link above the total. Once the code is applied, the summary shows the gift card value, the discount and the total to pay. A code that covers the whole value issues the card with no payment step.
- At the till: add the gift card to the sale (Add item > Gift card, on Add sale or at an appointment’s Check out), then pick the code from the discount picker. At checkout you can also type it with Enter promo code. The code’s share shows under the gift card’s row, for example Promo code -$20.00. Sell gift card on the Gift cards screen doesn’t take a code.
- A code covers every gift card, whether it’s for an amount, a service or a bundle.
- A code without Gift cards is refused with “This code can’t be used on gift cards”. A discount reason without a code never reduces a gift card.
- On the Gift cards page, a code that would take nothing off the card is refused (“This code takes nothing off this gift card. Choose a larger gift card to use it.”), and so is a code that leaves a total below the minimum card payment. That message names the minimum in your currency.
Promo code limits
- A promo code redeems once per booking, sale or order, however many lines it discounts. A bill or sale can carry one code on a line and a different one on the whole order
- Promo codes can stack with manual discounts (per-line and appointment-level), and with membership benefits: benefits come off first, and the code then applies to what’s left
- Promo codes never stack on an off-peak price from Smart pricing. Online, Bella charges whichever is cheaper: the off-peak booking, or the booking with those services at their normal price and the code taken off; a code that would save less, and has nothing else in the booking to discount, is kept off and not used up; the cart says which applied. At checkout, a code is refused on an off-peak line until your team sets the line to its normal price. Peak prices take codes as usual
- A list limits only its own side: a code set to specific products still covers every service if its Applies to includes services. A booking, bill or shop order holding nothing the code covers is refused with a message saying it doesn’t apply to those items
- Once-per-client enforcement is atomic - concurrent bookings cannot double-redeem
- A walk-in (an appointment or sale with no client) can’t use a promo code, since its limits are kept per client. Pick or create the client first, or use a manual discount.
- If a code takes an online order’s total below the minimum card payment (but above zero), it is refused with a message asking the client to add another item (on the Gift cards page, to choose a larger gift card). A code that takes the total to exactly zero completes with no payment step
- Cancelling an unpaid order, or fully refunding a paid one, gives the code back to the client - including its “max uses” slot. A gift card checkout the client leaves unpaid gives the code back once it can no longer be paid
Promo codes in the online product shop
Clients enter a code in the shop cart. The cart then shows the business’s own figures: the gross subtotal, any membership benefit, the discount, and the total. That total is what the hosted checkout charges. When products are added during booking and paid for in the same journey, they are a separate order from the appointment. A promo code entered in the booking wizard prices the appointment, and the products group says so - it is not applied there.Archiving a discount reason
To stop a discount reason from appearing at checkout without deleting historical data:- Click the archive icon next to the reason
- Review the change summary, then click Apply
Reporting
View discount usage in Reports > Discount summary. The report shows:- Daily breakdown - Number of discounts applied and total amount per day
- Reason breakdown - Total amount and usage count for each discount reason (e.g. “Team discount: 12 times, 840.00 in your currency”)
- Breakdown by item - Each per-line discount against the service or product it was applied to, with how often and how much
- Comparison mode - Compare against a previous period to spot trends
- Source - Manual discounts vs Promo codes
- Scope - Per-line (the discount names one service or one product) vs Order-level (it applies to the whole order: an appointment bill, a sale with no appointment, an online product order or a gift card bought online)
Permissions
The Apply discounts permission controls who can apply discounts. By default:- Owner, Admin, Receptionist - can apply discounts
- Team member - cannot apply discounts (configurable per role)