The checkout is the most expensive page in your store to lose a customer on. Everyone who reaches it has already done the hard part — found you, picked a product, decided to spend money. By the time they hit checkout, the marketing has done its job; all that's left is for the page not to get in the way. When it does, you don't just lose a click, you lose a customer you'd already paid to acquire. So if your numbers say people add to cart but don't finish, this is the page to fix first, before you spend another euro on traffic.

This post is the diagnosis. It won't hand you a generic list of "10 checkout tips" — it shows you how to find your leak: read the symptoms, locate where in the PrestaShop checkout people actually drop, and route each finding to the specific fix. The deep treatments for each fix live in their own posts (linked as we go); this is the map that tells you which one you need.

First, separate normal loss from your loss

Cart abandonment averages around 70% across e-commerce, and a good chunk of that is unfixable: people use the cart as a wishlist, price-compare across tabs, or get interrupted. You will never get that back, and chasing it is wasted effort. The abandonment worth fixing is the portion caused by the checkout itself — the customer who genuinely wanted to buy and gave up because something on the page stopped them.

The diagnostic question is therefore never "why do 70% leave?" It's narrower and more useful: where, specifically, do people who started checkout drop off, and why there? Answer that and you stop guessing. The rest of this post is how to answer it on a PrestaShop store. (For the full taxonomy of reasons people leave, we catalogued twelve of them in 12 reasons people leave before paying — this post is about finding which of them is hurting you.)

Know the page you're diagnosing: PrestaShop's checkout in plain terms

You can't read drop-off without knowing the shape of the funnel. Since PrestaShop 1.7 (through 8 and 9.0–9.1), the default checkout lives on one URL — the order controller — but it reveals itself in sequence: personal information → addresses → delivery → payment. Each is its own step (in code: CheckoutPersonalInformationStep, CheckoutAddressesStep, CheckoutDeliveryStep, CheckoutPaymentStep), and a step stays collapsed until the one before it is complete. A virtual cart with nothing to ship skips delivery.

This matters for diagnosis because those four steps are your measurement boundaries. When someone abandons, they abandon at a step — and which step tells you almost everything about the cause. We map that below. (If you've migrated from 1.6 and are hunting for the old one-page toggle, it was removed in 1.7; the full story and your routes back to a single-screen checkout are in one-page checkout for PrestaShop.)

Get the data: turn on the funnel before you theorise

Diagnosing checkout from gut feeling is how merchants "fix" the wrong thing for six months. Before changing anything, get two kinds of evidence — the numbers and the watching.

The numbers (where they drop): set up a checkout funnel so you can see step-by-step fall-off. In GA4 the relevant events are begin_checkout, add_shipping_info, add_payment_info and purchase — which line up almost exactly with PrestaShop's four steps. If those events aren't firing, our Google Analytics GA4 module wires the Enhanced Ecommerce dataLayer into the native checkout so the funnel populates without theme surgery. Read it as a staircase: a cliff between two steps is your leak.

The watching (why they drop): numbers tell you the where; session recordings tell you the why. Microsoft Clarity (free) or Hotjar let you watch real customers rage-click a rejected field, hunt for a coupon box, or abandon when shipping appears. Twenty recordings of people quitting at the same field is worth more than any best-practice list.

Don't trust three days of data. Give it enough volume — ideally 30+ days and 200+ checkout starts — that you're seeing a pattern, not weekend noise.

Read the symptom: a drop-off-to-cause map

Once the funnel is populating, find your biggest cliff and match it here. Each row points to the post that fixes it in depth, so you don't fix blind.

Where they dropLikely cause (the symptom in plain terms)Where the fix lives
Cart → checkout start (they never begin)Surprise looming: they sense costs or a registration wall ahead, or the cart total already feels wrong.why shoppers abandon carts
Personal information stepForced account creation. The customer hits "create an account" and bails — one of the largest single causes.guest vs forced registration
Addresses stepToo many fields, or a validation that rejects valid input (postcode format, required phone on a digital order).This post, "Fix the field leak" below
Delivery stepShipping cost appears here for the first time and it's higher than expected — the classic unexpected-cost exit.This post, "Fix the surprise-cost leak" below
Payment stepTheir method is missing, the form feels unsafe, or a redirect to an external page loses them.checkout optimization guide
Heavy mobile skew (mobile far below desktop)The page works on desktop but fights the thumb — tiny targets, wrong keyboards, total scrolled off-screen.mobile checkout optimization

Two leaks are squarely the diagnosis post's to fix — the address-field bloat and the surprise-cost exit — so here they are in full. The rest are deep enough to own their own post, linked above.

Fix the field leak (drop-off at the addresses step)

If people start checkout but stall at addresses, you're almost always asking for too much. PrestaShop's default address form is more generous than most stores need, and every avoidable field is a small tax on completion. You don't need to edit code to trim it — most of it is configuration.

  • Title / salutation — go to Shop Parameters → Customer Settings and turn off "Enable B2B mode" if you're not B2B, and review the title requirement. It rarely affects order processing; one less choice to make.
  • Company & VAT — under Shop Parameters → Customer Settings → B2B mode; if you sell to consumers, leave B2B off so these fields never appear.
  • Address fields — PrestaShop lets you control the address layout under Customers → Addresses (the address format is editable per country in International → Locations → Countries). Make "Address line 2" optional and the separate billing address collapse to "same as shipping" by default.
  • Phone — may be required by your carriers or by configuration rather than by default; make it optional wherever your fulfilment allows, such as a digital/virtual catalogue, instead of a hard gate.

The principle: the optimal checkout asks for the fewest fields that still let you fulfil the order. Watch a few Clarity recordings of the addresses step first — the field people actually abandon on is often not the one you'd guess.

Fix the surprise-cost leak (drop-off at the delivery step)

A clean drop at the delivery step almost always means one thing: the shipping price showed up later than the customer expected, and it broke the deal in their head. The fix isn't a cheaper carrier — it's removing the surprise by showing the cost earlier, while the customer is still in a buying frame of mind.

The earliest honest place to set expectations is the product page. Our Estimated Delivery Date module surfaces both when an order will arrive and the shipping cost before the customer ever reaches checkout — so the delivery step confirms what they already knew instead of ambushing them. So what does that mean for you? Fewer people reach the delivery step only to leave, because the number that would have scared them off was never a surprise. It configures from the back office, no theme edits.

Pair it with showing estimated shipping in the cart too, so the running total is honest from the first screen. A total that only tells the truth at the last step is the single most common self-inflicted checkout leak we see.

The leak you can't see in the funnel: speed

One cause doesn't show up neatly as a single-step cliff — a slow or laggy checkout bleeds customers across every step. The checkout should be the fastest page on your store; every visitor here has already decided to buy, so a 4-second load or a janky form is pure loss. Check it directly: run the checkout URL through a speed test on mobile, and in Advanced Parameters → Performance confirm caching and CCC are on for production. If form validation triggers full page reloads instead of inline checks, that lag alone explains diffuse drop-off. Treat a slow checkout as a leak even when the funnel doesn't point a clean finger.

After you fix it: recover the carts you still lose

Even a checkout with zero diagnosable faults loses some carts — that's the unfixable share from the top of this post. You don't fix those at the checkout; you win a portion back afterwards. An abandoned-cart email sequence is the one automation that pays for itself here — the mechanics are in abandoned-cart emails and the PrestaShop setup in abandoned-cart email automation. Recovery is the floor under your funnel, not a substitute for fixing the leak above it.

Confirm the fix actually worked

The same discipline that found the leak proves you closed it. Before you changed anything you recorded the step-by-step drop-off; after, compare the same funnel over a matched window — at least 30 days and 200+ checkout starts. You're looking for the specific cliff you targeted to flatten, not just a vague feeling that "it seems better." If the addresses-step drop you set out to fix didn't move, you fixed the wrong thing — go back to the recordings.

And do the cheap arithmetic on what it's worth: lifting checkout completion by a single percentage point — say 30% to 31% — is roughly 3.3% more revenue with zero extra traffic. On a store doing €100,000 a year that's about €3,300 from an afternoon of diagnosis and a configuration change. No ad campaign returns effort at that rate, which is exactly why the leaking checkout is the first place to look, not the last.

If your fastest route to a low-friction checkout is replacing the stepped flow with a true single-screen one, our Checkout Revolution module does it from the back office without forking your theme — but diagnose first. Knowing which leak you have is what stops you from buying a solution to a problem you don't have.

Share this post:
David Miller

David Miller

Over a decade of hands-on PrestaShop expertise. David builds high-performance e-commerce modules focused on SEO, checkout optimization, and store management. Passionate about clean code and measurable results.

Enjoyed this article?

Get our latest tips, guides and module updates delivered to your inbox.

Comments

No comments yet. Be the first!

Be the first to ask a question or share useful feedback.

Loading...
Back to top