If you’re getting add to cart but no sales on Shopify, the money is leaking in one of two places: shoppers add an item and never reach checkout (a cart → checkout problem — usually shipping cost or a clunky cart), or they reach checkout and never complete the order (a checkout → order problem — usually payment, trust or an error). You don’t have to guess which. Open Shopify’s funnel analytics to see where the biggest drop is, then place a test order on a real phone to feel exactly what your customer feels. Everything below is how to find that one leak and fix it.
Diagnose first — don’t start changing things
The instinct is to redesign the cart, add urgency timers, or fire off abandoned-cart emails. Resist it. Add-to-cart with no purchase is a symptom, and there are seven or eight different diseases that produce it. If you change five things at once you’ll never know which one mattered — and you might break something that was working. Diagnosis before treatment.
Why this matters
People who add to cart are your warmest traffic. They found you, liked a product enough to click “Add to cart,” and then something stopped them. That’s completely different from cold visitors who bounce off the homepage. Recovering this group is the cheapest conversion lift you have, because you already paid to acquire them. A leak here quietly taxes every dollar of ad spend and every SEO win. (If your problem is one step earlier — visitors but no add-to-carts at all — start with traffic but no sales instead.)
The two-gap model
Shopify’s funnel has three checkpoints after a session: added to cart → reached checkout → converted. Read the two gaps between them:
- Added to cart → reached checkout. A big drop here means people never even start checkout. Suspect the cart (confusing, slow, surprise costs) or shipping shock the moment they see the total.
- Reached checkout → converted. A big drop here means they started checkout and bailed. Suspect payment methods, trust, a broken discount, or an outright checkout error.
In your Shopify admin, go to Analytics → Reports → Conversion over time (or the conversion funnel on the Analytics dashboard). Note the percentage that survives each step. The gap that’s widest relative to a healthy store is where you dig first. This single reading tells you whether you’re solving a cart problem or a checkout problem — and saves you from fixing the wrong half. If both gaps look bad, see why your Shopify conversion rate is so low for the broader picture.
Likely causes, ordered by how often they’re the culprit
- Shipping cost or delivery time revealed late. The number-one killer. A customer commits mentally at the product price, then sees shipping at checkout and feels tricked. Show shipping earlier, offer a free-shipping threshold, or bake it into price.
- Missing or limited payment methods. No Shop Pay, no PayPal, no Apple/Google Pay, or no local method your audience expects. If their preferred wallet isn’t there, many simply leave rather than type a card.
- A discount that doesn’t apply. The code from your email or banner fails, greys out, or silently does nothing at checkout. Shoppers who came for the deal will not pay full price. Fragile discount stacking is a frequent cause — see Shopify Functions vs discount apps.
- Checkout errors after an app install. A recently added app injected a script or a checkout extension that throws an error on some devices, blocking the “Pay now” button. This is invisible until you test.
- Weak trust at the payment step. No reviews, no clear returns/refund policy, a bare checkout, or a store that looks unfinished. Handing over a card is the highest-anxiety moment — reassurance has to be right there.
- Mobile friction. Tiny tap targets, a sticky bar covering the checkout button, laggy inputs, or a cart drawer that’s awkward on a phone. Most traffic is mobile, so a mobile-only bug quietly halves conversions.
- Accelerated checkout skipping the cart. Dynamic checkout buttons (“Buy it now”) are great — unless they bypass a cart-based upsell, free-gift or discount that only applies in the cart, so the order lands wrong or the shopper hesitates.
How to diagnose — the checklist
Work top to bottom. Each row is a real action, not a guess.
| Check | What to do | What a failure looks like |
|---|---|---|
| Funnel read | Read added-to-cart → reached-checkout → converted in Analytics | One gap far wider than the other |
| Test order (mobile) | Buy a real product on your phone, start to finish | A step is slow, confusing, or errors out |
| Test order (desktop) | Repeat on desktop, different browser | Behaves differently from mobile |
| Payment methods | Try each method you offer at checkout | A method is missing, greyed, or fails |
| Shipping | Watch when/where shipping cost first appears | It surprises you late in the flow |
| Discounts | Enter every live code and automatic offer | Code fails, doesn’t stack, or is ignored |
| Currency / region | Test with a non-default currency or country | Prices, taxes or methods look wrong |
| Trust signals | Look at the checkout as a first-time buyer | No policy, reviews, or reassurance |
| Tracking | Confirm real orders show in Analytics + Orders | Orders exist that analytics never counted |
That last row matters more than people expect. Verify your tracking before you conclude you have no sales. Blocked analytics scripts, consent banners, or a mis-fired pixel can hide orders you actually received — so you’re diagnosing a problem that’s smaller than it looks, or nonexistent. Cross-check the Orders page against Analytics for the same period.
Run the two test orders on different devices, browsers, currencies and payment methods. Bugs love the combinations you personally never use.
Common mistakes
- Emailing your way out of it. Shopify abandoned-cart recovery is worth running, but it’s a bandage. If checkout is broken, you’re just reminding people about a checkout that still won’t let them buy.
- Adding urgency timers and popups on top of an unresolved leak — more friction, same drop-off.
- Trusting analytics blindly without a manual test order. Numbers tell you where; a test order tells you why.
- Changing several things at once, so you can’t tell what fixed it (or what broke).
When to bring in a developer
Do the funnel read and test orders yourself — anyone can. Involve a developer when the trail points to something under the hood: a checkout error after an app install, a discount or Function that misbehaves, a theme customization that breaks the cart on mobile, or app conflicts you can’t isolate. That’s exactly the kind of work our Shopify development service handles — reproducing the bug across devices and fixing the code, not just the symptom.
Add-to-cart with no sales is almost always one fixable leak, not a hundred small ones. Find the gap, feel it in a test order, fix that, and re-measure. Warm traffic converts once the road to “Pay now” is clear.
Getting add-to-carts but no sales? Send us your store URL — we’ll run the checkout, payments, discount and tracking checks, find the biggest drop-off, and tell you what to fix first. Get your free Shopify Profit Audit.