Episode 1 Duration 1:36

Why did our orders stop when every system said it was running fine?

Your site wasn’t broken. It was built to pull prices and stock live from another system, usually the ERP or a supplier, and when that system went quiet there was no price, so no basket, so no checkout. The fix is to fetch that data on a schedule, store a copy your side, and agree how long it stays valid.

Read the full write-up

Transcript

Ever had your orders suddenly dry up when every single one of your own systems say things that are operating absolutely fine? There’s a decent chance there’s nothing wrong with your website at all and it isn’t broken.

Plenty of shops these days do something which on the surface seems very sensible. They pull stock and price information real-time from other systems to give customers the most up-to-date and accurate information possible.

If you trace it through for a minute, your system asks for a price from the third-party system which it can’t get. What does your customer see? If they can’t add to the basket they can’t check out. If they can’t check out they’re going to get frustrated and buy from a competitor. The name on the failure is yours.

So that’s why if any sites we build have any form of third-party dependency on them, we always take a moment to ask what should the customer see if that data isn’t available for any reason. There’s usually a bit of a pause while people think about it, but the fix is fairly old school and simple. You download the data you need on a schedule, you store it locally and you use that data to service your customers. You do give up a little bit of freshness, but you also get the added advantage that you can do some processing your site as well and enrich the data.

So the next time you talk to whoever runs your website, ask them: are there any third-party systems that our website depends on, and what happens if they’re not available for any reason? If they give you an answer straight away, great, they’ve thought about it. If there’s a bit of a pause, you might have just got ahead of something before your customers find out.

Frequently asked questions

Why can a website stop taking orders when nothing is down?

If add-to-basket waits on a live price or stock lookup from the ERP or a supplier, a slow or silent reply leaves no price. No price means no basket and no checkout, while every system reports it's running.

How do you stop an ERP outage taking down the checkout?

Fetch prices and stock on a schedule, store them in the website's own database and agree how long they stay valid. A circuit breaker and cached fallback then let live calls fail fast and serve the last good value.

How can I check whether my website is exposed?

List every external call made during a product view and during checkout. For each one, find out what the page does if the call fails outright, and what it does if the call takes ten seconds.