What breaks
How to fix cart not working: check in order
The items are in the cart, but the quantity will not change, the remove button does nothing, or checkout never moves on. Mimiq sends a simulated visitor through the same cart and shows the step that stalls.
How do I fix a cart that is not working?
A cart that stops responding usually fails on one of three actions: changing a quantity, removing an item, or going on to checkout. Open the Network tab and do each action once, then read whether the request stays pending, returns an error or never fires. Compare the item count in the header with the items on the cart page, because a mismatch points to the cart's identifier or a cached page. A simulated visitor repeats the same actions in a fresh browser and shows the step where the cart stopped answering.
What this looks like in a report
“I changed the quantity to two and the number went back to one. I pressed the plus sign again and the same thing happened. The header said two, so I closed the tab and bought the tea somewhere else.”
The fix. Return the updated cart from the quantity request, and have the cart page render that response rather than a stored copy. Show the refusal text beside the item when the server refuses a change, such as a product that is sold out.
An illustration. Run a test to see your own.See a real sample report
The items are in the cart, and the cart page stops answering
The cart page has to do three things at once: show what is in the cart, accept changes, and pass the shopper on. A cart that stops answering usually fails in one of those. The page may wait on a request that never returns, so the spinner keeps turning. A cached copy of the cart page may show another shopper's items, or an empty list while the header still shows one. A product that was unpublished or sold out can return an error the page never displays, so the quantity change simply does nothing.
- Change a quantity, then open the Network tab. Did a request leave, and how did it end?
- Compare the header count with the list on the cart page. Do they show the same items?
- Open the cart in a private window. Does the same item appear, or does the cart look empty?
- Remove an item and reload. Did the removal stick, or did the item come back?
- Read the console when the cart page loads. Does a coupon or shipping widget throw an error?
How it works
- 01
Reproduce it with one item
In a private window, add one item, open the cart, change its quantity once, and note what the page shows, including whether a spinner keeps turning.
- 02
Read each request the cart sends
Keep the Network tab open and repeat each action once: quantity, remove and checkout. Each should send one request that ends with a success status. Write down any request that stays pending, returns a 4xx or 5xx, or never appears.
- 03
Match the count to the list
Compare the item count in the header with the items on the cart page. If they disagree, look at the cart identifier first: check that the cart cookie is set, and that a cached cart page is not being served to other shoppers.
- 04
Fix one cause, then test as a stranger
Change the single cause you found, then send a fresh simulated visitor through add, change, remove and checkout. Run it again on a phone.
Where the cart stops: three actions, three traces
A shopper uses a cart through three actions, and each one leaves a different trace. Changing a quantity sends a request that should return the new totals. Removing an item sends a request that should return a shorter list. Going on to checkout usually sends the shopper to a new page, and a failure there looks like a button that does nothing. The shopper does not know which action failed, so they reload, see the old list and leave.
Stale copies and a cart that belongs to someone else
A cached cart page is one of the most damaging causes, because it looks like the cart works for the shopper who sees it. If the cache stored a cart page, a later shopper can receive that page with someone else's items, or with an empty list while the header shows a count. The fix is to mark cart pages as private and never cached, and to tie the cart identifier to one shopper. Check the response headers on the cart page: a cacheable cart page with a long lifetime is the fault to look for.
A refused change the page never shows
Some quantity changes fail on purpose. A product that is sold out, unpublished or limited to a lower quantity makes the server refuse the change and return an error. If the cart page only handles success, the refusal does nothing visible: the number snaps back, and the shopper assumes the site broke. Read the body of the refused response, which usually names the product and the limit, then show that message beside the item. A simulated visitor's report records the refused request and its status.
A coupon or shipping widget that blocks the checkout button
A coupon box, a shipping estimate or a recommendation widget on the cart page can throw an error on load. When that happens, the script that wires up the checkout button may never run, so the button looks live and does nothing. Open the Console when the cart page loads and read the first red error, not the last one. Remove or defer the widget, then check that the checkout button works with the widget turned off. If it does, the widget was the cause.
What you get with Mimiq
- 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.
- 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.
- 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.
- 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.
- 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 new coupon, stock rule or cache setting can empty the cart again
Each new coupon, stock rule or caching change can bring the same stall back, sometimes only for shoppers who are not logged in. Rerun the same simulated visitor after each change, from a fresh private window and once on a phone. If the store sits behind a login, test with a test account, and check each preview deploy before the change goes live.
Starter
Try it on one launch
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
Builder
Test every build
About 20 tests of 5 visitors
- Everything in Starter
- Credits refill each month, and what is left rolls over once
- Cancel anytime
Pro
Test every release, as a team
About 60 tests of 5 visitors
- Everything in Starter
- Credits refill each month, and what is left rolls over once
- Cancel anytime
Scale
Test at scale, every day
About 240 tests of 5 visitors
- Everything in Starter
- Credits refill each month, and what is left rolls over once
- Priority support
- Cancel anytime
Questions
Does the simulated shopper pay for the order?
No. The run adds items, changes quantities and goes on to checkout, then stops at the payment step. It never pays with a real card. Checkout that needs a sign-in needs a test account you provide.
Why does my cart work when I test it?
Your own session probably holds a cart you built over time, you are signed in, and your browser has cookies a stranger does not. A new shopper starts with none of that. Test from a private window with one item.
Can a test show that the cart is fixed for good?
Only for the run it made. It does not predict how many shoppers would still reach checkout, and it cannot see the stock in your own system. Rerun it after each change, and watch your order numbers and abandoned carts in your analytics.
Should I rebuild the cart?
Usually not first. A stall usually comes from one request, one cache header or one widget, and a rebuild can add new ones. Find the failing action, fix that cause, and run the same visitor again. Rebuild only when the cart fails in several places at once.
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.