Zudo Works

Stock movements and balances

Movements — /stock/movements [stock.read, post stock.post]

TypePrefixDirectionReason requiredUnit cost
ReceiptRCV→ warehousenorequired
IssueISSwarehouse →yesmoving average
TransferTRFwarehouse → warehousenocarried
AdjustmentADJ±yesmoving average / standard cost
Job issueJISwarehouse → jobover-issue needs a reasonmoving average
Job returnJRTjob → warehousenosame rate as issued

Lifecycle: draft → posted (immutable) or draft → cancelled. Each posting is one database transaction with a gapless per-workspace document number and an idempotency key; a repeated post with the same key answers the original document, a different payload with the same key is refused (idempotency_key_reused). Job issue / return are created from the job page.

Views: table or timeline; filters by type, status, date, item, warehouse; export. The movement page shows lines, ledger effects, attachments (photos, signatures) and links to the PO or job that produced it.

Item cost: where it is used and how it changes

Every item has one current cost — the Standard cost on its form. It is the starting value of every cost or price you enter for the item, and it follows the cost stock really comes in at.

Where it is used. Picking an item on a line fills the line's cost or price with the item's current cost: stock movement lines (receipts, adjustments — also when you enter opening stock), purchase orders, vendor bills, quotes and sales orders, invoices, credit notes and vendor credits, and recurring profiles. Zudo AI uses it too when it fills in an order and you gave no price. The field stays editable: type another amount and a small Item cost ₹130.00 note under the field reminds you of the item's cost. Change the line's item and an amount that was filled in follows the new item; an amount you typed is never replaced. The BOM editor shows each component's cost (quantity per × scrap × current cost) and the material cost per unit from the current costs.

How it changes.

  1. Post a receipt (or an increasing adjustment) at a unit cost that is not the item's cost — for example BOLT-M8 costs ₹0.25 and the delivery note says ₹0.30.
  2. The line shows a ticked box Use ₹0.30 as BOLT-M8's cost from now on. Leave it ticked and post: from now on the item's cost is ₹0.30, so the next movement, purchase order and invoice start at ₹0.30. Untick it to post at ₹0.30 while keeping the item's cost at ₹0.25 (a one-off price).
  3. Receiving a purchase order works the same way: the Receive dialog has one box, Use the order's unit costs as the items' costs from now on.

Good to know:

Balances — /stock/balances [stock.read]

Quantity and value per item and warehouse, straight from the ledger. Low-stock alerts: set a level per item; items below it are flagged and listed. A heatmap view shades warehouses × top items. The on-hand range slider filters rows. Export for stock counts.

Item history — /stock/items/:id/history

The per-item ledger: every entry with document, warehouse, quantity in/out, running balance and cost.

Last updated