DDeetzo Academy ◀ All module guides
Deetzo ERP · Inventory & Items · Training Guide

Inventory & Items — one quantity, one ledger

The shared master under every module: what an item is, how stock is classified and costed, and the audited ledger that every buy, make and sell moves. Learn the reason codes and no stock number is ever a mystery.

Version 1.2 Reviewed against production code Multi-UOM · Stores · Moving-avg Audience Stores · Purchase · Ops
01Item
→
02Stock
→
04Ledger
→
06Stores
→
07Valuation
→
08Reorder
00

The big picture

Items are the atoms — everything you buy, make and sell is one.

Inventory is the shared master under every other module. A product/item is bought (Purchasing), consumed and produced (Production), and sold (Sales). Its stock is one authoritative number moved by those modules through a single audited ledger. This guide is about the item itself and the stock behind it.

WHAT MOVES STOCK THE LEDGER ITEM BALANCES WHAT READS THEM Goods receipt PO Receive · bill + QC release inspection hold → + Work order issue − · receipt + Invoice finalise the sale − Returns credit / debit note ± Adjust stock opening · damage ± Stock transfer store → store 0 Stock history reason + signed qty append-only Below-zero guard Invoice · Adjust stock: blocked unless Settings → Allow overselling On hand issuable today Reserved for released WOs Available on hand − reserved QC-HOLD awaiting inspection At vendor at a subcontractor Low-stock alert at/below threshold Reorder Suggestions one tap → draft POs Stock Valuation qty × average cost
FlowEvery stock movement goes through one ledger. Receipts, QC release, work orders, invoice finalise, returns, adjustments and transfers each write one Stock history row with a reason and a signed quantity, and the same save updates the item's five balances. Low-stock alerts, Reorder Suggestions and Stock Valuation all read those balances, and Stock Movements lists the history rows for every item. Delivery notes move no stock; the invoice is the only sell-side stock-out. A transfer changes only where stock sits, so its row carries zero.
Batches and expiry have their own guide

An item can also track batch/lot numbers and use-by dates — which units came in on which delivery, first-expiry-first-out picking, and labelling stock you already hold. It is a per-item switch and needs no migration. Read Batch, Lot & Expiry.

One number, many movers

stockQty is the single source of truth for on-hand. Sales invoices, GRNs, work orders, and adjustments all move it — and every move writes one row to the item's stock history with a reason code. Learn to read those reasons (§04) and you can explain any quantity.

Where the screens live

ITEM

Items

The catalogue — natures, codes, stock, price, low-stock.

/catalog
STOR

Stores

Where stock physically sits; inter-store transfers.

/catalog/stores
TXFR

Stock Transfer

Move quantity between stores (no total change).

/catalog/stock-transfer
MOVE

Stock Movements

Every item's history rows in one list, filterable by reason.

/catalog/stock-movements
VALU

Stock Valuation

Quantity × average cost, today or as of a past date.

/catalog/stock-valuation
RORD

Reorder Suggestions

Items at or below their reorder point, grouped by supplier.

/catalog/reorder
DETL

Item detail

Stock card, pricing, BOM usage, adjust & history.

click an item

All but Item detail are entries under Inventory in the sidebar; item detail / edit / stock history open by tapping through. Inventory ships in every plan. Permissions: canViewInventory to see, canAddProduct / canEditProduct to change (there's no separate delete flag — delete rides on edit/owner).

01

The item

Nature, an auto code, goods-or-service, and opt-in stock.

erp.deetzo.com/#/catalog
Items list with KPIs (total items, low stock, stock value, services), category chips, and a table showing item, code, nature (FG/SF/RM/BO/SC), stock by store, reorder, price and status
ScreenItems. KPIs (total / low-stock / stock value / services), category chips, and a table showing each item's nature tag (FG, SF, RM, BO, SC…), auto code, on-hand split by store, reorder point, and price.

Item nature & the auto-code prefix

Every item carries a nature that classifies it and drives an auto-generated code prefix (per-nature running counter, e.g. RM-0007):

NaturePrefixCan be a BOM's finished good?
Finished GoodFGYes
Semi-FinishedSFYes
Raw MaterialRMNo (never manufactured)
Bought-OutBONo
SubcontractingSCYes
ConsumableCONo
Trading GoodTGYes
Unspecified— none ——

The counter measures existing codes so it pulls up past any you typed manually. Prefixes are editable per business (Settings → Item Code Prefixes).

Goods vs service, and opt-in stock

  • Item kind — goods or service. Services hide stock/specs/production and relabel HSN → SAC.
  • Maintain stock — stock tracking is opt-in. When off, the item is never decremented/restocked (services, non-inventory items).
  • Tax preference — taxable · exempt · nilRated · nonGst; non-taxable forces GST 0.
  • GST unit (UQC) — required on a goods item under India GST (NOS, KGS, and the rest of the portal's list). A service is stored as NA and is never asked. Fix missing GST units, on the Items menu, writes the code onto the item or onto a finalised invoice, credit note or debit note, and does not change amounts.
02

Reading stock

On-hand, reserved, available, QC-HOLD, at-vendor — five balances, one item.

erp.deetzo.com/#/catalog · item detail
Item detail with a Running low banner, Stock card (On hand, By store, Low stock at), a stock-level bar below threshold, Pricing and tax, Summary rail and Actions (New invoice, Adjust stock, Edit, Clone, Stock history, Delete)
ScreenItem detail. The Stock card (On hand / By store / Low stock at), the level bar with the reorder alert, Pricing & tax, and Actions — New invoice, Adjust stock, Edit, Clone, Stock history, Delete.
BalanceMeaning
On hand stockQtyAuthoritative, issuable today. Always in the base unit.
Reserved reservedQtyCommitted to released work orders (recomputed live on the detail).
AvailablestockQty − reservedQty — what's truly free.
QC-HOLD qcHoldQtyA separate countable balance; blocking-receipt goods sit here until the incoming inspection is submitted — accepted qty then moves to good stock, rejected qty out to an NCR (never issuable/sellable while held).
At vendor atVendorQtyOwned stock physically at a subcontractor; left on-hand. owned = stockQty + atVendorQty.
03

Multi-UOM

Enter in boxes, store in pieces.

An item has one base unit (e.g. pcs). Stock is always stored and moved in the base unit — alternative units are a data-entry convenience only.

  • An alternative unit carries a factor = how many base units make one alt unit (base pcs, box factor 12 → 1 box = 12 pcs).
  • When you receive or adjust in an alt unit, the system converts to base for the ledger and records the entry unit/qty for the audit trail.
  • Purchase cost is normalised to a per-base-unit cost so weighted-average costing stays consistent.
04

The stock ledger

Every movement, named. This is the master reason table for the whole system.

Each change writes a row to the item's Stock history with a signed quantity and a reason. The history and the Stock Movements screen show the label in the first column; these are written across Sales, Purchasing, Production and Quality — this is the complete map:

Reason (as shown)Written whenΔ
Goods receipt (PO)Goods received against a PO+
Received on billA direct bill (no PO) brings the goods in, when Settings → Purchases is set to receive and capitalise+
Received into QC holdReceipt held by a blocking incoming gate — counted in QC-HOLD, not on hand0
Released from QC holdIncoming inspection submitted — accepted qty joins good stock+
Quarantined (QC)Units rejected at inspection / NCR−
Accepted as-is (NCR)Non-conforming units accepted into stock+
Returned to vendorGoods sent back on a debit note−
Issued to productionComponents issued to a work order−
Returned from productionUnused components returned from a work order+
Produced (work order)Finished goods received from a work order+
Sent for job work · Returned from job work · Written off at vendor …Subcontract material out and back±
Invoice saleInvoice finalised — the only sell-side stock-out−
Invoice cancelledA finalised invoice is cancelled+
Returned on credit note · Credit note cancelledCustomer return restocked / undone+ / −
Store transfer · Placed into a storeLocation only — the total does not change0
Landed cost appliedFreight etc. added to the cost — a revaluation, no quantity0
Purchase · Sale Return · Opening Stock · Damage / Loss · Correction · OtherManual stock adjustment (§05)±
05

Adjusting stock

The manual lever — with a reason and an overselling guard.

The Adjust stock action opens a sheet: pick a reason, enter a quantity (in any unit), add a note. The six manual reasons:

ReasonDirection
purchase — receive stock+
saleReturn — customer return+
openingStock — opening balance+
damage — damage / loss−
correction — count correction± (you choose)
other — misc± (you choose)

With Settings → Allow overselling off (the default), a reduction that would take on-hand below zero is refused: you see "Stock would go negative" and, if you press Proceed, "Insufficient stock…". Turn the setting on and the adjustment goes through. The same setting decides whether finalising an invoice may oversell. Other outward moves have a fixed rule: a return to vendor or a job-work issue always refuses, a work-order issue goes below zero only if you tick its over-issue override, and a QC quarantine takes only what is there.

06

Stores & transfers

Where the total sits — an attribution layer over the one true quantity.

erp.deetzo.com/#/catalog/stores
Stores screen with KPIs (stores, stock in stores, needs placing, needs reconciling) and a table of stores (Default, Work In Progress) with items and quantity held
ScreenStores. Locations that explain where stock sits. KPIs flag Needs placing (stock not yet in a store) and Needs reconciling (store balances exceed the item total). Transfer stock moves quantity between stores.
Stores never change the total

An item's stockQty is the truth; stores only attribute it. A transfer moves storeBalances and writes a zero-quantity store_transfer ledger row — the on-hand total is untouched. Anything not yet attributed sits in an unattributed pool; over-attribution shows as drift. That's why "needs placing" and "needs reconciling" exist.

07

Valuation

Moving-average cost — where it updates, and where it doesn't.

Stock is valued at a moving-average cost (stored as costPrice, per base unit). On each priced GRN the cost re-blends:

newCost = (existingQty × existingCost + receivedQty × purchaseCost) ÷ totalQty

Where else the cost moves

A partial receipt from a work order blends the order's standard cost per unit into the average, the same way a GRN does. When the work order completes and Books is on, the finished good's average is re-stamped from the actual production cost. A landed cost voucher revalues the goods still on hand. Nothing else — a sale, a transfer or an adjustment — changes the average.

Inventory → Stock Valuation values every item at quantity × average cost, today or as of a past date (it rolls later movements back). On the Items screen the Stock value tile leaves out any item whose on-hand or cost is negative and lists them, so one bad row cannot distort the total.

08

Low stock & reorder

Knowing when to buy.

  • Low stock — an item is low when on hand ≤ its Low stock at threshold. The item detail shows a red level bar, and the dashboard rolls low items into a "running low on stock" banner and tile; an adjustment that crosses the threshold raises a notification.
  • Reorder point — separate from the threshold. Inventory → Reorder Suggestions lists every active, purchasable item whose position (on hand − reserved + QC-HOLD + at vendor + still due on open POs) has reached its reorder point, grouped by preferred supplier.
  • The suggested quantity is reorder point + safety stock − position, at least the minimum order qty. Edit it, untick what you don't want, and one tap creates a draft PO per supplier that follows the normal approval flow.
  • A morning reminder lists items at or below their reorder point — sent when a new item joins the list, otherwise as a weekly digest while items stay low.
09

Quick reference

The tables to keep open while you learn.

ConceptValues
Routes/catalog · /catalog/stores · /catalog/stock-transfer · /catalog/stock-movements · /catalog/stock-valuation · /catalog/reorder
Item naturesFinished Good · Semi-Finished · Raw Material · Bought-Out · Subcontracting · Consumable · Trading Good · Unspecified
Code prefixesFG · SF · RM · BO · SC · CO · TG (Unspecified → none)
Item kindgoods · service
Tax preferencetaxable · exempt · nilRated · nonGst
GST unitUQC on a goods item (a service is NA). A goods invoice line copies it, and a tax invoice cannot be finalised without one.
Stock balanceson-hand stockQty · reservedQty · available · qcHoldQty · atVendorQty
Adjustment reasonsPurchase · Sale Return · Opening Stock · Damage / Loss · Correction · Other
Below-zero ruleSettings → Allow overselling (off by default) — governs Adjust stock and invoice finalise
PermissionscanViewInventory · canAddProduct · canEditProduct
The one mental model to keep

One quantity, one ledger. Every module moves the same stockQty and signs its reason. Stores say where it is, GRNs set what it cost, and QC-HOLD keeps unverified goods out of it. Read the reason codes and nothing about stock is a mystery.