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.
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.