Why won't Shopify stop showing sold-out products in my collections?

Sold-out items lingering in your collection grids usually means the collection type or inventory settings, not a bug — here's how to make Shopify hide them automatically.

inventorycollectionsout-of-stockshopify-flowsmart-collections

What's going on

"Why are sold-out products still showing up in my collection when I have zero inventory on them?" is one of the most common inventory complaints on Shopify forums, and it almost always traces back to how the collection was built rather than a platform bug. A manual (custom) collection is just a static list of products you added by hand — Shopify has no reason to remove an item from that list just because its inventory hit zero. The product stays listed, usually marked "Sold out," until someone manually unchecks it.

This becomes a real operational problem for stores with fast-moving inventory: flash-sale items, limited runs, or high-velocity SKUs that sell out and restock frequently. Merchants end up either policing collections by hand every day or asking (as the recurring pattern shows) for a bulk or code-based way to do it once and forget it.

There's a second wrinkle merchants often don't separate out: whether a product is *visible* in a collection is a different question from whether it's still *purchasable* when stock is at zero. Shopify's "Continue selling when out of stock" variant setting controls the second question (used for backorders/pre-orders), and mixing it up with the first is a common source of confusion when troubleshooting.

Why it happens

Shopify treats collection membership and inventory as two separate systems by design. Automated (smart) collections re-evaluate their rule set continuously, so if you give them an inventory-based rule, they self-maintain. Manual collections are deliberately static — that's the point of a manual collection — so Shopify won't silently remove something you added yourself just because stock dipped to zero.

Most merchants build collections manually early on for curation control, then only later run into the maintenance cost once volume and sell-through rates go up. By the time it's a pain point, converting every collection to a smart collection isn't always straightforward if the collection relies on manual curation/order that a rule-based condition can't replicate.

5 ways to fix it

1

Switch smart collections to auto-filter by stock (best native fix)

If the collection is (or can be converted to) an automated/smart collection, add the condition "Inventory stock" is greater than "0" under Sales channels > Online Store > Collections > [collection] > Conditions. Shopify then adds and drops products from the collection automatically as stock changes — no manual edits, ever. This is the closest thing to a native bulk fix and it's free.

2

Use Shopify Flow to auto-remove from manual collections

If the collection must stay manual (curated by hand), Shopify Flow can watch for "Inventory quantity changed" and, when the total available quantity hits 0, automatically run "Remove product from collection" (and optionally re-add it when restocked). Flow ships free on every Shopify plan now, so this covers the bulk/code-free automation merchants ask for without touching a manual collection's ordering.

3

Decide your backorder policy first, since it changes what "hide" should even mean

Check each variant's inventory setting: "Continue selling when out of stock" determines whether a 0-stock variant still shows as buyable (useful for pre-orders/backorders) or flips to "Sold out." If you want zero-stock items to vanish, this needs to be off; if you're intentionally taking backorders, leave it on and use a sort/label strategy instead of hiding.

4

Push out-of-stock items to the bottom instead of hiding them

Set the collection's sort order to "Availability" (Collection > Sort > Best selling won't do this, but Manual + drag or the Availability sort option will) so sold-out products sink below in-stock ones. Combine this with the Search & Discovery app's storefront "Availability" filter so shoppers can filter out-of-stock items themselves — useful when you don't want to fully remove items that restock often.

5

Theme-level or app-based hide toggle for full control

Some themes expose a "Hide products that are out of stock" checkbox in the collection page section settings (Theme editor > Collection pages) — check yours before assuming it's missing. If your theme doesn't have it and Flow/smart collections don't cover your catalog structure (e.g., you need per-collection exceptions or complex rules), a lightweight inventory-visibility app is a reasonable last resort, but confirm you've exhausted the native options above first.

Bottom line

Most merchants can solve this entirely for free: convert to a smart collection with an "Inventory stock > 0" rule, or wire up a Shopify Flow that removes zero-stock products from manual collections automatically. Reach for a paid app only if your catalog's collection structure genuinely can't be expressed with those two native tools — this is a case where the right settings, not an extra app, are usually the answer.

Still Stuck?

Browse the rest of the problem library, run a free storefront scan to catch issues like this automatically, or email us and we'll work out a custom solution for it.