Troubleshooting checkout
This page is for administrators and developers who have to find out why a checkout went wrong. Each section starts from what someone reports, lists the likely causes in the order to check them, and names the log or screen that proves it.
Contents
- Where to look first
- Customer paid but no order
- Items disappear at checkout
- Basket empty after cancelling
- Shipping missing or doubled
- VAT unknown or zero
- Gateway not offered
- No order mail
- A status cannot be set
Where to look first
| Source | Shows |
|---|---|
| Store dashboard, "How your shop works" and "Next steps" | The configuration in effect and known problems |
| Setup > Workflow processes | Workflow processes still waiting, for example a payment |
var/log/eZPaymentGatewayType.log, var/log/eZRedirectGateway.log | Each step of the payment event and redirect gateways |
| The debug log | Handler files not found, VAT and category errors |
Audit tab, commerce channel | Checkouts started, orders created, payments approved (Commerce audit trail) |
Customer paid but no order
The provider took the money, but the order list has no order. The order is still temporary because the provider's
callback never approved the payment (Temporary orders and activation).
The customer may have seen "check out again" pages and then an error with the code NO_CALLBACK
(Checkout operations step by step).
- Is the callback address reachable from the internet over HTTPS, without login, maintenance page or IP filter?
- Is the callback view exempt from policy checks (for PayPal
PolicyOmitList[]=paypal/notify_url)? - Do the provider's settings point to the live address, not a test or old domain?
- Does the gateway log show the callback and why it was refused (amount, currency, validation)?
- Is the provider in the same mode (test or live) as the site's settings?
Fix the cause first; then settle the affected customers' orders by hand with the provider's records.
Items disappear at checkout
When Checkout is pressed, the basket is verified: items whose product was unpublished, or whose price or VAT changed since they were added, are removed and listed on the basket page. Usually a price was changed during the day. Tell the customer to add the item again.
Basket empty after cancelling
| Cause | Fix |
|---|---|
ClearBasketOnCheckout=enabled | Expected behavior with that setting; switch it off unless the gateway requires it |
ClearBasketOnLogout=enabled and the customer signed out | Expected |
| An installation older than 6.0.15 | Cancel on the confirmation page used to lose the basket; update (Permanent order receipts) |
Shipping missing or doubled
| Symptom | Cause |
|---|---|
| No shipping line | The shipping workflow is not on shop confirmorder before, or has no Simple shipping event |
| Wrong amount | workflow.ini [SimpleShippingWorkflow] ShippingCost in another override file wins (Shop settings walkthroughs) |
| Two shipping charges | Both a shipping handler and the simple shipping workflow are active |
| Handler ignored | Debug log: "Shipping handler ... not found"; check ExtensionDirectories[] and the file name |
VAT unknown or zero
| Symptom | Cause |
|---|---|
| "Determined by VAT charging rules" not offered | [VATSettings] Handler not set |
| VAT unknown | Dynamic VAT type without a handler, or the handler returned nothing |
| 0 percent for some customers | No rule matched; add a catch-all rule (*, no categories) |
| Error about the product category attribute | ProductCategoryAttribute empty or not on the class |
| Notice about a missing user country | The account handler's form has no country, or UserCountryAttribute is wrong |
Details: Product categories and VAT rules.
Gateway not offered
The Payment Gateway event lists only registered gateways. Check that the extension is active, the file is
classes/<extension>gateway.php, it calls eZPaymentGatewayType::registerGateway(), and the INI cache was cleared
(paymentgateways.ini walkthrough).
No order mail
See Order mail and receipts for operators. The mail is sent only when the order is activated, so a missing order explains a missing mail.
A status cannot be set
The choices offered are those the user's shop/setstatus policies allow for the current status
(Status transitions and permissions).
Related pages
- Operating a store
- When something goes wrong
- Workflows: troubleshooting
- Free documentation: this page is free to copy, translate and improve under the GNU FDL 1.3.
Become an Exponential Partner
Partners share their information, provide funding, contribute back and develop the products with us, and that is how Exponential grows. A partner website and dashboard are planned for mid-2027: please become a partner today to speed up our growth rate and land new features faster.