Your PrestaShop checkout
is losing orders?
we audit it and fix it.
PrestaShop checkout audit and fix
Cart emptying, step looping, payment button unresponsive, Stripe webhook not received, order paid but never recorded: we replay your journey, identify the leak, we fix within 24 h. Latest audit: +48 carts recovered/month.
A checkout bug means revenue leaking, silently
Do the math. The cost of inaction is almost always higher than the cost of intervention.
purely technical causes (audit avg 2025-2026)
standard B2C store
after the bug is fixed
The 8 most frequent checkout bugs
Identified across 30 PrestaShop checkout audits 2025-2026. Recognise yours.
Typical cause: incompatible SameSite cookies since Chrome 80. The customer is redirected to Stripe / PayPal, returns to your site, the session is null. Fix: force SameSite=None; Secure on the session cookie, ensure everything is HTTPS, test across 3 browsers.
Typical cause: no carrier available for the cart's weight/zone. The Next button doesn't validate the step because the carrier array is empty. Fix: full carrier audit (zones, weight, dimensions), creation of a fallback "default" carrier to avoid the zero case.
Typical cause: webhook endpoint blocked or erroring. The customer pays on Stripe, Stripe POSTs a confirmation to your store, your WAF or Cloudflare blocks the request (or the PHP endpoint crashes). Fix: check Stripe dashboard logs, whitelist Stripe IPs on the WAF, debug the PHP handler.
Typical cause: promotion or voucher module applying a discount poorly on already-discounted products, badly rounded VAT-inclusive math, or ungoverned discount stacking. PrestaShop then silently rejects the order. Fix: promo module audit, validation added on Cart::getOrderTotal().
max_input_vars too low
Typical cause: PHP limits reached on a cart with many combinations. max_input_vars defaults to 1000, insufficient for a basket of 8 items × multiple combinations. The POST request is truncated, the cart corrupted. Fix: php_value max_input_vars 4000 in .htaccess or PHP-FPM pool.
Typical cause: payment module API call exceeding PHP's max_execution_time, or slow DNS resolution to the PSP API (Stripe, PayPal, Klarna, Worldpay, Adyen). The customer sees an infinite spinner then an error. Fix: raise timeout, optimise the API call (cache the PSP token), monitor response time.
Typical cause: tracking module injecting a JS with a syntax error, preventing the checkout JS from running. The form doesn't submit. Fix: inspect the Chrome console (F12 → Console), disable the offending module, report to the vendor.
Typical cause: multiple customers ordering the same product simultaneously, stock dropping to -1 between cart validation and order recording, PrestaShop silently rejecting. Fix: enable "allow orders out of stock", or SQL-lock stock during the transaction.
How we audit your checkout
3 to 4 hours of structural diagnosis. No guessing, no generic checklist.
/var/logs/), PSP webhooks. Identification of silent errors and failed requests.
Pricing stated up-front
Free pre-audit. For the intervention, you know exactly what it costs before we touch the code.
Pre-audit
- Replay of a typical purchase journey
- 2 most likely bugs identified
- Firm quote + recoverable revenue estimate
- You decide if we continue
Targeted intervention
- Backup of files + DB before any intervention
- Bug fix (cookies, hook, webhook, carrier...)
- Tests across 5 typical carts + multi-browser
- Written report: cause + recoverable revenue
- 30-day warranty on the fix
Performance maintenance
- Automated replay of monthly purchase journey
- Daily backups externalised
- Abandoned cart tracking + alert on abnormal spike
- Priority intervention on checkout bugs
PrestaShop checkout bugs — frequently asked questions
actionCartSave, (3) cart token regenerated by a poorly written override, (4) PHP max_input_vars reached, (5) PHP session expiring (gc_maxlifetime too low). Real diagnosis requires a replay with network inspector + server logs./order-opc in 500 or unexpected redirect, (3) abandoned cart emails. Latest client case: 48 carts/month × £55 = £2,640/month lost, far more than the intervention cost./var/logs/ + inspecting payment/carrier module code. For fixes requiring BO (enabling a module, configuring a carrier), we can recover an admin account via SQL if necessary.Losing orders right now?
Free 30-min pre-audit: we replay your journey, tell you what's broken. Firm quote within 24 business hours, intervention from €60/h excl. VAT.