Complete guide to the NkapBooks Inventory Module — manage stock movements, adjustments, shipments, purchase receipts, batch tracking, serial numbers, warehouse locations, and stock valuation.
6. Inventory Module
The Inventory Module provides full stock management in NkapBooks — tracking every unit of goods across warehouse locations, from receiving goods through purchase receipts to shipping them to customers. It is accessible from the Inventory section in the sidebar and contains the following sub-modules:
Configure default locations, valuation methods, accounts, and optional features
Inventory tracking is always enabled in NkapBooks. To track a specific item in stock, set its Item Type to Product and check the Track Item checkbox on the item record. Features like Batches, Serial Numbers, Barcodes, and UOM Conversions can be individually enabled in Inventory Settings.
Stock Movements are versatile inventory transactions that allow you to move stock between locations, issue materials out, receive materials in, or record manufacturing operations — all without a linked sales or purchase invoice.
Remove stock from a location (e.g., damaged goods, internal consumption). Serial numbers must be Active.
Material Receipt
—
✅ Required
Add stock to a location (e.g., goods found, opening stock). Serial numbers must be Inactive.
Material Transfer
✅ Required
✅ Required
Move stock between two locations. Serial numbers must be Active.
Manufacture
✅ (raw materials)
✅ (finished goods)
Record manufacturing: consume raw materials (From) and produce finished goods (To). Must have at least one item with a From location and one with a To location.
No Accounting Entries — Stock Movements are pure inventory operations and do not create accounting ledger entries (isTransactional: false). Use Purchase Receipts or Shipments when you need both stock and accounting entries.
Batch and Serial Number Support — Full validation of batch assignments and serial number status for each movement type.
UOM Conversion — Enter quantities in a transfer unit and have them automatically converted to the item's stock unit.
Stock Availability Validation — Before submission, the system validates that sufficient stock exists at the source location, including checking for future transactions that might be affected.
Manufacturing Support — The Manufacture movement type allows recording of raw material consumption and finished goods production in a single transaction.
Inventory Adjustments allow you to correct stock levels at a specific warehouse location. They are commonly used for physical stock counts, recording damaged or expired goods, theft/loss, or setting opening stock balances.
Adjustment quantity — positive for stock increase, negative for stock decrease
Conversion Factor
Float
Multiplier to convert transfer unit to stock unit
Batch
Link → Batch
Batch assignment (if applicable)
Serial Number
Text
Serial number(s) — one per line (if applicable)
Rate
Currency
Per-unit valuation rate
Amount
Currency (read-only)
Calculated: Quantity × Rate (signed — reflects increase or decrease)
Quantity Sign Matters: A positive quantity increases stock at the location (inward). A negative quantity decreases stock (outward). The system validates that quantity is never zero and that sufficient stock exists for decreases.
Inventory Adjustments are transactional — they create accounting ledger entries to reflect the value change in inventory:
For stock increases (positive quantity):
Account
Debit
Credit
Stock In Hand (from Inventory Settings)
Increase Amount
—
Stock Adjustment (from Inventory Settings)
—
Increase Amount
For stock decreases (negative quantity):
Account
Debit
Credit
Stock Adjustment (from Inventory Settings)
Decrease Amount
—
Stock In Hand (from Inventory Settings)
—
Decrease Amount
A single Inventory Adjustment can contain both increase and decrease items. The system handles each direction independently with separate debit/credit entries.
Mixed Adjustments — A single adjustment document can include both stock increases and decreases for different items.
Automatic Amount Calculation — The total amount is calculated as the sum of all signed item amounts, showing the net value impact.
Location Validation — The system validates that the specified location exists before submission.
Batch and Serial Number Support — Full validation and tracking for batched and serialized items.
Serial Number Status Management — When adjusting serial-numbered items: increases set serial numbers to Active; decreases set them to Delivered. On cancellation, these changes are reverted.
Shipments record outgoing goods deliveries to customers. They are typically linked to a Sales Invoice and reduce stock at the shipping location when submitted.
When a Shipment is submitted, the following entries are created:
Account
Debit
Credit
Cost of Goods Sold (from Inventory Settings)
Posting Amount
—
Stock In Hand (from Inventory Settings)
—
Posting Amount
For return shipments:
Account
Debit
Credit
Stock In Hand
Posting Amount
—
Cost of Goods Sold
—
Posting Amount
The Posting Amount for sales shipments is calculated based on the valuation rate from the stock queue (FIFO or Moving Average), not the selling price. This ensures that Cost of Goods Sold reflects the actual purchase cost of the goods shipped.
Linked to Sales Invoice — Shipments are typically created from a Sales Invoice (via the "Make Shipment" action or auto-shipment on submit). The back reference links the shipment to its source invoice.
Auto-Shipment — When "Make Shipment On Submit" is enabled on a Sales Invoice, a shipment is automatically created and submitted using the default location.
Stock Deduction — On submit, stock is deducted from the specified location for each item.
Stock Availability Checks — The system validates that sufficient stock exists at the source location before submission, including checking future transaction impacts.
Return Shipments — Create return shipments to record goods returned by customers. Returns reverse the stock movements and accounting entries, and update serial number statuses.
Invoice Creation — From a submitted Shipment, you can create a linked Sales Invoice.
Back Reference Tracking — The Stock Not Transferred field on the linked Sales Invoice automatically updates as shipments are created and submitted.
POS Integration — Shipments created during POS sessions are automatically recorded to the active POS session.
Purchase Receipts record incoming goods from suppliers. They are typically linked to a Purchase Invoice and increase stock at the receiving location when submitted.
Linked to Purchase Invoice — Receipts are typically created from a Purchase Invoice (via the "Make Purchase Receipt" action or auto-receipt on submit). The back reference links the receipt to its source invoice.
Auto-Receipt — When "Make Purchase Receipt On Submit" is enabled on a Purchase Invoice, a receipt is automatically created and submitted using the default location.
Stock Addition — On submit, stock is added to the specified location for each item.
Serial Number Auto-Creation — When receiving serialized items, new serial numbers are automatically created in the system with status Active. You don't need to pre-create serial number records.
Batch Assignment — Assign existing batches or create new batches inline when receiving goods.
Return Receipts — Create return receipts to record goods sent back to suppliers. Returns reverse the stock movements and accounting entries.
Back Reference Tracking — The Stock Not Received field on the linked Purchase Invoice automatically updates as receipts are created and submitted.
Purchase Rate Sync (Moving Average) — When the valuation method is set to Moving Average, the item's purchase rate is automatically updated to match the current weighted average valuation rate after each receipt.
Invoice Creation — From a submitted Purchase Receipt, you can create a linked Purchase Invoice.
Batch tracking allows you to group units of the same item into batches identified by a unique batch number. This is essential for industries dealing with perishable goods, pharmaceuticals, or any product requiring traceability.
System-level: Go to Inventory Settings and check Enable Batches. This makes batch-related fields visible across the application.
Item-level: On each Item record, check Has Batch to require batch assignment for that specific item.
Irreversible Setting: Once Has Batch is enabled on an item and the item is saved, the setting cannot be turned off. Similarly, the Enable Batches system setting becomes read-only once enabled. Plan your batch tracking strategy before enabling.
The system enforces the following batch validations across all inventory transactions:
Rule
Description
Required for batched items
If an item has Has Batch enabled, a batch must be assigned in every inventory transaction (Stock Movement, Shipment, Purchase Receipt, Inventory Adjustment).
Not allowed for non-batched items
If an item does not have Has Batch enabled, setting a batch will raise a validation error.
Stock availability per batch
When issuing or transferring stock, the system checks that sufficient quantity exists in the specified batch at the source location.
Create a Batch: Navigate to Batch in the sidebar → + New → Enter the batch name, select the item, and optionally set expiry and manufacture dates → Save.
Receive with Batch: When creating a Purchase Receipt or Stock Movement (Material Receipt), select the batch in the item row. New batches can also be created inline.
Ship with Batch: When creating a Shipment or Stock Movement (Material Issue/Transfer), select the batch to ship from. The system validates stock availability within that specific batch.
Serial Number tracking assigns a unique identifier to each individual unit of an item, enabling granular traceability throughout the supply chain. Each serial number has a lifecycle status that is automatically managed by the system.
System-level: Go to Inventory Settings and check Enable Serial Number.
Item-level: On each Item record, ensure Track Item is checked, then check Has Serial Number.
Serial Number tracking requires Track Item to be enabled first. The Has Serial Number checkbox is only visible when the item has inventory tracking and serial numbers are enabled system-wide.
Locations represent physical storage places — warehouses, stores, bins, or any area where you keep inventory. NkapBooks tracks stock quantities independently at each location.
Per-Location Stock Tracking — Every Stock Ledger Entry records the location. Stock balances are calculated per item per location.
Default Location — A default location can be set in Inventory Settings. This default is used for auto-shipments, auto-receipts, and as the pre-filled location in Inventory Adjustments.
Used Across Transactions — Locations appear in:
Shipment Items — as From Location (where goods ship from)
Purchase Receipt Items — as To Location (where goods are received)
Stock Movement Items — as From and/or To locations
Inventory Adjustment — as the adjustment location
Filtering in Transfers — When selecting a back reference (invoice) for a stock transfer, only invoices with unreceived/unshipped items are shown.
NkapBooks provides two stock valuation methods to calculate the value of your inventory: FIFO (First In, First Out) and Moving Average. The valuation method is configured in Inventory Settings and affects how the cost of goods sold and inventory values are calculated.
Every stock movement creates one or more Stock Ledger Entries — the fundamental building blocks of inventory tracking:
Field
Type
Description
Entry No.
Auto-increment
Unique entry identifier
Date
Datetime
When the stock movement occurred
Item
Link → Item
The item affected
Location
Link → Location
Where the stock change occurred
Batch
Link → Batch
Batch (if applicable)
Serial Number
Link → SerialNumber
Serial number (if applicable)
Rate
Currency
Per-unit valuation rate
Quantity
Float
Quantity change — positive for inward, negative for outward
Ref. Type
Data
The document type that created this entry (e.g., Shipment, PurchaseReceipt, StockMovement, InventoryAdjustment)
Ref. Name
DynamicLink
The specific document that created this entry
Stock Ledger Entries are system-generated and read-only. They cannot be created or modified manually. They are automatically created on submit and deleted on cancel of inventory transactions.
FIFO is the default valuation method. It uses a stock queue to track the order in which goods were received:
How it works:
Inward: When stock is received, a new entry is added to the end of the queue with the purchase rate and quantity.
Outward: When stock is issued, the oldest stock in the queue is consumed first. The valuation rate for the outward transaction is based on the rate at which the oldest stock was purchased.
Queue Consolidation: If consecutive inward entries have the same rate, they are merged into a single queue entry for efficiency.
Example:
Action
Rate
Qty
Queue State
Stock Value
Purchase 10 units @ $5
$5
+10
{rate: 5, qty: 10}
$50
Purchase 5 units @ $7
$7
+5
{rate: 5, qty: 10}, {rate: 7, qty: 5}
$85
Sell 8 units
—
-8
{rate: 5, qty: 2}, {rate: 7, qty: 5}
$45
COGS for the sale
8 × $5 = $40 (oldest consumed first)
Valuation Rate: The FIFO valuation rate at any point is calculated as: Total Stock Value ÷ Total Stock Quantity.
Moving Average recalculates the average cost after every inward transaction:
How it works:
Inward: The moving average rate is recalculated as:
New Average = (Current Average × Current Qty + Inward Rate × Inward Qty) ÷ (Current Qty + Inward Qty)
Outward: The current moving average rate is used as the valuation rate for outward transactions.
Example:
Action
Rate
Qty
Moving Avg
Stock Value
Purchase 10 units @ $5
$5
+10
$5.00
$50.00
Purchase 5 units @ $7
$7
+5
$5.67
$85.00
Sell 8 units
$5.67
-8
$5.67
$39.69
Purchase Rate Sync: When using Moving Average, each item's Purchase Rate on the Item record is automatically synchronized with the current weighted average valuation rate after each inward stock transfer. This ensures purchase invoices default to the current average cost.
Enable batch tracking across the system. Makes batch fields visible on items and inventory transactions.
Enable Serial Number
Check
☐ Disabled
Enable serial number tracking. Makes serial number fields visible on items (with Track Item) and inventory transactions.
Enable UOM Conversion
Check
☐ Disabled
Enable unit of measurement conversions. Shows UOM conversion tables on items and transfer unit fields on transactions.
Feature Toggles Are One-Way: Once a feature is enabled (Barcodes, Batches, Serial Numbers, UOM Conversions), its toggle becomes read-only and cannot be disabled. This prevents data integrity issues with existing transactions that use these features.