Contents
Connecting an online store to an ERP means syncing orders, stock, prices and customers automatically so nobody re-enters data. An off-the-shelf connector is enough when your flows are standard; a custom connector usually costs $6,800 to $22,400 (€6,000–€20,000)excl. VAT when your rules go beyond that.
An online store and an ERP that do not talk to each other means a team re-entering orders, wrong stock levels on the site and late invoices. Connecting them is not hard in itself: what takes work is your business rules. Here is how I scope this kind of connection, with technical reference points checked against the vendors’ documentation in October 2026.
The flows to sync
Before any question of tooling, list the flows and decide, for each one, which system is the reference.
| Flow | Usual direction | Owner system | Watch out for |
|---|---|---|---|
| Catalog and product pages | ERP to store | ERP (or a product information tool) | Marketing copy often stays on the store side |
| Prices and discounts | ERP to store | ERP | Customer or group pricing in B2B |
| Stock | ERP to store | ERP | Update frequency, reserved stock |
| Orders | Store to ERP | Store at creation, ERP afterward | Handling cancellations and changes |
| Customers | Store to ERP | Depends | Duplicates between web accounts and existing customers |
| Shipping and tracking | ERP to store | ERP or logistics software | Tracking number passed on to the customer |
| Invoices and credit notes | ERP to store | ERP | Made available in the customer account |
Once filled in with your answers, this table is already half of the requirements document.
What the platforms provide
The two most common platforms offer what you need for a clean connection, with a few constraints worth knowing.
- Shopify: the REST Admin API documentation says it has been a legacy API since October 1, 2024, and that new public apps must use the GraphQL Admin API exclusively since April 1, 2025. New connectors are therefore built on GraphQL. Shopify also sends webhooks on each event (new order, update).
- WooCommerce: the REST API is enabled with read, write or read/write keys. Webhooks cover orders, products, customers and coupons, and are disabled automatically after more than five consecutive delivery failures, so your connector has to respond reliably.
On the ERP side, it all depends on the product: Odoo documents a public API (see connecting an app to Odoo), while others rely on licensed APIs, libraries to install or file exchanges.
Off-the-shelf or custom connector
| Option | When to choose it | Cost |
|---|---|---|
| Off-the-shelf connector | Standard flows, a single store, simple catalog | The connector vendor’s subscription, plus setup |
| Off-the-shelf connector + targeted development | One or two specific rules (B2B pricing, kits) | Connector + development on quote (or hourly, $170 (€150)excl. VAT) |
| Custom connector | Several stores or marketplaces, complex rules, ERP with limited openness | $6,800 to $22,400 (€6,000–€20,000)excl. VAT, 1 to 3 months |
| Custom back office between store and ERP | Picking, returns, pricing and reporting in one tool | $16,800 (€15,000)excl. VAT and up, depending on scope |
The “connection to other tools” building block in my pricing is $2,300 (€2,000)excl. VAT; a full connector combines several of them, plus data migration and an exchange dashboard. For your case, the estimator gives you a range in one minute.
Rules for a reliable connector
- Idempotency. The same order received twice must only be created once in the ERP. Webhooks can arrive twice or out of order.
- A queue. If the ERP does not respond, the order waits and goes through later, with no human intervention.
- An exchange dashboard. The team sees what went through, what failed and why, without opening a technical log.
- Respecting limits. APIs cap the number of calls. A catalog import has to be spread out, not sent in one block.
- Initial alignment. Before syncing, product and customer references are aligned on both sides. This is often the longest step.
When this is not the right approach
If you handle a few orders a day with a stable catalog, a well-configured off-the-shelf connector does the job for a modest subscription. Custom work is not justified.
Likewise, if your ERP is at the end of its life, connecting the store to a system you will replace within a year is a poor investment. Deal with the ERP question first: the page ERP too heavy: building only the modules you need can help.
How the project works
- A 30-minute call to understand your tools, volumes and pain points.
- Scoping (1 to 2 weeks): flow table, rules, choice between connector and custom, fixed quote.
- Migration and alignment of product and customer references.
- Development in batches: orders first, then stock, prices, invoices.
- Gradual go-live, with a period where both circuits run in parallel.
For the store side, see also connecting Shopify or WooCommerce to your internal tools. Rates and terms are on the pricing page.
Frequently asked questions
How often should stock be synced?
It depends on how fast products move. For fast sellers or limited quantities, near-instant updates on every movement prevent overselling. For a stable catalog, syncing every few minutes is often enough. We set this during scoping, product by product if needed.
Which system should own prices: the store or the ERP?
Usually the ERP, because it holds price lists, discounts and accounting. The store displays what the ERP sends. Site-specific promotions can stay on the store side, as long as the rule is written down clearly.
What happens if the ERP is down?
A well-designed connector queues orders and sends them as soon as the ERP responds. No order should be lost, and an alert warns the team if the delay goes past a defined threshold.
Can an off-the-shelf connector be extended with custom code?
Yes, and it is often the best compromise: the connector handles the standard flows, and targeted development deals with the special rule (B2B pricing, batches, kits). You just need to check that the connector lets you take control of that data.