Trade customers each have their own negotiated pricing, and stock changes through the day. The old site showed neither, so every order arrived by phone to be checked.
Approach
Rather than query the ERP on every page view, we built a sync layer that keeps a read model warm and degrades to a cached figure when the ERP is slow. Pricing resolves per logged-in account at render time.
Result
Roughly two thirds of orders now come through the site without a phone call, and the pages stay fast at peak.