When a guest is linked to the order in POS, the loyalty sidebar appears in the right column of the checkout view. It's the server's window into the entire loyalty program – compact but polished.
When does it show?
The loyalty sidebar appears when:
- The order has a customer linked (via Link customer in POS, or via a booking that auto-links)
- The customer is a loyalty member (auto-enrolled on a prior paid order, or just created)
- The loyalty program is active
If any of these is missing the sidebar doesn't show. E.g. a cash guest without a phone number, or an order where the program is off.
What's displayed?
The sidebar has a compact card design with an amber-gradient background (subtle, not loud). Top to bottom:
1. Tier badge (top)
- Colored pill with the tier name ("Gold", "Silver", "VIP")
- Color comes from the tier's color (you pick when creating)
- Subtle icons (trophy, star, diamond) based on tier order
2. Point balance
- Large number: "452 points"
- Smaller text underneath: "≈ 45.20 SEK to redeem" (real-time calc against the order's max-discount)
3. Tier perks
- Bullet list of perks from the member's current tier
- Server sees exactly which perks the guest is entitled to (e.g. "Welcome drink for the party")
- Shows nothing if perks are empty
- Four quick buttons: 100 pts, 200 pts, 500 pts, 1000 pts
- A Max button that computes the highest valid redemption (based on balance + max-discount percent)
- Buttons are disabled (grayed) if:
- Balance is insufficient
- Minimum redemption isn't met
- Order's max-discount cap is reached
5. Stamp card rewards (if any)
- If the guest has earned stamp card rewards:
- Counter at top: "3 stamp card rewards ready"
- One button per reward (max 3-5 visible, scrollable): "Redeem Pizza Club"
- Press any reward button and the discount applies immediately
6. Expiry warning (if relevant)
- If the guest's oldest points expire within 30 days: small red-orange warning at the bottom
- Text: "⚠ 200 points expire in 14 days"
- Gives the server a chance to nudge the guest
How servers use it
Standard flow:
- Open the order, click Checkout
- The checkout view opens with the loyalty sidebar on the right
- Ask the guest: "Want to redeem points? You have 452 points worth 45 SEK."
- Click the button the guest picks (100, 200, 500, or Max)
- Discount applies immediately and shows in the order total
- Proceed with payment normally
Advanced use:
- Hover the tier badge to see the date the next tier qualifies
- Scroll in stamp card rewards if guest has many
- Undo a redemption by clicking the discount line in the order and removing
Design and UX principles
- Amber-gradient background but muted – doesn't steal focus from the order
- Compact – never more than 3-4 visible sections at once
- High-contrast buttons – easy to hit on touchscreen (min 44×44px)
- Real-time updates – balance and discount update instantly
- Visual confirmation – tiny animation when points deduct from balance
Permissions
- All staff can see the sidebar
- Only staff with the right permission can click redeem buttons
- Junior staff without permission see buttons but they're grayed with tooltip: "Your role doesn't have redeem permissions"
Troubleshooting
"I don't see a loyalty sidebar"
- Is the customer linked to the order?
- Is the guest a member? (auto-enrolled on first paid order – new customers become members only at payment)
- Is the program active?
"Buttons don't work"
- Do you have redeem permission?
- Does the balance cover the button value?
- Does the discount exceed the order's max cap (50 % default)?
"Sidebar shows stale data"
- Close and reopen the checkout view – sidebar reloads
- Or: refresh the whole POS page