By platform

WooCommerce add to cart not working

The button is on the page, a shopper clicks it, and the cart count stays where it was. Mimiq sends simulated visitors through the same click and records what they saw.

5 visitors try to .
First test free with an accountRun it from your coding agent

Why is my WooCommerce add to cart button not working?

A WooCommerce add to cart button fails in one of two ways: the server refuses the add, or the click never reaches the server. The server refuses when an option is missing, the stock is short or the product cannot be bought. Read the notice the shopper sees and the address the page ends on to tell which one applies. A simulated visitor shows the click, the notice and the step where it stopped.

What this looks like in a report

Who
Kwabena, buying a pair of wool socks for his father
How they arrived
Searched for the socks by name on a phone
Where they stopped
Product page, after picking a size

“I picked the size and the button did nothing. There is no error, just a faint line above the button I cannot read. Maybe the socks are gone, so I will try a different pair.”

The fix. Open the size's variation in the admin and give it a price and a stock quantity, since a variation with no price is not for sale. Then add one pair from a private window and confirm the cart count goes up.

An illustration. Run a test to see your own.See a real sample report

The click reaches the server with an incomplete product, or not at all

A WooCommerce product page holds a form. For a simple product the form sends the product ID and the quantity. For a variable product it sends a specific variation only after every option has a value, so a shopper who picks a color and skips the size sends an incomplete product. The store then answers with a notice above the product, or with nothing visible if the theme hides the notice. Stock is checked on the same request, so a quantity above what is left gets refused. A script error on the page can stop the form from sending anything.

  • Pick every option on the product, click Add to cart, and read the notice that appears above the button.
  • Check the stock for the chosen option, then the quantity field, which can be higher than the stock.
  • Check whether the product is set to sold individually, which caps the quantity at one.
  • Open the browser console at the moment of the click and note any script error that appears.

The click fails in one of three places, and each leaves a different trace

The shopper clicks Add to cart and one of three things happens. The page refuses the add and shows a notice that names a missing option, a limit or a stock shortage. The page shows nothing, because a script error stopped the form before it sent anything. Or the item goes into the cart, which means the button worked for that product and the fault lies elsewhere. Watch the click itself, and read the cart count right after it, not later.

Variable products send nothing until every option has a value

Variable products carry a list of options such as color and size, and the form only knows which variation to add when each option has a value. A shopper who picks a color and skips the size sends a request with no variation, and WooCommerce asks for the missing option with a notice. On a phone the notice can sit under a sticky header. The fix belongs in the product, not in the button: every option needs a value a shopper can pick.

A size can also be listed with no price or no stock. WooCommerce does not sell a variation that has no price, so that size cannot be added however many times the shopper clicks. Check each variation on its own page in the admin, not only the parent product, because one empty size can break the button for that size alone and leave the rest of the product working.

Stock, sold individually and quantity limits return a notice, not a silent click

Stock is checked when the click arrives, not only when the page loads. A product that had stock when the shopper opened it can be short when they click, because another shopper took the last pair in the meantime. The notice then says there is not enough stock for the quantity chosen. A product marked sold individually accepts one unit, so a shopper who types two gets a refusal. Read the quantity field before you blame the button, since a typed quantity above the limit fails on its own.

What the run records when the form never leaves the page

A simulated visitor opens the product from its link, picks the options the task names, and clicks Add to cart. The run records the notice text, a screenshot of the product page after the click, the address the page ended on, and any script error or failed request on that step. A click that does nothing shows as no change on the screenshot, with the error beside it when the browser logged one.

The run cannot tell you which option is missing in your catalog, or why a variation has no stock. Open the product in the admin, check each variation, and fix the one the notice names. Keep the product and the options the same between runs, so only your fix changes. Then send the visitor again and read the new notice, if there is one.

Mimiq is independent and not affiliated with the platforms it names. Names belong to their owners.

What you get with Mimiq

  1. 01

    Run it by hand, or on every pull request

    Paste a link and a task in the app and watch the visitors work. Or run them on every preview deploy: the GitHub Action comments on the pull request, any other CI can call the MCP endpoint, and your coding agent can run it too.

  2. 02

    Bugs and usability problems in one report

    The browser records errors and failed or slow requests on the step they happened. The visitors say where the wording or the steps confused them, and where they left.

  3. 03

    Visitors that behave like your audience

    Each visitor is a different profile with a reason to be there, matched to who the page is for, described by you, or built from your own customers.

  4. 04

    A prompt to fix each problem

    Every problem comes with a fix to paste into Cursor, Claude Code, Lovable or any coding agent, and one prompt hands over the top problems at once. Then send the same visitors through again.

  5. 05

    Follow every visitor

    See each visitor's whole path, step by step with screenshots, and what it was thinking at every step. Ask any visitor a question.

The browser records relevant JavaScript errors and failed or slow app requests encountered during the run, attached to the step where they occurred. The visitors are simulated: they find problems, they do not predict how many real people will convert.

A theme or variation change can bring the silent click back

A variation added next season, a stock sync from another tool, or a theme update that moves the notice can turn a working button back into a silent one. Rerun the same visitor after each change, with the same options. Test one size from the shop page and one from the product page, since the two can take different paths.

Starter

Try it on one launch

$9 once
120 credits, never expire

About 4 tests of 5 visitors

  • Visitors on your landing page, signup and checkout
  • Where they left and why, with a fix to copy for each problem
  • Run it in the app or on every pull request
  • Ask any visitor a question, included
  • Test accounts and protected previews
Buy 120 credits

Builder

Test every build

$19 a month
500 credits every month

About 20 tests of 5 visitors

  • Everything in Starter
  • Credits refill each month, and what is left rolls over once
  • Cancel anytime
Choose Builder

Pro

Test every release, as a team

$49 a month
1,500 credits every month

About 60 tests of 5 visitors

  • Everything in Starter
  • Credits refill each month, and what is left rolls over once
  • Cancel anytime
Choose Pro

Scale

Test at scale, every day

$149 a month
6,000 credits every month

About 240 tests of 5 visitors

  • Everything in Starter
  • Credits refill each month, and what is left rolls over once
  • Priority support
  • Cancel anytime
Choose Scale
$0for your first test, with a free account (Google sign-in, no card). It includes 50 credits, enough for 10 visitors. After that a visitor uses 5 credits, and packs start at $9 for 120 credits.
See a sample report

Questions

Why does the button work on my test product but not this one?

Test products are often simple products with no options and plenty of stock. A product with a color and size, a sold individually limit or one empty variation follows a different path through the same button. Compare the two products in the admin, starting with the product type, then the stock and price of each option.

Does the add to cart button fail for every shopper or only some?

It can be only some. Stock problems depend on what is left when each shopper clicks, so they come and go. An empty size fails for everyone who picks it, so a report from one shopper that matches a size with no stock is worth checking first.

Will clearing the cache fix the add to cart button?

Only when the cache is serving an old copy of the product page. A cached page can show a button the live page no longer has, or hide one it should show. Clear the cache, then load the product in a private window. If the button breaks again within days, the cache rule for product pages is the lasting problem.

Can the simulated visitor show me the error in my code?

No. The run shows the notice, the screenshot after the click, the page the click ended on, and any script error recorded there. It does not read your code or your product settings. It also does not tell you how many shoppers would buy once the button works.

Keep reading

Send visitors and see what breaks first.

Your first test is free: sign in with Google and it starts right away. Last checked 2026-11-02.

5 visitors try to .