Title: WareRoute – Multi-Warehouse Stock by Country for WooCommerce
Author: techsarathy
Published: <strong>November 13, 2026</strong>
Last modified: November 13, 2026

---

Search plugins

![](https://ps.w.org/tswr-wareroute/assets/banner-772x250.png?rev=3799635)

![](https://ps.w.org/tswr-wareroute/assets/icon.svg?rev=3799635)

# WareRoute – Multi-Warehouse Stock by Country for WooCommerce

 By [techsarathy](https://profiles.wordpress.org/techsarathy/)

[Download](https://downloads.wordpress.org/plugin/tswr-wareroute.1.3.0.zip)

 * [Details](https://wordpress.org/plugins/tswr-wareroute/#description)
 * [Reviews](https://wordpress.org/plugins/tswr-wareroute/#reviews)
 *  [Installation](https://wordpress.org/plugins/tswr-wareroute/#installation)
 * [Development](https://wordpress.org/plugins/tswr-wareroute/#developers)

 [Support](https://wordpress.org/support/plugin/tswr-wareroute/)

## Description

Shipping from more than one place? A US warehouse and a China warehouse, or an EU
stockist and a UK one? WooCommerce has a single stock number per product, so a shopper
in Germany can be told something is in stock when the only units are sitting in 
New York.

WareRoute gives every product and variation one stock number per warehouse and maps
countries to warehouses. Each shopper sees, and can buy, only what their warehouse
actually has.

#### What it does

 * **Stock per warehouse** on simple products and every variation, right in the 
   Inventory tab.
 * **Country routing** – assign countries to each warehouse; everyone else goes 
   to the default warehouse. Uses the shopper’s shipping country, so it follows 
   WooCommerce’s own customer location (including geolocation, if enabled).
 * **Correct stock everywhere** – stock status, “in stock” checks, purchasability
   and the variation data all reflect the shopper’s warehouse.
 * **Orders tagged and deducted** – every order is tagged with its fulfilment warehouse(
   shown as a badge in the order list) and stock is taken from that warehouse when
   payment completes.
 * **Address changes handled** – if you change an order’s shipping country after
   stock was taken, the units are returned to the old warehouse and taken from the
   new one.
 * **Manual orders** – when adding products to an order in the admin, the product
   search shows the stock of the warehouse that order ships from.
 * **WooCommerce stock stays in sync** – the product’s normal stock number is kept
   as the total across warehouses, so reports and other plugins keep working.
 * **Back-in-stock signups** – a simple email form appears on product pages when
   the item (or the selected variation) is out of stock in the shopper’s warehouse.
   Or place it with the `[tswr_back_in_stock]` shortcode.
 * **Back-in-stock list** – see who’s waiting per variation and warehouse, how much
   stock is back, and email everyone once stock passes the threshold you set.
 * **Page cache aware** – sets a vary cookie for LiteSpeed Cache so cached pages
   never show one region’s stock to another.
 * **Unlimited warehouses.**
 * **HPOS compatible.**

#### WareRoute Pro

WareRoute is complete on its own. WareRoute Pro is a separate add-on that adds:

 * **Pre-orders per warehouse** – when a shopper’s warehouse is empty and backorders
   are allowed, they can still buy. The order goes to a dedicated Pre-order status(
   no “processing” email), every line is tagged, and a report shows exactly how 
   many units each warehouse owes, grouped by product attributes.

#### Add-ons

 * **Klaviyo** – adds back-in-stock signups to a Klaviyo list.

#### For developers

The storefront script fires `tswr:variation_instock`, `tswr:variation_outofstock`,`
tswr:variation_preorder` and `tswr:variation_reset` on `document`, and each variation
carries `tswr_warehouse` and `tswr_warehouse_qty`. Filters include `tswr_warehouses`,`
tswr_warehouse_for_country`, `tswr_settings_tabs` and `tswr_back_in_stock_subscribed`(
action).

## Screenshots

[⌊Warehouse stock on the product edit screen: one card per warehouse with a live
total.⌉⌊Warehouse stock on the product edit screen: one card per warehouse with 
a live total.⌉[

Warehouse stock on the product edit screen: one card per warehouse with a live total.

[⌊Warehouse settings: countries served, default warehouse and badge per warehouse.⌉⌊
Warehouse settings: countries served, default warehouse and badge per warehouse.⌉[

Warehouse settings: countries served, default warehouse and badge per warehouse.

[⌊Back-in-stock signup form on a product page.⌉⌊Back-in-stock signup form on a product
page.⌉[

Back-in-stock signup form on a product page.

[⌊Stock Notifications: who is waiting, per warehouse, and what is ready to notify.⌉⌊
Stock Notifications: who is waiting, per warehouse, and what is ready to notify.⌉[

Stock Notifications: who is waiting, per warehouse, and what is ready to notify.

## Installation

 1. Install and activate the plugin (WooCommerce must be active).
 2. Go to **WooCommerce  WareRoute** and set up your warehouses: give each a name and
    the countries it serves, and pick a default.
 3. Edit a product (or each variation) and fill in the stock for each warehouse in 
    the Inventory tab.

Leave a warehouse’s stock blank on a product to fall back to WooCommerce’s normal
stock for that product.

## FAQ

### What happens to countries I don’t assign?

They’re served by the default warehouse.

### How is the shopper’s country decided?

From the shipping country on the WooCommerce customer session. Before a shopper 
enters an address, that’s whatever WooCommerce’s “Default customer location” setting
gives (geolocation, shop base country, or none).

### Can I put the back-in-stock form somewhere else?

Yes. Untick “Show an email signup form on product pages” under WooCommerce  WareRoute
Back in stock, and place `[tswr_back_in_stock]` wherever you want it (inside a product
template; add `product_id="123"` elsewhere).

### Does it work with page caching?

Yes, with LiteSpeed Cache out of the box (a vary cookie keeps one cached copy per
warehouse). Other full-page caches need to vary on the `tswr_geo` cookie.

### Does WareRoute store personal data?

Only for back-in-stock signups: the email address a shopper enters, with the product
and warehouse. You can delete entries from the Stock Notifications screen. Country
detection uses WooCommerce’s own customer data and geolocation, and the plugin sends
nothing to external services. (The optional Klaviyo add-on sends signup emails to
Klaviyo.)

### What happens to my data if I delete the plugin?

Settings are removed; stock numbers, order tags and the back-in-stock list are kept.
To remove everything, add `define( 'TSWR_REMOVE_ALL_DATA', true );` to wp-config.
php before deleting.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“WareRoute – Multi-Warehouse Stock by Country for WooCommerce” is open source software.
The following people have contributed to this plugin.

Contributors

 *   [ techsarathy ](https://profiles.wordpress.org/techsarathy/)
 *   [ rktaiwala ](https://profiles.wordpress.org/rktaiwala/)

[Translate “WareRoute – Multi-Warehouse Stock by Country for WooCommerce” into your language.](https://translate.wordpress.org/projects/wp-plugins/tswr-wareroute)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/tswr-wareroute/), check
out the [SVN repository](https://plugins.svn.wordpress.org/tswr-wareroute/), or 
subscribe to the [development log](https://plugins.trac.wordpress.org/log/tswr-wareroute/)
by [RSS](https://plugins.trac.wordpress.org/log/tswr-wareroute/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.3.0

 * Initial public release.

## Meta

 *  Version **1.3.0**
 *  Last updated **14 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.2 or higher **
 *  Tested up to **7.1.4**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [geolocation](https://wordpress.org/plugins/tags/geolocation/)[inventory](https://wordpress.org/plugins/tags/inventory/)
   [stock management](https://wordpress.org/plugins/tags/stock-management/)[warehouse](https://wordpress.org/plugins/tags/warehouse/)
 *  [Advanced View](https://wordpress.org/plugins/tswr-wareroute/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/tswr-wareroute/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/tswr-wareroute/reviews/)

## Contributors

 *   [ techsarathy ](https://profiles.wordpress.org/techsarathy/)
 *   [ rktaiwala ](https://profiles.wordpress.org/rktaiwala/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/tswr-wareroute/)