Inventory

Stock in,

stock out. Tracked.

199 AED/ month    |    Includes 1 user   |   +49 AED / extra seat

Multi-location stock, transfers, reorder alerts, barcode scanning, stock adjustments, assembly, vendor returns. Perpetual-inventory accounting baked in: every movement posts the matching journal so your COGS and Inventory asset are always in sync with the count.

  • Multi-location stock tracking with per-location quantities
  • Perpetual COGS — invoice fulfillment auto-posts DR COGS / CR Inventory
  • Stock adjustment + cycle count variances post Inventory Variance journal
  • Assembly orders + vendor returns auto-journal at qty × unitCost
  • Asset capitalisation: per-fixed-asset asset / accum-dep / dep-expense FKs
  • Per-product valuation: FIFO or weighted average
Inventory
01.
Multi-location

One product, many shelves.

Each product carries per-location stock quantities. A sale at the main shop decrements main; a sale at the airport branch decrements airport. The product list shows total + per-location at a glance.

  • Unlimited locations per company
  • Per-location reorder points
  • Per-location stock value rollup
  • Branch reports filtered by location
02.
Transfers

Move stock without losing it.

Issue a transfer at the source location. Stock decrements source, becomes in-transit. Destination location receives it; in-transit clears, destination increments. Lost-in-transit reports flag anything dispatched but never received.

  • Multi-line transfers (many products in one move)
  • In-transit balance per transfer
  • Partial receive supported (3 of 5 boxes arrived)
  • Lost-in-transit report
03.
Reorder alerts

Never stock out twice.

Set a reorder point per product per location. When stock crosses below, the product hits the Reorder Alerts page. Optionally auto-generate a Purchase Order on the Accounting module, addressed to the preferred vendor, with the suggested quantity pre-filled.

  • Per-product per-location reorder point
  • Reorder Alerts dashboard with overdue badge
  • Auto-PO generation to preferred vendor (configurable)
  • Vendor lead-time tracking recommends the order date
04.
Barcodes

Scan in. Scan out.

Generate Code 128 / EAN barcodes per product (or import the vendor's). Scan at receiving, at the till (with POS), at stock counts. Barcode-labelled price tags print straight from the product page.

  • Code 128, EAN-13, UPC supported
  • Per-product barcode generator
  • Bulk label printing on Avery + custom layouts
  • Scanner input wired through POS, picking, receiving
05.
Audits & cycle counts

Cycle counts that survive busy stores. And post to the GL.

Create a cycle count for a location or product range. Count over multiple sessions (paused + resumed). On commit, the inventory engine writes the variance movements AND emits the stock-adjusted event — the accounting handler posts DR Inventory Variance (5100) / CR Inventory (1140) for write-offs, or the reverse for discoveries. Idempotent on `J-INVADJ-CC-{countId}` so re-commits are no-ops.

  • Multi-session counts (count today, finish tomorrow)
  • Per-line discrepancy with reason codes
  • Commit → variance journal posted automatically (J-INVADJ-CC-{id})
  • Audit log of every count adjustment
06.
Perpetual COGS

Cost of goods sold, recognized at fulfillment.

When an invoice is fulfilled, the stock-hooks service writes the stock-out movement at the engine's actual unit cost AND emits INVENTORY_COGS_RECOGNIZED. The accounting handler posts DR COGS / CR Inventory at `qty × unitCost` per line, idempotent on `J-COGS-INV-{invoiceId}-{lineId}`. Voids reverse (`JR-COGS-INV-…`); credit-note sales returns restock + reverse COGS (`J-COGS-CN-{id}-{lineId}`).

  • Invoice fulfill → DR COGS / CR Inventory (real engine unit cost)
  • Void → reversing journal (audit-clean, never edits the original)
  • Credit-note returns: restock + reverse COGS in one event chain
  • Bill receipts auto-route to 1140 Inventory for trackInventory=true products
07.
Assembly & vendor returns

Build kits, return defects — GL stays balanced.

Assembly orders consume components + produce finished goods at the engine's actual cost (`J-ASM-{assemblyId}` reclassifies between sub-accounts when configured). Vendor returns ship defective stock back + reverse the original receipt cost (`J-VRET-{returnId}-{lineId}`: DR A/P / CR Inventory). Plus an Asset 3-account FK trio (asset / accum-dep / dep-expense) so fixed assets capitalise cleanly per row.

  • Assembly: components → finished goods at weighted-avg cost
  • Vendor return: DR A/P / CR Inventory per return line
  • Asset 3-FK trio for fixed-asset capitalisation + depreciation routing
  • Warehouse-level costCentreAccountId for branch overhead attribution
Inventory + POS + Accounting

One subscription. One stock figure. One ledger.

The biggest source of inventory pain is data drift between the POS, the warehouse system, and the accounting books. NovaCept Inventory shares its stock figure with POS and Accounting because they're all the same system — and every movement (sale, receipt, adjustment, transfer, assembly, return, cycle count) auto-posts the matching journal so your perpetual-inventory GL is always tick-for-tick with your stock count.