ERP integrations for Magento: build vs buy after 12 implementations
Across the 500+ ecommerce stores we have shipped since 2019, we have integrated Magento with twelve different ERP systems including NetSuite, SAP Business One, Microsoft Dynamics 365 Business Central, Sage 200, Odoo, a couple of custom in-house ERPs, and a handful of legacy systems with names you would not recognize. We were paid to choose build versus buy on each one. After all twelve, our answer is consistent: custom wins for most stores, with three specific exceptions where off-the-shelf connectors are the right call.
This post covers when build wins, when buy wins, and how to scope the decision before you commit to either.
Why off-the-shelf connectors usually disappoint
There are dozens of pre-built Magento-to-ERP connectors on the market. The pitch is consistent: faster time to live, no engineering investment, vendor handles compatibility forever. The reality on real engagements is consistent too: the connector covers 70 percent of your requirements and the remaining 30 percent costs more in workarounds and custom extensions than building from scratch would have.
The 30 percent gap usually shows up in:
- Custom fields the connector does not map. Every store has product attributes, customer attributes, or order metadata the connector does not know about. Mapping them requires extending the connector, which means hooking into the connector's plugin system, which means the connector vendor's support tells you that customizations are not covered.
- Bidirectional sync conflicts. Most connectors handle one direction well (ERP to Magento) and the other direction poorly (Magento back to ERP). Stock updates from the warehouse, order status updates from fulfillment, customer profile changes initiated in Magento, all become edge cases.
- Error recovery and retry semantics. Stock-failed syncs, transient network errors, partial batch failures. The default behavior is usually retry-then-give-up with no audit trail. For ERP integrations where a missed sync means an overselling incident, that is unacceptable.
Custom integration code, written for your specific data model and your specific failure modes, avoids these problems by being purpose-built. The downside is that you carry it forever.
The four problems custom solves
When we recommend building over buying, the four problems that drive the recommendation are:
Custom field mapping that touches more than five fields. Five or fewer, a connector with a UI mapping screen handles it. More than five, you are configuring more in the connector UI than you would write in custom code, and the UI configuration is harder to version control.
Bidirectional sync with conflict resolution. Custom code lets you define the conflict-resolution rules explicitly. Off-the-shelf connectors usually pick "last writer wins" which is wrong for most real conflicts.
High volume. Past 50,000 SKUs syncing daily or 1,000 orders per hour, most connectors hit their architectural limits. Custom code can be batched, queued, and parallelized appropriately for the load.
Real-time inventory requirements. Most connectors are batch-mode (5 to 30 minute sync intervals). If your store needs sub-minute stock accuracy to avoid overselling, custom WebSocket or webhook architecture is the only path.
The three cases where buy wins
For balance, the cases where we have recommended a customer buy rather than build:
NetSuite integration with a SuiteApp. NetSuite's own SuiteApp marketplace has Magento connectors built by partners that know NetSuite better than we do. Three of our twelve engagements used a SuiteApp because the customer was already SuiteApp-heavy on the rest of their integrations. Total cost of ownership ended up lower despite the recurring SuiteApp fees.
Odoo integration where the customer was running stock Odoo. The official Odoo-Magento connector handles standard Odoo deployments cleanly. Where customers had heavily customized their Odoo, we built custom; where Odoo was stock, the connector was fine.
Greenfield store with a simple ERP and tight timeline. If you have a new Magento store, a small SKU catalog, and four-week launch timeline, a connector buys you time even if you later replace it with custom. We have shipped this pattern twice; both customers later moved to custom code in year two.
Real timeline and cost breakdown
For a mid-market Magento store integrating with a complex ERP:
Buy (connector approach). 2 to 4 weeks to live. Connector cost £2k to £15k upfront plus £200 to £2k per month subscription. Customization work to cover the 30 percent gap typically £8k to £25k. Total first-year cost: £15k to £60k. Maintenance is shared between you and the connector vendor.
Build (custom approach). 6 to 12 weeks to live. Upfront engineering cost £15k to £50k depending on complexity. Maintenance burden is fully yours, typically 1 to 2 days per quarter for compatibility checks. Total first-year cost: £18k to £65k.
The cost ranges overlap. The build option starts higher and stays steadier. The buy option starts lower and grows as you add customizations or change connectors.
What we warn against
Two patterns that have caused customer pain we would not repeat:
Replacing one connector with another mid-engagement. Customers who hit the limits of connector A and switched to connector B mid-project always overran budget. If a connector is not working in week 4, the next move is custom, not another connector.
Building "platform-agnostic" custom integrations. Customers who insisted on writing the integration to be reusable across hypothetical future ERPs always over-engineered. Build for the one ERP you have. If you change ERP later, rewrite.
Decision framework
The shortest decision framework we have found: count the fields you need to map. If it is under five custom fields, you are within connector territory. If it is over ten, you should be building custom. Five to ten is the gray zone where it depends on the ERP's API quality and your team's PHP capacity.
Related
- Magento development cost guide covers what custom integration work actually costs.
- eTechFlow services page covers the integration engagements we have shipped.