Inventory

This page is generated from the in-app guide content — edit featureToggleGuides and run pnpm gen:feature-toggle-docs.

Allow Negative Stock

Allow goods issues, adjustments, transfers and other decreases to exceed available stock. Sales deliveries and POS follow Strict stock ledger instead.

CodeDefaultSwitch atTurn on first
inventory.negative_stock_allowedOff/inventory/settings—

How it works

Read by the stock ledger on every stock decrease. Available stock means on hand minus reserved minus held for quality inspection.

When ON

Decreases beyond available stock are recorded and stock goes below zero.

When OFF

Goods issues (including manufacturing material issue), adjustments, transfers out, field service consumption, vendor return shipments and imports that exceed available stock are refused (default for existing and new tenants).

Screens, documents and reports affected

Goods issues, stock adjustments, transfers, field service van stock and job consumption, vendor returns, manufacturing issue/scrap.

Caveats

By design, sales deliveries and POS sales do not follow this toggle — they follow Strict stock ledger (off ⇒ they may go negative even when this is off), so a paid sale at the till is never blocked. Distribution lot write-offs always allow negative. Reserved and QC-held stock is protected only for sales deliveries/POS; other decreases can consume it when this is on.

Example

Keep off and turn Strict stock ledger on to stop every path from going below zero.

Approve manual goods issues

Goods issues created by hand (not from a stock request, work order or other document) must be approved before they can be confirmed. Uses the goods issue approval workflow when one is active; otherwise an approver with inventory:approve decides on the document.

CodeDefaultSwitch atTurn on first
inventory.goods_issue_approvalOff/settings/erp-configuration—

How it works

Applies to goods issues created by hand in the Inventory app or POS store issues. Issues generated from stock requests, work orders, field service, maintenance, service orders and other documents are not affected.

When ON

A manual goods issue must be submitted and approved before it can be confirmed; confirming earlier is refused. POS store issues are submitted for approval automatically. With an active goods issue approval workflow the workflow decides; otherwise a user with inventory:approve approves or rejects on the document (not while a workflow instance is open). Editing an approved or rejected draft resets the approval.

When OFF

Manual goods issues are confirmed directly (default for existing and new tenants); submitting for approval is refused.

Screens, documents and reports affected

Goods issue detail (approval card, Confirm), POS store issues, AI confirm action.

Caveats

Whether the creator, submitter or receiver may approve follows the company self-approval policy. An issue awaiting approval can never be confirmed, even after this is turned off — approve or reject it first.

Example

Turn on so ad-hoc issues for internal use need a manager’s approval.

Auto UOM Conversion

Use the company unit-conversion table (kg↔g, m↔cm…) on document lines. Off: only pack units defined on the item convert.

CodeDefaultSwitch atTurn on first
inventory.uom_auto_convertOn/inventory/settings—

How it works

Controls use of the company unit-conversion table (kg↔g, m↔cm…) when converting a document unit to an item’s stock unit. Pack units defined on the item are always used first.

When ON

Company conversions are used when the item has no pack unit for the pair (default for existing and new tenants).

When OFF

Only the item’s own pack units convert; a line in a unit that needs the company table is refused (purchase, sales, invoice, receipt, BOM and work order lines).

Screens, documents and reports affected

Unit conversion on every document line with a unit other than the stock unit.

Caveats

Before turning off, define pack units on items that are bought or sold in other units, or those documents stop saving.

Example

Off for a company that defines box/carton factors per item and wants no generic kg↔g conversion.

Bin / Shelf Locations

Record a shelf / bin on stock items and show it on picking, delivery orders and print. Off: the field is hidden and ignored.

CodeDefaultSwitch atTurn on first
inventory.bin_locationOff/inventory/settings—

How it works

Controls the Bin / Shelf field on stock items. Read when an item is created or edited.

When ON

The item form shows and saves the bin / shelf, and it is shown on picking, delivery orders and the delivery note print.

When OFF

The field is hidden, any value sent is ignored on save, and stored bins are not shown on picking, delivery orders or print (default for existing tenants; new tenants start with it on).

Screens, documents and reports affected

Item create/edit/detail; bins are displayed on picking, delivery orders and delivery note print.

Caveats

Turning it off keeps stored bins (they reappear when you turn it on again). Bins are one field per item, not per warehouse, and item CSV import does not map them.

Example

Turn on, set shelf A-03 on an item, and pickers see A-03 on the delivery order.

Cycle Count / Stocktaking

Allow several open stocktaking sessions per warehouse (cycle counts). Off: a new session is refused while the warehouse has a draft, in-progress or awaiting-approval one.

CodeDefaultSwitch atTurn on first
inventory.stocktaking_cycle_countOff/inventory/settings—

How it works

Checked when a stocktaking session is created for a warehouse.

When ON

A warehouse can have several open sessions at once, e.g. cycle counts by zone (new tenants start with it on).

When OFF

Creating a session is refused while the same warehouse already has a draft, in-progress or awaiting-approval session (default for existing tenants).

Screens, documents and reports affected

Stocktaking session creation.

Caveats

Turning it off does not close sessions already running in parallel. Stocktaking itself is always available.

Example

Count shelves A and B in two sessions the same day with this on.

Enforce UOM Category

Refuse conversions between units of different categories (e.g. weight and length), when creating them and on documents.

CodeDefaultSwitch atTurn on first
inventory.enforce_uom_categoryOn/inventory/settings—

How it works

Checked when a unit conversion row is created in Units of Measure settings, and when a document line is converted through the company conversion table.

When ON

A conversion between units of different categories (e.g. weight and length) cannot be created, and existing cross-category conversions are not used on documents (default for existing and new tenants).

When OFF

Cross-category conversions can be created.

Screens, documents and reports affected

Units of Measure settings — conversions.

Caveats

Units without a category are not checked. Item pack units are never checked against categories.

Example

Keep on so nobody defines 1 kg = 1 m by mistake.

Enforce warehouse access rules

Refuse stock movements into or out of a warehouse from apps it does not allow, and item types it may not hold. Warehouse pickers filter by app only on field service screens.

CodeDefaultSwitch atTurn on first
inventory.enforce_warehouse_accessOff/inventory/settings—

How it works

Each warehouse can list the apps allowed to use it and the item types it may hold. When on, stock movements that state which app they come from are refused for a warehouse that does not allow that app (an empty list allows no app), and some flows also check the item type.

When ON

Checked: POS sales, sales order deliveries and returns (app “sales”), field service stock and job consumption, asset maintenance materials, manufacturing output/scrap, and purchasing — goods receipts against a purchase order and vendor return shipping (app “procurement”). Documents made in the Inventory app itself (goods issues, transfers, adjustments, receipts without a PO) are never blocked — Inventory owns the warehouse. Item types are checked on item create/update/import and on the destination of a transfer. Warehouse pickers filter by app only on field service screens.

When OFF

Any warehouse can be used by any app and hold any item type (default).

Screens, documents and reports affected

Warehouse settings (allowed apps and item types), POS, sales deliveries, field service stock, asset maintenance, manufacturing reporting, goods receipts/issues/transfers, item create/import.

Caveats

Review every warehouse’s allowed apps before turning on (an empty list allows no other app). Existing warehouses were granted Procurement automatically, except van and tool warehouses. Some movements (reversals, QC hold release, reservation release, POS stock sync, sales order amendments) do not state an app and are never checked.

Expiry Date Tracking

Goods receipts must carry an expiry date for items marked “track lots” before they can be confirmed (works even with lot tracking off), and the expiring-lots assistant runs on schedule.

CodeDefaultSwitch atTurn on first
inventory.expiry_date_trackingOff/inventory/settings—

How it works

Applies to items marked “track lots” (there is no separate expiry mark). Checked when a goods receipt is confirmed — however it was created — and when a manual receipt is saved, independently of Lot Tracking. Also gates the scheduled expiring-lots assistant.

When ON

Confirming a receipt with a lot-tracked line that has no expiry date is refused (drafts may stay incomplete). The expiring-lots assistant runs on schedule. The Receive goods dialog shows an Expiry column.

When OFF

Expiry dates are optional; scheduled expiring-lots runs are skipped (default for existing tenants; new tenants start with it on).

Screens, documents and reports affected

Manual goods receipt, purchase order Receive goods dialog, expiring-lots assistant.

Caveats

An already-past expiry date is refused on purchase order receipts even when this is off. Running the expiring-lots assistant by hand works even when off. Existing expiry dates and FEFO picking stay when you turn it off.

Example

Pharmacy: mark medicines “track lots” and turn on both Lot Tracking and this toggle so manual receipts need lot and expiry.

Freeze warehouse during stocktaking

While a stocktaking session of a warehouse is in progress or awaiting approval, every stock movement into or out of that warehouse is blocked (except the session’s own variance posting). Finalize or cancel the session to unfreeze.

CodeDefaultSwitch atTurn on first
inventory.stocktake_freeze_warehouseOff/settings/erp-configuration—

How it works

Enforced by the database on every stock movement: a warehouse with a stocktaking session in progress or awaiting approval is frozen.

When ON

Every stock movement into or out of a frozen warehouse is refused — deliveries, POS, goods issues and receipts, both ends of transfers, field service, manufacturing, returns. Allowed: the session’s own variance adjustment and quality holds/releases.

When OFF

Stock moves freely during stocktaking (default for existing and new tenants).

Screens, documents and reports affected

All stock movements of the warehouse being counted; stocktaking screen warns about stale sessions.

Caveats

Draft sessions do not freeze. A session left in progress keeps the warehouse frozen indefinitely — finalize or cancel it. Takes effect immediately in both directions.

Example

Start a session on Saturday evening, count, finalize; the warehouse is open again on Monday.

Lot Tracking

Goods receipts must carry a lot number for items marked “track lots” before they can be confirmed (manual, from a purchase order or automatic).

CodeDefaultSwitch atTurn on first
inventory.lot_trackingOff/inventory/settings—

How it works

Applies only to items marked “track lots”. Checked when a goods receipt is confirmed — whichever way it was created (by hand, from a purchase order, an automatic draft, or a stock request) — and already when a manual receipt is saved: each line of such an item must carry a lot number.

When ON

Confirming a receipt with a lot-tracked line that has no lot number is refused. Draft receipts may stay incomplete (an automatic receipt draft from an approved purchase order can be completed before confirming). The Receive goods dialog shows a Lot column.

When OFF

Lot numbers are optional on receipts (default for existing tenants; new tenants start with it on).

Screens, documents and reports affected

Manual goods receipt, purchase order Receive goods dialog.

Caveats

Manufacturing output, adjustments, returns, imports and transfers do not check this toggle. Turning it off keeps existing lots, and lot picking/FEFO on issues continues because it follows the item’s “track lots” mark, not this toggle.

Example

Mark food items as “track lots”, turn this on, and receive by hand: a line without a lot number is rejected.

Multiple UoM per Product

Let an item’s default sales and purchase units differ from its stock unit. Off: they must equal the stock unit; document lines can still use the item’s pack units.

CodeDefaultSwitch atTurn on first
inventory.multi_uom_per_productOn/inventory/settings—

How it works

Checked when an item is created or edited: compares the item’s default sales and purchase units with its stock unit.

When ON

An item’s default sales and purchase units may differ from its stock unit (default for existing and new tenants).

When OFF

Saving an item whose default sales or purchase unit differs from the stock unit is refused.

Screens, documents and reports affected

Item create/edit.

Caveats

Only the item’s default units are checked; transaction lines can still use pack units defined on the item or company conversions. Turning it off does not change items already saved with other units — they are refused on their next edit until the units are aligned.

Example

Off for a shop that buys and sells everything per piece.

Multiple Warehouses

Keep stock in several warehouses. Off: creating, reactivating or importing a second active warehouse is refused; existing warehouses keep working.

CodeDefaultSwitch atTurn on first
inventory.multi_warehouseOn/inventory/settings—

How it works

Checked when a warehouse is created or reactivated: with the toggle off the company may not have more than one active warehouse.

When ON

Any number of active warehouses (default for existing and new tenants).

When OFF

Creating, reactivating or importing a second active warehouse is refused. Field service van/site locations use the default warehouse instead of creating their own, and the purchase order Receive goods dialog only offers the default warehouse.

Screens, documents and reports affected

Warehouse create/reactivate, field service stock locations, purchase order Receive goods dialog.

Caveats

Turning it off does not deactivate warehouses you already have — they keep working, and other warehouse pickers still list them.

Example

A single-shop company turns it off so staff cannot create stray warehouses.

Partial transfer receipt

Stock transfers can be received in parts from the transfer screen — enter the quantity per line; the transfer completes when every line is fully received.

CodeDefaultSwitch atTurn on first
inventory.transfer_partial_receiveOff/settings/erp-configuration—

How it works

Checked when a stock transfer is received with a selection of lines and quantities.

When ON

The transfer screen shows a Receive now quantity per line and a Receive entered quantities button; the transfer stays in transit until every line is fully received (new tenants start with it on).

When OFF

Receiving with a selection is refused; completing a transfer always receives the full remaining quantity of every line (default for existing tenants).

Screens, documents and reports affected

Stock transfer detail (receiving), transfer receipt API.

Caveats

Mark as Received always receives everything remaining. Turning it off with partly received transfers is safe: the next completion receives the rest.

Example

Receive 60 of 100 units today and the other 40 tomorrow.

Period cost allocation (management)

Enable the management-only report that spreads operating costs over received goods. Does not change book cost or post journals.

CodeDefaultSwitch atTurn on first
inventory.period_cost_allocationOn/inventory/settings—

How it works

Enables the management overhead allocation report: posted operating expenses of a period are spread over the goods received in that period.

When ON

The report under Finance → Reports shows the allocation (default for existing and new tenants).

When OFF

The report shows that the feature is disabled.

Screens, documents and reports affected

Finance → Reports → Overhead allocation.

Caveats

Report only: it never changes item cost, stock value or posts journals.

Example

Compare allocated landed overhead per item before setting selling prices.

Reorder Point Alerts

Run the reorder assistant on schedule for items at or below their reorder point.

CodeDefaultSwitch atTurn on first
inventory.reorder_point_alertOn/inventory/settings—

How it works

Gates the scheduled replenishment checks for items whose quantity on hand is at or below their reorder point (items with a reorder point of 0 are skipped).

When ON

The reorder-intelligence assistant runs on schedule and produces replenishment alerts (default for existing and new tenants).

When OFF

Scheduled runs are skipped.

Screens, documents and reports affected

Reorder-intelligence assistant output.

Caveats

Running the assistant by hand works even when off. Set a reorder point on each item — without it nothing is alerted.

Example

Item reorder point 20, on hand 18: the next scheduled run lists it for replenishment.

Separation of duties on goods issues

The person who created a goods issue, the person it is issued to, and whoever raised the source stock request cannot confirm it themselves. Automatic confirmations from other documents are not checked.

CodeDefaultSwitch atTurn on first
inventory.goods_issue_sodOff/settings/erp-configuration—

How it works

Checked when a user confirms a goods issue (screen, AI action or POS).

When ON

The issue’s creator, the person it is issued to, and whoever created or submitted the source stock request cannot confirm it.

When OFF

Anyone with permission can confirm (default for existing and new tenants).

Screens, documents and reports affected

Goods issue Confirm button, POS store issues, AI confirm action.

Caveats

Automatic confirmations from work orders, field service, maintenance and other documents are not checked. POS store issues stay as drafts with a note that another user must confirm them. Approving (Approve manual goods issues) is governed by the self-approval policy, not this toggle.

Example

A storekeeper confirms issues that a technician created for themselves.

Serial Number Tracking

Movements of items marked “track serials” are refused without exactly one serial per unit. Off: a missing serial only warns; serials are recorded only when the count matches.

CodeDefaultSwitch atTurn on first
inventory.serial_trackingOff/inventory/settings—

How it works

Applies only to items marked “track serials”. Checked when a goods receipt is confirmed (and when a manual receipt is saved), and whenever such an item moves through the stock ledger (receipts, issues, transfers, returns, adjustments).

When ON

A receipt line without serial numbers, or with duplicate serials, is refused. Any stock movement of a serial-tracked item that does not supply exactly one serial per unit is refused. The Receive goods dialog on a purchase order shows a Serial column.

When OFF

A movement with no serials only logs a warning (default for existing tenants; new tenants start with it on).

Screens, documents and reports affected

Goods receipts, goods issues, deliveries, transfers, returns, purchase order Receive goods dialog.

Caveats

Even when off, serials for an item not marked “track serials” are refused, and a serial list of the wrong length is refused or dropped — serials are recorded only when the count matches. With it off the serial register drifts from on-hand quantity; review it before turning on again.

Example

Receive 3 laptops marked “track serials”: enter exactly 3 distinct serial numbers, or the receipt is refused.

Strict stock ledger

Refuse sales deliveries and POS sales short of available stock instead of letting stock go negative; POS pending bills reserve stock.

CodeDefaultSwitch atTurn on first
inventory.strict_stock_ledgerOff/settings/erp-configuration—

How it works

Read when a sales delivery order is shipped and when a POS sale issues stock (including confirming pending POS bills).

When ON

Deliveries and POS sales short of available stock are refused. In POS storekeeper (pending) mode the sold quantity is reserved until issued. New tenants start with it on.

When OFF

Deliveries and POS sales short of stock are recorded and stock goes negative, without an error (default for existing tenants); POS pending mode reserves nothing.

Screens, documents and reports affected

Sales delivery orders, POS sales and pending POS bills.

Caveats

Other stock decreases (goods issues, adjustments, transfers, manufacturing) are governed by Allow Negative Stock, not by this toggle. Before turning on for a running tenant, check for existing negative stock — deliveries of those items will be refused until stock is corrected.

Example

Turn on with Allow Negative Stock off to keep every warehouse at zero or above.

Units of Measure

On: confirming a receipt line in a unit with no conversion to the stock unit is refused. Off: that line is received 1:1 with a warning. Other documents always require a conversion.

CodeDefaultSwitch atTurn on first
inventory.uom_enabledOn/inventory/settings—

How it works

Read when a goods receipt is confirmed for a line whose unit differs from the item’s stock unit and no stock quantity was stored on the line.

When ON

If no conversion exists between the line unit and the stock unit, confirmation is refused (default for existing and new tenants).

When OFF

Such a line is received 1:1 with a warning in the log.

Screens, documents and reports affected

Goods receipt confirmation (Inventory and purchasing).

Caveats

Most lines already carry a converted stock quantity, so this rarely triggers. Turning it off does not disable units: purchase, sales, invoice, BOM and work order lines still refuse a unit with no conversion.

Example

Keep on; define item pack units (box = 12 pcs) before receiving in boxes.