A checkout that does not work in PrestaShop is the most expensive store failure: customers arrive, add products to the cart and leave because they cannot complete an order. The symptoms vary — missing payment methods, an error when placing an order, a Parcel Locker map that fails to load, a stuck transition to payment. In 80% of cases the payment and shipping modules are to blame (often after a silent API change at the operator) or a failed update. Diagnosis and repair: 200–600 PLN net per ticket; during a sales-blocking outage every hour counts.
Key takeaway: You diagnose the PrestaShop checkout in this order: 1) establish the exact failure stage (missing payment methods, error when ordering, no locker map), 2) check the payment/shipping module logs and
var/logs/, 3) test a purchase in incognito with a 1 PLN test product, 4) disable the suspect module and check whether the checkout recovers, 5) check webhooks and order statuses in the payment operator's panel, 6) verify limits and API keys (ShipX, Przelewy24), 7) test the full path on staging before changing production.
- ## Step 1: Establish at which stage the checkout breaks
"Checkout not working" is not precise enough. Check in order
- cart — does adding products and calculating totals work?
- customer details — does the address form save?
- shipping — are shipping methods displayed and are costs calculated?
- payment — are payment methods visible? Does the transition to the gateway work?
- confirmation — does the order get saved in the panel? Does the status update? Does the email go out?
Each stage has different suspects: shipping → carrier modules, payment → gateway modules, confirmation → webhooks and emails. The diagnosis narrows down to one stage.
- ## Step 2: Payment and shipping module logs
PrestaShop 1.7+/8/9 has built-in module logs (Modules → selected module → Logs, if the module keeps them) plus system logs:
-
var/logs/prod.log— PHP errors, exceptions, integration errors, -
hosting logs — errors in outgoing requests to operator APIs,
-
the payment operator's panel (Przelewy24, PayU, Tpay) — transaction and webhook statuses,
-
the carrier's panel (e.g. ShipX/InPost) — shipment statuses and API keys.
-
Look for:
Connection timeoutto the operator API,401/403(API keys),webhook failed,status not mapped. How to read logs: PrestaShop logs. -
## Step 3: A live purchase test
The fastest test: a 1 PLN product + a purchase in incognito mode. Note
- whether the cart calculates correctly (totals, shipping),
- whether shipping methods appear,
- whether payment methods are available,
- whether the transition to the payment gateway works,
- whether the order is saved with the correct status,
- whether the confirmation email arrives.
If the test passes but customers report problems — ask for details: browser, device, chosen payment method, error message. The failure may affect only mobile, only BLIK or only one carrier.
- ## Step 4: Disable the suspect module
When the logs point to a payment or shipping module
- disable the module and check whether the checkout recovers (with another payment method),
- enable it on a store copy with debug mode and reproduce the error,
- check the module changelog — it may need an update after an operator API change,
- if the module is abandoned (no updates for years), consider replacing it with a supported one.
-
Remember: disabling the only payment method = no sales. During production repairs always keep an alternative method active. Isolation procedure: module conflicts.
-
## Step 5: Webhooks and status mapping
Orders not updating status is a classic webhook problem
-
the webhook does not arrive — check the return URL in the module configuration and whether it is blocked by a firewall/WAF,
-
the webhook arrives but the status does not change — the status mapping in the module is wrong; compare the operator's statuses with the store's,
-
duplicate orders — the webhook arrives twice and the store creates two orders; idempotent processing is needed,
-
orders "hanging" as pending — payment went through but the store did not get the confirmation; compare the store logs with the operator's panel.
-
Test: make a test payment (the operator's sandbox mode, if available) and trace the entire webhook path. For Przelewy24: Przelewy24 in PrestaShop, for InPost: InPost in PrestaShop.
-
## Step 6: API keys and limits
After a silent change on the operator's side, failures are caused by
- expired or rotated API keys — the ShipX key, Przelewy24 token, carrier API credentials,
- API changes — the operator retires an old endpoint version, the module stops working,
- rate limits — polling the API too often (e.g. locker maps) ends in a temporary block,
- a missing extension — e.g.
curl,openssldisabled on the hosting.
Compare the error messages with the operator's documentation and verify the keys in the panel. Rotating keys after a contractor change is standard.
- ## Step 7: Checkout JavaScript and frontend
Some failures happen in the browser — a payment module or locker map fails to load because
- one script blocks another (JS loading order),
- the theme overrode the checkout template and lost a required element,
- CSP (Content Security Policy) blocks the script's domain,
- the CDN cache serves a stale JS file.
Open the developer console (F12) on the checkout page and check JavaScript errors and network requests (4xx/5xx codes, CORS blocks). Test in incognito to rule out the browser cache.
When to get help
You can do the following yourself: the purchase test, reading the logs, disabling a module and checking API keys. A specialist is worth it when:
- the checkout is down in production and every hour means lost orders,
- the logs show no cause,
- the problem involves operator integrations (webhooks, statuses),
- after the fix you want to prevent a repeat (monitoring, checkout regression tests).
I treat sales-blocking outages as priority tickets (response within 4h). Ongoing technical help with monitoring: PrestaShop technical help.
Frequently asked questions
Customers cannot place orders — where do I start?
Run a purchase test with a 1 PLN product in incognito and note the stage where the problem appears. Then check the payment/shipping module logs and var/logs/ from the time of the customer reports — that narrows the cause to one module or integration.
The payment methods disappeared from the checkout — what happened?
Most often the payment module was disabled, its API keys expired, or it became incompatible after an update. Check whether the module is active, verify the keys in the operator's panel and review the module logs. Quick test: enable another payment method and check whether the checkout works.
The Parcel Locker map does not load — where do I look?
At the ShipX API key, JavaScript blocks and conflicts with other shipping modules. Check the browser console (JS errors, CSP blocks), verify the key in the InPost Manager panel and test with the other shipping modules disabled. Details: InPost in PrestaShop.
The checkout stopped working after an update — should I roll back?
First disable the most recently updated module (payment/shipping) — that is usually enough. If the error is in the core, follow post-update problems, including a rollback from the backup. Do not update "again right away" without a diagnosis.
Sources and tools
- PrestaShop DevDocs — checkout
- Przelewy24 — integrator documentation
- InPost ShipX — API documentation
- Google Search Central — site maintenance
👉 Checkout not accepting orders? Report the outage — sales tickets get priority: contact form or kontakt@informatix.com.pl. See also PrestaShop technical help.
📖 See also: PrestaShop emails not sending, module conflicts and PrestaShop help.