When an ERP and an online store are connected well, nobody notices. When they aren't, the symptoms show up everywhere: overselling, customers seeing the wrong contract price, orders that never reach the warehouse, and a staff member re-keying web orders every morning "just to be safe." These are the mistakes behind most of those problems. We've fixed each of them on Magento 2, Shopify, WooCommerce, and BigCommerce stores connected to NetSuite, Epicor Prophet 21, Business Central, Acumatica, and homegrown systems.
1. Not deciding which system owns each piece of data
Every field needs exactly one system that's the source of truth. Usually the ERP owns inventory, pricing, customers' credit terms, and order status, and the store owns marketing content, images, and SEO fields. When both systems can edit the same field, they overwrite each other. Write a one-page ownership table before anyone writes code.
2. Syncing inventory on a nightly batch
A nightly inventory file was fine in 2008. Today, a fast-selling SKU can sell out hours before the next sync. Push stock changes as they happen, or at least every few minutes for fast movers, and keep a safety buffer for items that also sell in-store or through other channels.
3. Treating B2B pricing like a simple price field
B2B pricing usually means customer-specific contract prices, price levels, quantity breaks, and promotions with start and end dates. Squeezing all of that into the store's native price field leads to customers seeing the wrong number. Either sync the full pricing structure into the platform's B2B features, or call the ERP's pricing engine live at cart and checkout.
4. No plan for when one system is down
ERPs go down for maintenance, and APIs time out. If your integration fails on the first error, orders get lost. Use a queue: the store accepts the order, the integration retries with backoff, and anything that still fails lands in an exception list someone actually watches. Build for the failures as carefully as for the normal path.
5. Duplicate orders from retries
The fix for #4 creates a new problem if you're careless: a retry after a timeout can create the same order twice. Every write to the ERP should carry an idempotency key, usually the web order number, so a second attempt updates the order instead of duplicating it.
6. Ignoring units of measure and product structure
The ERP sells by the case of 12, and the website sells "each." The ERP has a parent item with variants, and the store needs configurable products. Kits, bundles, and serialized items each need their own mapping. Get product structure right in a written mapping document before syncing a single SKU.
7. Forgetting about tax, shipping, and payment reconciliation
Orders flowing into the ERP also need tax lines that match what was charged, freight that maps to the right charge code, discounts allocated to lines, and payment transactions accounting can reconcile. If finance has to fix every web order by hand, the integration isn't finished yet.
8. Choosing the tool before mapping the process
iPaaS connectors work well for standard mappings between mainstream systems. They struggle with customer-specific pricing, multiple warehouses, legacy ERPs without connectors, or high volumes where per-transaction fees add up. Custom middleware costs more upfront and less to run. Map your actual order-to-cash process first, then pick the tool that fits it.
9. No monitoring or alerting
An integration that fails silently is worse than none, because everyone assumes it's working. At minimum, track how many orders are waiting to sync, how old the oldest one is, when inventory last updated, and the error rate. Alert a person when any of those cross a threshold.
10. Testing with ten clean orders
Real orders have long addresses, special characters, partial shipments, back-ordered lines, returns, cancellations, and customers with three ship-to locations. Test with a copy of real historical data, and run the new integration alongside the old process for a couple of weeks before you switch.
A quick integration health check
| Question | Healthy answer |
|---|---|
| How fresh is web inventory? | Minutes, not hours |
| Do B2B customers see contract prices? | Yes, verified per customer |
| What happens when the ERP is down? | Orders queue and retry automatically |
| Can a retry create a duplicate order? | No, writes are idempotent |
| Who is alerted when a sync fails? | A named person, within minutes |
| Does anyone re-key web orders? | No |
Typical cost: point-to-point integrations start around $5,000, and full middleware syncing products, inventory, pricing, orders, invoices, and customers typically runs $20,000–$75,000. For a real-world example, read about our WooCommerce, Magento, and Epicor Prophet 21 integration work. If your sync is failing any of the checks above, our ERP integration team can audit it, and we also work extensively with Business Central.