Overview
A replenishment wave rule is what actually creates replenishment jobs. Each time it runs, on its schedule or manually, it applies its job types to one warehouse, calculates what needs replenishing, and creates jobs for your operators. Without a wave rule, no replenishment job is ever created, however low stock gets.
When to use it
Create or edit a replenishment wave rule when:
You've set up a replenishment job type and want jobs to be created automatically.
You want replenishment to run at set times, for example before each shift.
You want to limit replenishment to certain locations, products or shipment orders.
Prerequisites
At least one replenishment job type exists for the warehouse. See Create a Job Type for Replenishment.
You can edit Wave Rules.
What happens when a wave runs
One warehouse, one run at a time. The wave runs for its warehouse only. If another replenishment wave is already running for that warehouse, the two don't run at the same time.
Job types run in priority order. The first job type in the list runs first, then the second, and so on. If one finds nothing to replenish, the wave moves on to the next.
Conditions are applied. The wave's conditions and each job type's conditions both apply.
Need is calculated for each job type, Static or Dynamic, and source stock is chosen.
Jobs and tasks are created and assigned as set on the Assign tab.
Example: A wave has two job types: 1. "Fast Movers – Dynamic" and 2. "Bulk Slots – Static". When it runs, the Dynamic job type's tasks are created first, then the Static job type's. Put the job type whose needs matter most at the top.
Step-by-step
Navigate to Wave Rules, click Create New and choose Replenishment.
Complete the General, Selection, Schedule and Assign tabs, described below.
Click Save. The wave rule is listed on Wave Rules.
To run it immediately, open it and click Run.
General
Field | What it does | Example |
Rule Set Name | Name of the wave rule | "Morning Replenishment – WH1" |
Warehouse | The warehouse the wave runs for | WH1 |
Enable Soft Allocation for Dynamic Replenishment | For Dynamic job types: when suggesting targets, treats locations already targeted by other open replenishment tasks as occupied, so several tasks aren't sent to the conflicting locations. Enabled by default on new wave rules. It can make task creation slower, and in some cases no target is found because suitable locations fill up faster | Two Dynamic tasks for the same product, algorithm seeks empty locations: with this on, the second task isn't sent to the bin the first one already fills |
Job Types | The replenishment job types this wave runs, in priority order. | 1. Fast Movers – Dynamic, 2. Bulk Slots – Static |
See Understanding Soft Allocation in Dynamic Replenishment for more on soft allocation.
Selection
Conditions on the wave apply on top of each job type's own conditions. All are optional. Multiple conditions are combined: a record must match all of them.
Condition group | Narrows down | Example |
Target Location | Which target locations are replenished. Static only; for Dynamic, the dynamic replenishment algorithm decides the target | Location Zone = Pick Zone A |
Source Location | Which locations stock can be taken from | Location Group = Reserve |
LP | Which LPs can be used, by LP type attributes | An LP type custom field = Pallet |
Product | Which products are replenished | Product Group = Fast Movers |
Shipment Order | Replenishes only products that are on open shipment orders matching these conditions | Order Status = Shortage |
How Shipment Order conditions work
After the wave works out which products need replenishing, it keeps only products that appear on an unallocated line of a shipment order matching all the Shipment Order conditions. Other products get no task.
This applies to both Static and Dynamic job types. It decides which products are replenished, not how much: task quantities are still calculated as usual.
Available Shipment Order conditions include order status, order type, store, order tags, carrier and shipping service, requested, expected and planned shipment dates, shipment order date, priority, retailer, order price and quantity, back order, gift and oversized flags, and shipment order custom fields.
Example: A wave has the Shipment Order condition Order Status = Shortage. SKU-1 and SKU-2 both need replenishing, but only SKU-1 is on a shortage order. The wave creates a task for SKU-1 only. Task quantity of SKU-1 is calculated according to the standard formula.
Schedule
Click the Days the wave should run. Click a day again to remove it.
Under Time, use Add Time for each time of day it should run. Daily Frequency updates as you add times.
Example: Monday to Friday at 06:00 and 14:00 replenishes pick faces before each shift starts.
💡 Stock levels aren't watched between runs. The more often the wave runs, the sooner low stock is caught.
Assign
Choose one option:
Option | Who can execute the jobs | Example |
Add Pool | Any user can take a job from the pool | Small team where anyone replenishes |
Assign to User Roles | Users with the selected roles. Each job goes to the least-loaded user among them | Only the "Replenishment" role |
Assign to Users | Only the selected users. Each job goes to the least-loaded of them | Two named forklift drivers for pallet replenishment |
Common questions
Can one wave rule include both Static and Dynamic job types? Yes. They run in the wave's priority order, and each uses its own logic.
Do wave conditions replace job type conditions? No. Both apply. A location, product or LP must pass the wave's conditions and the job type's conditions.
Do Shipment Order conditions change task quantities? No. They only decide which products get a task. Quantities are calculated by the job type's strategy as usual.
I clicked Run but no jobs were created. Why? See Why Wasn't a Replenishment Task Created?
