Function · Allocation Built

From order to a cubed pick plan.

Before an operator touches a tote, openWCS turns an outbound order into committed stock and a packing plan: it reserves the right units at reachable locations, breaks the demand down by unit of measure, cubes the lines into shippers, and groups work into batches.

How it works

Reserve, break down, cube, batch.

Releasing an order runs allocation against location-scoped availability. It reserves stock until demand is met, computes the pick-type UoM breakdown, and produces a pick plan plus a cube plan — or fails cleanly if it can't.

Pick-location

Reserve reachable stock

Allocation reserves against location-scoped ATP until demand is met, so each line points at a real, reachable unit — not just a SKU that exists somewhere in the building.

UoM breakdown

Cases, splits & eaches

Demand is broken into the pick-type unit of measure — case, split-case, each — so the plan reflects how stock is actually held and picked, not a flat quantity.

Cubing

Multi-size, largest-first

Lines are fitted into shippers across multiple carton/tote sizes, largest-first, using SKU dimensions and weight — so the plan knows how many of which size a set of orders needs.

Line-traceable

Stable shipper IDs

Each carton carries a stable shipper-unit ID and the lines it holds, so every shipper is traceable back to the order lines inside it — for labels, dispatch and audit.

Dispatch labels

A barcode per shipper

A dispatch-label barcode is requested per shipper — knowable only once cubing exists — from the host system, or a built-in simulator when no host label service is configured.

Batch picking

Group lines into work

Batch-pick planning groups order lines into efficient pick work — the basis for wave / batch picking, and the plan that pick execution will later drive against.

Honest outcomes

Allocated, or a clear reason why not.

Release has explicit outcomes, so a release that can't be fulfilled fails loudly instead of half-committing. Held reservations are always released on failure or cancel.

ALLOCATED

Plan is ready

Demand was met: stock is reserved, the UoM breakdown computed, and a pick plan plus cube plan produced. The order is ready to release to the floor.

NOT_FULFILLABLE

Not enough stock

Availability can't cover the order. Every reservation held during the attempt is released, so a failed allocation never strands stock as committed-but-unusable.

CUBING_FAILED

Bigger than the box

A SKU is larger than the biggest carton, so no shippers can be produced. The attempt backs out cleanly — a distinct, actionable outcome rather than a silent partial.

At a glance

Release → reserve → cube → label.

  order release ─►  openWCS allocation
                       │  reserve vs location-scoped ATP  (until demand met)
                       │  UoM breakdown: case · split-case · each
                       │  cube into shippers (multi-size, largest-first, line-traceable)
                       │  request dispatch-label barcode per shipper
                       ▼
            ALLOCATED (pick plan + cube plan) · batch picking
            └─ NOT_FULFILLABLE / CUBING_FAILED → release held reservations

Open & configurable

The plan behind every pick.

Allocation commits against the event-sourced inventory and feeds goods-to-person demand. Pick execution on top of this plan is on the roadmap — see the picking page.