• Blog
  • How to Assign Products to Specific Locations in WooCommerce?

How to Assign Products to Specific Locations in WooCommerce?

October 9, 2026
posted in WooCommerce by
How to Assign Products to Specific Locations in WooCommerce?
Quick answer

Overselling happens when your WooCommerce catalog promises stock that does not exist at the location fulfilling the order. Extendons Multi Locations Inventory Management for WooCommerce solves this by tracking inventory per warehouse and store, so each location's stock stays accurate and orders route to the site that actually has the product in hand. Without location-based assignment, a single stock number masks the reality that your Austin store and Ohio warehouse hold completely different quantities.

Why Location-Based Product Assignment Matters for Your WooCommerce Store

Picture a retailer running one warehouse in Ohio and two storefronts in Austin and Portland. A shopper in Austin buys the last red jacket on the shelf, but WooCommerce still counts that jacket as available because the catalog only tracks a single stock number. Another customer orders it the same afternoon, and someone has to apologize, refund, and explain.

Assigning products to locations fixes the root cause, not the symptom. Each product carries accurate stock for every warehouse and store, so the storefront stops selling what Austin does not physically have. Orders route to the location with available units, which shortens fulfillment time and cuts cross-country shipping costs. Location-based inventory transforms a multi-site operation from guesswork into a reliable system where stock numbers reflect what customers can actually receive.

How to Assign Products to Multiple Locations in WooCommerce?

Multi Location Inventory for WooCommerce treats each warehouse and store as a separate inventory container. The steps below cover installation, location creation, and per-product assignment using the dedicated tool built for this task.

Method 1: Assign Products to Locations Using Extendons Multi Locations Inventory Management

WooCommerce multi-locations inventory management records stock per warehouse, updates each location in real time as orders come in, and gives you a single screen to manage it all. The steps below walk through installation, global settings, location creation, and per-product assignment.

Step 1: Configure Global Inventory Settings

First, configure the plugin's global settings to manage inventory across different locations.

  1. From your WordPress dashboard, navigate to WooCommerce → Settings → Multi Locations Inventory.
  2. Open the General Settings tab to configure the plugin's inventory options.
  3. Enable the multi-location inventory features you need, such as location-based stock management and inventory display options.
  4. Configure the default inventory behavior and other available settings according to your store's requirements.
  5. Save the changes before proceeding to the location setup.

Step 2: Add Inventory Locations

Before assigning products, create the locations where your inventory will be managed.

  1. Navigate to the plugin's Locations section in your WordPress dashboard.
  2. Click Add New Location to create a location.
  3. Enter the location name and other available details, such as its address and contact information.
  4. Configure any additional location settings required by your store.
  5. Save the location and repeat the process for each warehouse, branch, or storage facility you want to manage.

Once your locations are created, you can assign products to them individually.

Step 3: Assign Products to Locations Using Product-Level Settings

After configuring the global settings and creating locations, assign products to the required locations from their individual product editing pages.

  1. Navigate to Products → All Products in your WordPress dashboard.
  2. Find the product you want to assign and click Edit.
  3. Scroll to the Product Data section and open the Inventory tab.
  4. Enable the Use Multi Inventory? option to manage the product's inventory across multiple locations.
  5. Click Add New Inventory to create an inventory entry for the product.
  6. In the Location field, select the location where you want to stock the product.
  7. Enter the stock quantity available at that location. Configure other available fields, such as regular price, sale price, inventory priority, dates, expiry date, or supplier, if required.
  8. If the product is available at multiple locations, click Add New Inventory again. Select another location and enter its inventory details. Repeat this process for each location where the product should be available.
  9. Review the assigned locations and their stock quantities, then click Update to save the product.

You can repeat these steps for other products to control which locations hold each item and how much stock is available at each location.

Important: Create your inventory locations before assigning products. Product-level inventory entries determine the locations associated with each product, while global settings control the overall inventory behavior of the plugin.

Method 2: Manual Location Tracking Using Custom Fields and Code

If a plugin feels like more than you need right now, you can build a lightweight version of location tracking yourself. The idea is simple: store a location value against each product, then read that value wherever you need it. WooCommerce already gives you the storage layer through custom fields, so the manual route is mostly about deciding where the data lives and how you display it.

Be honest about the tradeoff before you start. Manual tracking can tell a customer which store holds a product, but it will not decrement stock per location, generate purchase orders, or forecast replenishment. Those are the jobs Extendons Multi Locations Inventory Management exists to handle.

Step 1: Register a Custom Field for Each Location

Start by deciding what a "location" means in your catalog. Most stores use one entry per physical site, for example a city or a warehouse code.

  • Location Name: the human-readable label, such as "Austin Warehouse."
  • Location Code: a short unique identifier, such as "AUS-01," which is easier to query and less prone to typos.
  • Stock Quantity: the number of units on hand at that site.

WordPress stores custom field data in the postmeta table, and WooCommerce products are a post type, so product-level fields appear under the Custom Fields panel on the product edit screen. Registering the field properly with register_post_meta() makes it available to the REST API and gives you a schema to validate against.

Step 2: Store Location Data on Each Product

Once the field exists, you need to populate it. You have two realistic options.

  1. Add the value by hand on each product's edit screen, which works for small catalogs but does not scale.
  2. Bulk-load values through the WooCommerce product CSV importer, mapping your location columns to the custom field keys.

If a product sits in more than one place, you need a repeatable structure rather than a single value. WordPress meta supports arrays, so you can save an array of location objects (code plus quantity) under one key and loop over it later. Keep the shape consistent, because inconsistent meta is the main reason homegrown inventory setups break.

⚠️
Warning Back up your database and test on a staging site before you write to postmeta in bulk. A malformed import can overwrite existing product data, and there is no undo.

Step 3: Display Location Data on the Front End

Showing the data is where most manual builds get interesting. You can hook into woocommerce_single_product_summary or use a shortcode to print the stored locations near the add to cart button.

  • Read the meta value, check that the product is in stock, then output a simple list or table.
  • Hide locations with a zero quantity, so shoppers only see options you can actually fulfill.
  • Escape every value before output, since meta can contain unexpected characters.

This gives customers visibility, but the assignment stays manual. When an order comes in, someone has to decide which site ships it and update that site's count by hand.

Step 4: Query Products by Location

To build a "shop by location" filter, run a WP_Query against your meta key. Pass a meta_query argument matching the location code you want, and WooCommerce returns the products assigned to that site.

The performance ceiling arrives quickly. Meta queries are slower than indexed taxonomy queries, so once you pass a few hundred products, converting location into a custom taxonomy is the usual fix. That also gives you archive pages per location for free.

Manual tracking earns its place for a two-location store with a handful of SKUs. Beyond that, the maintenance cost outgrows the savings.

Troubleshooting: Why Products Aren't Syncing Across Locations

Even with a clean setup, multi-location stock can drift. The symptoms are usually identical: the shop page shows available units, a customer orders, and the picking list for that location comes up short. That gap is where the overselling pain starts.

Stock Not Decreasing After an Order

Check whether Disable front-end location selection is enabled, which is the setting described in Step 6. When that option is on, customers order without choosing a location, and the plugin waits for you to assign a location to the order from the backend before the associated location stock updates.

If orders sit unassigned, the numbers never move. Assign each pending order manually, or switch the Location Assignment Rule so the plugin selects a location automatically, then confirm the change on the next test order.

Wrong Location Gets Picked

When the plugin assigns stock from a warehouse you did not intend, the culprit is normally Inventory Priority on the product edit page, covered in Step 5. The location ranked first there is the one drawn down first, regardless of which site is closest to the buyer.

If you would rather the plugin choose the location holding the most units, set Location Assignment Rule to Location with most inventory in stock. If predictable routing matters more than quantity, keep Location as per priority in stock and reorder your priority list to match how you actually ship.

Location Data Missing on the Product Edit Page

A product with no location rows cannot sync anything. Open the product and confirm that Use Multi Inventory? is checked, then verify the Total Stock field reflects the combined quantities you entered.

  • Each entry must point to a different location. Adding the same location twice on one product produces unreliable totals.
  • If a stock entry has an Expiry Date that has already passed, that quantity may no longer count toward availability.
  • Save the product after edits, then reload the page to confirm the rows persisted.

Plugin conflicts are the last thing to rule out. Deactivate other inventory or stock-management plugins temporarily and place a test order. Without official documentation confirming a specific integration, this remains a diagnostic step: if stock updates correctly with the other plugin off, you have found the conflict.

Conclusion

Assigning products to locations in WooCommerce stops the cycle of overselling and customer disappointment that comes from a single stock number. Once you have created your locations, populated supplier details, and tagged each product with per-location quantities, your inventory picture becomes honest: Austin's shelf shows Austin's stock, Ohio's numbers reflect Ohio's reality, and orders route to the site that can actually fulfill them.

The manual approach works for very small, static inventories, but it requires hand updates every time a unit sells and cannot forecast replenishment. If you are running three or more locations or expect your catalog to grow, the operational overhead of tracking by spreadsheet or custom fields will quickly exceed the cost of a dedicated tool. Install Extendons Multi Locations Inventory Management today to automate stock syncing, eliminate the guesswork, and give your team a system they can trust.

Frequently Asked Questions

Can I assign the same product to multiple locations at different prices?+–
Yes. When you enable Use Multi Inventory? on a product, each location entry carries its own Price and Price on sale fields. Set different values for each location, save, and the plugin will display the location-specific price to customers once they select their site.
What happens if a product runs out of stock at one location but not others?+
If Hide out-of-stock locations from customers is enabled, that location disappears from the selector on the product page. The location still exists in your backend data, but shoppers cannot order from it. Other locations with available stock remain visible and selectable.
How do I prevent overselling when orders come in faster than I can assign locations manually?+
Enable Location Assignment Rule and choose Location with most inventory in stock or Location as per priority in stock to let the plugin assign orders automatically. When a rule is set, each order gets a location the instant it is placed, and that location's stock decrements immediately. No manual step needed.
Can I use this plugin with suppliers and purchase orders?+
Yes. Add suppliers in Step 4 with their lead times, discount rates, and tax terms. When you create a purchase order, link it to a supplier and a location, then notify the supplier by email. As stock arrives, mark the order as received and the plugin updates that location's inventory automatically.

Share Article

  • support widget30-day money back guarantee
  • support widgetDedicated Support Team
  • support widgetSafe & Secure Free Update
  • support widgetSafe Customized Solutions