WooCommerce ERP Integration: Odoo vs NetSuite vs SAP Business One

A practical guide to connecting WooCommerce with Odoo, NetSuite or SAP Business One. What to sync, which system owns which data, and how to build it.
Dmytro Koval
CTO at Artilab

A WooCommerce ERP integration keeps products, stock, prices, customers, orders and invoices in sync between your store and your ERP, with one system clearly owning each type of data. For most stores the ERP owns products, stock and prices, and WooCommerce owns the order until it is handed over. How you build it (a connector plugin, middleware or custom code) depends less on the ERP brand and more on data volume, pricing complexity and how fast stock changes.

This guide covers the decisions we make on every ERP project, then how Odoo, NetSuite and SAP Business One differ in practice.

Need guidance? Book a 30-minute consultation

What data should sync between WooCommerce and an ERP?

Start by deciding the source of truth for each data type. Two systems both allowed to edit the same field is the most common cause of broken integrations.

DataUsual source of truthDirectionTypical frequency
Products (SKU, name, attributes, weight)ERPERP to storeOn change, plus nightly check
Marketing content (descriptions, images, SEO)WooCommerceStays in storeNot synced
Stock levelsERP or WMSERP to storeNear real time for fast sellers
List prices and tiersERPERP to storeOn change
Customer-specific pricesERPERP to store, or live lookupOn change or per request
B2B customers and credit limitsERPERP to storeOn change
Web customers (B2C)WooCommerceStore to ERPWith the first order
OrdersWooCommerceStore to ERPImmediately after payment
Order status and trackingERP or WMSERP to storeOn change
Invoices and credit notesERPERP to store (PDF or link)On creation
RefundsDepends on processAgree one directionOn creation

Two rules save a lot of pain later:

  • SKU is the key. Every product and variation needs a unique SKU that matches the ERP item code exactly. Fix duplicates before writing any code.
  • Content stays in WooCommerce. ERPs are bad at rich descriptions and images. Sync the facts, write the marketing copy in the store.

Should sync be real-time or scheduled?

Neither alone. Reliable integrations combine events for speed with scheduled jobs for correctness.

Real-time (event-driven). WooCommerce can send webhooks on topics like order.created, order.updated and product.updated, signed with an HMAC-SHA256 hash in the X-WC-Webhook-Signature header. Good for pushing paid orders to the ERP within seconds.

The limits matter. WooCommerce disables a webhook after 5 consecutive failed deliveries, and the documentation describes no replay of missed events. Treat webhooks as a fast trigger, not a guarantee: if the ERP or middleware is down for an hour, orders can be skipped until someone notices.

Scheduled (batch). A job runs every few minutes or hours and pulls changes since the last run. Slower, but it catches everything. Note that WooCommerce REST batch endpoints handle up to 100 objects per request by default, so a 50,000 SKU price update is 500 calls and needs a queue.

What we usually build:

  1. Orders go to the ERP on payment through a queue, with retries.
  2. Stock and price changes come from the ERP as deltas every few minutes.
  3. A nightly reconciliation job compares both sides and fixes drift.
  4. Every failed record is logged and alerts a person, not just a log file.

Connector plugin, middleware or custom integration?

ApproachHow it worksGood forWatch out for
Connector plugin or ERP appA ready product that maps standard fieldsStandard catalogs, standard prices, low to medium volumeFixed mapping, limited B2B logic, dependency on one vendor's updates
Middleware (iPaaS)A hosted platform with flows between systemsSeveral systems (ERP, WMS, marketplaces), IT teams that want visibilitySubscription cost, still needs someone to design and maintain flows
Custom integrationCode written for your data and rulesCustomer-specific pricing, large catalogs, unusual processesHigher upfront cost, needs documentation and an owner

In our projects we often see the same path: a store starts with a connector, grows into B2B pricing or a second warehouse, and the connector becomes the bottleneck. If you already know your pricing is complex, plan for custom or middleware from the start.

Odoo vs NetSuite vs SAP Business One: how integration differs

CriterionOdooNetSuiteSAP Business One
APIJSON-2 API in Odoo 19; XML-RPC and JSON-RPC deprecatedNetSuite web servicesService Layer (REST, OData, JSON)
Ready connectorsMany third-party modules on the Odoo Apps storeOracle's NetSuite Connector, Celigo, marketplace pluginsMostly SAP partner add-ons and middleware
Plan or hosting catchNeeds the Custom plan for external API or custom modulesLicence and connector subscriptionService Layer setup on your SAP server
Typical fitSMEs wanting one system for sales, stock and accountingMid-market and multi-entity companiesEstablished SMEs with SAP partners

Odoo

Odoo has its own eCommerce app, so WooCommerce plus Odoo usually means the store is too important or too custom to replace. Two things to check before you start:

  • Plan. Odoo's pricing page lists "External API" as a feature of the Custom plan, and the Standard plan runs on Odoo Online without custom modules. A WooCommerce connector module from the Odoo Apps store or an external sync both need the Custom plan in practice.
  • API version. The XML-RPC and JSON-RPC endpoints many older connectors use are scheduled for removal in Odoo 22 (fall 2028). New integrations should use the JSON-2 API. The Odoo 19 documentation also says API keys cannot be created with a lifetime longer than three months, so plan key rotation.

NetSuite

NetSuite has the most ready-made options. Oracle's own NetSuite Connector lists WooCommerce as a supported storefront. The Celigo WooCommerce to NetSuite template covers customers, products, orders, order status and refunds. On the WooCommerce side, the NetSuite Integration for WooCommerce extension costs $399 per year and syncs orders, inventory, price levels, customers and fulfillments.

Check the details. For example, the Celigo template description does not include stock level sync, so confirm which flows you get before you buy.

SAP Business One

SAP B1 integrations normally run through the Service Layer, a REST API on HTTP and OData with JSON, available on SUSE Linux and on Windows since version 10.0 PL01. Pricing is where SAP B1 projects get complex: price lists, special prices for business partners, period and volume discounts all combine. Decide early whether WooCommerce stores the final prices or asks SAP for them.

How do you sync customer-specific prices?

This is the hardest part of B2B ERP work. There are two patterns:

  • Pre-synced prices. The ERP pushes each customer's price list to WooCommerce, stored per customer or group. Fast storefront, but large matrices (10,000 SKUs times 500 customers) need careful storage and delta updates.
  • Live price lookup. WooCommerce asks the ERP for the price when a logged-in buyer views the catalog or cart. Always correct, but slower and dependent on ERP uptime, so it needs caching and a fallback price.

We usually pre-sync and cache, and use live lookup only at checkout for final confirmation when the ERP rules are too complex to replicate.

How long does a WooCommerce ERP integration take?

It depends on the number of flows and on how clean the ERP data is. As a rough guide:

  • One flow with a ready connector (for example stock from ERP to store): a few days of setup and a week or two of testing.
  • Standard two-way sync (products, stock, prices, orders, status): usually 4-8 weeks including mapping, staging tests and a pilot period.
  • B2B with customer-specific pricing, several warehouses or middleware: often 2-3 months.

The biggest delays are rarely code. They come from duplicate SKUs, missing tax codes, unclear refund processes and waiting for ERP consultants to open API access. Start those conversations in week one.

Integration checklist before launch

  • Every SKU in WooCommerce matches one ERP item, with no duplicates.
  • Taxes and rounding match between systems on the same test orders.
  • Guest orders map to a defined ERP customer (a web customer account or a new record).
  • Order edits, cancellations, partial shipments and refunds each have an agreed flow.
  • Your connector is compatible with High-Performance Order Storage, which is on by default for new stores since WooCommerce 8.2.
  • Failed syncs raise an alert, and someone owns fixing them.
  • A nightly reconciliation compares stock and order counts.
  • The integration is tested on staging with a copy of real data, not ten sample products.

When to get help

If a connector covers your data and processes out of the box, start there and test it on staging. If you have customer-specific pricing, several warehouses or an ERP without a solid connector, get the data flows designed first. Our WooCommerce ERP integration team starts with a field mapping and a fixed price, and for B2B stores we often pair it with B2B and wholesale work.

Leave a comment

Your email is not published. Comments appear after moderation.

Need WooCommerce developers?

Hire WooCommerce developers who work in European hours, with a 2-week trial.

Hire developers
Featured Story
Can You Sell Inside ChatGPT With WooCommerce? What Works in 2026
  • Platform & Business Strategy

Can You Sell Inside ChatGPT With WooCommerce? What Works in 2026

ChatGPT Instant Checkout came and went. Here is what a…

WooCommerce MCP and Abilities Explained for Store Owners
  • WooCommerce Development

WooCommerce MCP and Abilities Explained for Store Owners

WooCommerce MCP lets AI assistants such as Claude or ChatGPT…

EU AI Act Chatbot Rules for WooCommerce Stores: A Practical Checklist
  • WooCommerce Development

EU AI Act Chatbot Rules for WooCommerce Stores: A Practical Checklist

If your WooCommerce store runs an AI chatbot for EU…

5.0
The team provided professional assistance, overcoming any technical difficulties. They responded quickly, sorted out all my requests, and ensured the stable operation of my site.
Alex Blitshtein
Marketing Manager of Tarya Fintech

Is your store healthy?

Get a free express health check: speed, updates and security flags within 2 business days.

support Get a free health check