Why is your Shopify checkout button not working?
October 4, 2026
Usually a JavaScript error, an app conflict, or a payment gateway issue. A checkout button that does nothing when clicked is almost never a Shopify platform outage; it is something in your theme or apps breaking the click handler. The fastest diagnosis is the browser console: the error message there names the culprit in most cases. Work through the causes below in order and you will find it.
First, confirm what not working means
Not working covers several different failures, and the fix depends on which one you have. Does the button do literally nothing when clicked? Does it spin forever? Does it show an error? Does it work on some products but not others? Does it fail only on mobile? Spend two minutes characterizing the failure before touching anything, because each pattern points somewhere different.
Also check whether checkout itself works via a direct link. If example.com/checkout loads fine, the problem is the button or the cart page, not checkout. That distinction cuts the search area in half immediately.
Cause one: a JavaScript error kills the click handler
The most common cause. Something in the theme or an installed app throws an error during page load, and the script that wires up the checkout button never finishes running. Open the browser console, reload the cart page, and look for red errors. The error usually names the file, and the filename usually names the app or the theme section responsible.
Recently installed or updated apps are the prime suspects. Disable the most recent app, clear cache, and retest. Binary search works fast here: disable half your apps, test, and keep halving until the button works. Then re-enable one by one to find the offender.
Cause two: the button is not really a checkout button anymore
Theme customizations sometimes replace the standard checkout button with a custom one that posts to the wrong endpoint or drops required parameters. This happens a lot with page-builder customizations and heavily modified cart drawers. Compare against a fresh copy of your theme: if the stock theme's button works and yours does not, the customization broke it.
Cart attribute and note mishandling is a subtle variant. Code that reads cart notes or attributes before redirecting to checkout can throw on unexpected input, silently swallowing the click. Test with an empty cart note versus a filled one.
Cause three: payment gateway or checkout settings
If the button works but checkout errors out, look at the gateway. A payment provider in test mode, expired API credentials, or a gateway that paused payouts will all break the handoff. Check the gateway dashboard for status and credential errors before assuming the theme is at fault.
Also verify checkout settings: a misconfigured checkout domain, especially on headless or custom-domain setups, can break the redirect. And check that checkout is not accidentally disabled or restricted in a way that blocks the button's target.
Cause four: inventory, location, and shipping rules
Sometimes the button works fine and the store logic blocks the order. Products with no inventory at any active location, shipping zones with no rates for the shopper's address, and markets configuration that excludes the shopper's country all produce checkout failures that look like a broken button. Test with a simple in-stock product shipping to your own address to isolate this.
Draft orders and checkout links with expired inventory reservations fail the same way. If the problem started suddenly with no code changes, inventory and settings changed, not code.
How to diagnose in order
Work this sequence: replicate the failure and characterize it, check the browser console for JavaScript errors, test a stock theme, disable recent apps, verify the payment gateway, then check inventory and shipping settings. Most cases resolve in the first three steps. Document what you find, because the same app will break it again on its next update.
And set up monitoring. A checkout button that dies silently can burn days of revenue before anyone notices. A simple daily test order, or an uptime check that clicks through to checkout, pays for itself the first time it catches this.
The honest bottom line
A dead checkout button is almost always your code or your apps, not Shopify. The console names the culprit, the stock theme proves it, and binary search finds it fast. Fix it in order, write down what broke, and put a check in place so the next silent failure gets caught in hours, not days.