
Stop copying orders into Odoo by hand. Every order your customers place is typed, checked, and re-typed — or it just flows into Odoo on its own, seconds after checkout, with the customer, the products, the invoice, and the payment already in place. This plugin makes it the second one.
Odoo Integration for WooCommerce connects your store to your Odoo ERP through the OdooConnector cloud service. Set it up once, and your WooCommerce checkout becomes a direct feed into Odoo’s sales, invoicing, and accounting — no CSV exports, no double data entry, no missed orders at month-end.
Compatible with Odoo 16, 17, 18, and 19+ · classic and block (Gutenberg) checkout · WooCommerce HPOS · works with your existing Odoo products via SKU matching.
⚡ Sync WooCommerce orders to Odoo automatically
- Export on checkout — the order is in Odoo before your customer sees the thank-you page, and you choose exactly which statuses qualify (Processing for paid orders, On hold for bank transfer / COD…)
- Export on status change and one-click manual export, for full control
- Your numbering, your rules — keep WooCommerce order numbers in Odoo (with optional prefix/suffix), create orders as quotations or confirmed sales orders, assign a default warehouse and sales team
- Discounts, coupons, and shipping land on Odoo order lines the way your accountant expects
- Flexible customer handling: real customer records, guest orders, or map everything to a single Odoo customer
💳 Odoo invoices and payments, created automatically
- Odoo invoices created automatically at the order statuses you choose
- Payments registered and invoices marked paid — with per-payment-gateway journal mapping, so Stripe money and COD money land in the right books
- Refund in WooCommerce credit note in Odoo. Done.
🔄 Import Odoo sales orders into WooCommerce
- Import Odoo sales orders into WooCommerce, scheduled or on demand
- Choose whether an imported order creates a WooCommerce customer account or stays a guest order — no surprise accounts unless you ask for them
🛡 Built for stores that can’t afford sync surprises
- Background queue with automatic retries — a slow Odoo server never blocks your checkout
- Secure, authenticated webhook callbacks for every sync result
- Human-readable logs: plain-language messages (“Odoo returned a temporary error — retrying automatically”), with the technical details one click away when you want them
- Dashboard with sync statistics and order history at a glance
- Live-chat support built into the settings pages — real help, also on the free plan
Every feature listed above is fully functional in this plugin — there is no license unlock, trialware gate, or disabled code path.
🚀 Ready in minutes
- Install and activate the plugin
- Enter your Odoo URL and credentials, click Test Connection
- Place a test order — watch it appear in Odoo
🧩 Product, customer and inventory sync built in
Product and customer sync are part of this plugin (no add-on needed):
- Product sync in both directions — variations, attributes, categories, and images
- Customer export to Odoo, including real-time export the moment an account changes
- Inventory and price sync, scheduled or on demand, per warehouse (paid service plans)
The free OdooConnector service plan includes 10 orders, 10 products, and 10 customers synced per month; a paid plan removes the limits — and you can try it with a 14-day free trial (cancel anytime, first charge only after the trial). The Features tab shows a plain, honest comparison. All features are fully functional in the plugin itself — allowances are enforced by the service, never by disabled code.
Requirements
- WooCommerce 7.0 or higher
- An Odoo instance (URL, database, username, password)
- Network access to the OdooConnector service
Features
Everything below is built into this plugin and switchable from its settings screens. Each sync area has its own master switch, and import and export are controlled separately — so a store can pull its catalogue from Odoo without ever pushing anything back, or the reverse.
Orders — WooCommerce to Odoo
- Export automatically on checkout, on a schedule you choose, or one order at a time by hand
- Choose exactly which order statuses qualify for export — Processing for card payments, On hold for bank transfer or COD, or any combination your workflow needs
- Create the Odoo record as a Quotation or as a confirmed Sale Order, so orders can land in a queue for review or go straight through
- Keep WooCommerce order numbers in Odoo, with an optional prefix and suffix, so the same reference works in both systems and in your accountant’s inbox
- Assign a default warehouse and sales team, picked from the lists that exist in your Odoo rather than typed by hand
- Tax-inclusive pricing handled correctly, with a default tax and a separate shipping tax
- Optional fiscal positions, applied per order for cross-border and tax-exempt trading
- Discounts and shipping mapped to Odoo order lines, each pointing at the Odoo product you nominate, so your reporting stays clean
- Payment method recorded as its own order line when you want it itemised
- Customer handling your way: create a real Odoo customer per buyer, map every order to a single Odoo customer, or route orders to different Odoo customers by tag
- Automatically validate the order and confirm the delivery in Odoo, when you want the whole flow hands-off
Invoices, payments and refunds
- Create the Odoo invoice automatically, at whichever order statuses you nominate
- Separate control over which statuses mark an invoice in payment and which mark it paid — because “customer paid” and “money cleared” are rarely the same moment
- Force the invoice date to the order date when your accounting period needs them aligned
- Choose the Odoo journal invoices are posted to
- Per-gateway payment journal mapping — Stripe money, PayPal money and cash-on-delivery each land in their own Odoo journal, with no month-end reclassification
- A refund in WooCommerce becomes a credit note in Odoo, optionally posted and reconciled automatically
Orders — Odoo to WooCommerce
- Import Odoo sale orders into WooCommerce, on a schedule or on demand, in batches you size yourself
- Decide what happens when an imported order’s email has no WooCommerce account: create a customer account, or keep it as a guest order
- Products missing from WooCommerce are created from the order line rather than the import failing
- Optional status sync back from Odoo — fulfilment, cancellation and payment state, each switchable on its own, so you can take delivery status from Odoo while leaving payment state to WooCommerce
Products — both directions
- Import from Odoo with variations, attributes, categories and images
- Import variant attributes as local or global attributes: local keeps them on the product, global creates shared WooCommerce taxonomies you can filter and facet by
- Choose exactly what an imported product brings with it — description, images, barcode and cost, plus Odoo’s eCommerce description and media gallery when the Website Sale module is installed
- Exclude whole Odoo product categories from import, so internal or service products never reach your storefront
- On re-import, update everything, update price and stock only, or never touch an existing product — three separate switches, not one
- Export to Odoo automatically the moment a product is saved, or in bulk on demand
- Choose what an export sends: price, stock, categories and featured image, with the image refreshed on every export or set only once
- Match products by Internal Reference (default_code) or by Barcode, so an existing Odoo catalogue links up to your store rather than duplicating
- Nested product categories are created in Odoo with their hierarchy intact, and a category filed in the wrong place is moved rather than duplicated
Inventory and pricing
- Scheduled or on-demand stock and price sync, with independent schedules for each
- Sync Quantity Available or Quantity On Hand, whichever your fulfilment process actually trusts
- Push WooCommerce stock up to Odoo, pull Odoo stock down, or neither — the direction is yours
- Limit stock sync to chosen warehouses and chosen product categories
- Skip zero-quantity records, so an unmanaged product is not forced out of stock by an empty Odoo row
- Let Odoo stock levels drive the WooCommerce stock status, and set the backorder policy that goes with it
- Take over stock management on products that were not previously managed
Customers
- Export customers to Odoo in bulk, or the moment an account is created or changed
- Choose which WordPress roles are exported, so administrators and subscribers stay out of your Odoo contacts
- Address, contact details and billing data carried across
Running it day to day
- Every sync runs through a background queue with automatic retries, so a slow Odoo server never blocks your checkout
- Live progress with a Stop button on every sync screen, including runs started by a schedule
- Sync results reported honestly: how many synced, how many failed, and the failures never quietly disappear from the total
- Human-readable logs — what synced, what did not, and why — with the technical detail one click away, plus a debug mode and log level when you need more
- Dashboard showing synced totals, recent activity, and anything that needs attention
- Odoo ID columns on the WooCommerce orders and products lists, each linking straight to the matching record in Odoo
- Odoo sale order and invoice linked directly from the order edit screen
- Multi-company Odoo supported: pick the company a store syncs with
- Works with WooCommerce HPOS, classic and block (Gutenberg) checkout, and Odoo 16 through 19+
Screenshots

Dashboard — what has synced, what runs next, and the last orders that reached Odoo

Product sync — import from Odoo and export back, each direction switched on separately

Order sync — export on checkout at the statuses you choose, and import Odoo orders back

Sync logs — a plain-language record of every product and order, filterable by type and context

Customer export — in bulk or the moment an account changes, limited to the roles you pick

Sync defaults — company, warehouse, price list, journals and tax, chosen from your own Odoo

Plans — every feature is in the plugin; the service plan governs how much you sync, never what works