WooCommerce “No Products Matched Your Selection”? Causes & Fix
A customer picks Size and Colour and gets "Sorry, no products matched your selection. Please choose a different combination." — instead of an Add to cart button. WooCommerce couldn't find a variation it's allowed to sell for that combination. Here's how to find the gap.
Last updated: 16 Jul 2026 · ~6 min read
The usual cause is that the matching variation has an empty price, which makes WooCommerce treat it as invisible and drop it from the product's variation data entirely. A variation is only offered if it is published AND has a price that isn't blank. Open the product's Variations tab, find the combination the customer picked, and give it a price.
What the message actually means
When a variable product loads, WooCommerce embeds a list of sellable variations into the page. That list is filtered: a variation is only included if its post status is published and its price is not an empty string. Both conditions, every time. When you pick attributes in the dropdowns, the JavaScript looks for a match in that embedded list — and if the combination you chose isn't in it, you get this message.
So the message doesn't mean "this variation doesn't exist". It means "there is no variation I'm allowed to sell for this combination" — which usually means it exists in your admin, looks perfectly normal, and simply has no price in it. Worth knowing: "Sorry, this product is unavailable" is a different message from a different code path — that one means WooCommerce found the variation but it isn't purchasable.
The most common causes (most likely first)
- The matching variation has an empty priceThe variation is right there in the Variations tab, published, in stock, looking fine — and its Regular price field is blank. A variation with no price is treated as invisible and never reaches the front end.
- The combination was never createdYou added a term to an attribute (a new colour, a new size) after generating variations. Count your variations against the number of possible combinations — if it's short, the new term has no variations covering it.
- The variation is a draft rather than publishedRarer through the admin UI, common after an import or a staging sync. The variation exists and has a price, but its post status isn't
publish, so it's filtered out with everything unpriced. - "Hide out of stock items from the catalog" is dropping the variationOut-of-stock combinations vanish instead of saying "Out of stock". Check
WooCommerce → Settings → Products → Inventory— with that option ticked, out-of-stock variations are removed from the list entirely rather than shown as unavailable. - The product exceeds the AJAX variation thresholdThe product has more than 30 variations. Above that limit WooCommerce stops embedding the list and fetches matches over AJAX instead, so a blocked or failing request reads as "no matching variations". Open your browser's Network tab and watch for a
get_variationrequest when you pick the last dropdown. Products with few variations behave fine. - Attribute terms were renamed and the variation still points at the old slugThe dropdown offers "Large" but no variation matches it. Variations store the chosen term as a slug — rename or re-slug a term and existing variations keep pointing at the old value, so nothing matches.
Where to look first
- Reproduce it first. Pick the exact combination the customer reported and note it — you're looking for one specific variation, not auditing the whole product.
- Open Products → your product → Variations and find that combination. Is it there at all? No? That's cause 2 — create it (or use Generate variations) and price it.
- It's there? Check its price field. Blank? That's cause 1 — the single most likely answer. Give it a price and save.
- Priced and published, but still missing? Check whether it's out of stock, then check
WooCommerce → Settings → Products → Inventoryfor "Hide out of stock items from the catalog" (cause 4). Untick it and the combination reappears as "Out of stock" instead of vanishing. - More than 30 variations on this product? Open the browser Network tab, pick the combination, and watch for a
get_variationrequest (cause 5). A 403, a 500 or no request at all points at a security plugin, a cache layer or a JavaScript error — not your product data.
Which variation is the one with no price?
On a product with a dozen variations you'll find the blank price field by eye in a minute. On a catalogue with hundreds of variable products, you find it when a customer emails you — and the message never says which variation it couldn't sell. DiagnosticIQ's free dashboard lists unpriced and unpublished variations across the whole store, so you see every combination that will throw "no products matched your selection" before a customer walks into one. It keeps checking after you fix it, too — imports reintroduce this constantly.
Get the free plugin →Made by Prima Digital — the team behind this guide. Free forever; no card to install.
How to know you fixed it
Go back to the product as a customer, pick the exact combination that failed, and the price and Add to cart button should appear with no message — then walk the other combinations on that product to be sure only one was affected.
Frequently asked
Does this mean I've lost the sale?
Only that one attempt. The product page itself works — the customer just hit a combination WooCommerce can't sell. Price the variation and the combination becomes buyable immediately.
Why does the variation look completely fine in the admin?
Because a blank price isn't flagged as an error anywhere in the admin UI. The Variations tab shows it as a normal, published, in-stock variation — the price field is just empty, and that alone is enough to hide it.
I get "Sorry, this product is unavailable" instead — same thing?
No. That's a different message from a different check: WooCommerce found the variation but it isn't purchasable. This message means no variation matched at all.
Can I just delete the variations that have no price?
Yes, if you never intend to sell that combination — a deleted variation and an unpriced one both refuse to sell. Deleting is cleaner, because the combination stops looking sellable in your admin.