Marketing
Promos & Discount Codes
Create percentage or fixed-amount discount codes, limit by competition, set max uses per customer, and track usage.
Discount codes are your single biggest reactivation lever. Send a 15%-off code to lapsed customers, watch them come back. Run a launch-week promo. Hand out flash-sale codes via SMS. The admin Promos section lets you create and track all of this with full usage analytics.
Where to manage them
Raffle admin → Promos. The list shows every code, its discount, usage count, and status. Click any code to edit; click New promo to create one.
Code fields explained
- Code. What customers type at checkout — case- insensitive on entry but stored uppercase. Choose memorable phrases (
LAUNCH10,VIP15) over random strings unless you’re running per-customer codes. - Description.Internal note — never shown to customers. Use it to record “Sent to lapsed list 2026-05-20 via SMS” etc.
- Discount type.
percentageorfixed. Percentage is most common (15%, 20%); fixed is good for “£5 off any order”. - Discount value. For percentage, an integer 1–100. For fixed, an integer in pence — so £5 off is
500, not5. - Max uses.Site-wide cap on total redemptions. Leave blank for unlimited. Useful for “first 100 only” urgency.
- Max uses per user. Default 1. Prevents people stacking the same code across multiple purchases.
- Min order pence. Code only activates above this spend, in pence (£10 minimum =
1000). Stops single- ticket abuse. - Max discount pence.Caps the absolute discount on percentage codes (“15% off up to £50” = 1500 + 5000).
- Applies to.
all— applies to any competitionspecific— pick competition IDs in Competition IDs. Useful for promos that target one headline draw.
- Active / Starts / Expires. Toggle off without deleting; or schedule activation/expiry timestamps.
How customers redeem
On the cart page, customers see a Have a code? input. They paste, hit Apply, and the discount reflects in the order summary. The order proceeds normally — discount is recorded against the order at payment time.
Tracking usage
Every redemption writes a row in discount_code_usage with the user, order, and discount amount. The Promos list shows the running used_count per code. In Phase 2, Reports > Promos will give you per-code ROI:
- Revenue from orders that used the code
- Discount given (cost)
- Gross margin after discount
- New-customer vs repeat-customer split
Patterns that work
- Launch week promo. 15% off, max 500 redemptions, 7-day expiry. Drives urgency for the launch announcement.
- Lapsed-customer recovery. 20% off, per-user code (1 use per customer, ever), applies to all. Send via SMS to users with no purchase in 30 days.
- Bundle promo.“£5 off when you spend £25+” — fixed amount with min-order. Pushes average order value up.
- Influencer-specific code. Give each affiliate their own code (
JANE10). When they post, their audience uses their code. Doubles as attribution + reward. (The full affiliate scheme with auto-commission ships in Phase 3 — see Affiliate / Referral Scheme.)
Anti-patterns to avoid
- Always-on discount codes. Trains customers to look for one before buying. Use scarcity and expiry.
- Stacking on already-discounted competitions. Codes apply to ticket subtotal — they don’t check whether you marked a competition as “promotional pricing”. Don’t double-discount unless you mean to.
- Forgetting to disable.If you run a one-week launch promo, set the expiry — don’t rely on remembering to disable it manually.