RestroAI POS SaaS Customers Phase 9
Phase 9

Customers, Loyalty, Reservations, And Reminders

Phase 9 adds tenant-local guest relationship workflows. POS customer snapshots, QR guest sessions, paid order history, loyalty points, coupons, gift cards, reservations, waitlist, and reminders are unified without creating a central customer database.

Plan Gates

  • Customers are enabled on every plan.
  • Loyalty and reservations are enabled on Growth and Pro plans.
  • Gift cards and SMS/WhatsApp reminders are Pro-only.
  • Email reminders are Growth and Pro, using Mailpit/log mail safely in local/demo environments.

Customer Matching

  • Phone and email are normalized before matching.
  • Exact normalized phone/email matches link automatically.
  • Ambiguous duplicates create review notes instead of unsafe auto-merges.
  • Orders retain the original customer snapshot for receipts even after profile linking.

Loyalty

Earning
  • Points are earned when an order becomes paid.
  • Earn amount is based on subtotal after discounts.
  • Duplicate payment or webhook reconciliation events stay idempotent.
  • Refunds and voids create reversing ledger entries.
Redemption
  • Points redeem into POS discounts through the loyalty service.
  • Minimum redemption and point value are configurable.
  • The ledger preserves earned, redeemed, expired, adjusted, and reversed entries.

Coupons And Gift Cards

  • Coupons support fixed or percentage discounts, branch and service-mode targeting, spend minimums, usage limits, and customer eligibility rules.
  • Coupon application uses the same POS discount service path used by cashiers.
  • Gift cards use opaque codes, hashed lookup, one-time visible code display, non-negative balances, and a transaction ledger.
  • Gift card redemption is a tenant-local POS payment tender.

Reservations And Waitlist

  • Reservations are branch/time/party-size records first, with optional assigned tables.
  • Assigned-table overlaps are blocked unless a manager override reason is supplied.
  • Branch capacity overbooking is stored as warning metadata.
  • Waitlist entries can be prioritized, quoted, assigned to tables, and seated with an event trail.

Reminders

  • Default reservation schedules include immediate confirmation, 24-hour reminder, and 2-hour reminder.
  • Email uses the configured Laravel mailer, including Mailpit/log for sandbox testing.
  • SMS and WhatsApp use Twilio only when configured and plan-enabled; otherwise attempts are logged as skipped.
  • Every attempt records channel, destination, provider response, retry count, skipped state, or failure reason.

Important Routes

  • /r/{tenant}/customers customer command center.
  • /r/{tenant}/loyalty/settings loyalty settings and ledger.
  • /r/{tenant}/coupons coupon rule builder.
  • /r/{tenant}/gift-cards gift card desk.
  • /r/{tenant}/reservations reservation calendar.
  • /r/{tenant}/waitlist waitlist board.
  • /r/{tenant}/reminders/settings reminder settings and test sends.