An add-to-cart is a sign of interest, not a promise to buy. If buyers leave before starting checkout, the cart page or cart drawer is one place I investigate. If they reach checkout but do not order, payment, delivery availability, checkout errors or the offer itself may need attention instead.
Cart abandonment versus checkout abandonment: Here, cart abandonment means adding an item without starting checkout. Checkout abandonment means starting checkout without completing a purchase. The URL uses the broader cart-abandonment term, but the seven checks below focus on the path from cart to checkout.
Check the measurement first: In Shopify, compare sessions with cart additions, sessions that reached checkout and sessions that completed checkout over the same period and with the same filters. In GA4, check that add_to_cart, begin_checkout and purchase fire at the intended actions without duplicates. Event counts are not session counts: repeated additions, consent choices, tracking gaps and different report definitions can change the apparent drop-off. Do not divide raw GA4 event totals and treat the result as a Shopify session conversion rate.
Start with a practical test:
- Use a real phone to add a normal product and any important variant, bundle or subscription. Change the quantity and remove an item; check that prices, discounts and totals stay correct.
- Try a valid promotion and an invalid or ineligible code. The message should explain the result, and the discount should carry through to checkout where applicable.
- Check the shipping message against the actual destination, eligibility and threshold. If shipping or tax cannot be calculated yet, say so instead of presenting the subtotal as the final payable total.
- Tap checkout from both the drawer and cart page. Check for blocked buttons, validation errors and lost selections, then verify delivery and payment availability for the intended market. Use the store's approved test-order process if you need to test completion.
- Separate mobile from desktop and compare like-for-like periods. A visible problem is a reason to investigate; a small sample or a count of design issues is not proof of lost sales.
Choose the next check: If buyers cannot enter checkout, investigate the cart path with CRO and cart diagnosis. If checkout opens but delivery or payment fails, investigate the actual error and the relevant Shopify settings or integration; custom checkout requirements may need custom Shopify app and checkout development. If the journey works but the reports disagree, start with tracking and pixel diagnosis or tracking and analytics support.
For the reporting definitions, see Shopify's behavior reports and Google's recommended GA4 events.
Contents (7)
1. There's nowhere to enter a discount code #
Many buyers have a discount code from an email, an ad or an influencer. If the cart has no place to enter it, they wonder whether the code will work and what the final price will be. Some leave to look for the code again, or to search for a better one, and never come back.
If code-related questions are common, test whether a cart discount field with an accurate updated total helps. A field is not always needed: clear instructions about applying the code at checkout may be enough. Avoid encouraging buyers without a code to leave and search for one.
Signs this is happening on your store:
- Your cart page or cart drawer has no discount code field.
- Buyers ask you whether their code will work, or contact you after ordering because they forgot to apply it.
- You run promotions with codes, but buyers only find out the final price at checkout.
What to test: Check eligibility messages, automatic discounts and the checkout total before deciding whether a cart discount field is useful.
2. No trust signals near the checkout button #
A buyer approaching checkout may still have questions: "Is this store safe? What if I need to return it? When will it arrive?" Many carts show only a list of products and a button.
Test short, relevant answers near the checkout button: a return-policy summary, realistic delivery information and payment methods you actually accept. Use only genuine reviews and guarantees you honor. Extra badges can add clutter if they do not answer a real buyer question.
Signs this is happening on your store:
- Your cart shows no payment icons, return policy or delivery information.
- Buyers leave at the cart even though they've already chosen their products.
- Your trust information is only on policy pages or in the footer.
What to test: Use customer questions and mobile observation to choose which reassurance is needed; measure whether the change helps buyers proceed.
3. Free shipping isn't clear #
If you offer free shipping, buyers need to know whether their order and destination qualify. If you do not offer it, explain what is known about delivery costs and where the final rate is calculated.
The cart should show it clearly: "You've unlocked free shipping", or "Add $12 more for free shipping". Use a threshold message only when it reflects the actual rules, including discount and destination eligibility. Check it again after a quantity or code change.
Signs this is happening on your store:
- You offer free shipping, but the cart doesn't mention it.
- Buyers only see shipping costs at checkout, and the total surprises them.
- Most orders are just below your free shipping threshold.
What to test: Compare the cart message with the shipping options and total at checkout. A mismatch is actionable; a threshold bar alone does not guarantee more orders.
4. The cart drawer adds an extra step #
Many cart drawers show two buttons: "View cart" and "Checkout". "View cart" takes buyers to a separate cart page, which shows the same information again, before they can finally go to checkout. That may be unnecessary when the drawer already contains everything needed to proceed. A cart page can still be useful for complex configurations, accessibility or a clearer order review.
Where the drawer supports a complete review, offer a clear route straight to checkout. Keep access to the cart page when buyers need it; test that required selections and validation work on both routes.
Signs this is happening on your store:
- Your cart drawer has a "View cart" button that leads to a cart page.
- The cart page repeats exactly what the drawer already showed.
- Buyers have to click checkout twice (once in the drawer, once on the cart page).
What to test: Remove a required duplicate review step only if it adds no necessary information or validation. An optional View cart link is not itself a defect.
5. An app for every cart feature #
It's common to find a free shipping progress bar from one app, a discount field from another, and upsells from a third. Some stores replace the whole cart drawer with an app. Each one loads its own code, they can conflict with each other and with the theme, and the cart, the step right before checkout, becomes slow and fragile.
I check what each app contributes before recommending removal or theme code. Keep required subscription, bundle, pricing and accessibility behavior intact. A well-integrated app may be the right choice; the app count alone does not diagnose a slow cart.
Signs this is happening on your store:
- Your cart drawer or cart features come from several different apps.
- The cart takes a moment to open, or flickers as different parts load.
- The cart sometimes shows the wrong total, or breaks after a theme or app update.
What to test: Reproduce delayed updates or wrong totals and isolate the responsible integration on a test theme before changing the live cart.
Read more: Why is my Shopify store so slow? 9 causes I find in speed audits →
6. Upsells in the wrong place #
Many carts are filled with "You may also like" products, often unrelated to what the buyer just added. Recommendations can help when they are relevant, but they can also distract from checkout or slow the drawer. Treat placement as a hypothesis for your store, not a universal rule.
One alternative to test is the product page, while the buyer is still choosing: "frequently bought together", bundles, volume discounts or the right accessory. Compare relevance and completion across placements. Keep checkout usable without accepting an offer.
Signs this is happening on your store:
- Your cart shows several product recommendations, some unrelated to the items in the cart.
- Upsells push the checkout button down, especially on mobile.
- Your product pages have no bundles or "frequently bought together" offers.
What to test: Check whether recommendations obscure checkout on mobile. Evaluate completed orders and order value together; a larger cart is not a win if fewer buyers complete a purchase.
7. The cart makes buyers think again #
The goal is a cart that supports an informed next step. Buyers should be able to review items, understand the subtotal and any remaining charges, edit the order and find checkout. Some need more time or information than others.
Look for competing messages, unclear charges and controls that make review difficult. Time in cart alone does not tell you whether a buyer is confused, checking an order carefully or returning later.
Signs this is happening on your store:
- Your cart has many sections, messages, offers and buttons competing for attention.
- On mobile, the checkout button isn't visible without scrolling.
- Shopify's reports show many sessions with items in the cart, but far fewer reaching checkout.
What to test: Observe the route to checkout and compare the same funnel steps after a focused change. Keep the checkout path clear without removing information buyers need.
What clients say about this kind of work #
“Philip is a full stack developer who can debug issues and fix them. I was totally lost and he made it look like child's play. I cannot recommend Philip enough. He is a total professional in every aspect!”
“Philip has been great to work with, his replies are always prompt and quick. I look forward to working on further projects in the future.”
“I will use him again...great experience.”
