Picking Waves
A picking wave groups the reserved stock for one carrier and one despatch location so it can be picked, labelled, packed and despatched together as a single unit of work.
What a wave is
Once a sale order is approved for despatch, its lines become stock moves reserved against a warehouse location. Rather than handling each order individually, the despatch team works in waves: a wave bundles together every reserved move that shares the same carrier and location, so one physical batch of picking, packing and despatch covers many orders at once.
There is no Create button here. Waves are assembled automatically — by the daily auto-wave scheduler or the API — which groups eligible reserved stock moves by carrier and location and creates the wave already in the Draft state. See Schedulers for how and when this runs. Everything on this page is about what your team does after a wave exists.
Where to find it & who can see it
Open Despatch › Picking Waves in the left navigation. The list is visible to anyone holding wave.view (or a super administrator). The page is index-only for create/edit — there is no create or edit form — but each row can also be opened to a read-only detail view (see below); every column and every action described below appears on the list itself.
The wave lifecycle
A wave moves through eight states. Six of the forward steps are driven by buttons on this list; the step from Draft to ItemsIdentified happens automatically (outside the console) once the scheduler has finished allocating items to the wave.
Columns
| Column | Shows |
|---|---|
name | The wave's identifying name/number, shown as a badge. Searchable and sortable. |
| Carrier | carrier.name — the delivery carrier every package in this wave will use. |
| Location | location.location_name — the single warehouse stock location the wave was built from. |
wave_type | Badge showing the wave's type (no special colour mapping — rendered in the console's default badge style). |
| State | A coloured badge — see the diagram above for the colour key. |
created_at | Date and time the wave was created. Sortable. |
Filter
Select Filters to open a State drop-down covering all eight WaveState values (Draft, Items Identified, Label Printing, Packing, At Branch, Despatched, Done, Cancelled). Combine it with the search box to narrow to one carrier, location or wave by name.
Viewing a wave Built
Use the View row action to open a wave's detail page — read-only, gated by the same wave.view permission as the list. It has two info panels and two child tables:
- Wave — the wave's name, the current state (same coloured badge as the list), the wave type, the carrier, the location, the operator, and the created date.
- Despatch — whether an SMS and/or email have been sent, and the despatch date.
- Moves — a table of every stock move in the wave: product, quantity, state, and source/destination location.
- Packages — a table of every package in the wave: package number, box type, weight, tracking number, and state.
Everything here is read-only — a wave is driven through its lifecycle by the row actions below (Print labels, Complete packing, Send to branch, Despatch, Mark done, Cancel), not edited on this page.
Actions
- Print labels — Items Identified → Label Printing
Appears once the scheduler has finished identifying the wave's items. Selecting it stamps the wave's
date_labels_generatedtimestamp and moves it into Label Printing, signalling that despatch staff should now print and apply the shipping labels for every package in the wave. - Complete packing — Label Printing → Packing
Use this once labels are printed and the team is ready to physically pack the wave's packages. It stamps
date_packing_complete. - Send to branch — Packing → At Branch
Use this when the packed wave has been handed over to (or arrived at) the despatching branch/post office counter. It stamps
date_sent_to_branch. This step is optional in the sense that Despatch can also be used straight from Packing — see below. - Despatch — Packing or At Branch → Despatched Confirmation required
This is the point at which the whole wave physically leaves. A confirmation dialog asks you to confirm before it proceeds — there is no undo button, so check the wave is genuinely ready. On confirming, the wave's
date_despatchedis stamped and a cascade runs in one transaction:What the Despatch cascade actually doesEvery package on the wave that is not already in a terminal state becomes Despatched. Every stock move on the wave that is not already Done or Cancelled is shipped — this is the moment physical stock is actually decremented from the warehouse location, via the stock-move service's ship step. In other words, Despatch on one wave silently finalises the state of every package and every stock move it contains; you do not need to (and cannot) despatch packages individually from this screen — see Packages.
- Mark done — Despatched → Done
Use this once the wave has been fully despatched and there is nothing further to track at the wave level (individual packages continue their own journey — see Packages). It stamps
date_all_doneand is the wave's final, successful state. - Cancel — Draft or Items Identified → Cancelled Confirmation required
Shown in danger red. Only available before any packing work has begun — once labels have started printing, a wave can no longer be cancelled from this screen, only carried forward or, exceptionally, corrected through another process.
Each action's button is only shown when the wave is in the exact state that action requires — for example Despatch only appears on waves that are Packing or At Branch. If a colleague acted on the same wave a moment before you, the buttons you see will already have moved on; the underlying service re-checks the state again regardless, so an out-of-turn click is always refused safely rather than corrupting the wave.
Bulk actions and forms
There are no bulk actions on this list — every wave is progressed one at a time. None of the six actions opens a form; each is a single confirmation (or, for Print labels, Complete packing and Send to branch, an immediate one-click transition).
Related pages
See Sale Orders for how an order's stock is reserved before it ever reaches a wave, Packages for what happens to each individual package inside a wave (including after despatch), and Schedulers for how waves are created in the first place.