Most failed ERP integrations we are asked to rescue have working code. What they lack is agreement: the storefront team and the SAP team each made reasonable assumptions about the same field, and nobody wrote them down.
What goes in the contract
For every entity that crosses the boundary — orders, customers, stock, prices, invoices — the contract lists:
- Each field, its source system and its format
- Whether it is required, and what happens when it is missing
- Which side is the source of truth when the two disagree
- Expected volumes and latency
- What happens when either system is unavailable, and who is alerted
Why it works
The contract moves the arguments to the start of the project, when they are cheap. Once the SAP team has signed it, the build implements a document both sides already agreed to — and when something does go wrong in production, there is a single place to check what should have happened.
It typically takes two to three weeks. It is the part of the project we would cut last.