The Problem
The retailer had operated the same ASP.NET storefront since 2014. It worked well enough when the catalog was small and most customers were on desktop, but the business had grown and the technology had not. Page loads regularly exceeded 8 seconds on a mobile connection. The mobile conversion rate was a fraction of their desktop rate — and below any reasonable industry benchmark.
Inventory management was the deeper problem. The retailer worked with 12 drop-ship suppliers, each with different data formats: some sent CSV exports by FTP, some had REST APIs, one still used EDI. Inventory levels were batched to the storefront nightly. A product that sold out at a supplier at 9 AM would remain available for purchase on the website until the following morning's sync — and those oversells generated refunds, customer complaints, and manual reconciliation work.
Every attempt to solve the problem with Shopify plugins had failed: the catalog was too large, the supplier data was too varied, and the business rules for routing orders to the right supplier (based on stock, location, and margin) were too specific for any off-the-shelf tool.
Architecture
We migrated the storefront to Shopify Plus with a custom Liquid theme built around the retailer's catalog structure. The visual migration preserved all product hierarchy, filtering, and merchandising logic from the original site.
The core of the project was a custom Node.js middleware service that managed the integration layer between all 12 suppliers and Shopify. Each supplier feed type was handled by a dedicated adapter — CSV parsers, REST clients, and an EDI processor — that normalized inventory data into a common format and pushed updates to Shopify via the Admin API. Updates ran on configurable schedules (every 15 minutes for high-velocity suppliers, every hour for slow-moving ones) rather than nightly batches.
Order routing used AWS EventBridge to trigger a Lambda function when a new order arrived. The function evaluated each line item against current supplier stock, location, and margin rules, selected the fulfillment source, and sent the order to the appropriate supplier's system. Fulfillment confirmations and tracking numbers flowed back via webhooks and were pushed to Shopify automatically.
Technologies
Business Impact
- Page load time reduced from 8.2s to 2.4s — a 3× improvement that moved the site into acceptable performance ranges for mobile.
- 28% increase in mobile conversion rate within the first 90 days post-launch.
- Inventory sync moved from 24-hour batches to near-real-time — most suppliers updated within 15 minutes of a stock change.
- Zero oversell incidents in the six months following launch, compared to a recurring daily problem on the old system.
- Adding a new supplier now takes hours instead of weeks — each new supplier gets an adapter configuration, not a custom integration project.