PurpleHere POS v3.23 Update

What's New

Payment Gateway Setup — Step-by-Step Guides

  • Stripe and PayPal now have built-in setup walkthroughs on every payment settings page (Admin, Brand, Foodcourt, Supplier).
  • Each guide covers: business signup → API key copy → webhook registration → testing with a sandbox/test card.
  • No more guessing where to find your sk_live_ key or what events your webhook should listen to.

Email (SMTP) Setup

  • The Notification Settings Email tab now includes per-provider guides for Gmail, Outlook / Microsoft 365, Amazon SES, SendGrid, and Mailgun.
  • Gmail users get a direct link to App Password creation and an explanation of why their regular password won't authenticate.

Payment Flow Clarity

  • Restaurant invoice payment screen explains how each method works: card pays instantly, bank transfer requires a transaction reference and a receipt followed by admin confirmation (typically within a few hours during business days).
  • Mobile menu shows a dismissable 3-step hint for first-time customers (Browse → Cart → Checkout).
  • Each mobile payment option shows expected time and whether the customer will be redirected.

Empty Page Guidance

  • Customers, Stock items, and Purchase Orders now explain *why* the page is empty and what the next step is, with clear CTAs — replacing generic "No data" messages.

Operational Automation

  • Non-subscription invoices (service charges, hardware, supplier trade invoices) now auto-transition to overdue once the due date passes — a daily 02:30 UTC cron.
  • Dashboard pre-aggregation infrastructure: a daily scheduler computes per-restaurant revenue snapshots so that year-range chart queries stay fast as the restaurant count grows.

Reliability

  • Regression safety net extended to 27 automated contract tests (login / IDOR / payment flow / commission idempotency / suspended UX).
  • Standardized error responses across the backend — every error now includes a clear message, an error code, and (when relevant) field-level errors and a recovery hint.
  • Frontend bundle is 280 KB smaller after removing the unused error-tracking SDK.
  • Invoice, Purchase Order, Brand, and Foodcourt backend code split into smaller logical modules for long-term maintainability.