Godowns
Godowns lets you manage multiple storage locations — main store, distribution centre, cold storage, transit — see exactly how much of each product sits in each one, and move stock between them with a full approval-to-completion trail.
Overview
The page has three tabs: Warehouses (the list of godowns you manage, each as a card with its own stock stats), Stock by Location (a matrix of every product × every warehouse), and Transfers (requests to move stock from one warehouse to another).
Each warehouse card shows its type (Main Store, Distribution, Cold Storage, Transit), product count, total quantity, and — if a capacity was set — a utilization bar that turns amber past 70% full and red past 90%.
Stock transfers between warehouses go through a five-step status flow: Requested → Approved → In Transit → Received → Completed, so nothing moves silently — every step is a deliberate action by a manager or admin.
Before You Start
- Requires the Advanced plan tier or above for the Multi-Store feature.
- Deleting a warehouse that still has products assigned automatically deactivates it instead of deleting — you must first move its stock elsewhere to remove it completely.
Step-by-Step Guide
1 Add or edit a warehouse
- Click Add Warehouse (Warehouses tab) or the edit icon on an existing card.
- Fill in Name (required) and optionally Code (auto-generated if left blank), Type (Main Store/Distribution/Cold Storage/Transit), Address, Capacity, Contact Name/Phone and Notes.
- Admins creating a new warehouse also choose its Visibility: This branch only, All branches in unit, or All branches (company).
- Click Save — the warehouse appears immediately as a card with zero stock.
2 View and add stock inside a warehouse
- Click a warehouse card (or its "View Stock" link) to open the Inventory drawer for that location.
- The drawer header shows Products / Total Qty / Low Stock counts for that warehouse; search within the drawer to find a specific product.
- Click Add Stock, search for and pick a product, then enter its Quantity and Min Stock level for this warehouse, and click Save.
3 See stock across every location at once
- Switch to the Stock by Location tab for a matrix: one row per product, one column per warehouse, with a Total column on the right.
- Cells are colour-coded — red for zero stock at that location, amber for at/below that location's minimum, plain otherwise.
- Use the search box to filter the matrix by product name or SKU; column and row totals update automatically.
4 Request and track a stock transfer between warehouses
- Switch to the Transfers tab and click New Transfer.
- Pick a From Warehouse and a different To Warehouse, then add one or more product rows (search + pick product, enter quantity) — use "Add Row" for multiple products in one transfer.
- Add an optional note and click Create Transfer — it starts in Requested status.
- Open any transfer from the list to see its status stepper (Requested → Approved → In Transit → Received → Completed) and the exact items/quantities involved.
- Move the transfer forward with the action button shown for its current status: Approve (Requested), Dispatch (Approved → In Transit), Mark as Received (In Transit → Received — this is the step that actually moves the stock), then Close Transfer (Received → Completed).
- A transfer can be Cancelled at the Requested or Approved stage, before stock has moved.
5 Filter and manage the warehouse list
- Use the search box, Type filter and Active/Inactive Status filter on the Warehouses tab to narrow the card grid.
- Use the toggle switch on a card to activate/deactivate a warehouse without deleting it.
- Use the delete icon to remove a warehouse — if it still holds stock, BazaarPOS deactivates it instead and tells you so in the confirmation dialog.
Every Field & Button, Explained
| Field / Button | What it does |
|---|---|
Warehouses / Stock by Location / Transfers tabs | Switches the whole page between the warehouse card grid, the product×warehouse stock matrix, and the transfer request list. |
Total / Active / Total Products / Total Stock Qty tiles | Summary stats across all warehouses currently in view. |
Search name, code… | Filters the warehouse card grid by name or code. |
Type filter | Main Store / Distribution / Cold Storage / Transit. |
Status filter | Active or Inactive warehouses. |
Warehouse card | Shows name, type badge, code, address, active/inactive state, Products/Total Qty/Capacity stats and a capacity utilization bar. |
View Stock | Opens the Inventory drawer listing every product stocked at that warehouse. |
Edit (pencil icon) | Opens the warehouse form pre-filled for editing. |
Active/Inactive toggle | Activates or deactivates the warehouse without deleting it. |
Delete (trash icon) | Deletes the warehouse, or deactivates it instead if it still has products assigned. |
Add Stock (inside drawer) | Assigns a product to this warehouse with an initial quantity and minimum stock level. |
Stock matrix table | Product rows × warehouse columns; red = out of stock at that location, amber = at/below minimum, with row and column totals. |
New Transfer | Opens the form to request moving one or more products from one warehouse to another. |
Transfer status filter | All / Requested / Approved / In Transit / Received / Completed / Cancelled. |
Transfer status stepper | Visual 5-step progress (Requested → Approved → In Transit → Received → Completed) shown in the transfer detail drawer. |
Approve / Dispatch / Mark as Received / Close Transfer | The single action button shown depends on the transfer's current status — each advances it one step. |
Cancel (transfer) | Available only at Requested or Approved status, before any stock has moved. |
Tips & Best Practices
- Set a Capacity value on high-volume warehouses so the utilization bar warns you before you run out of physical space.
- Use Cold Storage as a warehouse Type for perishables even if it is physically inside your main store — it keeps stock-matrix reporting meaningful.
- Use the Stock by Location matrix before creating a transfer — it is the fastest way to see which warehouse actually has surplus of a product.
- Do not forget to mark a transfer Received once goods physically arrive — that is the step that moves the stock; Dispatch alone does not.
Troubleshooting & FAQ
I don't see Godowns in my sidebar at all.
I deleted a warehouse but it is still showing, just greyed out.
A transfer says "Received" but I still see old stock levels.
I can't select the same warehouse as both From and To on a transfer.
The utilization bar isn't showing on a warehouse card.
🧑💻 Developer Notes
Source component(s):
frontend-app/packages/pos-react-lib/src/pages/WarehousePage.jsx
Backend endpoints used:
GET /warehousesPOST /warehousesPUT /warehouses/:idDELETE /warehouses/:idGET /warehouses/:idPOST /warehouses/:id/stockGET /warehouses/stock-matrixGET /stock-transfersPOST /stock-transfersGET /stock-transfers/:idPOST /stock-transfers/:id/approvePOST /stock-transfers/:id/in-transitPOST /stock-transfers/:id/receivePOST /stock-transfers/:id/completePOST /stock-transfers/:id/cancelGET /products
Related tables (db-core repositories):
WarehouseWarehouseInventoryStockTransferStockTransferItemProduct
Redux slices:
auth (role)scope (selectCurrentScope / getScopeQueryParams)NavPermissionContext (usePagePermission)
Feature flag key: multi_store (requires advanced plan tier or above)
This warehouse-to-warehouse Stock Transfer flow (with its own /stock-transfers endpoints and REQUESTED→APPROVED→IN_TRANSIT→RECEIVED→COMPLETED status machine) is a distinct feature from the product-to-product "Transfer" action inside Inventory (POST /inventory/transfer), which moves stock between two different products rather than between two locations.