Loyalty program and coupons
The loyalty engine runs three programs on one guest ledger: stamps, points and a regular-guest discount. The ledger is kept per guest and per location, and only the server writes earnings and redemptions into it — a balance cannot be forged from the browser.
Switch it on in Location settings → Loyalty. While the engine is off, none of the three programs run and no files are created.
The guest is identified by phone number; for a signed-in guest the ledger may be kept under their account.
Stamps (stamp card)#
The classic "every sixth coffee is free" card.
| Setting | What it defines |
|---|---|
| Stamps per order | how many stamps one qualifying order gives (usually 1) |
| Reward threshold | how many stamps are needed |
| Reward type | a free item (you pick the dish) or a percentage discount |
| Minimum order amount | below it no stamp is given (0 — always give one) |
| Program name | shown to the guest; translated into your menu languages |
Stamps are credited when an order reaches a realised status, and exactly once per order: reprocessing does not double the balance. The reward is applied by the cashier as an ordinary discount marked "loyalty"; redemption is idempotent too, and the balance never goes negative.
Points#
The second program on the same ledger.
| Setting | What it defines |
|---|---|
| Earn percentage | what percent of the paid check comes back as points |
| Redemption cap | what share of a check (%) can be covered by points. Not set — 50 % |
| Excluded categories | categories that earn no points (alcohol being the classic) |
| Minimum check amount | below it no points are earned |
Exclusions are set by category: there is no pinpoint list of items in the interface yet (the engine understands such a field, but it cannot be filled in from the settings).
1 point = 1 currency unit, points are whole numbers. The cap is not accidental: uncapped redemption is a straight hole in revenue.
The till shows the cashier exactly the number of points the server will later deduct: the calculation at the till and on the server is one and the same formula.
Regular-guest discount#
The third and simplest program: if a guest has made at least the configured number of completed orders, the till suggests a discount of the configured percentage.
It is a suggestion — applying it or not is the cashier's call. The order count comes from the guest directory (Returning guests).
The guest directory only lives on AWS brands (
cenaly.com,cenaly.ruand others). In the Russian contour (cenaly.ru) there is nothing to count a guest's orders with, so the regular-guest suggestion does not appear at the till yet. Stamps and points do not depend on it and work everywhere.
The loyalty panel at the till#
The till has a "Loyalty" panel (it appears only when the engine is on). Given the guest's phone number it:
- shows the stamp and point balances;
- lets you apply a stamp reward;
- lets you redeem points within the cap;
- suggests the discount for a regular guest.
A redemption turns into an ordinary discount on the ticket — the till's money math is not forked.
Redeeming points on a cash or pay-the-courier order happens at the till. At online checkout the guest redeems points themselves, but only when paying online: cash and "pay the courier" go through the till, and so do the points.
What the guest sees#
- a checkout teaser — a loyalty block with the balance and the option to redeem points when paying online;
- progress on the order screen — how many stamps are collected and how many are left; the screen is public, so no private API is needed.
Coupons and promo codes#
Coupons are a separate tool, unrelated to the loyalty ledger.
| Type | What it does |
|---|---|
| Percent | a percentage discount, with an optional maximum amount |
| Amount | a fixed discount in currency |
| Free shipping | zeroes out delivery |
| BOGO | "buy one, get one" under a configurable rule |
Every coupon can carry: a scope (whole cart / specific products / a collection), a minimum order amount, a total usage limit and a per-guest limit, a validity window, whether it stacks with other coupons, and customer conditions (for example, new guests only). Every application is written to a redemption ledger, so the limits are enforced honestly.
Location promo codes (the "Promo codes" block in the location settings) also have a validity window — a "Valid" column with "from" and "to" dates. As soon as the table holds scheduled or expired codes, a filter appears above it — "Active / Scheduled / Expired / All" with counters; active ones are shown by default. If every promo code of a location has expired, the storefront does not open the code field to the guest at all.
More on commercial tools — Commerce.
Limits: what the program does not do#
An honest list, so you don't plan around things that don't exist:
- points do not expire — there is no validity period;
- there are no tiers (bronze/silver/gold) — earning is the same for every member;
- there is no referral program. There is a separate tool — an affiliate program for site owners and bloggers (a commission on referred orders) — but it is not "invite a friend" for guests;
- there is no QR stamping at the table — a stamp is only given for a paid order.
Related sections#
- Returning guests — the guest directory, history, segments and debts
- POS — the loyalty panel and applying a reward
- Commerce — coupons, gift cards, memberships, affiliate program
- Engagement campaigns — pop-ups, wheel of fortune and coupon reveals on the storefront
- Reviews and reputation — collecting reviews and handling negatives
- Email newsletters — letters to guests
FAQ#
Can I enable only stamps or only points?#
Yes. The programs are enabled independently inside the shared engine: you can run stamps only, points only, or both.
Why doesn't the guest see their points?#
Check three things: the loyalty engine is on for this location, the points program is on, and the guest left a phone number with the order. Without a phone number (or a sign-in) there is nothing to attach the balance to.
Do points accrue on alcohol?#
Not if you added the alcohol category to the exclusions. By default there are no exclusions.
Can a guest redeem points when paying cash?#
Yes, but the cashier does it at the till. At online checkout redemption is available only for online payment.
Do points expire after 90 days?#
No. There is no expiry for points right now — they sit on the guest's account until spent.