Next Inventory 6.1.0: App Manager, dark mode, and more Joomla 6.1 "Nyota" Is Here Building the Future of Joomla Extensions
NextSoftware
Next Inventory — Documentation

Stock Movements

Stock Movements is the unified batch workflow for recording check-ins, check-outs, stock additions, and stock removals across multiple items in one transaction. Instead of entering transactions one-by-one on individual items, you create a movement header, add as many line items as you need, and finalise the whole batch at once.

It lives under Components > Next Inventory > Stock Movements (also the first item under the Stock section in fullscreen mode) and is the most common data-entry screen for day-to-day stock keepers.

For Users

The Draft → Finalise Pattern

Every movement you create starts as a Draft. Drafts are editable, don't change stock quantities, and don't create transactions. They're your scratch pad.

Once you're happy with the draft:

  1. Click Save & Finalise (or the checkmark icon from the list).
  2. Next Inventory writes one transaction per line item, updates each item's stock quantity, and flips the movement to Finalised.
  3. Finalised movements are read-only — you can't edit them. The audit trail is preserved.

That's the whole mental model — drafts are safe to mess with, finalised records are permanent.

Stock movements list with draft and finalised chips

Creating a Movement

  1. Click New from the Stock Movements list.
  2. Pick a Movement Type:
    • Check Out — asset goes to a recipient (stock decreases)
    • Check In — asset returns (stock increases)
    • Add Stock — increment consumable/sellable
    • Remove Stock — decrement consumable/sellable
  3. Fill in the header: Date, Warehouse, optionally a Recipient (required for check-out/check-in), and a free-text Reference for your own paperwork.
  4. Add line items in the line-items panel. Each line picks an item and a quantity; for serial-numbered assets you can also pick a specific serial.
  5. Click Save to keep it as a draft, or Save & Finalise to commit.

Stock movement edit page with line items

Common Workflows

  • Received a delivery of 12 different consumables — one Add Stock movement, one line per SKU with its quantity.
  • Checking 3 laptops out to the same recipient — one Check Out movement with the recipient set, three line items (one per laptop serial).
  • End-of-day stock adjustment for a sellable store — a Remove Stock movement listing every item sold with quantities.
  • Can't decide what's in / out yet — save as draft and come back tomorrow.

Tip: the filter drawer carries a date range with quick presets (see Choosing dates), and the list view has a Status filter (All / Draft / Finalised) so you can find your work-in-progress drafts fast.

For Admins

What Actually Gets Written

On finalise, each line item produces:

  • One entry in the transaction history, with the matching type (Check Out, Check In, Add Stock, or Remove Stock), a signed quantity change (negative for the stock-decreasing types), the item's resulting stock, and the batch reference that groups all lines from the same movement together.
  • An update to the item's stock, so the item record immediately shows the new quantity.

All lines succeed together or none do — a movement can never be half-applied.

Once written, neither the transactions nor the item quantity can be unrolled from the movement — the only way to reverse a finalise is to create an opposite movement. This is deliberate, not a missing feature, so the audit trail is a ledger rather than a document.

Permissions

Action Feature Permission
See Stock Movements list transactions view
Create a new movement transactions (depends on movement type — see below)
Edit / finalise a draft transactions (same)
Delete a draft transactions view + inventory.delete

Per-type permissions:

  • Check Outtransactions.checkout
  • Check Intransactions.checkin
  • Add Stocktransactions.add_stock
  • Remove Stocktransactions.remove_stock

A user who can check items in but not out will see only Check In in the movement type dropdown.

Edge Cases

  • Stock would go negative — by default, finalising a movement that would push an item below zero is blocked with a validation error. Decide beforehand whether you want to allow overdrafts in Settings.
  • Recipient required but not set — check-out and check-in both require a recipient. The form blocks finalise until one is picked.
  • Deleting a finalised movement is not possible from the UI. The transactions it created remain in the audit log.
  • Deleting an item referenced by a movement line is allowed, but the line loses its link to the item. If you reopen the draft, the line shows the item as missing.
  • Unit conversion on line items — if the item has a unit and you enter a quantity in a different compatible unit, the line converts to the item's base unit on save. See Units.
  • Attachments — use the side panel on the edit page to attach files (delivery notes, photos, signed forms). They stay with the movement and survive finalise.

Form Reference

Header fields

Field Required What it's for
Movement Type Yes Check Out, Check In, Add Stock, or Remove Stock
Reference No Your own paperwork reference (up to 100 characters)
Date Yes Effective date of the movement
Warehouse Yes Warehouse the stock moves out of or into
Recipient For check-out / check-in Who receives or returns the items
Details No Free-text notes about the movement
Attachments No Files added via the side panel (delivery notes, photos); kept after finalise

Line-item fields

Field Required What it's for
Item Yes The item to move
Quantity Yes How much moves — a positive number, decimals allowed
Unit No Unit the quantity is expressed in; converted to the item's unit on save
Serial Number No Pin the line to a specific serial-tracked asset
Reason For Remove Stock Why the stock is being removed
Cost/Unit No FIFO/LIFO only, and only on movements that add stock. What this batch actually cost per unit

Cost/Unit appears only when Inventory Costing is set to FIFO or LIFO, and only on movement types that increase stock — there is nothing to price on the way out, because outgoing stock is costed from the layers it consumes. Fill it in and the batch is recorded at what you actually paid; leave it empty and the layer falls back to the item's unit price, which flattens the per-batch cost differences that FIFO and LIFO exist to track.

All Extensions