Quick Bill
Quick Bill is the fast, no-frills billing till — the same product-search-and-cart engine used on Sales → New Sale — with an extra shortcut bar across the top that lets you pop open Customers, Advance Booking, Repairs, Stock tools and dozens of other pages in a floating window without ever losing your cart.
Overview
Quick Bill embeds the exact same billing engine (POSBilling) used by the "New Sale" tab on the Sales & Bills page, so anything you can do there — search or scan products, apply discounts, pick a customer, split a payment, print an invoice — works identically here.
What makes Quick Bill different is the Quick Action bar running across the top: it groups shortcuts under Customer, Billing, Service, Documents, Items, Stock, Purchase, Money and Reports, plus a whole extra group of shop-type tools if you run a Restaurant or Grocery layout. Clicking a tile opens that page in a full-screen modal layered on top of the till — your in-progress cart underneath is never lost.
The screen automatically adapts to your business type (posLayout): Restaurant adds a Service/Tables/Kitchen/Orders/Guests/Reports group at the front of the bar, Grocery adds a Bulk Prices/Scale PLUs/Khata Dues/Expiry/Clearance/Home Delivery group.
A low-stock alert card appears automatically about 30 seconds after you open the screen (and again every 5 minutes) whenever any product's quantity has dropped to or below its minimum stock level, so you don't have to remember to check Inventory yourself.
Before You Start
- You need the Billing feature enabled on your plan (this is on by default for every plan) and permission to see the "Quick Bill" menu item.
- Most of the individual shortcut tiles — Advance Booking, Gift Cards, GST E-Invoice, Birthday Offers/Reminders, Repairs (and its Price List/Spare Parts sub-tools), Rentals, Special Orders, Delivery Challan, Quotation, Promotions, Barcodes/Scan/Print Labels, Serial Numbers, all Stock tools (Import/Transfer/Stock Take/Adjust/Low Stock/Out of Stock/Stock Count/Godowns/Expiring), Suppliers, Purchase Orders, Expenses, Udhaar/Dues, Customer Advance, the Rent module, and Reports — require the Advanced plan tier or above. Below Advanced, these tiles still show but are greyed out with a 🔒 and cannot be clicked.
- Only the shortcuts your role already has menu access to are shown at all — Quick Bill does not grant any new permission, it mirrors the same access checks as the sidebar.
Step-by-Step Guide
1 Bill a walk-in customer fast
- Type into the product search box or scan a barcode — matching products appear as you type (search is debounced ~300ms) and scanned barcodes are added instantly, including weight-embedded scale barcodes.
- Adjust quantity inline with +/- or by typing a number directly into the line; edit the price, discount or tax rate on a line if you have permission to override it.
- Optionally search and attach a Customer, apply a coupon/promo code, or let an automatic discount (membership, customer group, birthday offer, wholesale price, time-based markdown) apply itself.
- Choose a payment method — Cash, Card, UPI, Wallet, Credit, Cheque, Advance Booking (Layby) or Split across several methods — and press F12 or click Complete Sale.
- Print or share the invoice via WhatsApp from the confirmation screen that follows.
2 Jump to a related tool with the Quick Action bar
- Click the Menu pill on the far left of the bar to show or hide the shortcut groups (useful for reclaiming screen space on smaller displays).
- Click any tile, e.g. Customers, Advance Booking, Repairs, or Suppliers — the page opens as a full-screen overlay on top of Quick Bill.
- Use the Close button in the overlay's header (or press Esc) to dismiss it and return straight to your in-progress bill exactly as you left it.
- The Sales List tile behaves differently — instead of opening an overlay it switches the page to the "All Bills" view of the Sales & Bills screen.
3 Run multiple bills at once (hold, recall, duplicate, split)
- Open up to 8 concurrent "Bill" tabs and switch between them freely — each keeps its own cart, customer and discounts.
- Click Hold (or press F8) to park the current cart and free up the till for another customer; click Recall to bring a held bill back.
- Use Duplicate Bill to clone the current cart into a new tab, or Split Bill to move selected items/quantities into a fresh tab (handy when one group of customers wants separate invoices).
- Press F9 to clear the current cart, or close a bill tab entirely — you will be asked to confirm if it still has items in it.
4 Respond to a low-stock alert
- When the amber Low Stock card appears in the bottom-right corner, read how many products are affected.
- Click View Stock to open the Inventory low-stock filter directly, or Dismiss (or the ✕ in the corner) to hide it for this session.
Every Field & Button, Explained
| Field / Button | What it does |
|---|---|
Menu toggle | Shows or hides the whole Quick Action bar to free up vertical space for the cart/product panel. |
Customer group | "Customers" (open the Customers page) and "Sales List" (switch to the All Bills view of Sales & Bills). |
Billing group | Advance Booking (Layby), Gift Cards, E-Invoice, Birthday Offers, Reminders — all require Advanced tier. |
Service group | Repairs, Repair Prices, Spare Parts, Rentals, Special Orders — all require Advanced tier. |
Documents group | Challan (Delivery Challan list), Quotation (Estimates list), Promotions — all require Advanced tier. |
Items group | Products (no tier requirement), Barcodes, Scan, Print Labels, Serial Nos. — the latter four require Advanced tier. |
Stock group | Import, Transfer, Stock Take, Adjust, Low Stock, Out of Stock, Stock Count, Godowns, Expiring Soon — all open the Inventory page pre-filtered and all require Advanced tier. |
Purchase group | Suppliers and Purchase Orders — both require Advanced tier. |
Money group | Expenses, Udhaar / Dues (Ledger), Customer Advance, Rent, Rent Agreements, Rent Payments — all require Advanced tier. |
Reports group | Opens the Reports page; requires Advanced tier. |
Low Stock Alert card | Auto-popup listing how many products are at or below their minimum stock level, with "View Stock" and "Dismiss" actions; suppressed entirely if Settings → "Show low stock alert" is turned off. |
Locked tile (🔒) | A shortcut you can see but not click because it needs the Advanced plan tier — hovering shows "Upgrade to Advanced to unlock this feature". |
Tips & Best Practices
- Collapse the Quick Action bar with the Menu toggle when you need the full screen for a busy multi-item cart, then reopen it to jump elsewhere.
- Learn the F-key shortcuts (press F1 any time for the cheat-sheet overlay) — F2 to jump into product search and F12 to complete the sale is the fastest rhythm for a busy counter.
- If a shortcut you rely on daily is greyed out with a lock icon, that is a plan-tier limit, not a bug — check Settings → Billing/Plan or ask an Admin about upgrading to Advanced.
Keyboard Shortcuts
| Shortcut | Action |
|---|---|
| F1 | Show or hide the keyboard-shortcuts help overlay |
| F2 | Focus the product search box |
| F3 | Toggle touch-screen mode (Advanced tier) |
| F4 | Focus the customer field |
| F5 | Toggle fast checkout mode (Advanced tier) |
| F6 | Focus the barcode scanner field |
| F8 | Hold the current sale |
| F9 | Clear the cart |
| F10 | Save the current cart as a Quotation (Estimate) |
| F12 | Complete the sale |
| Esc | Close the shortcuts help overlay, or clear the search box |
Troubleshooting & FAQ
Why are some Quick Action tiles greyed out with a lock icon?
A tile I use daily is missing entirely, not even locked.
The low-stock alert keeps coming back after I dismiss it.
I opened a shortcut and now I can't find my cart.
🧑💻 Developer Notes
Source component(s):
frontend-app/packages/pos-react-lib/src/pages/QuickBillingPage.jsxfrontend-app/packages/pos-react-lib/src/pages/sales/POSBilling.jsx
Backend endpoints used:
GET /settingsGET /inventory?filter=low&limit=1GET /products (search)GET /inventory/barcode/:codePOST /salesPOST /quotationsPOST /salesordersPOST /laybyGET /promotions/applyGET /giftcards/check
Related tables (db-core repositories):
ProductSaleSaleItemCustomer
Redux slices:
navAccessauthlicense (planInfo.features)
Feature flag key: billing
Access is computed by an internal useQuickBillAccess() hook that mirrors the exact role + plan-feature gating used by the Sidebar and Dashboard (canSee / isFeatureOn / isTierAtLeast), so a tile can never appear here that the sidebar itself would hide. Restaurant and Grocery variant groups are prepended to the standard groups only when settings.posLayout matches; every shortcut renders through a single MODAL_MAP that maps a button key to the actual page component mounted inside the overlay.