Inventory
Inventory is the control centre for everything to do with stock — how much of each product you have, where it sits, which batch/expiry it belongs to, and every adjustment, transfer, waste write-off or stock take that changed it.
Overview
Every product with a stock record shows up as one row here: current quantity, minimum/reorder levels, stock value at cost price, expiry status and (if assigned) its bin/shelf location.
The page is scope-aware — Admins viewing "All Branches" see a read-only combined view and a Branch column, while a specific branch scope shows normal editable rows. Admins must pick one specific branch before any write action (Adjust, Batch, Transfer, Waste, etc.) will run; otherwise BazaarPOS blocks the action with a toast asking you to choose a branch from the scope selector.
Some actions are gated by your plan tier: Batch tracking, Product-to-product Transfer, Serial Numbers, Repack and Waste/Loss need the Advanced tier; Consignment Stock and Bin/Shelf Location need the Enterprise tier. Gated buttons are simply hidden rather than shown disabled.
The row-level "⋮" action menu adapts to the product: Serial Numbers only appears for serial-tracked products, Assemble Kit only for kit/BOM products, and Repack only when the product currently has stock to break down.
Before You Start
- Products must already exist (created on the Products page) before they show up here — Inventory does not create new products, only manages the stock of existing ones.
- If you are an Admin viewing an aggregated scope (Company/Unit, not one branch), switch the scope selector to a specific branch first — write actions are blocked otherwise.
- Batch tracking, Transfer, Serial Numbers, Repack and Waste/Loss require the Advanced plan tier or above for the Inventory feature; Consignment and Bin Location additionally require the Enterprise tier.
Step-by-Step Guide
1 Browse, search and filter the stock list
The sidebar has four quick links into this same page, each pre-applying a filter via the URL: All Stock, Low Stock (?filter=low), Out of Stock (?filter=out) and Expiring Soon (?filter=expiring_soon).
- Use the search box to find a product by name or SKU (results update automatically after you stop typing).
- Narrow by Category using the dropdown, or by Stock Status (In Stock, Low Stock, Needs Reorder, Out of Stock, Expiring Soon, Expired, Has Expiry Date).
- Click a column header (Product, SKU, Stock, Expiry) to sort — click again to reverse the direction.
- Toggle between Table view and Grid (card) view using the icons on the right of the filter bar.
- Use the pagination controls at the bottom (25 rows per page) to move through the full list.
2 Read the stock health stats and jump straight to a problem
- The top stats row shows total SKUs, total units, total stock value (at cost price) and category count — informational only.
- The four alert tiles below (Low Stock, Out of Stock, Expiring Soon, Expired) are clickable filters — click one to instantly filter the table to just those rows; click it again to clear the filter.
- When any product has crossed its reorder point, an indigo "Reorder Suggestions" banner appears with a Create Purchase Order button that jumps to Purchase Orders.
3 Quick-adjust or fully adjust a product's stock
- For a ±1 change (e.g. correcting a miscount), use the small − / + buttons next to the quantity in the table or grid row.
- For anything else, click Adjust (or the ⋮ menu → same action) to open the Stock Adjust panel.
- Pick a Movement Type: Restock (add — purchase/receive), Adjustment (set the exact quantity — for stock counts), Damage (remove damaged/expired items), Return (customer return back to stock), or Transfer (move to/from another location).
- Enter the quantity (or the target quantity for Adjustment) — a live "Stock after adjustment" preview appears.
- Optionally fill in a Note, Reference # (PO/bill number), Batch/Lot # and Expiry Date, then click Save Changes.
- If the resulting stock is at or below the minimum level, or exactly zero, an inline Low Stock / Out of Stock alert banner appears in the same panel before you close it.
4 Run a full bulk stock take
- Click Start Stock Take in the page header — the table switches into bulk-edit mode and an amber banner appears.
- Type the freshly counted quantity directly into any row's quantity box; rows you don't touch are left unchanged.
- Click Save Adjustments in the banner to post every entered quantity as one "Bulk stock take" adjustment, or Cancel to discard.
5 Track batches, lot numbers and expiry per product
- Open a row's ⋮ menu and choose Batches (Advanced tier) to see every batch/lot recorded for that product.
- Click Add Batch and fill in Batch/Lot # (required), Quantity, Expiry Date, Received Date, Cost Price per unit, Supplier Ref/PO # and Notes.
- Existing batches can be edited (batch number itself is locked once created) or deleted — deleting a batch reduces the product's total inventory by that batch's quantity, with a confirmation prompt showing the exact impact.
- A running "Batch total" footer compares the sum of all batch quantities against the product's actual inventory count and flags any mismatch in amber.
6 Transfer stock between two products
- Open ⋮ → Transfer (Advanced tier), or click the header-level Transfer button and search for the source product yourself.
- Search and pick both the "From" and "To" products — each shows its current stock once selected.
- Enter the quantity to move (capped at the "From" product's available stock) and an optional note, then review the before/after preview for both products.
- Click Transfer to move the units — useful for repacking one SKU into another or correcting a mis-billed product.
7 View the full stock movement history
- Open ⋮ → History on any row (available to every role, no tier restriction) to see a timeline of every Restock, Return, Opening, Adjustment, Transfer, Sale and Damage event for that product.
- Each entry shows the quantity delta, the before → after values, who/what triggered it (note/reference), and the timestamp.
- Use Previous/Next to page through older movements (20 per page).
8 Scan a barcode to jump straight into Adjust
- Type or scan a barcode into the "Scan barcode…" box in the filter toolbar and press Enter or click Find.
- BazaarPOS looks up the matching inventory row and opens the Stock Adjust panel for it directly — a fast path for a supplier delivery where you're scanning items one by one.
9 Bulk import stock from Excel/CSV
- Click Import in the page header to open the Bulk Import wizard.
- Download the provided .xlsx template (SKU, Barcode, Quantity, Min Stock, Max Stock, Reorder Point, Note columns) or drag your own file onto the drop zone — .csv, .xlsx and .xls are all supported.
- Each row is matched by SKU or Barcode; leave any column blank to leave that field untouched on the matched product.
- Review the Preview & Validate step — rows with errors (missing SKU/Barcode, non-numeric quantities) are highlighted red and are skipped automatically.
- Click Import N records to apply all valid rows; the final step reports how many records updated, how many SKUs were not found, and any row-level errors.
10 Assign a bin / shelf location
- Open ⋮ → Bin Location and type a free-text location code (e.g.
A-01-03, aisle-rack-shelf format), or click one of the quick-pick examples. - Click Save Location — the code then shows as a small violet tag next to the product in the list, and a pin icon marks the row.
11 Assemble a kit / BOM product
- Open ⋮ → Assemble (only shown for products marked as a Kit) to see its Bill of Materials — each component, quantity needed per unit, and current stock.
- Enter how many finished kits to assemble; rows short on component stock are highlighted red and assembly is blocked until resolved.
- Click Assemble to consume the components and add the finished kits to stock in one step.
12 Repack bulk stock into retail packs
- Open ⋮ → Repack (only shown when the row has stock) to break a bulk item (e.g. a 50kg sack) into a smaller retail-pack product.
- Enter the quantity of the source product to consume, search for and select the target pack product, and enter how many packs are produced plus any wastage.
- Click Repack — stock is deducted from the source and added to the target pack product in one linked transaction.
13 Manage consignment stock
- Open ⋮ → Consignment (Enterprise tier) to see the consignment log for that product — quantity received, returned and sold per supplier batch.
- Switch to the + Receive Consignment tab to record new stock taken in on consignment (supplier, quantity, cost price, batch/reference, notes) without owing the supplier until it sells.
- From the log, use Return to Supplier to send back unsold units, or Mark Settled once you've paid the supplier for what sold.
14 Record waste, theft, spoilage or damage
- Open ⋮ → Waste / Loss (Advanced tier) and choose a type: Waste, Theft, Spoilage or Damage.
- Enter the quantity to write off (capped at current stock) and an optional note, then click Record Loss — this deducts stock immediately with the reason attached to the movement history.
15 Set a default supplier for auto-reorder
- Open ⋮ → Default Supplier and pick which supplier should automatically receive a purchase order when this product falls to or below its reorder point.
- This only creates a PO automatically if Auto-Reorder is separately enabled in Settings; otherwise it is used to pre-fill supplier on manual reorders.
16 Run the stock valuation report
- Click Valuation in the page header to open the report, generated fresh each time it opens.
- Choose which costing method to view: Book Value (cost price from product master × quantity), Batch/FIFO Value (remaining batch quantities × their batch cost) or WAC Value (Weighted Average Cost rate × quantity).
- Filter by product name/SKU, and export the full report to CSV including all three valuation methods side by side.
Every Field & Button, Explained
| Field / Button | What it does |
|---|---|
Refresh | Re-fetches the inventory list and stats immediately. |
Export (Excel/PDF button) | Opens the formatted export dialog for the current filtered list; requires Export permission. |
CSV | One-click download of the currently loaded rows as a plain CSV (Name, SKU, Category, Qty, Unit, Min Level, Reorder Point, Last Restocked, Cost Price, Value). |
Valuation | Opens the Stock Valuation Report modal (Book/FIFO/WAC methods). |
Import | Opens the bulk Excel/CSV import wizard for quantities and thresholds. |
Transfer (header button) | Opens Stock Transfer without pre-selecting a source product (Advanced tier). |
Start Stock Take / Exit Stock Take | Toggles bulk-edit mode where every row's quantity becomes directly editable for a full recount. |
SKUs / Units / Value / Categories tiles | Top-row summary stats — total distinct products, total units across all products, total stock value at cost, and number of categories in use. |
Low Stock / Out of Stock / Expiring Soon / Expired tiles | Clickable alert filters — click to filter the table to just that condition, click again to clear. |
Reorder Suggestions banner | Appears only under the "Needs Reorder" filter when items are at/below their reorder point; its button jumps to Purchase Orders. |
Search box | Debounced search across product name and SKU. |
Scan barcode… + Find | Looks up a product by barcode and opens the Adjust panel for the matching row directly. |
Category filter | Restricts the list to one product category. |
Stock status filter | All / In Stock / Low Stock / Needs Reorder / Out of Stock / Expiring Soon / Expired / Has Expiry Date. |
Table / Grid toggle | Switches the product list between a dense table and card-style grid. |
− / + quick adjust | One-unit stock decrease/increase directly from the row, without opening a modal. |
Status badge | Out of Stock (red, qty = 0), Low Stock (amber, qty ≤ min level), or In Stock (green). |
↑ REORDER tag | Shown under the status badge when quantity has dropped to or below the reorder point (but is still above zero). |
Min / Reorder column | Shows the product's configured minimum stock level and reorder point side by side. |
Expiry column | Shows days remaining/expired with colour coding, plus the batch number underneath if one is on the row. |
Bin/shelf tag | Small violet pin-icon tag showing the assigned bin/shelf location code, if set. |
Adjust (row button) | Opens the Stock Adjust panel pre-loaded with that product. |
⋮ Batches | Opens per-product batch/lot tracking with expiry and cost per batch (Advanced tier). |
⋮ Transfer | Opens Stock Transfer with this product pre-loaded as the source (Advanced tier). |
⋮ History | Opens the full stock movement timeline for this product (all tiers). |
⋮ Serial Numbers | Opens inline serial-number management for this product; only shown when the product is serial-tracked (Advanced tier). |
⋮ Assemble | Opens the Kit Assembly panel; only shown for products flagged as a Kit (Advanced tier). |
⋮ Repack | Opens the Repack panel to convert bulk stock into a retail-pack product; only shown when the row has stock (Advanced tier). |
⋮ Consignment | Opens consignment receive/return/settle tracking (Enterprise tier). |
⋮ Bin Location | Opens the bin/shelf location editor (Enterprise tier). |
⋮ Waste / Loss | Opens the write-off panel for Waste, Theft, Spoilage or Damage (Advanced tier). |
⋮ Default Supplier | Opens the auto-reorder supplier picker for this product. |
Tips & Best Practices
- Set realistic Min Stock Level and Reorder Point values per product on the Products page — the Low Stock tile and reorder banner are only as useful as those thresholds.
- Use the barcode scan box during supplier deliveries — it is faster than searching by name for every carton you receive.
- Run the Valuation report before month-end closing so your books, GST filing and physical stock all agree on the same numbers.
- When something doesn't reconcile, check Batches first — the batch-total-vs-inventory mismatch banner catches most data-entry slips.
- If an Admin cannot click Adjust/Transfer/Waste and sees nothing happen, it is almost always the "select a specific branch" guard — switch the scope selector first.