Customer Advance
Customer Advance tracks money customers pay you upfront — deposits, prepayments, or advance bookings — as a running balance per customer that can later be adjusted against future purchases.
Overview
This page shows every customer who currently has an advance balance, with dashboard-level totals for how much has been received, how much has been adjusted (used against sales), and the current outstanding balance across all customers.
Recording an advance can be started generically (choose the customer in the form) or directly from a customer's row using the Add action.
Every customer's full advance history — every CREDIT (money received) and every ADJUSTED (money used against a sale) entry — is available via the View action.
This is a manager-level feature: it is only shown to Managers and Owners/Admins, gated behind the customer_advance feature flag at the Advanced tier or above.
Before You Start
- You must be a Manager or Admin to see this page at all — it is not available to standard cashier/staff roles.
- Your plan must have the Customer Advance feature enabled at the Advanced tier or above.
- The customer receiving credit must already exist in your Customers list.
Step-by-Step Guide
1 Record a new advance payment
- Click Record Advance in the page header (or click Add on a specific customer's row in the table to skip the customer picker).
- If you started from the header button, select the Customer from the dropdown (required).
- Enter the Amount received (required).
- Choose the Payment Method: Cash, UPI, Bank Transfer, Cheque, Card, or Other.
- Optionally enter a Reference / Transaction ID and free-text Notes.
- Click Record Advance — the customer's advance balance increases immediately and the dashboard totals refresh.
2 View a customer's advance transaction history
- Click View on any customer row.
- The header of the history modal shows the customer's name, phone, and current advance balance.
- Each transaction is listed with its description, optional reference, date/time, and amount — green "+" entries are money Received (Credit), amber "−" entries are Adjusted (used against a purchase).
3 Monitor overall advance liability
- Review the four summary cards: Customers with Advance (count), Total Received (all-time), Total Adjusted (all-time), and Current Balance (your total outstanding liability to all customers combined).
- Use Refresh to pull the latest figures after recording new advances or adjustments elsewhere in the app.
- Search, sort, filter, switch table/grid view, or export the customer list using the data grid toolbar, same as other list pages.
Every Field & Button, Explained
| Field / Button | What it does |
|---|---|
Customer * | Which customer this advance belongs to; required when recording from the general "Record Advance" button. |
Amount * | The advance/deposit amount received; required. |
Payment Method | Cash, UPI, Bank Transfer, Cheque, Card, or Other. |
Reference / Transaction ID | Optional free-text reference for the payment (e.g. UPI transaction ID, cheque number). |
Notes | Optional free-text notes about the advance. |
Advance Balance (list column) | The customer's current unused advance balance, shown in green. |
Transactions (list column) | Total count of advance transactions (received + adjusted) for that customer. |
Last Transaction (list column) | Date/time of the most recent advance activity for that customer. |
Customers with Advance | Dashboard stat: count of customers who currently have a non-zero advance balance. |
Total Received | Dashboard stat: all-time sum of advance payments received across all customers. |
Total Adjusted | Dashboard stat: all-time sum of advance amounts used against sales. |
Current Balance | Dashboard stat: total advance liability currently outstanding across all customers. |
View / Add row actions | View opens the transaction history modal; Add opens the Record Advance form pre-filled with that customer. |
Tips & Best Practices
- Always add a Reference for UPI or cheque advances — it makes reconciling your bank statement against BazaarPOS much faster later.
- Check the Current Balance dashboard figure periodically — it represents real money you owe back to customers (as goods/services or a refund) and should be treated like a liability, not free cash.
- Use this page for pre-orders, custom-order deposits, or loyal-customer running balances rather than tracking them in a separate notebook.
Troubleshooting & FAQ
I don't see the Customer Advance menu item.
A customer's advance balance seems too low after a purchase.
Can I refund an advance directly from this page?
🧑💻 Developer Notes
Source component(s):
frontend-app/packages/pos-react-lib/src/pages/CustomerAdvancePage.jsx
Backend endpoints used:
GET /customer-advance/dashboardGET /customer-advance/customersPOST /customer-advance/recordGET /customer-advance/:customerIdGET /customers
Related tables (db-core repositories):
CustomerCustomerAdvanceCustomerAdvanceEntry
Redux slices:
scope (selectCurrentScope / getScopeQueryParams)
Feature flag key: customer_advance (requires advanced plan tier or above)
The nav entry for this page carries managerOnly: true in navItems.jsx, so it is filtered out of the sidebar (and Quick Access) for any role below Manager regardless of individual page permissions. The customer list, dashboard totals, and per-customer history are three separate endpoints fetched independently and refreshed together after every record/adjust action.