Reviewed October 17, 2026
Shopify variant selector not updating the price: how to fix it
You pick a larger size or a different bundle and the price on the page never changes, or changes to the wrong amount. The theme script, app, and caching causes behind variant price bugs, in order.
What is supposed to happen
When a shopper chooses a variant, the theme's JavaScript reads the variant data embedded in the product page, swaps the price, updates the compare at price and the add to cart button, and usually changes the featured image. When any link in that chain breaks, the selector appears to work, options highlight, but the price sits frozen at the first variant.
The frozen price is more than cosmetic. A shopper who selects the large size and sees the small size price feels misled at checkout when the real total appears, and that moment of suspicion costs completed orders. Fix it properly rather than hiding the price until checkout.
Cause one: a script error stops the theme cold
The most common cause is a JavaScript error thrown earlier on the page, often by an app embed or a leftover snippet from a deleted app. One error can halt the theme's variant logic even though the rest of the page looks fine. Open the product page with your browser's developer console and reload: red errors mentioning undefined functions or missing elements are the smoking gun.
Fix by identifying which script throws. Disable app embeds one at a time in the theme editor's app embed panel, reloading between each, until the error and the bug vanish together. Leftover code from uninstalled apps needs manual removal from the theme files, ideally on a duplicated theme first.
Cause two: the price element the script expects is missing
Themes update the price by finding a specific element with a known class or ID. Custom edits, a copied section from another theme, or a page builder app replacing the product form can all remove or rename that target. The script then runs, finds nothing, and silently gives up.
Compare your product template against a fresh copy of the same theme: if the price markup differs, restore the original structure or adjust the script's selector to match your markup. This is also the moment to check that sale pricing markup is intact, since compare at price display uses the same machinery.
Cause three: you are looking at a cached or duplicated template
If the bug appears on some products and not others, suspect product specific templates or an old duplicate theme serving collection traffic. Test the same product through the current theme preview and through its direct link. Different behavior means different templates, and the fix belongs in the older one or in reassigning products to the right template.
After any fix, test every variant on desktop and mobile, including sold out variants and variants with sale pricing, and confirm the cart receives the price the page promised. Variant bugs hide in the untested corners, so test the corners.
Related reading
If this topic is useful, these earlier guides go deeper on connected questions: Shopify password page stuck: shoppers locked out after launch, Shopify store loading blank pages after an app install: a fix sequence, and Shopify images not loading: a fix order that finds the cause fast.
Frequently asked questions
Why does the price update on some products but not others?
Usually because those products use a different template, or an app only injects its script on certain products, or one product's data is malformed, such as an empty variant field the script chokes on. Narrowing the difference between a working and a broken product is the fastest diagnostic you have.
Can an app cause the variant price to freeze?
Yes, frequently. Apps that add swatches, bundles, options, or urgency elements all hook into variant selection, and a bug or a leftover snippet from a removed app can break the theme's own handler. The app embed toggle test isolates the culprit in minutes.
The price updates but the cart shows a different amount. Why?
That pattern suggests the page is displaying one variant while the form submits another, often after a swatch or options app rewrote the selector, or the browser cached an old product form. Hard refresh, test in a private window, and check which variant ID lands in the cart against the one selected.
Should I switch themes to fix it?
Only if the theme itself is abandoned or heavily corrupted. Most variant price bugs are a single broken script or a markup mismatch, both cheaper to repair than a theme migration. Duplicate your theme, test fixes there, and keep switching as the last resort it should be.