Inventory & Warehouse Management

Site: Learn at Merupu AI
Course: SamvraCore ERP
Book: Inventory & Warehouse Management
Printed by: Guest user
Date: Tuesday, 27 October 2026, 7:30 AM

Description

Multi-warehouse stock with batches, serials, movements, adjustments, transfers and counts.

1. Warehouses, Locations, and the Product Master

Inventory in SamvraCore ERP is organised around warehouses and the locations inside them. The WarehousesPage supports multiple warehouses, each tracked with an address, a manager, and an active status. Within a warehouse, warehouse locations follow a hierarchical structure of zone, aisle, rack, and bin, and locations can carry capacity limits so storage constraints are modelled explicitly.

Stock is always tracked in context. The InventoryListPage shows stock levels broken down per warehouse, per batch, and per serial, so a single product can have distinct quantities across different storage points and lots.

The Product master (ProductsPage) defines the items that inventory tracks. Each product carries a SKU, pricing, a tax categorisation, and a stock policy. These product-level attributes feed downstream processes: the tax category drives tax determination, pricing informs valuation, and the stock policy governs how the item behaves in inventory.

A typical setup sequence: define warehouses and their active status, build out the zone-aisle-rack-bin location hierarchy with capacity limits, create products in the master with SKU and stock policy, and then begin recording stock levels against specific warehouses, locations, batches, or serials.

2. Stock Levels and Computed Fields

Stock levels are tracked in real time by product, warehouse, and location. For each stock record the system maintains the quantity on hand, the quantity reserved, and the quantity available, along with reorder levels and reorder quantities and valuation figures for unit cost and total value.

Several of these figures are computed fields maintained by the database rather than entered by hand. Quantity available is a PostgreSQL generated column defined as quantity on hand minus quantity reserved, so available stock always reflects current reservations automatically. Total value is a generated column equal to quantity on hand multiplied by unit cost. For adjustments and counts, variance is computed as the counted quantity minus the system quantity.

Because these values are derived at the database level, they cannot drift out of sync with their inputs. When a reservation is placed or released, available quantity updates; when on-hand quantity or unit cost changes, total value recalculates.

These stock-level figures also drive alerting. The system supports reorder points defined by an opening quantity and a reorder level, and the InventoryListPage and related views can surface items that have fallen below threshold through low-stock alerts, which are configurable and threshold based.

3. Batch, Lot, Serial, and Expiry Tracking

SamvraCore tracks inventory not just by product but by batch, lot, or serial number. Batch Management (BatchManagementPage) is expiry-date aware, and Serial Numbers are managed through their own SerialNumbersPage. Because inventory levels are tracked per batch and per serial, the organisation can know exactly which lot or unit is where.

Each batch or lot record can carry a manufacture date and an expiry date as well as supplier tracking, linking the batch to where it came from. The module provides FIFO support for batch consumption, so stock can be consumed oldest-first when a first-in-first-out policy is wanted.

Expiry awareness feeds the Expiry Alerts view (ExpiryAlertsPage), which highlights stock approaching or past its expiry date so it can be acted on before it becomes unusable.

A worked example: a perishable product is received in two batches with different expiry dates and supplier references. Inventory shows the quantity of each batch separately. When the item is issued, FIFO consumption draws from the batch expiring soonest first, and Expiry Alerts flags any remaining batch nearing its expiry date so staff can prioritise or dispose of it.

4. Stock Movements and Movement Types

Every change in inventory is recorded as a stock movement, giving a complete audit trail. The StockMovementsPage records transfers, issues, and receipts, and the underlying system distinguishes a defined set of movement types.

The movement types are: receive for stock received from suppliers; issue for stock issued to orders or consumption; transfer in and transfer out for inter-warehouse transfers; adjustment in and adjustment out for manual corrections; count adjustment for changes originating from stock counts; and return in and return out for customer and supplier returns.

Movements are not only historical records; they are created automatically by other processes. Receiving stock against a purchase order creates a receive movement with a reference back to the source receipt. Completing a stock adjustment or a stock count generates the corresponding adjustment or count-adjustment movement. Shipping goods against a sales order deducts inventory and records an issue movement.

Because each movement is typed and carries references to its source, an analyst can reconstruct the full history of a product's quantity in a warehouse, seeing exactly which receipts, issues, transfers, adjustments, counts, and returns produced the current on-hand figure.

5. Stock Adjustments, Transfers, and Counts

SamvraCore provides three governed inventory processes, each with its own status workflow. Stock Adjustments correct inventory and follow the workflow Draft, Pending Approval, Approved, Completed (with a reject path). Adjustments use configurable adjustment reasons that can carry approval requirements, and on completion the system automatically generates the stock movement that applies the change.

Warehouse Transfers move stock between warehouses and follow the workflow Draft, In Transit, Received (with a cancel path). Transfers support separate ship and receive steps with quantity verification, and each transfer line can track its own location.

Stock Counts cover both cycle counts and full inventory counts and follow the workflow Draft, In Progress, Pending Review, Approved, Completed. Counts can be filtered by location and category, calculate variance for reconciliation, and pass through a multi-stage review and approval before completion applies adjustments.

These processes integrate with accounting. When a stock adjustment is completed, a positive variance debits the Inventory Asset account (1400) and credits Inventory Adjustment Income (5900), while a negative variance debits Inventory Shrinkage Expense (5910) and credits Inventory Asset (1400), each valued at variance multiplied by unit cost. A warehouse transfer between locations of the same asset account creates no journal entry.

6. Replenishment and the Receive Stock Flow

Keeping stock at workable levels is supported by reorder points and a replenishment process. Reorder points are defined per item with an opening quantity and a reorder level, and reorder quantities are tracked on stock records. When on-hand stock drops below its reorder level, low-stock alerts surface the item so a buyer or planner can act.

Replenishment is handled through a request-replenishment workflow, allowing staff to raise a request to bring an item back up to target levels.

Inbound stock enters through the Receive Stock flow (ReceiveStockPage), which is used for PO receipts. This is the same ReceiveStock path invoked when a purchase order receipt is posted, so inventory increases from procurement and manual receiving share one consistent mechanism. Receiving stock creates a receive-type stock movement and the associated accounting entry that debits Inventory Asset (1400) and credits Accounts Payable (2100) for quantity multiplied by unit cost.

A typical replenishment cycle: an item falls below its reorder level and appears in low-stock alerts, a replenishment request is raised, procurement issues a purchase order to the preferred supplier, and when the goods arrive they are brought in through the Receive Stock flow, which updates stock levels and records the movement and journal entry automatically.