If the WooCommerce Add to cart button does nothing, keeps spinning, disappears, or says a product was added when the cart is still empty, customers cannot buy.
Do not start by rebuilding the product page. First identify what the customer sees immediately after the click. That one observation usually tells you which part of the store to check.
WooCommerce Add to Cart not working: quick diagnosis
| Symptom | Check first |
|---|---|
| Button is missing | Stock, price, product type, catalogue settings |
| Button is visible but nothing happens | JavaScript or plugin conflict |
| Button spins forever | AJAX/request error, firewall, PHP error |
| “Added” message appears but cart is empty | Cache, session or cookie problem |
| Works for admin but not customers | Guest caching or security rule |
| Only variable products fail | Variation data or variation script |
This problem happens before checkout. If customers can add products but fail later on the payment page, use the separate WooCommerce checkout troubleshooting guide.
1. Test the store as a normal customer
Do not test only while logged in as an administrator.
Open a private/incognito browser window and test:
- shop page;
- single product page;
- simple product;
- variable product if you sell them;
- desktop;
- mobile.
Caching and session problems often affect normal visitors differently from logged-in administrators.
2. Check whether the product can actually be purchased
Open the product in WordPress and check:
- product is published;
- price is set where required;
- stock status is correct;
- product is not accidentally marked out of stock;
- required variations exist;
- the selected variation has a price and stock;
- catalogue visibility is not hiding the buying option.
If only one or two products fail, product data is more likely than a site-wide problem.
3. If the button is missing, check stock first
WooCommerce can hide or disable buying when a product cannot be purchased.
Check both:
- global inventory settings;
- the individual product’s stock settings.
For variable products, check the actual variation the customer selects. A parent product may look in stock while one size or colour is not.
4. If clicking does nothing, suspect a front-end script problem
WooCommerce relies on browser scripts for parts of the add-to-cart experience.
A plugin, theme or optimisation tool can break those scripts.
Common triggers include:
- JavaScript minification;
- script combining;
- delay JavaScript settings;
- popup plugins;
- product add-on plugins;
- variation swatches;
- custom theme code;
- recent WooCommerce updates.
If the issue started after a recent change, note that change before editing anything else.
5. Clear cache, then test again as a guest
A cached shop or product page can show stale cart behaviour.
Clear:
- browser cache;
- WordPress cache;
- server cache;
- CDN cache where used.
Make sure cart and checkout behaviour is not being cached incorrectly.
Then test in a fresh private window.
6. Check whether the cart and checkout pages are excluded from full-page caching
WooCommerce cart and checkout content changes for each customer. These pages should not be treated like static brochure pages.
If a caching plugin, host or CDN serves an old cart page, customers may see:
- empty cart after adding a product;
- wrong quantity;
- stale mini-cart;
- old shipping total;
- someone else’s cached-looking state.
Use your caching provider’s WooCommerce-safe settings rather than copying a generic “maximum cache” configuration from a speed tutorial.
7. If the button spins forever, check whether the request is failing
You do not need to become a developer to understand the next step.
Ask your developer or host to check whether the add-to-cart request returns an error.
Useful clues include:
- 403 — often a security/firewall rule;
- 500 — often a server/PHP error;
- request never fires — often a browser-script problem;
- request succeeds but cart stays empty — often session/cache/cookie problem.
This is much faster than switching random plugins on and off.
8. Check security and firewall rules
Security plugins, hosting firewalls and CDN rules can block WooCommerce background requests.
If the problem started after enabling:
- bot protection;
- rate limiting;
- country blocking;
- aggressive firewall settings;
- Cloudflare rules;
test whether the add-to-cart request is being blocked.
9. Check WooCommerce pages and URLs
Confirm the cart and checkout pages still exist and are assigned correctly.
Also make sure the website is not switching between:
- www and non-www;
- http and https;
- different domain variants.
Session cookies can break when the customer moves across inconsistent versions of the site.
10. Test variable products separately
If simple products work but variable products do not, check:
- all required attributes are selected;
- variation exists;
- variation has a price;
- variation is in stock;
- variation scripts load correctly;
- theme has not overridden the product template badly.
Do not assume the whole cart is broken if only one product type fails.
11. Check recent theme or builder changes
A custom product template can accidentally remove or break the normal WooCommerce buying form.
If the issue started after editing Elementor, a block template or the theme:
- compare with a product using the default template;
- check whether the correct Add to Cart element/block is present;
- check the product type the template is designed for;
- test on staging with a default theme if needed.
12. Check outdated WooCommerce template overrides
Some themes copy WooCommerce template files into the theme. Those copies can become outdated after WooCommerce changes.
Go to:
WooCommerce → Status
Look for template warnings.
If there are outdated overrides, update them carefully. Do not simply delete custom files on a live store without knowing what they do.
13. Check plugin conflicts safely
Plugins that often touch add-to-cart behaviour include:
- product add-ons;
- subscriptions;
- bundles;
- dynamic pricing;
- currency switchers;
- catalogue mode;
- membership tools;
- variation swatches;
- performance optimisation;
- security plugins.
Use staging for a controlled plugin conflict test.
14. If it broke after an update, do not keep clicking “update everything”
Stop and record:
- WooCommerce version;
- theme version;
- recently updated plugins;
- time the problem started;
- which products fail;
- whether it fails for guests only.
If you have a known-good backup, keep it safe. Our backup testing guide explains why a backup should be verified before you rely on it.
15. Test the complete buying journey after the fix
Do not stop when the button works once.
Test:
- add product;
- change quantity;
- remove product;
- add again;
- open cart;
- go to checkout;
- complete a test payment;
- confirm order email;
- check stock changes.
A fix that restores the button but breaks checkout is not finished.
16. Add a routine store test
Add-to-cart can break silently while the website still returns a normal “200 OK” page.
That means ordinary uptime monitoring may not notice it.
Include a real purchase-path test in your WooCommerce maintenance routine.
WooCommerce Add to Cart troubleshooting order
- Test as a guest in a private browser.
- Check whether one product or every product fails.
- Check price, stock and variations.
- Clear caches.
- Check recent changes.
- Check browser/request errors.
- Check security/firewall rules.
- Check template overrides.
- Conflict-test on staging.
- Retest the whole customer journey.
When to treat this as urgent
If no customer can add products to the cart, your online shop is effectively closed even though the homepage still loads.
For a live revenue-generating store, that is an urgent issue. Core Web UK provides emergency WooCommerce and website repair when the store is losing orders.
Use a symptom ladder instead of random fixes
Start at the customer-facing symptom and move only one layer deeper at a time.
| Test | If it fails |
|---|---|
| Button visible? | Check product settings/template |
| Click produces any response? | Check scripts |
| Request returns successfully? | Check server/security if not |
| Cart stores the item? | Check session/cache |
| Checkout keeps the item? | Check domain/cookies/cache |
This simple sequence is easier for a business owner to explain to a developer and reduces unnecessary changes.
Check whether one product type is the real clue
Compare a simple product, a variable product and any product using add-ons or subscriptions. If only one type fails, the fault is probably connected to that product type or extension rather than the whole store.
Also compare Shop-page Add to Cart with single-product Add to Cart. Those routes can behave differently.
Do not optimise scripts again until checkout is proven
If a performance setting caused the problem, restore a known-safe configuration first. Then reintroduce optimisation carefully. Saving 100 milliseconds is not useful if it stops customers adding products.
After the fix, test quantity, removal and re-adding
A successful first Add to Cart does not prove the cart system is fully healthy. Change the quantity, remove the product, add it again and complete checkout. This catches stale mini-cart and session problems that can remain after the button itself starts working.
Questions a store owner should be able to answer before asking for support
- Does the problem affect every product or only one?
- Does it affect simple products, variable products or both?
- Does it fail on Shop pages, product pages or both?
- Does it fail for logged-out customers?
- Did it start after an update or cache change?
- Does the product appear in the cart for a second and then disappear?
These answers turn “Add to Cart is broken” into a much smaller problem to investigate.
Protect sales while the fault is being fixed
If only one product type is affected, consider temporarily hiding those products or pausing the campaign sending traffic to them. Do not keep paying for ads that send customers to a broken buying path.
If the entire store cannot add products, treat it as an outage even if the website itself is technically online.
Prevent another silent Add to Cart failure
After major WooCommerce, theme or optimisation updates, run the same guest purchase test. A basic uptime monitor only checks whether the page loads. It does not prove that a real customer can add a product.
Add the test to your normal change process: update on staging, check Add to Cart, check cart, check checkout, then release the change.
WooCommerce Add to Cart FAQs
Why does the WooCommerce Add to Cart button do nothing?
Common causes are JavaScript errors, plugin conflicts, optimisation settings, blocked WooCommerce requests or a broken product template.
Why does WooCommerce say the item was added but the cart is empty?
That often points to caching, session or cookie problems. Test as a guest and check that cart and checkout are not being cached incorrectly.
Why is the Add to Cart button missing?
Check product price, stock, product type, variations and any catalogue-mode or theme settings that can hide purchasing.
Why does Add to Cart work when I am logged in but fail for customers?
Guest visitors may be receiving cached pages or different security rules. Test in a private browser and review cache/CDN behaviour for anonymous users.
Should I disable plugins on the live store?
Not if the shop is busy and you can avoid it. Create or use a staging site, reproduce the problem there and test conflicts safely.
