Inventory and stock
How to track stock for variations (sizes and colors) in WooCommerce
To track stock per variation in WooCommerce, open the product's Variations tab, expand each variation, tick Manage stock? and enter its quantity. Each size or color then has its own count, its own stock status and, optionally, its own low stock threshold. Analytics › Stock lists variations alongside products, so you can see which one is running low.
Below: the two ways WooCommerce can hold stock for a variable product, how to set it up and bulk edit it, where to see variation stock and sales, and how to tell which size or color will run out first.
Product-level stock vs variation-level stock
A product variation can get its stock in one of two ways:
| Setup | How it works | Use it when |
|---|---|---|
| Stock managed on the parent product | One shared count. Every variation that doesn't manage its own stock draws from it | Variations are the same physical item (for example a print with or without a gift note) |
| Stock managed on each variation | Each variation has its own count and status | Each variation is a different physical item (sizes, colors, materials) |
For sizes and colors, manage stock on each variation. If a t-shirt shares one pool of 60 across five sizes, WooCommerce can't tell you the medium is gone, and it will keep selling mediums you don't have until the whole pool hits zero.
You can mix the two: variations that tick Manage stock? use their own count, and the rest pull from the parent's count if the parent manages stock.
How to set stock per variation
- Open the variable product and go to Product data › Variations.
- Expand a variation and tick Manage stock?.
- Enter the Stock quantity. Optionally choose whether to allow backorders and set a Low stock threshold for that variation.
- Repeat for each variation, then Save changes and Update the product.
Bulk editing variations
For products with many variations, use the Bulk actions menu at the top of the Variations tab. It can:
- turn Manage stock on or off for every variation;
- set the stock quantity for all of them;
- set the stock status (In stock, Out of stock, On backorder);
- set the low stock threshold.
Bulk changes save to all variations immediately, so double-check before you apply one.
Where to see variation stock
- Analytics › Stock. The first column is "Product or variation", so each variation that manages stock has its own row with SKU, status and quantity. Choose Low stock or Out of stock from the Show menu to see which sizes need attention. The guide on getting a low-stock report covers the report in detail.
- Product export. Products › All Products › Export lists every variation as a row with
Typeset tovariation, aParentcolumn for the product it belongs to, and aStockcolumn. Note that variation names in the export may not include the attribute values, so match on SKU or ID where you can. - The product edit screen. The Variations tab shows each variation's stock when expanded.
Give every variation its own SKU. It makes the reports and exports far easier to read.
Where to see variation sales
Stock tells you what's left. You also need to know what's selling.
Go to Analytics › Variations, pick a date range, and sort by Items sold. You'll see each size and color ranked, with net sales and orders. Use the compare option to see which variations are rising. The guide on seeing sales by variation explains the report.
Put the two together and patterns jump out. It's common for a couple of sizes to account for most of a product's sales, which means they run out long before the product as a whole looks low.
Which variation will run out first?
For each variation, divide stock by average daily sales:
Days left = variation stock ÷ (items sold in the last 30 days ÷ 30)
Say a t-shirt in black has these numbers:
| Variation | Stock | Sold (30 days) | Days left |
|---|---|---|---|
| Small | 22 | 15 | 44 |
| Medium | 9 | 36 | 7.5 |
| Large | 18 | 30 | 18 |
| X-Large | 25 | 6 | 125 |
The product has 74 shirts in stock, which looks healthy. The medium is gone in about a week, and the extra large has four months of stock. Reorder the medium now, and buy fewer extra large next time.
This is stock runway at variation level. The guide on finding products about to sell out covers the method across the whole catalog, including a SQL version that handles variations.
Common variation stock mistakes
- Leaving stock on the parent for sizes and colors, so one popular size can sell out silently.
- One reorder point for every size. Medium and extra large rarely sell at the same pace. Set the low stock threshold per variation; see setting reorder points.
- Buying in equal size runs. Use last season's variation sales to split the order.
- Ignoring dead sizes. A size that never sells is cash on the shelf. Check it against your dead stock list.
The quick way: ask Askshelf
Askshelf adds Analytics › Askshelf to WordPress admin. Its stock runway lookup includes variations: it takes each variation's current stock and its sales rate over the last 7 to 90 days, and lists the ones that will run out within the number of days you ask about (1 to 120).
Which sizes or colors will run out in the next 10 days?
It works from the stock counts WooCommerce holds, so manage stock per variation if you want each size listed separately. It's read-only and can't change stock levels. For the full stock routine, see the WooCommerce inventory forecasting guide and the stock forecasting page.
Common questions
Can each variation have its own stock in WooCommerce?
Yes. Open the product's Variations tab, expand a variation, tick Manage stock?, and enter its stock quantity. Variations that don't manage stock draw from the product-level stock if that's turned on.
Can each variation have its own low stock threshold?
Yes. Each variation that manages stock can set its own low stock threshold. If it doesn't set one, WooCommerce falls back to the product's or the store's threshold.
Where do I see stock for all variations at once?
Analytics › Stock lists products and variations together, with SKU, status and current stock. A product export (Products › All Products › Export) also lists every variation as its own row with a Stock column.
See how Askshelf handles this: Stock forecasting for WooCommerce