Octibiz
Demo

Durchsucht Website und Dokumentation gemeinsam. Enter zeigt alle Treffer, Esc schließt.

Replenishment

Replenishment screen in Octibiz

Overview

Replenishment moves goods from reserve to the picking bin before someone reaches into an empty one.

It is deliberately a task, not merely a suggestion list: a suggestion is a calculation that changes with every look. The moment somebody sets off, the work needs a state — otherwise two people walk the same aisle and the second finds an empty shelf.

The task records the route as it was when the task was created: source and target bin with their codes, not just an internal id. The code is what gets scanned on the device — a bin renamed in the meantime must not make a running task unreadable.

Two places, one job: it is started and overseen at the desk, walked and confirmed on the device.

Core tasks

Start a run. Generate suggestions turns the replenishment rules of Multi-warehouse into tasks — from the screen across all warehouses; only the interface narrows this to a single one (warehouseId). Two limits are built in: tasks are created only for bin-based rules with an available source bin, and a target that already has an open task does not get a second one.

Keep an overview. The list shows article, route, suggested and moved quantity, status and the creation date. On screen it filters by status; by warehouse only through the interface (warehouseId).

Confirm on the device. Three scans in the order of the walk: source bin (I am in the right place) → product (I have the right thing) → target bin (I put it in the right place). Every scan must belong to the task; the quantity may be smaller, never larger than the one proposed.

Cancel. With a note — why the route is not being walked. Because the need went away, for instance, or because the goods were found elsewhere.

Fields in detail

Replenishment tasks are calculated, not entered: they arise when a picking location falls below its minimum while stock is still lying in the reserve store. The task itself therefore has not a single editable field — writing happens only through the three actions generate, confirm and cancel.

The task (display)

FieldValues / formatWhat it means
descriptionarticle nameWhat is to be moved.
sourceBinCodetargetBinCodebin codesThe route as it was when the task was created. The code is recorded, not just the internal id: a bin renamed in the meantime must not make a running task unreadable.
qtyRequestedpiecesThe suggested quantity — calculated from the target bin's minimum and target level.
qtyMovedpiecesWhat was actually moved. Only filled in after confirmation.
sourceQtyNowpiecesWhat really lies at the source bin at the moment of the query. On the device, the preview before you reach in.
statusopen · done · cancelledOpen, done, cancelled. A task that is not open accepts neither confirmation nor cancellation.
notetext, max. 255 charactersThe reason given when cancelling.
createdAt / completedAttimestampWhen it was created and when it was closed.
warehouseId / productIdidWarehouse and product of the task.

Confirming on the device

These four entries are the inputs of an operation, not properties of the task: they are scanned and checked, not stored. Scanning follows the order of the walk.

ElementRequiredValues / formatWhat it does
Scan the source bin sourceBinCodeyesbin code"I am in the right place." A bin other than the task's is rejected.
Scan the article productCodeyesbarcode, SKU or packaging code"I have the right thing." The code is resolved and must lead to the product of the task.
Quantity moved qtyyeswhole number ≥ 1, at most the suggested oneWhat was actually moved. Less is allowed, more is not — more would be a stock question, not a replenishment question.
Scan the target bin targetBinCodeyesbin code"I put it in the right place."

The confirmation runs through the scanner queue and is nameable (X-Idempotency-Key): after a radio blackout the device may repeat without moving stock a second time. Warehouse stock never changes in the process — only its distribution.

Cancelling

ElementRequiredValues / formatWhat it does
Why is this route not being walked? notenotext, truncated to 255 charactersThe reason stays on record with the task. The next run creates it again if the bin keeps running dry — cancelling means "not now", not "never".

Settings & permissions

  • Module module.wms.
  • wms.replenishment.view — see tasks. Pre-assigned to the role Umsetzung.
  • wms.replenishment.execute — create, move and cancel tasks.
  • Deliberately separate from wms.pick.view and wms.pick.execute: replenishment is different

work in a different place — reserve area, often a forklift, often a different shift. Whoever picks need not be allowed to move pallets, and vice versa.

  • No brand. Replenishment is a movement inside one warehouse: no customer, no document, no brand.

Access hangs on the right alone.

  • The rules themselves (min/max per warehouse and product) live in

Multi-warehouse.

FAQ & troubleshooting

The run creates no tasks. Three possible reasons: no rule is below its minimum, the rule is not bin-based, or there is no source bin holding stock. For a target that already has an open task, no second one is created on purpose.

The scan is rejected. Bin or product does not belong to this task. The device shows the match before you submit — in the aisle an error message afterwards would come too late. The server's check remains the binding one.

The full quantity cannot be confirmed. Less is allowed, more is not. If there was less than expected, confirm the actual quantity — the difference is a stock question, not a replenishment question.

The task can no longer be confirmed or cancelled. Then it is no longer open: somebody else was faster. Both actions re-check the status under a lock — otherwise the second device would book the same quantity a second time.

Then what is the free transfer for? Replenishment is planned work and rejects any scan that does not match the task. The free transfer at the scanner is the other direction: there the person at the rack decides.

wms.replenishment · Available from version 0.5.0