Skip to content
GPLWP Guides

How to manage inventory across multiple locations in WooCommerce

WooCommerce Time About 45 minutes for setup, plus time to import and verify stock 6 steps Updated 8 Nov 2026

WOOCOMMERCE
The short answer

WooCommerce does not provide warehouse-level stock for one product out of the box. You can manage small inventories manually with separate products or a spreadsheet, but real-time location stock, order routing and shared totals require a multi-location inventory plugin.

The route
  1. 01Decide how locations will work
  2. 02Enable WooCommerce stock management
  3. 03Use the manual route for small shops
  4. 04Install a multi-location extension
  5. 05Create locations and allocate stock
  6. 06Set fulfilment and test orders

What you need

  • A WooCommerce store with products or variations already created
  • Admin access to WordPress and WooCommerce
  • A confirmed stock count for each warehouse or shop
  • A clear rule for choosing the fulfilment location

Decide how locations will work

List every warehouse, shop or collection point that will hold stock. Decide whether customers should choose a location, whether WooCommerce should select the nearest one, and whether each location needs its own price, shipping method or fulfilment priority.

Also decide whether stock is shared between locations or allocated separately. A customer-facing availability message is not the same as location-based stock deduction, so write down the rule before changing products.

Enable WooCommerce stock management

In WooCommerce > Settings > Products > Inventory, enable stock management and set a suitable hold-stock period for unpaid orders. On each product, open Product data > Inventory, enable stock management and enter the quantity or variation-level quantities. WooCommerce reduces those quantities as orders are processed and restores stock when eligible orders are cancelled or returned.

This is still one stock pool per product or variation. If you enter the combined quantity from three warehouses here, WooCommerce knows the total but not where the items are.

Use the manual route for small shops

For a small catalogue, keep one product and maintain a location column in a stock spreadsheet, or create separate products such as “Blue mug — London” and “Blue mug — Manchester”. Set the WooCommerce quantity for each listing and update the spreadsheet whenever stock moves or an order is placed.

This route is acceptable when orders are low and one person controls stock. It becomes risky when the same item can sell online and in-store: WooCommerce cannot natively link separate location listings into one shared quantity, and staff can sell the same unit twice unless every adjustment is recorded immediately.

Install a multi-location extension

Use a multi-location inventory extension when you need separate quantities for one product, automatic stock deduction, fulfilment priority, location-based availability or synchronisation with a POS or warehouse system. WooCommerce’s own extension documentation describes location records, local stock, combined totals and location assignment as extension features rather than standard product inventory.

Install it on a staging site first if possible. Check that it supports simple products, variations, refunds, cancellations, backorders, partial fulfilment and the payment and POS integrations you use.

Create locations and allocate stock

Create each warehouse or shop in the extension’s location screen, then assign products or variations to the relevant locations. Enter the physical quantity at each location and confirm that the displayed total equals the stock you actually hold.

If the extension offers an import or claim step for existing WooCommerce stock, use it once during setup. Do not enter the old combined quantity and then add the same quantities again at each location, or your total will be inflated. Unassigned stock is a common migration problem, so reconcile a sample of products before importing the full catalogue.

Set fulfilment and test orders

Choose how an order is allocated: nearest location, highest available stock, fixed priority, customer-selected shop or manual assignment. Configure location-specific shipping and pickup rules only after the stock rule is working.

Place test orders for a simple product and a variation, including an order that crosses a stock threshold. Then test cancellation, refund, failed payment, backorder and stock transfer scenarios. Check the location quantity, WooCommerce total, order notes and customer-facing availability after every test. Extension conflicts and disabled stock management are common reasons stock does not reduce correctly.

If you want the faster route, install MultiLoca. It is intended for stores or warehouses operating across multiple locations and adds geolocation, location-based pricing and real-time stock syncing, so you do not have to maintain separate product listings and a manual allocation sheet.

The fast route

Let MultiLoca do it

Geolocation, location-based pricing, and real-time stock syncing for stores or warehouses operating across multiple locations.

Get MultiLoca

Sources

  1. woocommerce.com /document/configuring-woocommerce-settings/products/?utm_sou…
  2. wordpress.org /support/topic/regarding-stock-inventory-for-variation-produ…
  3. woocommerce.com /document/multi-location-inventory-management/?utm_source=op…
  4. woocommerce.com /document/stocktrack/?utm_source=openai
  5. woocommerce.com /document/managing-orders/troubleshooting-orders/?utm_source…
  6. woocommerce.com /document/variable-product/?aff=12943&cid=17113767&utm_sourc…

Questions

Can WooCommerce manage stock for multiple warehouses by itself?
No. WooCommerce core tracks stock against a product or variation, not separate warehouse quantities. You can record a combined quantity in the normal Inventory panel, but WooCommerce will not know which location should fulfil an order or reduce stock from. Use a manual process for a very small operation, or add a multi-location inventory extension for separate stock pools.
Can I use product variations as warehouse locations?
You can create variations such as “London” and “Manchester” and give each one its own stock quantity, but this makes the location part of the customer’s product choice. It does not automatically share stock with another listing, route orders, choose the nearest warehouse or handle transfers. It is a workable small-catalogue workaround, not a proper warehouse model.
How do I stop stock being counted twice when moving to location inventory?
First record the current WooCommerce total, then distribute that quantity across the new locations once. If the extension provides an unassigned-stock or claim function, use that during migration instead of adding the old total again. Compare the sum of all location quantities with the original WooCommerce quantity before enabling live orders.
How should WooCommerce choose which location fulfils an order?
Choose one explicit allocation rule, such as nearest location, highest available quantity, fixed priority or customer-selected location. Test the rule with a product stocked at two locations and with one location at zero. If orders can contain items held in different places, also check whether your setup creates split shipments or assigns the whole order to one location.
Why is stock not reducing at the correct location?
The usual causes are disabled stock management, an unassigned product, an incorrect default location, a failed synchronisation job or a plugin conflict. Check global and product-level stock management first, then inspect the order’s assigned location and the extension’s logs. Test with other plugins temporarily disabled on staging before changing live stock.