Process orders

Manage stock day to day

Receiving goods, correcting a count, reading the movement ledger, and clearing reservations.

Stock work is four verbs: goods come in, numbers get corrected, orders hold stock, and returns put stock back. Each of them is a booking in a ledger, and that is what makes the number defensible three months later.

Before you begin. If your ERP owns your stock, most of this is read-only for you — the ERP books and the platform reflects it. Everything below applies where the platform keeps the stock, or to the locations it keeps that the ERP does not.

Everything is a movement

on_hand and reserved are not editable fields. They are the running total of the movement ledger, and there are exactly six kinds of booking:

TypeWhat causes it
inboundGoods received
adjustmentA signed correction, with a reason
reserveStock held for an order
releaseA hold given back
shipmentA shipment committing its hold
restockReturned goods rejoining stock

Writing a new on_hand value over the old one is refused — the platform tells you which route was meant instead. That refusal is doing you a favour: a stock figure that can be typed over is a figure nobody can explain later.

Everything is on Order Management › Stock, which has four tabs: Stock levels, Locations, Reservations and Movements.

Receive goods

  1. Go to Order Management › Stock › Stock levels.
  2. Select Receive goods.
  3. Enter the article (SKU or product) and the quantity. Name the location, or leave it out and the default location is used.
  4. Confirm.

on_hand goes up and an inbound movement is booked. This is for goods genuinely arriving — a supplier delivery, a transfer in.

Correct a count

  1. Select Adjust stock on the same screen.
  2. Enter the article and a signed quantity: -2 for a shortfall, +2 for a find.
  3. Enter a reason — stocktake, breakage, found in Halle 3.
  4. Confirm.

An adjustment is a correction, not a delivery, and keeping the two apart is what makes your inbound figures mean anything. Whether a reason is mandatory is configurable; requiring one on adjustments and not on inbound is the sensible setting, because an adjustment is exactly the booking that needs explaining.

Adjustments are guarded: they will not take stock below zero, and they will not take it below what is already reserved. If you genuinely have less than you promised, release the reservations first and deal with the affected orders — silently taking stock from under a reserved order only moves the problem to the picking list.

Reservations

A reservation holds stock for one order. It carries the order reference, a quantity, a status and an expiry.

StatusMeaning
activeHolding stock. It counts against available
releasedGiven back
committedConsumed by a shipment

Reservations are created at checkout if your tenant is configured for it, and by the Reserve for an order action for a hold you make by hand. Release a hold gives one back; Commit a shipment consumes it, taking the goods out of on_hand and out of reserved together.

Release expired on Order Management › Stock › Reservations runs the expiry sweep on demand. It also runs on a schedule, so a checkout somebody abandoned gives its stock back on its own.

Stale reservations are the most common cause of phantom stockouts. An article shows as unavailable, the shelf is full, and the difference is a pile of active reservations against orders that were never placed. Check the reservations tab before you adjust anything — an adjustment on top of a stale hold makes the numbers worse, not better.

Restock a return

Returned goods that were marked for restock are booked back in. Restock a return does it explicitly, and the result is a restock movement.

Do this when the goods have actually been inspected and cleared, not when the return record was created. The two are different moments, and the gap between them is exactly what a quarantine bench is.

Read the ledger

Order Management › Stock › Movements is every booking, with its type, quantity, location, order reference and reason. It is the answer to "why does this article say 14 when it said 20 on Monday" — read the movements between the two dates and the difference is spelled out.

Filter by article and read it top to bottom. If the movements do not add up to the current level, something wrote stock outside the ledger, which is an integration question — see Sync errors.

Watch the reorder points

A row alerts when available has fallen to or below its reorder point. reorder_point is a sortable column on the stock list, which is how you find the rows that need attention.

Alerts also publish as events, so replenishment can be driven by a subscriber — a purchasing workflow, an ERP proposal — rather than by somebody refreshing a page. See Events and webhooks.

What to check

After a day's bookings:

  • Every stock level equals on_hand − reserved for available, and matches what the shelf holds for the articles you spot-check.
  • Every adjustment carries a reason you would accept in an audit.
  • No active reservation is older than your reservation lifetime.
  • Restocked returns show up as restock, not as inbound.

Next