Skip to main content

Moving stock

Use this page to move stock from one location to another, to repack it into a new container, or to merge it into a container that already exists.

Before you start​

  • You are ADMIN, MANAGER, SUPERVISOR or OPERATOR. VIEWER cannot move stock.
  • You know the position: location, SKU, lot and container.
  • You know where it goes.

Steps​

  1. Open Inventory Balances > Balances. The tab By Location is open.
  2. Find the position. Use the quick filters Location, SKU or Owner, or More filters.
  3. Click the row. The Move stock document opens.
  4. Choose what to do with the container:
    • Move the stock and keep the container. Leave the mode on Keep. Pick the destination Location. It must differ from the source.
    • Repack into a new container. Press New LPN. A code appears. Pick the destination Location (it may be the same one). Press the printer button if you need the label first.
    • Merge into a container that stands somewhere. Press Existing. Pick the container. Leave Location empty.
  5. The document starts Move quantity at the maximum it can move: quantity minus allocated and picked units. Type a smaller number for a partial move. A hold does not lower this maximum because a supervisor may authorise it at the next step.
  6. If you want to, type a Reason.
  7. Press Move.

To leave without moving, press Cancel or the back arrow.

What the screen says​

ResultMessage
MovedMoved {n} fragment(s), then , {n} hold(s) released and , {n} hold(s) added if holds followed the stock
Nothing to doNothing to move — change the cell and/or the LPN
Quantity wrongQuantity must be greater than zero, Quantity {r} exceeds available {a}
Mode Existing without a containerPick the destination LPN to merge into
Mode New LPN without a codeNew LPN not generated — click regenerate, or pick another mode
Document too oldMove session expired — reopen the position
A supervisor is neededSupervisor authorization required to move held stock ({n} hold(s))
RefusedMove failed: {message}

After a move the screen returns to the Balances screen and reads the list again.

What changes​

WhatChange
Balance rowsThe stock leaves the source position and arrives at the destination. A partial move splits the row.
ContainerA kept container gets the new location, with its child containers. A new container is created at the destination.
LedgerRows of type Move in Transactions, one for each fragment, with your reason.
HoldsHolds that are fixed to the moved container may follow it. The message counts them.
Eventsprocess.inventory.moved.

Pressing Move twice in a row does not move twice. All presses of one open document carry the same idempotency key, so the second one gets the first answer.

What can go wrong​

Message beginsMeaningFix
Quantity {r} exceeds available {a}Part of the stock is allocated or picked, so the form stops the request before sending it.Use the displayed maximum, or free the allocation.
container move refused: container {id} still holds reserved stockThe same, for a container.Same.
insufficient qtyA partial quantity above what exists.Lower the quantity.
destination {code} is inactive / destination not foundThe location is switched off or unknown.Choose another location.
destination location blocked / source location blockedA hold or a flag forbids it.See Holds list. A supervisor can accept some holds.
the stock at destination {location} changed while the move was being prepared; repeat the moveSomeone else changed the destination at the same moment.Press Move again.

The full list of refusals is in crates/libs/wms-inventory/src/movement/types.rs:445-540.