Sales Reservations
The Sales Reservations module is a sophisticated inventory control system that manages "Reserved" vs "On-Hand" stock. It allows businesses to commit inventory to a customer without finalizing a financial transaction immediately — essential for layaway programs, phone orders, and wholesale "hold" requests.
The Reservation Dashboard
The main screen provides a comprehensive overview of all inventory commitments. The page header shows the title SALE RESERVATIONS with a breadcrumb path (Home > Sales > Reservations). Two primary actions sit in the top-right: a Filters button and a prominent + Create Reservation button.
When no reservations exist, the table displays an empty state with a clean "No data" placeholder.
Reservation Table
Once reservations are created, the table populates with a sortable, column-draggable grid. Each row shows:
The table supports pagination (10/page default) and column visibility controls.
Filters Panel
Click the Filters button to open a slide-over panel with three filter dimensions:
- Status — Select from
PENDING,CONFIRMED,CANCELLED, orEXPIREDto isolate specific lifecycle states - Customer — Search and select a specific customer account
- Expiry Date Range — Set a start and end date to find reservations expiring within a window
These filters are combinable, allowing you to quickly identify overdue or soon-to-expire commitments.
Column Settings
Click the Columns gear icon (top-right of the table) to open the column visibility popover. Three optional columns can be toggled:
- # (Serial Number) — Row index column
- Phone — Customer's phone number
- Items — Count of reserved items
The popover also shows "6 of 9 columns visible", a Reset link to restore defaults, Reset Widths to normalize column sizing, and an Adjust Table Height slider for fitting more rows on screen.
Cancel Reservation
Clicking the red Cancel button on any PENDING reservation opens a confirmation modal:
Cancel Reservation?
Are you sure you want to cancel? This action cannot be undone.
Two choices: No, Keep It (dismisses the modal) or Yes, Cancel (red button, releases all committed inventory back to "Available" stock).
Confirm & Complete Sale
Clicking Confirm (or the eye View icon) on a PENDING reservation opens the Reservation Detail Modal. This modal has two views, toggled by the ← Back to details link:
Detail View
Shows the full reservation snapshot:
- Reservation # and Status Badge (PENDING)
- Customer Info — Name,
Registeredbadge, phone number - Dates — Expiry date, created by, creation date
- Item Table — Product name, variant, quantity, reserved price, and line total
- Total — Aggregated commitment amount
- A prominent ✅ Confirm Reservation button in the header
Complete Sale View
Clicking Confirm Reservation transitions to the Complete Sale panel, where you finalize the payment:
- Sell on Credit — Checkbox to record as accounts receivable (payment due later). When checked, the payment section hides and the submit button changes to ✓ Confirm (Credit).
- Payments Section — Select a cash/bank account from a searchable dropdown showing account type and current balance (e.g., "Hamna Arif (BANK_ACCOUNT) - Balance: 2286100"). The More button (
Ctrl+M) reveals additional payment accounts. - Amount — Enter payment amount. Fill Remaining (
Alt+R) auto-fills the balance. Add Payment (Ctrl+Enter) records the entry. - Payment Table — Shows each payment line (# | Cash Account | Amount) with delete capability.
- Invoice Notes — Optional notes attached to the generated sale invoice.
When full payment is entered, a green "Full payment received" indicator appears and the ✓ Confirm & Pay button activates.
Real-World Use Cases
- Layaway Tracking: Monitoring all active layaways to see which customers are behind on their installment schedules.
- Stock Allocation: Ensuring that items marked as reserved are not accidentally sold to walk-in customers.
Post-Confirmation
After confirming, the reservation status changes to ✅ CONFIRMED (green badge). The Actions column now only shows View and Delete — the Confirm and Cancel buttons are removed since the lifecycle is complete. A Sale Invoice is automatically created and linked.