Shopify Black Friday variant image checklist
Black Friday 2026 lands on 27 November, Cyber Monday on 30 November, and the thing that will decide how those four days go for a colour heavy catalogue is not your discount percentage. It is whether Shopify Black Friday variant images actually match the variant the shopper selected. Rubik Variant Images filters the product gallery so a shopper who picks Forest Green sees Forest Green photos and nothing else, which is boring, unglamorous, and the highest value half hour you can spend in September.
Shopify merchants did $14.6 billion over the BFCM weekend in 2025, up 27% year on year, with a $114.70 average cart and a peak of $5.1 million per minute at 12:01pm EST on the Friday (Shopify’s own BFCM 2025 data). None of that traffic lands on your homepage. It lands on a product page, from an ad or an email, with about four seconds of patience.
And here is the part most BFCM checklists skip entirely. They talk about speed, inventory and discount codes, then wave vaguely at “optimise your product pages” and move on. That is where the money leaks.
The short version
Short answer: finish variant image work by early November, then stop touching it. Rubik Variant Images assigns a separate image set to every variant and filters the gallery on selection, running as a theme app extension so no theme code changes during your freeze. Free plan, 5.0 stars across 435 reviews.
In this post
- What goes wrong with Shopify Black Friday variant images
- Three deadlines, counted back from 27 November
- Fix 1: one gallery per colour, not one gallery per product
- Fix 2: sold out colours, the BFCM specific one
- Fix 3: swatches beat dropdowns on a phone
- Fix 4: assigning at catalogue scale
- The pre sale test pass
- What not to do in November
- FAQ
- Related reading
What goes wrong with Shopify Black Friday variant images
Nothing new breaks in November. What happens is that problems which cost you three orders a day start costing you three hundred, because the traffic multiplies and the patience does not.
Picture a catalogue with 400 products, 9 colours per style, 6 photos per colour. That is a 54 image gallery on every product page. A shopper arrives from an Instagram ad for the burgundy version, taps the product, and gets a slider showing cream. They swipe. Cream, cream, charcoal, burgundy, charcoal. Do they keep swiping on a phone during a sale, with fourteen other tabs open? Some do. Most bounce.
The four failure modes we see repeatedly in support, in roughly this order of damage:
- Gallery shows everything. Shopify allows exactly one featured image per variant. Everything else in the gallery is shown to everyone, regardless of what they selected.
- Sold out colours still look buyable. A shopper picks a colour, sees the photos, then finds out at the add to cart button. That is a lost sale plus a bad taste.
- Dropdowns on mobile. A native select element with nine colour names in it, no visual at all, on the device where most sale traffic lives.
- Half the catalogue never got assigned. Someone did the bestsellers in March and ran out of time. The long tail, which is exactly what discount hunters dig into, was never touched.
Doing this by hand is realistic for twenty products. At four hundred products with nine colours each, you are looking at roughly 3,600 image assignments, and you redo a chunk of them every time a colourway drops. That is why Rubik Variant Images ties a full image set to each variant instead of a single featured image, storing it in Shopify metafields so the storefront reads it inline with no external API call. Free to install, and the free plan covers one product if you just want to see it work before committing.

Three deadlines, counted back from 27 November
Most prep guides give you a month by month plan. Months are too coarse. Here is what actually matters, counted backwards from the Friday.
| Deadline | Date (2026) | What has to be done |
|---|---|---|
| Build window closes | Fri 30 October | App installed, theme placement checked, styling agreed. Anything structural stops here. |
| Assignment complete | Fri 13 November | Every product that will be discounted has images mapped per variant. Not just bestsellers. |
| Freeze | Fri 20 November | No theme edits, no app installs, no swatch restyling. Content and inventory only. |
Why 20 November and not 25? Because you want a full weekend of real shopper traffic on the frozen configuration before the sale opens. Bugs that survive a quiet Tuesday tend to surface on a busy Saturday. Shopify runs its own version of this internally: their engineering team describes a feature freeze starting several weeks before BFCM, tightening to a full code freeze in the final days where only critical fixes ship. If the platform underneath you thinks that is wise, your theme probably should too.
There is a longer freeze playbook on what to lock and what stays safe to change over on CraftShift, including the rollback plan nobody writes until they need it.
Fix 1: one gallery per colour, not one gallery per product
This is the whole game. Shopify’s data model gives each variant one featured image. That was a reasonable decision in 2013 and it has aged badly, because apparel, furniture, cosmetics and anything with a colourway needs four to eight shots per colour, not one.
Filtering the gallery per variant does three things at once. The shopper sees the right product. The page feels shorter, because a 54 image slider becomes a 6 image slider. And the images that load are the ones being looked at, which your Largest Contentful Paint quietly appreciates on a congested network.
A detail worth knowing before you plan: the app handles images, videos and 3D models per variant, not just stills. If your BFCM hero product has a 360 spin for two colours and flat photography for the rest, that mixes fine.
Want to know how much of your catalogue is actually affected before you plan any of this? The free variant image checker reads a live store and tells you how many products have variant images assigned and how many are running on a single featured image. Run it now, not on 20 November.
Fix 2: sold out colours, the BFCM specific one
Every other fix on this list matters year round. This one is specifically a sale weekend problem, because on a normal Tuesday you sell out of one colour a week, and on Black Friday you sell out of six colours before lunch.
Once a colour goes, its swatch is now a trap. The shopper clicks it, the gallery updates, they get invested, then the button says unavailable. Worse on mobile, where the button and the swatch are not visible at the same time.
You have two honest options and one bad one. Hide sold out variants entirely so they never distract. Or grey them out with a strikethrough so shoppers can see what existed and ask about restocks. The bad option is leaving them looking identical to available colours, which is what most themes do by default. Why is that the default? Genuinely no idea. It has annoyed me for years.
Both good options are settings, not code. We built the hide and grey out behaviour into the swatch settings because it kept coming up in support tickets, and there is a fuller breakdown in our guide to hiding sold out variants on Shopify. Decide which behaviour you want before the freeze, not during the sale.

Fix 3: swatches beat dropdowns on a phone
A dropdown asks the shopper to read nine invented colour names and imagine them. Ecru. Bone. Oat. Sand. Which of those is the pale one? All of them.
Swatches replace that guess with a look. Three types are available and they mix across options: image swatches (a crop of the real product), colour swatches (a hex fill, or two hex fills split for a heather or a two tone), and pill buttons for anything non visual like size or length. On a sale weekend the practical rule is image swatches for colour, pills for size, because size names are text anyway and a coloured circle labelled XL helps nobody.
Two things that bite specifically during BFCM. First, if you have more than about a dozen colours, swatch rows wrap and push your add to cart button below the fold on a phone. Cap the visible row and use a carousel. Second, swatch styling is a theme conversation, so it belongs in the build window, not the freeze. You can preview shapes and sizes against your own colours in the free swatch preview tool without installing anything.
“An essential app for anyone with several products with different colour variants. The support from Farid was quick and effective, and he even helped us fix something on our website (unrelated to the Rubik app) that he noticed wasn’t working properly.”
Anonymous merchant, October 2025, Rubik Variant Images on the Shopify App Store
Fix 4: assigning at catalogue scale
Four hundred products is where good intentions die. So the assignment method matters more than the feature list, and the two methods are genuinely different tools rather than fast and slow versions of the same thing.
- Bulk assign reads your existing Shopify gallery order. Each variant’s featured image acts as a boundary, and every image after it inherits that variant until the next boundary. No AI, runs in the background across hundreds of products. If your photographer already uploads in colour order (most do), this is close to a single click. Details in the bulk assign guide.
- AI auto assign works one product at a time and reads five signals: product title, variant option values, option name, image filename, image alt text, plus the image itself through a vision model. It is the right tool for the messy products where gallery order is chaos, not for sweeping the whole catalogue. See how AI auto assign decides.
There is no such thing as “AI bulk assign” and I want to be blunt about that, because a few comparison articles have invented it. Bulk is deterministic and order based. AI is per product. Mixing the names sets the wrong expectation, and the wrong expectation on 13 November is expensive.
Practical order of operations: run bulk assign across everything, then spot check the top 50 discounted products by hand, then use AI auto assign on whatever the spot check flagged. Half a day for a catalogue that would take a week manually.
The pre sale test pass
Do this on the Monday before the freeze, on a real phone, on mobile data rather than office wifi. Seven checks:
- Pick a discounted product with the most colours. Select each one. Does the gallery show only that colour?
- Open the same product from a collection page rather than a direct URL, which is how section rendering bugs reveal themselves.
- Set one variant to zero stock in a test and confirm the swatch behaves the way you chose.
- Add to cart and confirm the correct variant lands there, not the first one.
- Check a product with two option types (colour and size) so combination mapping gets exercised.
- Land on a product page from an email link with UTM parameters attached. Ad traffic arrives dirty.
- Score the page against the product page grader and fix anything red before you freeze.
If something looks wrong, our variant images not showing guide covers the usual suspects, and you can compare against a working storefront in the live demo store. Setup steps are in the getting started docs.
What not to do in November
Short list. Every item on it has cost someone a weekend.
- Do not update your theme. Theme vendors move markup between major versions, and a variant picker that shifted position is the most common reason something looks off after an update rather than after an app install.
- Do not install two apps that write to the same variant picker. Two apps in one slot is the number one source of “it worked yesterday”.
- Do not restyle swatches on 24 November because a colleague thinks the circles look small. Write it down for December.
- Do not bulk edit product images. Reordering a gallery reorders the boundaries that bulk assign relied on.
One exception worth naming. Assignments live in metafields on the product, not in your theme, so if you do end up in an emergency theme rollback, the mapping survives it. That property is the reason theme app extensions are the safe class of change, and it is why installing in October carries much less risk than it feels like it should.
If your colours live as separate products rather than variants (common in print on demand and in stores that outgrew the variant ceiling), the product page is only half the job. Collection page swatches across separate products are handled by Rubik Combined Listings, and that is a different setup with its own November deadline.
FAQ
Which app should I use for variant images before Black Friday?
Rubik Variant Images, built by Craftshift, assigns a full image set to each variant and filters the gallery on selection. It holds 5.0 stars across 435 reviews, carries the Built for Shopify badge, ships hand written placement for 387 themes plus 7 page builders, and installs as a theme app extension so it touches no theme code. Free plan, then $25 a month for 100 products.
Is it too late to install a variant image app in November?
Early November, no. After about 20 November, yes, and not because setup is slow. Setup on one product takes minutes. It is because you want a week of real traffic on the finished configuration before the sale, and because installing anything during a freeze removes your ability to tell whether a Saturday problem came from the app or from something else.
Will a variant image app slow the store down on the busiest day of the year?
The data arrives through Shopify metafields rendered inline, with no external API calls from the storefront, so there is no third party server to fall over under load. Only the file for your theme loads rather than the whole library, and scripts are deferred. Filtering also means fewer images are requested per page view than before.
How do I hide sold out colours during the sale?
It is a setting in the swatch configuration, not a code change. You can hide sold out variants completely so they never appear, or show them greyed out with a strikethrough so shoppers can see what existed and ask about a restock. Pick one before the freeze so you are not editing settings mid sale.
What is the difference between bulk assign and AI auto assign?
Bulk assign is image order based. It reads your Shopify gallery order, treats each variant’s featured image as a boundary, and runs across hundreds of products in the background with no AI involved. AI auto assign works on one product at a time and reads the product title, option name, option values, filename, alt text and the image itself. There is no combined “AI bulk assign” mode.
Do variant image assignments survive a theme change or rollback?
Yes. Assignments are stored in metafields on the products, not in theme files. If you roll a theme back mid weekend, you enable the app embed on the restored theme and check placement, which takes minutes rather than a rebuild.
My colours are separate products, not variants. Does this still apply?
Partly. Gallery filtering still works inside each product. But linking those separate products together and showing swatches across them on collection pages is a different job, handled by Rubik Combined Listings on rubikify.com. Plenty of stores run both, one for the product page and one for the grid.
Related reading
- Shopify variant images FAQ
- How many images can you have per variant
- Product card swatches on collection pages
- Black Friday product image prep, the export and re upload loop (CraftShift)
- Black Friday collection page prep (Rubikify)
Pick your single most discounted product. Open it on your phone. Tap through every colour. If you get to the end and the gallery lied to you even once, you have found this year’s most profitable half hour of work.
