How to Integrate ERP, CRM and E-commerce Systems Without Creating Three Versions of the Truth
A practical method for connecting an online store, a CRM and an ERP: deciding which system owns each record, what should flow where, the integration options, and how to handle failures and reconciliation.
One order, three systemsFIG.01
Short answer
To integrate an ERP, a CRM and an online store, first decide which system owns each type of record: usually the ERP for products, prices, stock and invoices, the store for web orders, and the CRM for leads and customer conversations. Then connect them so each record is created in one place and copied to the others, with failed transfers queued, retried and reconciled daily.
Key takeaways
- Decide ownership before writing any integration: one system is the master for each kind of record.
- Stock should flow from the ERP to the store; orders should flow from the store to the ERP.
- Choose between a ready-made connector, a middleware tool and a custom integration by how unusual your process is.
- Every transfer needs an answer to the question: what happens when it fails?
- A daily reconciliation report catches the differences that integrations miss.
A business starts selling online, and for a while someone copies each web order into the stock spreadsheet and the accounting package. Then orders double. Stock shown on the site is wrong by lunchtime, a customer is charged for something that sold out yesterday, and the sales team has no idea a regular buyer just placed three orders on the website. The answer is integration. Done carelessly, it produces a different problem: three systems, each confidently holding a different version of the same order.
This guide sets out the method we use. It applies whether the store runs on Shopify, WooCommerce or custom code, and whether the ERP and CRM are packaged products or built for you.
Step 1: decide which system owns each record
Most integration problems are ownership problems. If a price can be edited in both the store and the ERP, sooner or later the two will disagree and nobody will know which is right. For each kind of record, name one system as the master. Changes are made there and copied outwards, never the other way.
| Record | Master system | Copied to |
|---|---|---|
| Products and descriptions | ERP for codes and cost; store for web copy and images | Each takes the other's part |
| Prices | ERP | Store, CRM |
| Stock levels | ERP | Store, and CRM as read-only |
| Web orders | Store, at the moment of purchase | ERP, which then owns fulfilment |
| Customers | CRM for contacts and history; ERP for credit terms | Store accounts linked by email or phone |
| Invoices and payments | ERP | Store and CRM show status |
| Leads and conversations | CRM | Not needed elsewhere |
Step 2: map what flows, and in which direction
- Stock: ERP to store. Updated on every stock movement or every few minutes, with a safety buffer on fast-moving items so the last unit is not sold twice.
- Orders: store to ERP. Each paid or cash-on-delivery order creates a sales order in the ERP, reserving stock immediately.
- Fulfilment: ERP to store. When the order is packed and handed to the courier, the tracking number goes back to the store, which notifies the customer.
- Customers: store to CRM. A new buyer becomes a contact, and each order is added to their history, so sales and support can see it.
- Returns and refunds: both ways. A return approved in the store must put stock back and raise a credit note in the ERP.
- Payments: gateway or courier to ERP. Card settlements and cash-on-delivery remittances are matched to invoices, which is where the money is actually reconciled.
Decide for each flow whether it must be immediate or can run on a schedule. Stock and orders usually need to move within minutes. A nightly run is fine for product descriptions and accounting summaries.
Step 3: choose how to connect
| Ready-made connector | Middleware tool | Custom integration | |
|---|---|---|---|
| What it is | An app or plugin linking two specific products | A workflow tool such as Zapier or Make joining many apps | Code written against each system's API |
| Best when | Both products are common and your process is standard | Volumes are low and flows are simple | The process is unusual, volumes are high, or a system has no connector |
| Setup | Hours to days | Days | Weeks |
| Ongoing cost | Monthly subscription | Monthly, rising with volume | Hosting and maintenance |
| Limits | Does only what its maker built | Hard to handle errors and complex rules | Needs a developer to change |
Start with a connector if a good one exists for your two products, and check its reviews for the exact flows you need, particularly multi-location stock, bundles, partial shipments and refunds. Move to a custom integration when you find yourself working around the connector more than using it. Shopify, WooCommerce or custom covers how the platform affects this choice.
Step 4: plan for failure
Every integration fails sometimes. An API is down for ten minutes, a product code exists in the store and not in the ERP, a customer's address has a character the other system rejects. What separates a reliable integration from a fragile one is what happens next.
- Queue and retry. A transfer that fails is kept and tried again, not dropped.
- No duplicates. Each order carries a unique reference, so sending it twice creates one order, not two.
- Alert a person. After repeated failures, someone is told, with the reason in plain words.
- An error screen. Staff can see what is stuck, fix the cause, such as a missing product code, and resend.
- A log. Every transfer is recorded with its time and result, so a dispute can be traced.
Step 5: reconcile every day
Even a well-built integration can miss something. A short daily report that compares the systems catches it within a day instead of at month end: the count and value of orders in the store against sales orders in the ERP, stock quantities for a sample of products, and payments received against invoices. The same principle for the ledger is explained in integrating accounting software with an ERP.
A sensible order of work
Integrating ERP, CRM and e-commerce in stages
Clean the product list
One code per product, identical in every system. Nothing else works until this is true.
Sync stock from the ERP to the store
This stops overselling, which is usually the most visible problem.
Send orders from the store to the ERP
Orders stop being retyped, and stock is reserved the moment an order is placed.
Return fulfilment and tracking to the store
Customers get updates without anyone sending them by hand.
Connect customers and orders to the CRM
Sales and support see the full history of each buyer.
Automate payment reconciliation
Gateway settlements and courier remittances are matched to invoices.
Add the daily reconciliation report
And review it every morning for the first month.
Mistakes that cause the most trouble
- Allowing prices or stock to be edited in two systems.
- Matching products by name instead of by code.
- Syncing stock once an hour on products that sell every few minutes.
- Forgetting returns, cancellations and partial shipments until after launch.
- No error screen, so failed orders are discovered when a customer complains.
- Testing only with simple orders. Test with discounts, bundles, multiple warehouses and refunds.
We build these integrations as part of our ERP and CRM and e-commerce work, and for existing systems that were never connected. Tell us which systems you run and we will map who should own what before anyone writes code.
Frequently asked questions
Should the ERP or the online store hold the stock?
The ERP. It sees every stock movement, including purchases, branch transfers and shop sales, while the store only sees web orders. The store should display the ERP's figure, updated every few minutes.
Can Shopify or WooCommerce be integrated with an ERP?
Yes. Both have APIs and webhooks, and connectors exist for many ERP products. Where no connector fits the process, a custom integration is built against the two APIs.
Do I need a CRM if I already have an ERP and a store?
Not always. If you sell mainly to consumers through the website, the store and ERP may be enough. A CRM earns its place when a sales team follows up enquiries, quotations or wholesale customers.
How long does an ERP and e-commerce integration take?
A ready-made connector can be working in days. A custom integration covering stock, orders, fulfilment and payments usually takes several weeks, delivered one flow at a time.
What is the difference between real-time and scheduled sync?
Real-time sync sends each change as it happens, which suits stock and orders. Scheduled sync sends changes in batches at set times, which is simpler and adequate for descriptions, prices that rarely change and accounting summaries.
/Services in this article
/ERP & CRM Systems by country
Keep reading
All articlesERP vs CRM: The Differences, What Each Costs and Which to Get First
An ERP runs the operation and a CRM runs the customer relationship. What each one does, where they overlap, what drives the cost of each, and how to decide which your business needs first.
CRM Developers in Pakistan: Choosing One by City
How to choose a CRM developer in Karachi, Lahore or Islamabad — what a CRM has to do for each city's kind of sales team, the questions that expose a developer who has never built one, and how to run the project from another city.
Manual Systems vs ERP: What Actually Changes in a Working Day
A side-by-side look at five everyday workflows — sales orders, stock, invoicing, month-end and customer queries — run manually and run on a system, including what an ERP does not fix.
CRM for Pakistani Sales Teams: When WhatsApp Stops Being Enough
Why sales run entirely on WhatsApp and notebooks leaks revenue as a team grows, and what a CRM has to do before a salesperson will actually use it.



