The order came in at 9am. The product page said two left. The warehouse had none, because the last two went out on yesterday's pick list and nobody told the store.
That isn't a warehouse problem or a website problem. It's the gap between them, and it's where most of the operational pain in an online business actually lives.
Two systems, one truth, and it's usually neither
Your storefront knows what customers see. Your warehouse knows what's on the shelf. Somewhere between them sits a sync, and how good that sync is decides whether you oversell, whether your team spends Monday reconciling by hand and whether the numbers in your reports mean anything at all.
Most stores start with a nightly export and grow out of it quickly. Once you have more than one sales channel or more than one location, the question stops being how often you sync and becomes which system is allowed to be right.
The bill arrives as cancelled orders, refunds and support tickets, then as reviews mentioning items that never shipped. Each one costs you more than the margin on the sale it came from.
Close the gap and the same catalog behaves differently: availability customers can trust, safety stock that means something, and counts your marketing team can promote against without checking first.
Four decisions do most of the work here, and none of them are about which platform you buy.
Pick the system of record for inventory, and let only one system hold it. Then set the direction of every flow: stock moves from warehouse to store, orders move from store to warehouse, and nothing writes in both directions without a reason you can explain out loud. Sync on events rather than on a schedule, so a pick, a receipt or a return changes availability in seconds instead of overnight. And design for failure, because your warehouse system will be unreachable at some point and the storefront still has to behave sensibly: reserve the stock, queue the update, retry it, and tell somebody when the queue stops draining. That last part is what separates an integration that survives peak season from one that breaks quietly on your busiest day.
Content sits on the same rails. Product copy, images, categories and landing pages belong in the CMS, while price and availability come from the systems that own them. Done that way, an editor can publish a campaign without touching stock data and without waiting on a developer.
Decide which system is allowed to be right
This is the plumbing we build
Storefronts on Shopify or Magento, content in Drupal, inventory in NetSuite, and the integration engineering that makes them agree. The interesting work is rarely inside any one system.
If your team reconciles stock by hand, or your product pages are confidently wrong more than once a week, the fix usually isn't a new platform. It's deciding where truth lives and building the flows that respect it.
That's the work: APIs and integrations between the systems you already run, and the reporting that tells you they disagree before your customers do.