Overview
Dynamic Replenishment uses each product's Min. Replenishment Level and Max. Replenishment Level. A product can use one set of levels for every warehouse (Global) or its own levels per warehouse (Per Warehouse). The Warehouse Replenishment Levels import lets you set Per Warehouse levels for many products at once from an Excel file, instead of editing each product.
These levels are used by Dynamic Replenishment only. Static Replenishment uses location capacities. See Setting Up Dynamic Replenishment.
When to use it
Use the import when:
You run several warehouses and demand for the same product differs between them.
You're setting up Dynamic Replenishment for a large catalog.
You review levels regularly, for example seasonally, and want to update them in one go.
Prerequisites
The clients, products (SKUs) and warehouses in your file already exist in Logiwa IO.
You have permission to manage products, and access to every warehouse in your file.
Step-by-step
Navigate to Products.
Open the Bulk Import / Update options and click Warehouse Replenishment Levels. The Bulk Import Warehouse Replenishment Levels page opens.
Click Download to get the Excel template.
Fill in one row per product and warehouse (see File columns).
Drag the file onto the upload area, or browse to it. Only Excel files are accepted; other types such as .csv are rejected with "File type is not allowed".
On the mapping screen, check that each File Column Header is matched to the right Logiwa IO Field, using Preview Data to confirm.
Click Import. You're taken to the import history.
Open the import to see row counts and success and error counts. Errors are listed per row; download them with the export button, or download the original file.
File columns
Column | What to enter | Example |
Client | The product's client | ACME |
SKU | The product's SKU for that client | TSHIRT-BLK-M |
Warehouse | The warehouse code the levels apply to | WH-EAST |
Min. Replenishment Level | Safety level for the product in that warehouse. Must be 0 or more | 50 |
Max. Replenishment Level | Target level for the product in that warehouse. Must be 0 or more and not less than Min | 200 |
Decimal values are rounded to the nearest whole number, as on the product screen.
What the import does
Your row | Result |
No levels exist yet for that product and warehouse | A new warehouse level is created |
Levels already exist for that product and warehouse | Min and Max are replaced with the file values |
Min = 0 and Max = 0 | The product's levels for that warehouse are deleted |
Min = 0 and Max > 0 | Saved as normal (not deleted) |
Every product in the file is switched to Per Warehouse, so the warehouse values from the file are used instead of any Global values. Warehouses that already had levels for the product and aren't in the file keep them. All changes are recorded in the product's change log.
Example: TSHIRT-BLK-M uses Global levels of Min 20 / Max 80. You import two rows: WH-EAST 50 / 200 and WH-WEST 10 / 40. The product switches to Per Warehouse. Waves in WH-EAST now use 50 / 200 and waves in WH-WEST use 10 / 40.
Example (delete): Later you import WH-WEST 0 / 0. The WH-WEST levels are deleted. WH-EAST keeps 50 / 200. Because the product is Per Warehouse and WH-WEST is no longer listed, Dynamic Replenishment skips the product in WH-WEST.
⚠️ A Per Warehouse product is skipped in any warehouse that has no levels. There is no fallback to the Global values. Also remember that a product needs a Min above 0 to be replenished.
⚠️ Watch out for other product imports. If you use the Bulk Create/Update Products import with values in the Min/Max replenishment columns for a Per Warehouse product, the product switches back to Global and all its warehouse-specific levels are deleted. The same happens if you change the strategy to Global on the product or through the product API.
Validation errors
Each row is checked on its own. A row that fails is skipped and listed with its row number; the other rows are still imported.
Problem | Result |
Client, SKU or Warehouse column missing from the file | The whole file is rejected: "Import Failed. The file is missing required columns…" |
Client, SKU or warehouse code left empty | Row rejected: "Missing Value" |
Client, SKU (for that client) or warehouse code doesn't exist | Row rejected: "No Match Found" |
Min or Max below 0 | Row rejected: "Min and Max Replenishment Level must be 0 or greater" |
Min greater than Max | Row rejected: "Min Replenishment Level cannot be greater than Max Replenishment Level" |
A warehouse you don't have access to | Row rejected |
Example: Row 7 has Min 60 and Max 40. It's rejected with the Min-greater-than-Max error; rows 1–6 and 8 onward are imported.
Common questions
When do the new levels take effect? On the next Dynamic Replenishment wave run for that warehouse. Tasks that already exist aren't changed.
How do I check what was imported? Open the product's Advanced tab, Replenishment Level section, or check the Dynamic Replenishment Report, which shows the levels used for each product in the warehouse.
Can I switch a product back to Global? Yes, on the product screen. This deletes its warehouse-specific levels.
Can I set levels through the API? Yes. The product create and update endpoints accept a replenishment strategy and a list of warehouse levels.
