Skip to main content

Bulk Importing Warehouse-Specific Replenishment Levels

Set Dynamic Replenishment Min and Max levels per product and warehouse for many products at once in Logiwa IO with the Warehouse Replenishment Levels Excel import, including the template, update and delete rules, and validation errors.

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

  1. Navigate to Products.

  2. Open the Bulk Import / Update options and click Warehouse Replenishment Levels. The Bulk Import Warehouse Replenishment Levels page opens.

  3. Click Download to get the Excel template.

  4. Fill in one row per product and warehouse (see File columns).

  5. 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".

  6. On the mapping screen, check that each File Column Header is matched to the right Logiwa IO Field, using Preview Data to confirm.

  7. Click Import. You're taken to the import history.

  8. 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.

Did this answer your question?