Why won't my Add to Cart button do anything on my Shopify product page?
A step-by-step way to find out whether a broken Add to Cart button is caused by your theme code, a variant's inventory setup, or a conflicting app script.
What's going on
"Why won't my Add to Cart button do anything?" is one of the most common frustrations Shopify merchants run into, and it's also one of the hardest to diagnose from a screenshot alone, because there are at least four unrelated things that can cause the exact same symptom: the button looks normal, customers click it, and nothing happens (no cart drawer, no page reload, no error message visible to the shopper).
The most frequent causes, roughly in order of how often they show up, are: a JavaScript error somewhere on the page (in the theme's own code or in a script an app injected) that stops the click event from ever reaching Shopify's cart API; a specific variant that's out of stock, has no price set, or was never fully configured; a conflict between two or more apps that both try to control what happens when 'Add to cart' is clicked (common with upsell, bundle, and back-in-stock apps); or, less often, a genuinely broken product form in the theme's Liquid markup, for example a missing hidden input for the variant ID or a duplicated form tag left over from a past customization.
Because the visible symptom is identical no matter which of these is the real cause, guessing and re-editing code at random tends to waste time. The reliable path is to isolate the variable: check your own browser/extensions, check the theme, check the specific product/variant data, and check installed apps, in that order, before concluding you need custom development work.
Why it happens
Shopify's storefront relies on a chain of JavaScript running correctly: a click on the Add to Cart button has to trigger the theme's product-form script, which reads the selected variant ID and calls Shopify's cart API (either via a full page form submit or an AJAX call to add the item and update the cart). If any single link in that chain is broken — a script fails to load, a JavaScript error earlier on the page stops later scripts from running, or two scripts both try to bind a handler to the same button — the click can silently fail with zero visible feedback to the shopper.
Themes that have been heavily customized over time (by multiple past developers, or through trial-and-error edits in the theme code editor) are especially prone to this because small mistakes in the product form markup or the cart JavaScript often don't break anything visibly until a specific variant combination or a specific app combination triggers the bug. Comparing behavior against a plain, unmodified theme is the fastest way to tell whether the customizations are the culprit.
Inventory and app-related causes are just as common as code bugs: a variant that's sold out with inventory tracking strict, or an app that intercepts the add-to-cart click for its own purposes (showing an upsell modal, checking a subscription frequency, validating a bundle) and then fails to hand off to Shopify's cart properly, produces the same 'button does nothing' experience as broken code — but the fix is completely different (an admin setting or an app support ticket, not a code change).
5 ways to fix it
Open the page in an incognito window and check the browser console first
Before touching any code, reproduce the problem in a private/incognito window with no browser extensions running (ad blockers and password managers are common culprits) and open the browser's DevTools console. A red error there — often referencing a JavaScript file from your theme or an app — tells you exactly which script is throwing and stopping the click handler from running. If the button works fine in incognito, an extension or cached script on your own machine was the problem, not the store.
Compare against a free Shopify default theme
Add a theme like Dawn (Shopify's free reference theme) in the Themes section of your admin without publishing it, and test the same product there. If add-to-cart works fine on Dawn, the fault is in your current theme's customized product form, custom.js, or a snippet edited by a previous developer — not a store-wide setting. If it also fails on Dawn, the issue is with the product/variant data or app scripts injected into every theme, which points you toward inventory settings or app conflicts instead of theme code.
Check variant availability and inventory settings
A button that looks clickable but silently does nothing (or shows 'Sold out'/'Unavailable') is frequently just a variant that is out of stock with 'Continue selling when out of stock' turned off, or a variant combination that was never fully set up with a price. Check the product's Variants tab in the admin for the specific option combination the customer selected, and confirm inventory and pricing are filled in for every variant, not just the first one.
Disable third-party apps one at a time to find a script conflict
Apps that modify the cart (upsells, bundles, subscriptions, back-in-stock alerts, currency converters) inject their own JavaScript into the product page and can intercept or break the native form submit event, especially if two apps both try to override 'Add to cart.' Go to Online Store > Themes > Customize (or the Apps admin page) and disable recently installed cart-related or checkout-related apps one at a time, retesting after each, until the button starts working again — that isolates the conflicting script so you (or the app's support team) can fix it without removing every app permanently.
Have a developer audit the product form and custom code
If the fault survives the checks above, the product form's HTML/Liquid itself (missing name="id" input, broken variant JS, a duplicated <form> tag, or a JavaScript error introduced during a past theme edit) is the likely cause, and it needs a developer to read the theme's product-form and cart JavaScript rather than trial and error. This is where a Shopify theme developer (in-house, freelance, or an agency like BesPoP) earns their fee — tracing the actual form submission path and fixing the broken script or markup directly, rather than reinstalling apps or duplicating the theme repeatedly.
Bottom line
There's no single Shopify setting that causes every broken add-to-cart button, so work through it in order: rule out your own browser first, then compare against a stock Shopify theme to isolate theme code from store-wide app conflicts, then check the specific variant's inventory setup, then isolate apps one by one. Most cases resolve for free through this process of elimination; a paid fix is only worth it if you land on custom theme code that needs a developer to actually read and repair — which is squarely the kind of one-time theme-audit or bug-fix work a Shopify agency does, not something an ongoing app subscription solves.
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.