How to build a Black Friday sale collection on Shopify
An automated collection built from one condition, compare-at price is set, fills your sale page as discounts publish and empties it as they come down. What it cannot do is order itself around stock. None of Shopify's six collection sorts reads inventory, which is why sold-out products lead the page by mid-morning.
You open the sale collection on your phone at eleven on Friday, the way a shopper would. The first six tiles say sold out. Everything still buyable sits below the fold, and the email that sent this traffic went out four hours ago.
What condition should the sale collection use?
One, and it is more precise than the tag most stores reach for. Shopify's automated collections accept conditions on title, type, vendor, status, variant title, category, tags, price, compare-at price, weight, inventory, and metafields, up to 60 conditions on a single collection.
Compare-at price is the interesting one. It is the only condition field Shopify gives an is set operator to, and that operator happens to describe a sale exactly: a product showing a higher original price beside its current one.
So a collection whose only condition is compare-at price is set builds itself as your discounts publish, and takes itself apart as they come down, with nothing to curate by hand at either end.
A tag works too, and plenty of stores run one. It just needs a person to add it, a person to remove it, and a memory of which products got missed. The tag describes your intention. The compare-at price describes what a shopper is actually being shown.
Why do sold-out products lead your sale collection by 11am?
Because best selling counts every order your store has ever taken. The products with the deepest history lead the grid, and those are the same products that sell out soonest once a discount lands on them.
It is not a quirk of that one sort, either. Six sorts ship with Shopify and none of them looks at stock.
| Native sort | What it orders by | What it does at 11am on Friday |
|---|---|---|
| Most relevant | Sales performance | Ranks on history, not on what is left |
| Best selling | All-time order count | Leads with the products that sold out first |
| Product title | The alphabet | Ignores the sale completely |
| Price | Highest or lowest | Puts one end of your margin range on row one |
| Date created | Newest or oldest | Surfaces whatever you happened to add last |
| Manually | The order you dragged | Holds exactly as set, sold-out tiles included |
An instruction circulating this year says otherwise. Several guides tell you to open Settings, then Products, and switch on an option that sends out-of-stock products to the end of automatically sorted collections. No such option is documented. Shopify's own page on collection layout does not use the words out of stock anywhere.
Two real levers exist. Search and Discovery can display, hide, or place out-of-stock products last, but that governs search results rather than collection order. An automated condition on inventory greater than zero drops sold-out products out of the collection entirely. That is removal, not demotion: the grid tidies itself, and a shopper who saved that deal lands on nothing. Demotion keeps the tile on the page and off row one.
Which filters belong on a page where everything is on sale?
Not the ones you run the rest of the year. An on-sale facet divides nothing when every product carries a discount, so it comes off and takes a row of the rail with it.
Size, category, and color keep working, because they answer questions the discount did not change. The axis worth adding in its place is depth: a shopper who came for the deepest cuts has no way to ask for them.
There is a ceiling too: past 5,000 products a collection shows no filters at all, so the page that most needs narrowing is the one Shopify stops narrowing. Count before you build, not after.
What does the page look like on a phone?
Taller than you think, and that is where most of the BFCM weekend happens. Adobe Analytics, in its release of 2 December 2025, put 57.5% of Cyber Monday online sales that year on mobile. Salesforce, reporting on the same Cyber Week five days later, put 70% of orders on mobile.
One is a share of dollars, the other a share of orders. Mobile carts run smaller, so averaging the two into a single mobile number gets both wrong.
What they mean for the page is the same either way. Liquid paginates between 1 and 250 items per page, so the choice is more page loads or one heavier load. A for loop stops at 50 iterations unless the theme asks for more. Reaching the fourth screen of an eighty-product grid is several full scrolls and at least one round trip.
Which is the argument for the filter rail all over again. Narrowing replaces scrolling, and on a phone that is the difference between a page someone works through and a page they leave.
Does the collection survive its own end date?
The collection does, if you built it from compare-at price. Strip the compare-at prices and the page empties on its own.
Everything around it needs taking down by hand. The banner. The badges. The navigation link. The sort rule you set for the weekend, which will happily keep running in December.
Sledge merchandising covers the part Shopify leaves open. A global setting moves sold-out products to the end of the grid, on by default, reading the stock levels Sledge syncs from Shopify. Rules do the rest: boost by best sellers, most viewed, most clicked, conversion rate, or add-to-cart ratio over the last 7, 14, or 30 days, pin products to the top in the order you arrange them, and drop a banner at any slot inside the grid rather than above it. Each rule carries a Draft status and a preview that renders the real page through the same ranking the storefront uses. Filters come from the fields your catalog already carries, which is what makes the depth facet possible at all.
None of it removes the decision. It removes the eleven o'clock scramble that follows the decision.
Walk the page once as a shopper, and check all of this
- The collection is automated, and its condition is compare-at price rather than a tag someone maintains.
- You know which of the six sorts is running, and what it does once products start selling out.
- Sold-out products are demoted or removed on purpose, not by default.
- The on-sale facet is gone and something that still divides the page has taken its place.
- The product count is under 5,000, and adding the rest of the sale will not push it over.
- The page has been opened on a phone, on data, and narrowed to one product.
- Every element that has to come down afterwards has a name and a date beside it.
Questions, answered
Should my Black Friday sale collection be automatic or manual?
Automatic, for a sale. A manual collection holds exactly the order you set and needs a person to add and remove products as discounts change, which is upkeep at the worst hour of the year. An automated collection tracks the discount itself and needs no curation.
What condition should an automated sale collection use?
Compare-at price is set. It is the only condition field Shopify gives an is set operator to, and it maps exactly onto what a sale is: a product with a higher original price showing. The collection fills as discounts publish and empties as they come down.
Which Shopify collection sorts take stock into account?
None of the six. Most relevant, best selling, product title, price, date created, and manual are the whole list, and not one of them reads inventory. Best selling is worst here, because it counts orders across your store's whole history rather than what is left today.
Is there a Shopify setting that sorts sold-out products last?
Not for collection order, despite the instruction circulating widely. Shopify's collection layout documentation never mentions stock. Two real options exist: Search and Discovery can place out-of-stock products last in search results, and an automated condition on inventory removes them from the collection outright.
Which filters should I show on a Black Friday sale collection?
The ones that still divide the page. An on-sale facet does nothing when every product is discounted, so it comes off. Size, category, and color still split the range, and discount depth becomes the axis worth adding for the weekend.
How many sale collections should I create?
As many as have a real dividing line, and no more. One collection is right until it crosses 5,000 products, where Shopify stops rendering filters entirely. Past that the split has to be something a shopper would recognize, like a department, rather than an arbitrary half.
Should the BFCM sale collection stay up after Cyber Monday?
It empties itself if you built it from compare-at price, which is the argument for that condition. Strip the compare-at prices and the products leave on their own. Everything bolted around the page still comes down by hand: the banner, the badges, the navigation link, and the sort rule.
What happens when half the sale collection sells out?
That depends on the condition you built it from. A compare-at condition keeps sold-out products on the page, so the grid thins visually while staying full. An inventory condition removes them, which tidies the page but breaks any link a shopper saved to a specific deal.
Row one is the only row most shoppers read.
Install free. On a paid plan, Growth Intelligence reads which of your products sold in the last 90 days and which never did, then prices that gap in dollars from your own orders and published uplift rates. It names the ordering change to make, and measures what it earned.
14-day free trial · No code · Works with any theme · Uninstalls clean