Skip to content
IThandy Monitor
EN
Try it free for 14 days

Store problems

Payment method or shipping option missing at checkout: causes and a step-by-step fix

Updated: Author: 8 min read

Contents
  1. Why this is the most expensive silent outage
  2. Common causes in PrestaShop, WooCommerce and Magento
  3. Step-by-step diagnosis
  4. Payment shown, but the order never gets paid status
  5. How to detect a missing method automatically
  6. Sources
  7. Frequently asked questions

A payment method or shipping option that disappears from checkout is an outage regular uptime monitoring cannot see: the homepage loads, the cart works, but at the last step the shopper has no way to pay or no way to get the parcel. In PrestaShop, WooCommerce and Magento the usual causes are module restrictions (country, currency, customer group, order amount), cart-dependent carrier rules and conflicts after an update. IThandy Monitor catches these gaps automatically with a checkout test that compares shipping and payment methods against a saved baseline.

Below you will find the causes, a step-by-step diagnosis for each platform and a way to hear about the next gap from an alert, not from an annoyed customer.

Why this is the most expensive silent outage

A missing PayPal, Klarna or card option does not take your store down, it quietly removes the default choice for a large share of shoppers at the final step. Nobody calls you, they just leave.

Baymard's research (updated 22 September 2025) puts the average cart abandonment rate at 70.22%. Among US shoppers who abandoned during checkout, excluding those who were just browsing, 17% blamed website errors or crashes, 10% a declined card and 9% not enough payment methods (Baymard). A payment gateway that silently disappears falls right into those categories.

Local payment methods make it worse, because in many markets one method dominates. In Poland, where I run IThandy, 72% of online shoppers choose BLIK, 64% fast bank transfers and only 43% cards, while 83% choose parcel lockers and 87% of those use InPost (Przelewy24, Gemius 2025). Over Black Weekend 2025 (28 November to 1 December) Poles made 20.9 million online BLIK payments worth 3.7 billion PLN (BLIK). Swap BLIK for iDEAL, Bizum or Klarna and the lesson is the same: losing the local favourite is losing most of the checkout.

Common causes in PrestaShop, WooCommerce and Magento

Most "vanishing" methods are not server failures but rules that stopped matching the cart or the customer's address after a change. That is why the method works when you test it and fails for your customer.

PrestaShop

  • Payment module restrictions. Every payment module in PrestaShop is tied to countries, currencies, customer groups and carriers. Lyra's documentation notes that PrestaShop enables payment modules only for the shop's default country by default (Lyra). A shopper in Germany will not see a gateway you can see with a domestic address.
  • Amount limits. Minimum or maximum order totals in the module settings, for example for pay-later or instalments.
  • "Disable non PrestaShop modules" under Advanced Parameters > Performance. Switched on while debugging and forgotten, it hides most third-party gateways (Lyra).
  • "No carriers available". A carrier disappears when the customer group, weight or price range, address zone or a product-level carrier restriction does not match (Boxtal). One oversized product can remove locker delivery for the whole cart.
  • Conflicts and overrides. A third-party module, a one-page checkout module or a theme that overrides the payment template. After major shop changes Lyra recommends resetting the module, after saving the shop ID and key.

WooCommerce

  • Checkout Block vs classic checkout. Since WooCommerce 8.3 (16 November 2023) new installs on block themes get the Cart and Checkout blocks by default (WooCommerce). A gateway built only for the classic shortcode checkout will not appear in the block, and WooCommerce gives no warning (jorijn.com).
  • Gateway filtering. A gateway can be enabled and still be filtered out by currency, customer country, cart contents or another plugin.
  • JavaScript errors. If no method shows at all, not even bank transfer, the whole checkout is failing to render, not one gateway.
  • Shipping zones. An address outside your defined zones produces "no shipping options were found".

Magento 2 and Adobe Commerce

  • Countries and order totals. Each payment and delivery method has allowed countries and minimum and maximum order totals.
  • Extension updates. A new payment or shipping extension version deployed without recompiling and flushing cache.
  • Cache and Varnish. Configuration changed in the admin while the storefront still serves the old state.

The same pattern shows up on other platforms. On the Shopware forum merchants trace missing payment methods to minimum order values, "billing address must match shipping address" rules, plugin conflicts and a wrongly overridden template (Shopware forum).

Step-by-step diagnosis

Start by reproducing the problem with the same cart and address as the customer, and only then dig into module settings. Without reproduction you are guessing.

  1. Record what the customer sees: country, products in the cart, logged in or guest, browser. Screenshot the shipping and payment steps.
  2. Reproduce the order in a private window with a real postcode and the same product. Sample postcodes can behave differently from real ones (Boxtal).
  3. Try a different product. If the carrier comes back, the cause is a product restriction, weight or dimensions.
  4. Open the browser console (F12) on the checkout page. A JavaScript error points to the theme or a plugin, not to gateway settings.
  5. Read the shop and PHP logs for the last few hours, especially after an update.
  6. Check the method's restrictions using the platform list below.
  7. Clear the shop cache and CDN after every change, then repeat step 2.
  8. Write down the cause and add a check for it to your post-update checklist.

PrestaShop:

  • Payment > Preferences: countries, currencies, customer groups and carriers for the module.
  • Module settings: test mode, API keys, amount limits.
  • Advanced Parameters > Performance: the option that disables non-PrestaShop modules is off.
  • Shipping > Carriers: zones, groups, weight and price ranges; the Shipping tab on the product page.
  • Checkout modules and theme: no override of the payment template.

WooCommerce:

  • Checkout page: Checkout block or shortcode, and whether the gateway supports it.
  • WooCommerce > Settings > Payments and Shipping: enabled methods, zones, methods inside zones.
  • Gateway restrictions: currencies, countries, minimum amount.
  • Conflict test on a staging copy: disable checkout-related plugins, switch to Storefront.

Magento 2:

  • Stores > Configuration > Sales > Payment Methods and Delivery Methods: allowed countries, minimum and maximum order total.
  • Extension status after the update, compilation (setup:di:compile) and reindex (indexer:reindex).
  • Flush cache and Varnish after configuration changes.

Payment shown, but the order never gets paid status

Sometimes the method is there, the customer pays, and the order stays "awaiting payment". That means the gateway's callback (IPN or webhook) never reached the store, not that the payment method disappeared.

Typical causes: a firewall or bot rule blocking the payment provider's callback, a domain or certificate change, an outdated callback URL in the provider's dashboard, or a PHP error in the module while handling the response. No synthetic test sees this from outside, because a test does not pay real money. Alongside monitoring, review unpaid orders in your admin once a day, and whitelist your providers' callback addresses whenever you change firewall rules. I cover firewall rules in PrestaShop bot protection with Cloudflare.

How to detect a missing method automatically

You can only catch a missing method automatically with a test that regularly walks the checkout to the payment step and compares the result with a saved baseline. Homepage or cart checks will not see it.

This is how the checkout test in IThandy Monitor works (Shop Pro plan, every hour):

  • Goes through cart, customer details, shipping and payment selection, and never places an order. No order or invoice appears in your store.
  • Checks carriers per country and payment methods per carrier, with test addresses in Poland, Germany, the UK, the US, Spain, Czechia, France, Italy and the Netherlands.
  • The first successful test becomes the baseline. If a carrier or payment method from the baseline disappears, I report it after 2 tests in a row (3 with randomly rotated products, because carriers depend on product size). One flaky gateway response does not wake you up.
  • Required methods (for example PayPal, locker delivery or shipping to Germany) are flagged separately. If one is missing, that is an outage straight away, confirmed by a second test.
  • Related changes are grouped: "Carrier DPD disappeared, and with it payment: cash on delivery" instead of two alerts.
  • A rename is not an outage. The same payment module or the same carrier under a new name updates the baseline. A new method is information, not an error. A deliberate removal can be marked as "intended change".

Coverage by platform: PrestaShop 1.6 to 9 fully, with a customer account and as a guest (PrestaShop checkout monitoring); WooCommerce fully as a guest through the Store API, never calling the order endpoint (WooCommerce checkout monitoring); Magento 2 fully on the Luma theme and up to the checkout page on Hyvä (Magento checkout monitoring); Shopify up to the cart. If your whole WooCommerce checkout is broken, see WooCommerce checkout not working.

Alerts arrive by email. Plans start at 12 EUR a month (Start), 35 EUR (Shop) and 85 EUR (Shop Pro), net, with yearly billing at 10 times the monthly price (plans from 12 EUR a month). Gaps like this appear most often before Black Friday and the holidays, when everyone updates modules and switches carriers; see my Black Friday monitoring checklist and holiday ecommerce monitoring.

Try it on your store: the 14-day free trial runs the Start plan and a store scan that detects your platform, cache and checkout type. For the details, see how it works.

Sources

FAQ

Frequently asked questions

Why is a payment method not showing at checkout?

Usually because the payment module is restricted by country, currency, customer group, carrier or order amount, and the shopper's cart or address falls outside those rules. After an update, a theme override or a plugin conflict can also hide it. Start with the module's restrictions in your admin, then check logs and the browser console on the checkout page.

Why does checkout say no shipping methods are available?

Shipping options depend on the cart and the address: weight, value, dimensions, shipping zone and carrier restrictions set on individual products. One bulky item can remove a carrier for the whole order. Reproduce the order with the same product and a real postcode in the shopper's country, not just a test product with your own address.

How do I test payment methods for customers in other countries?

Go through checkout with an address in each target country, because carriers and payment methods are calculated per zone and country. By hand that takes several minutes per country. IThandy Monitor does it automatically with test addresses in Poland, Germany, the UK, the US, Spain, Czechia, France, Italy and the Netherlands, without placing an order.

How do I tell an intended change from an outage?

Compare the current list of methods with a saved baseline from the last good test and with your change log. IThandy Monitor reports a missing method only after two tests in a row, treats a renamed method from the same module as a rename, and lets you mark a removal as intended so the same gap does not alert again.

Does a checkout test create orders in my store?

No. The test goes through cart, customer details, shipping and payment selection, then stops before the button that places the order. No order, invoice or stock reservation is created. A test customer account is created only with your consent, and on WooCommerce the test runs as a guest through the Store API.