OIDistributionCase 05

Two systems, one screen — approve, sort-to-zero, and the follow-ups send themselves.

The problem

A US distributor ran orders in one system and inventory in another, checking them side-by-side by hand, then manually approving, adjusting, and emailing clients and the warehouse.

Our approach

We built one portal that pulls from both systems using the client's own formulas, with approve / reject and sort-to-zero on every line. Approving an order auto-sends its follow-ups. If the warehouse can't fulfil — spoiled, broken, missing — it generates an insufficient-inventory sheet, and after a final sort-to-zero, sends two emails: one telling the client that item won't ship on this invoice, one telling the warehouse to ship the rest.

User journey
Orders system + Inventory system
Unified portal (their formulas)
Approve / sort-to-zero
Stock check
Auto follow-ups: client + warehouse
System architecture
Amazon Web Services
Sources
Orders API
Inventory API
poll + webhook
Sync
Lambda: synctheir formulas
DynamoDBreconciled state
single source of truth
Portal
React portalCloudFront + Cognito
Rules engine
approve / sort-to-zero
Decision
Stock check
In stock → fulfil
Short → insufficient-inventory.xlsx
branch on availability
Notify
Step Functions
SES → client
SES → warehouse
Scales viadual-system syncrule enginetransactional writesretry + dead-letter
Dual-system integrationCustom portalRule engineAutomated emailExcel export
2 systems → 1 screenReconciliation automatedSplit follow-ups, zero manual

Representative build — real project type and architecture, anonymised client, illustrative figures.

Want this for your stack?

I'll map your problem to an architecture like this — and prove it with an MVP before you pay.

Start a build →

Next: HealthcareMany EMRs, one pipeline