Troubleshooting
Start here when something is wrong. Find the symptom, and the second column says where to look rather than what to feel.
Check the webhook first. A surprising share of everything below is one disconnected webhook wearing different clothes. On the Stripe tab, press Verify connection now and wait for green before investigating anything else.
The quick table
| Symptom | Where to look |
|---|---|
| No emails arrive | Is the webhook connected? Then the Email delivery log on the Emails tab. If every row says Sent, it is your mail server, not the plugin. |
| Stock never decrements | The webhook. Nothing else decrements stock. Also check the product is set to Limited rather than Unlimited. |
| Discount code uses never count up | The webhook again. Uses are counted when payment lands. |
| Checkout fails with a message to the customer | Last checkout failure at the top of the Orders tab. It holds Stripe's actual error and the parameter it objected to. |
| Checkout refuses: the delivery zone "lists no countries" | The zone has priced postage but no countries ticked. Tick its countries on the Shipping tab; collection from that zone still works in the meantime. |
| Totals look wrong against Stripe's page | See below. This should be impossible, and when it is not the cause is usually currency. |
| No delivery option is selectable | See below. Four distinct causes. |
| Test orders still showing after going live | The Mode switch on the Stripe tab is probably still on Test. Otherwise press Refresh; the list caches for 60 seconds. |
| The inline basket icon is the wrong colour | It wears your Button colour by default. Add color="inherit" to the shortcode to take the surrounding text colour instead. |
| A basket icon in a WordPress menu does nothing | Classic menus do not run shortcodes in menu items. Use a builder header, a widget area or a block theme. |
| Start here says "of 5", not "of 4" | Basket placement is set to self-placed. Place [bangcart_cart] on a page, or switch back to Floating corner on the Design tab. |
| An amber box on a page saying "Bang! Cart: ..." | A shortcode that cannot work. Only you can see it; customers see nothing. It names the problem, usually a missing or mistyped product id. |
| Every Add to basket button says "Shop closed" | Shop status on the Settings tab. The switch is unticked. |
No delivery option is selectable
Four causes, each with its own message:
- Every zone is switched off. Nobody can check out at all, not even for collection. The plugin puts a red warning across your admin when this is true.
- The zone prices nothing. Every service is at 0, and remember a price of 0 means the service is not offered. If you meant free postage, use Free postage over a threshold instead.
- The basket is over the zone's maximum units. If the zone offers collection, the customer gets a note - your large-order message if you have written one - that the order is for collection, and can still buy. If it does not, they see your large-order message as a block.
- The zone is priced in a band mode and Bang! Cart Pro is not active. It shows NO POSTAGE, with a note that its pricing mode was set by an add-on that is not active. Every price is kept safe, and collection is still offered. Reactivate Pro, or open the zone and choose Flat rate or First item + each additional.
Totals that do not match
The browser never decides a price. One function prices a basket, and both the quote your customer sees and the payment Stripe takes call it, so the two cannot disagree about the arithmetic.
When the figures still look wrong, the causes are these:
- Currency. Prices are not converted anywhere. Your Stripe account must be set to the same currency as the shop, and Stripe products in another currency are skipped when you sync.
- A discount shown as a separate line. Discounts reach Stripe as a discount rather than as a lowered unit price, so Stripe's page shows the shelf price and then takes the discount off. The total is the same.
- A price typed into a page by hand. If a page shows a figure that no longer matches the Products tab, it was typed rather than pulled. Use
[bangcart_price]and it can never go stale again. - A basket that shows no total at all. That is the plugin refusing to show you a stale one. It means it could not reach your site to price the basket; close and reopen the basket to try again.
The webhook was working, and stopped
Three things do this:
- The signing secret was rotated in Stripe. Press Set up webhook automatically to capture the new one, or paste it by hand.
- Your site address changed. Stripe is still calling the old one. The plugin notices this specifically and puts a red warning in your admin naming both addresses.
- The URL is very slightly wrong. Stripe needs a match, and http against https or a stray www is enough to miss every time. A trailing slash is not: the plugin strips those from both addresses before comparing. Re-check only detects the near-miss and prints both addresses so you can see the difference.
The warnings the plugin will show you
Four notices can appear across your whole admin, and none of them is decorative.
| Notice | What it means |
|---|---|
| The shop is closed | Customers cannot buy anything. Deliberate if you meant it. |
| Every delivery zone is switched off | Nobody can check out, not even for collection. |
| Stripe is not yet telling this site when a payment succeeds | The webhook. Orders will be paid for, but no emails are sent and stock is not reduced. Can be hidden for a week if you are mid-setup. |
| This site's address changed | A moved site, or a staging copy of a live one. If it is staging, switch it to your test key so it cannot act on live payments. |
Clearing test data before you open
Clear test order data on the Stripe tab removes the posted flags and email ledger for test sessions, the delivery log, the test-mode takings total, and any stale checkout error. Nothing in Stripe is touched and live orders are untouched.
If the button is greyed out, there is genuinely nothing to clear.
Still stuck
Tell me what you expected and what happened instead, and if there is an error message, the exact words of it. The Email delivery log and the Last checkout failure card are usually the two most useful things to quote.
Still stuck?
Write to me and it is me who answers, not a ticket queue. Tell me what you expected and what happened instead.


