Storefront Fix Guide
Fix common Shopify storefront problems fast
Blog

Reviewed November 5, 2026

Variant Selector Changes Nothing: Price and Image Stuck on Shopify

A variant selector that changes nothing on a Shopify product page is almost always a JavaScript failure rather than a data problem: the theme's variant change event is not firing or is being interrupted, commonly after an app install, a theme edit, or a jQuery conflict. Check the browser console for errors first, because the console usually names the script that broke the chain.

A shopper picks the large, the price stays at the small's price, the photo does not change, and the add to cart button may be quietly set to sell them the wrong variant. This is not a cosmetic bug. A stuck variant selector sells the wrong product at the wrong price and generates the returns to prove it.

The good news is that this failure has a short suspect list. Work it in order and you will usually find the culprit inside an hour, including the time spent reproducing it.

Start in the console, not the theme editor

Open the product page, open the browser developer console, and change variants while watching for red errors. A failed script halts the chain of updates that follows it: many themes update price, image, SKU, and buy button state from one variant change handler, so one error freezes all four at once, which matches the symptom exactly.

The error text usually points at a file, and the file usually belongs to the most recently installed app or the most recent theme edit. Temporarily disable that app's storefront script or revert the edit in a duplicate theme and retest. Diagnosis by subtraction is faster than reading minified code.

The data side checks

If the console is clean, inspect the variant data on the page. Themes read variant information from a JSON object embedded in the product page or from the product data endpoint. If a variant was just added in the admin and the page is cached aggressively, the selector may list options the data does not know, and choosing them updates nothing.

Also verify the option structure. Changing from dropdowns to swatch buttons, or a third party swatch app taking over the selector, can leave two selectors on the page: the visible one the shopper uses and the hidden original the theme listens to. If the app fails to sync its choice into the original, the page never hears the change.

Fix, then test the full matrix

Whatever the cause, verify the cure across the whole variant matrix, not the first row: every option combination should update price, compare at price, image, SKU if shown, inventory note, and the variant actually added to cart. Add each variant to cart once and read the cart line. The add to cart check is the one that catches a selector that looks fixed and still sells the default variant.

Finish by testing with the apps a real shopper carries: the page in an incognito window, and once more with any personalization or bundle widgets active on that product. Variant bugs love to hide behind conditional app blocks, and a fix verified on the plain page can still be live broken for the traffic that matters.

Related reading

Related reading: Your Size Chart Modal Is Broken on Mobile: Checks That Find It, Display Currency Is Not Checkout Currency: Fixing the Mismatch Message, and Shopify Search Finds Nothing for Plurals: Fix the Zero Results Page Instead.

Frequently asked questions

Why did my variant selector break after installing an app?

Apps inject scripts into product pages, and a script error or a click handler that stops event propagation can break the theme's variant change handling. The timing is the clue: if the break followed an install, disable that app's storefront integration and retest.

The price updates but the image does not. What is that?

That partial symptom points at image association rather than the selector itself. Check that each variant has its image assigned in the admin media, and that the theme expects variant images in the gallery. If images were never assigned per variant, the gallery has nothing to switch to.

Can caching cause a stuck variant selector?

Yes, in a specific way: aggressive page caching can serve a product page whose embedded variant data predates a newly added variant, so the new option appears but updates nothing. Purge the page cache and retest before digging into code.

How do I check which variant actually gets added to cart?

Add each variant and read the cart line item's variant title and price on the cart page. A selector can appear to work while the form still submits the default variant, and only the cart contents reveal that version of the bug.