Odoo WooCommerce integration that keeps orders and stock straight.
Connecting WooCommerce to Odoo is the easy part. Keeping the two in agreement, order after order, is the job.
Parameter runs WordPress sites and Odoo systems, so one team owns the store, the ERP, and the sync between them. We decide which system owns each record, pick an Odoo WooCommerce connector or build the sync, and test it on staging before it touches a real order.
- One team for both systems
- Staging on both sides
- Fixed-scope quote
Decide which system owns each record.
A WooCommerce ERP integration lives or dies on this table. When both systems can change the same field, the last one to sync wins, and nobody chose that.
| Record | Owner | Why |
|---|---|---|
| Products and prices | Odoo | One catalog and one price list. Photos, long descriptions, and SEO copy can stay in WooCommerce. |
| Stock levels | Odoo | Odoo sees purchase receipts, returns, and every other sales channel. The store only sees its own orders. |
| Orders and payments | WooCommerce | The store takes the order and the payment. Odoo receives it, fulfils it, and invoices it. |
| Customers | WooCommerce creates, Odoo keeps | Checkout creates the customer. Odoo holds the account, the terms, and the history. |
| Shipping status and tracking | Odoo | Shipped means shipped in Odoo. The store passes it on to the customer. |
| Tax | WooCommerce | The customer has already paid a tax amount at checkout. Odoo should record that amount, not recalculate it. |
| Refunds | One system, your choice | Start every refund in the same place and let the other system record it. Two starting points mean refunds that don't match. |
This is a default, not a rule. A store that sells on account, or ships from several warehouses, may flip a row. Whatever you choose gets written down before any sync is built.
An Odoo WooCommerce connector, a custom sync, or one platform.
Odoo documents its own connectors for Amazon, Shopee, Lazada, and TikTok Shop. WooCommerce is not on that list, so the link comes from a third-party app or a custom build.
A connector app
A third-party module installed in Odoo. Odoo's app store returns 159 results for WooCommerce, paid and free. Good for standard orders, products, and stock. You depend on its vendor at every Odoo upgrade.
A custom sync
Built for your rules, through the WooCommerce REST API and Odoo's external API. Worth it for bundles, B2B pricing, several warehouses, or subscriptions. You own the code, and it has to be carried through upgrades on both sides.
One platform
Move the store into Odoo eCommerce and there is nothing left to sync. Right for a simple catalog. Wrong for a content-heavy site that depends on WordPress plugins and design freedom.
| Connector app | Custom sync | |
|---|---|---|
| Odoo plan | Custom | Custom |
| Odoo hosting | Odoo.sh or your own server | Any, including Odoo Online, when the sync runs outside Odoo |
| Who maintains it | The app's vendor, plus whoever installs its updates | Whoever built it |
| At an Odoo upgrade | Wait for the vendor's release for your version | Port it and retest it |
| Fits | Standard orders, products, customers, and stock | Rules a packaged app does not cover |
Odoo makes its external API available on the Custom plan only, and third-party apps that contain code cannot run on Odoo Online. Sources: Odoo documentation (external API, Sales connectors), the Odoo Apps FAQ, and a search for WooCommerce on apps.odoo.com, all checked October 2, 2026. What the Custom plan costs is in the Odoo pricing guide.
This is where a WooCommerce Odoo integration usually breaks.
Most setups look fine until a sale weekend. These are the failures we plan for before launch.
The webhook turns itself off
WooCommerce switches a webhook off after more than five failed deliveries in a row. The store keeps taking orders, and none of them reach Odoo until someone turns it back on.
Stock that was true a minute ago
A sync that runs on a schedule is always a little behind. That is fine on a quiet Tuesday and a problem when two channels sell the last unit.
Tax calculated twice
Both systems can calculate tax. When both do, totals differ by a cent and invoices stop matching payments. One system calculates. The other records.
Orders that are not tidy
The happy path is one order, one payment, one shipment. Real orders get edited, split, part-refunded, and cancelled after picking has started. Each case needs a rule before launch.
Products that do not match
Products are usually matched by SKU. A blank or duplicated SKU on either side means a duplicate product, or an order that will not import.
An API with an end date
Odoo has deprecated its older XML-RPC and JSON-RPC APIs and plans to remove them in Odoo 22, in fall 2028. A connector built on them has a deadline. Ask before you buy.
Two vendors, no owner
On paper, the WordPress agency owns the store and the Odoo partner owns the ERP. In reality, the sync between them belongs to nobody, and that is where it fails.
Sources: WooCommerce documentation, “Webhooks”, and Odoo documentation, “External RPC API”, checked October 2, 2026.
How we connect WooCommerce and Odoo.
The same discipline on both sides: staging, a written scope, tests for the cases that go wrong, and documents you can read without us in the room.
-
Start with the Assessment
A first conversation, then a written Preliminary Scope within 5 business days of it. The Scope says which system owns each record, which route fits, and what it involves.
-
Fixed scope, fixed quote
You approve a written scope and price before work starts. If the scope changes, the change is scoped and priced, not absorbed quietly.
-
Staging on both sides
A staging copy of the store talks to a staging copy of your Odoo database. Test orders never touch production stock or real customers.
-
Test the untidy orders
Partial shipments, refunds, cancellations, out-of-stock items, tax-exempt customers, and a sync that fails halfway through.
-
Launch with a way to check
The sync ships with a failure alert and a reconciliation report that compares orders on both sides, so a missed order is found the same day.
-
Hand over the documents
You get the mapping, the rules for each exception, and a plain-English description of what runs where. Custom code lives in a repository you own.
Both halves of the job, running today.
We have connected WooCommerce to Odoo before. That store is no longer online, so here is each half of the work as it runs now.
A WooCommerce store for a cigar maker
Cremo Cigars: retail and subscriptions on WooCommerce, built by us on WordPress.
Read the case studyClient stores and shipping for a Jacksonville printer
Wells & Drew: per-firm client stores, approval routing, and ShipStation shipping, built on Odoo and run by us.
Read the case studyPaid orders to print jobs
It Takes Two: a custom connector that turns paid orders into queued print jobs on Fiery print servers.
Read the case studyOdoo and WooCommerce questions, answered straight.
Does Odoo have a WooCommerce connector?
Not one made by Odoo. Odoo documents its own connectors for Amazon, Shopee, Lazada, and TikTok Shop. For WooCommerce you use a third-party Odoo WooCommerce connector from Odoo's app store, or a sync built for you.
Which Odoo plan do I need to connect WooCommerce?
The Custom plan. Odoo's documentation says access to data through the external API is available only on Custom plans, not on One App Free or Standard. Any integration that reads or writes Odoo data from outside depends on it.
Can I use a WooCommerce connector on Odoo Online?
Usually not. Odoo says third-party apps cannot be used on Odoo Online unless they are data-only modules with no Python code. A connector is code, so it needs Odoo.sh or your own server. A sync that runs outside Odoo and talks to its API can work with Odoo Online on the Custom plan.
Should we keep WooCommerce or move the store into Odoo?
It depends on what the store has to do. Keep WooCommerce when the site is content-heavy, or depends on WordPress plugins and design freedom. Move to Odoo eCommerce when the catalog is simple and you would rather have nothing to sync. We run both, so we have no reason to push either.
How long does an Odoo WooCommerce integration take?
It depends on the rules, not the connector. Standard orders, products, and stock on a clean catalog make a short project. Bundles, B2B pricing, several warehouses, or subscriptions take longer. The Preliminary Scope gives you dates before you commit.
What does a WooCommerce and Odoo integration cost?
Our work is quoted as a fixed scope after the free Assessment. Budget separately for what Odoo and others charge: the Custom plan, Odoo.sh or your own server if you use a connector app, and the connector's license if it is a paid one.
Do you also look after the WooCommerce store?
Yes. WordPress operations is the other half of what we do: updates tested on staging, tested backups, monitoring, and monthly reports. One team on both sides means a failed sync has one owner.
Is it safe to build on Odoo's XML-RPC API?
Not for new work. Odoo has deprecated XML-RPC and JSON-RPC and plans to remove them in Odoo 22, in fall 2028, and earlier on Odoo Online. New integrations should use the JSON-2 API, which Odoo names as the replacement.
Can you connect a WordPress site that has no store?
Yes. An Odoo WordPress integration is usually smaller: website forms that create leads in Odoo CRM, or Odoo data shown on WordPress pages. The same rules apply. Decide which system owns the record, test on staging, and plan for the failures.
Start with who owns what, in writing.
The Odoo Assessment is free. We start with a call, an email, or an in-person meeting, send a written Preliminary Scope within 5 business days of that conversation, then meet to walk through it.