How loyalty works¶
(Earning is live. Redeeming is designed but not built yet — this page says which is which, honestly.)
Earning — works today¶
Attach a customer to the sale (the Customer button, or automatically on wholesale) and every completed sale earns them points. The till's customer chip shows their running total (★ next to their name), and so does customer lookup.
- Points are per item: each product has a Loyalty pts/$ rate in inventory maintenance, and items can be excluded entirely (bags of beans might earn nothing; drinks earn full rate). Modifiers carry their own rate — normally zero.
- Points are computed on the discounted line price: a discounted latte earns points on what was actually paid.
- Voiding a sale reverses its points — the void screen lists "loyalty points reversed" along with every payment it undid.
- The customer's phone number is their loyalty key — it's how the counter finds them ("what's your phone number?"), so the new-customer dialog asks for it up front.
Like account balances and stock levels, a points total is the sum of a ledger, never a typed number — every earn and reversal is its own audit row.
Not built yet (designed, coming)¶
- Redeeming — spending points at the till. The ledger already has a place for redemptions; there's no redeem button yet.
- Birthday reward — the customer record stores a birthday; nothing acts on it yet.
- Named plans / tiers (e.g. "Bean Heads") and the loyalty settings screen — the Loyalty program settings permission is reserved and waiting.
- NFC tap — identifying the customer by tapping a sticker or card instead of asking for a phone number.
Until redemption lands, points quietly accumulate — nothing is lost by ringing sales with customers attached now.