Promo codes in online booking
How customers can apply promo codes during online booking
Promo Codes in Online Booking
Customers can apply promo codes during the online booking process. The system validates all promo code settings before allowing redemption.
Enabling Online Booking
To allow promo codes in online booking:
- Edit the promo code
- In the Settings section, enable "Allow Online Booking"
- Save the code
How Customers Apply Codes
During the booking flow, customers can:
- Proceed to the Payment step
- Enter their promo code in the "Promo Code" field
- Click "Apply" to validate
- See the discount applied to their total
Validation Rules Checked
When a customer applies a code online, the system validates:
Basic Validation
- Code exists and is active (not paused, expired, or depleted)
- Code is within validity date range
- Code allows online booking channel
Usage Validation
- Total usage limit not exceeded
- Per-customer usage limit not exceeded (if customer logged in)
Customer Validation
- All Customers - Anyone can use
- VIP Only - Customer must be marked as VIP
- Tagged Only - Customer must have specific tags
- New Customers Only - Must be first-time customer
- First-Time Only - Must be customer's first booking
Service Validation
- If service restrictions are set, the selected services must match
- If category restrictions are set, selected services must be in allowed categories
Staff Validation
- If staff restrictions are set, the selected staff member must be allowed
Amount Validation
- If minimum purchase amount is set, cart total must meet the threshold
Date Validation
- If appointment date range is set, the booking date must fall within range
Redemption on Completion
When the booking is completed:
- The promo code is automatically redeemed
- A PromoCodeRedemption record is created
- Discount is applied to the appointment price
- Redemption is tracked with:
- Customer information
- Original and final amounts
- Channel marked as "ONLINE_BOOKING"
- Link to the created appointment
Error Messages
If validation fails, customers see relevant error messages:
- "This code is not valid for online booking"
- "This code has reached its usage limit"
- "You have already used this code the maximum number of times"
- "This code is only for new customers"
- "Minimum purchase of [amount] required"
- "This code is not valid for the selected services"
- "This code is not valid for the selected staff"
Use case scenarios
Scenario 1: Customer types code online
Customer books online for haircut, types "WELCOME20", presses Apply. System validates, shows 20% off, saves customer 1,500 Ft. Customer happy, books immediately.
Scenario 2: Code rejected with helpful message
Customer types expired code. System shows "This code has expired". Customer tries another, "WINTER15", works. Clear messaging prevents customer frustration.
Scenario 3: Auto-apply from email link
Customer clicks promo email link. URL contains ?code=SUMMER25. Booking page auto-applies code. Customer doesn't even have to type.
Scenario 4: Service-restricted code
Customer types "COLOR15" but is booking a haircut. System shows "This code is not valid for the selected services". Customer either changes service or accepts no discount.
Tips
- Make codes shareable: short, easy to type on mobile.
- Use auto-apply links: ?code=X in marketing emails removes friction.
- Test all error messages: customer needs to understand what went wrong.
- Show savings prominently: "you save 1,500 Ft" is more motivating than "20% off".