PS PrestaShop Intermediate

Multi-Warehouse & Stock Routing — Documentation

Install, configure and operate automatic order routing to the right warehouse based on stock and geography.

Updated Module version 1.0.0

Overview

Multi-Warehouse & Stock Routing automatically assigns every validated order to the most relevant warehouse by combining the stock actually available and the customer’s delivery zone. The module manages its own warehouses, an independent per-warehouse stock and geographic coverage rules, with no dependency on any external geocoding API.

Assignment is one warehouse per order. When no warehouse covers the whole order, it is flagged as partial and handed to the most complete warehouse for manual handling.

Requirements and compatibility

  • PrestaShop 1.7.6 to 9.x (compatible with PrestaShop 8 and 9)
  • PHP 7.2 to 8.x
  • Multistore and multilingual compatible (FR, EN, ES, DE, IT)
  • No external dependency, no API key required

Installation

  1. In the back office, open Modules > Module Manager and click Upload a module.
  2. Select the module ZIP archive and run the installation.
  3. Once installed, a Multi-Warehouse menu appears under Orders, with four sub-pages: Warehouses, Coverage zones, Per-warehouse stock and Order routing.

Installation automatically creates the required tables and tabs. Uninstalling cleanly removes the module’s tabs and data.

General configuration

Open the module configuration page to set the routing strategy and stock options.

Routing strategies

  • Geography first (default): favours the nearest warehouse that holds the full stock.
  • Stock first: prioritises a warehouse able to serve the entire order, then breaks ties by proximity.
  • Warehouse priority: follows the priority order you define, ignoring geography.

Options

  • Global fallback coverage: if no rule matches, the warehouse stays eligible as a last resort.
  • Stock decrement: deducts the warehouse stock on assignment.
  • Synchronisation to PrestaShop: pushes the sum of warehouses to PrestaShop stock (optional, off by default).
  • Allow partial orders: still assigns the most complete warehouse when none covers everything.

Create a warehouse

In Multi-Warehouse > Warehouses, add a warehouse with its name, country, a priority (the lower the value, the higher the priority) and its active status. Latitude/longitude coordinates are optional and purely informative.

Define coverage zones

In Multi-Warehouse > Coverage zones, attach one or more rules to each warehouse:

  • Postcode: one or more prefixes separated by commas (for example 06, 13, 83).
  • Country: coverage of a whole country.
  • Zone: coverage of a PrestaShop zone.

A warehouse with no rule is treated as global coverage: it covers every destination. Proximity is ranked from the most specific to the broadest: postcode, then country, then zone, then global coverage.

Manage per-warehouse stock

In Multi-Warehouse > Per-warehouse stock, enter quantities by product and by warehouse. You can import your existing PrestaShop stock into a chosen warehouse in one click, then adjust it.

If synchronisation to PrestaShop is enabled, the PrestaShop stock of a product is replaced by the sum of that item’s quantities across all warehouses. Check your settings before enabling this option in production.

Understanding routing

On order validation, the module evaluates every active warehouse on two axes: the geographic tier (proximity) and the ability to serve the order lines. Depending on the chosen strategy, it selects a warehouse and assigns it a status.

  • Automatic: a warehouse covers the whole order, assigned with no intervention.
  • Manual: the warehouse was chosen manually from the order page.
  • Partial: no warehouse covers everything, the most complete one is retained for manual handling.
  • Unrouted: no eligible warehouse (for example if partial orders are disabled).

Track and re-assign orders

The Multi-Warehouse > Order routing list summarises the assigned warehouse and status of every order. A dedicated panel also appears in the back-office order page: assigned warehouse, status, line-by-line availability, manual re-assignment and automatic recalculation in one click.

On re-assignment, the previously reserved stock is credited back to the original warehouse using the exact stored allocation, then debited from the new warehouse: no loss and no double counting.

Troubleshooting

  • An order stays unrouted: check that at least one warehouse is active and eligible, and that partial orders are allowed if no warehouse covers everything.
  • Stock does not decrease: make sure the decrement option is enabled in the configuration.
  • A destination is never covered: add a suitable coverage rule, or enable global fallback coverage.

Routing is safely wrapped: in case of an anomaly, the incident is logged and the order is created normally, never blocking the checkout funnel.

Was this page helpful?

Still stuck? Contact support