Skip to content
GPLWP Guides

How to share inventory across WooCommerce products

WooCommerce Time About 30 minutes 6 steps Updated 15 Sep 2026

WOOCOMMERCE
The short answer

WooCommerce does not natively share one stock pool across separate products. You can keep related options under one variable product, but separate listings need custom development or a shared-stock extension that links products and variations to one inventory source.

The route
  1. 01Define the shared stock pool
  2. 02Use one variable product where possible
  3. 03Enable stock management consistently
  4. 04Build the manual integration carefully
  5. 05Map the shared products
  6. 06Run stock and order tests

What you need

  • A WooCommerce store with stock management enabled
  • Administrator access to WordPress
  • A list of products or variations that consume the same physical stock
  • A backup or staging site for testing stock changes

Define the shared stock pool

List the products and variations that draw from the same physical inventory. Decide whether one sale consumes one unit from the pool, or whether some listings consume more, such as one pack using six individual items.

Separate genuinely interchangeable stock from stock that only looks similar. If two items cannot fulfil the same order, they should not share a stock group.

Use one variable product where possible

If the listings do not need separate product pages, keep them as variations of one variable product. WooCommerce can manage stock at the variation level, or let variations use stock held at the parent product level when variation-level stock management is not enabled.

This is the simplest manual route. It avoids duplicate stock counts, but it is unsuitable when each listing needs its own title, description, URL, SEO settings or sales reporting.

Enable stock management consistently

For every product or variation that participates in shared inventory, enable Manage stock? where the stock extension or custom integration requires it. WooCommerce may not reduce stock when stock management is disabled globally or on the individual product.

Do not leave an old independent stock quantity active beside the shared quantity. That can make one listing appear available after the common pool has reached zero.

Build the manual integration carefully

Separate products cannot share a stock pool in WooCommerce core. The manual route therefore means commissioning custom code or an integration that stores a common quantity, validates the cart against that quantity, and updates it when orders reduce or restore stock.

The integration must cover more than a successful checkout. WooCommerce reduces stock through its order-stock process and can restore it when an order moves to a releasing status such as cancelled, pending or failed. Test simultaneous orders, cancellations, failed payments, admin stock edits and partial quantities before using it on a live shop.

Map the shared products

Fast way: install and configure a shared-stock extension such as WPC Shared Stock. Create one shared stock group, enter its total quantity, then map the relevant products or specific variations to that group.

Set a stock ratio for each mapped item when needed. For example, a single item can use a ratio of 1 while a six-pack uses 6. Check that the mapping matches the physical unit you actually count, because an incorrect ratio can oversell the source inventory.

Run stock and order tests

Start with a small test quantity and buy one item from each mapped listing. Confirm that the shared balance falls by the expected amount and that every mapped listing reflects the remaining availability. If the extension supports audit records, use them to identify which order changed the balance.

Then cancel or fail an order and confirm that stock is restored once, not twice. Also test two mapped items in the same cart, because a solution that checks each product separately can accept a cart whose combined quantity exceeds the shared pool.

The fast route

Let WPC Shared Stock do it

Synchronizes one inventory pool across products and variations, with mappings and stock ratios for complex shared-stock setups.

Get WPC Shared Stock

Sources

  1. woocommerce.com /document/variable-product/?utm_source=openai
  2. woocommerce.com /document/managing-orders/troubleshooting-orders/?utm_source…
  3. woocommerce.github.io /code-reference/files/woocommerce-includes-wc-stock-function…
  4. woocommerce.com /document/variation-shared-inventory-for-woocommerce/?utm_so…

Questions

Can WooCommerce share stock between separate products by default?
No, WooCommerce core manages stock for individual products and variations rather than one pool spanning separate product listings. A single variable product can cover some simpler cases, but separate products need custom code, an integration or a shared-stock extension. Treat a copied stock number on each product as separate inventory, because changing one does not create a shared balance.
Can variations of one WooCommerce product share stock?
Yes, variations can use stock managed at the parent product level when variation-level stock management is not enabled. This works when the variations are interchangeable and do not need separate stock counts. It does not create a shared pool between different parent products, and it may not suit listings that require separate URLs, descriptions or reporting.
How do I share stock between a single item and a pack?
Use a common stock group with a consumption ratio for each listing. Set the single item to consume one unit and the pack to consume the number of individual units it contains. The ratio must reflect the physical stock unit, not the customer-facing product name. Test mixed carts and cancellations, since both can expose incorrect calculations.
Why does a shared-stock product still show as in stock at zero?
The usual cause is that stock management is disabled for one of the included products or variations, or an independent stock quantity is still controlling its availability. Check the global WooCommerce inventory settings, the product inventory settings and every mapped variation. Some shared-inventory documentation specifically warns that included variations must have stock management enabled to display availability correctly.
Should I use custom code or a shared-stock plugin?
Use custom code only when you have a developer who can maintain order, cancellation, failed-payment, cart-validation and admin-edit logic. A shared-stock plugin is usually the faster route for separate products, mapped variations, ratios and ongoing stock changes. Before choosing one, verify that it handles mixed carts and restores stock correctly when orders are cancelled or fail.