Title: Odoo Integration for WooCommerce
Author: Niraj Gupta
Published: <strong>July 22, 2026</strong>
Last modified: October 7, 2026

---

Search plugins

![](https://ps.w.org/erp7-solutions-sync-for-odoo-and-woocommerce/assets/banner-
772x250.png?rev=3733931)

![](https://ps.w.org/erp7-solutions-sync-for-odoo-and-woocommerce/assets/icon.svg?
rev=3621283)

# Odoo Integration for WooCommerce

 By [Niraj Gupta](https://profiles.wordpress.org/smgom/)

[Download](https://downloads.wordpress.org/plugin/erp7-solutions-sync-for-odoo-and-woocommerce.2.3.2.zip)

 * [Details](https://en-ca.wordpress.org/plugins/erp7-solutions-sync-for-odoo-and-woocommerce/#description)
 * [Reviews](https://en-ca.wordpress.org/plugins/erp7-solutions-sync-for-odoo-and-woocommerce/#reviews)
 *  [Installation](https://en-ca.wordpress.org/plugins/erp7-solutions-sync-for-odoo-and-woocommerce/#installation)
 * [Development](https://en-ca.wordpress.org/plugins/erp7-solutions-sync-for-odoo-and-woocommerce/#developers)

 [Support](https://wordpress.org/support/plugin/erp7-solutions-sync-for-odoo-and-woocommerce/)

## Description

**Establish an enterprise-grade data bridge between WooCommerce and Odoo, replacing
manual overhead with reliable, real-time synchronization.**

The WooCommerce Odoo Integration bridges your storefront and your back office. Set
it up once, and every order, customer, product, and payment flows directly into 
Odoo’s sales, invoicing, and accounting modules automatically.

Built for stores that cannot afford synchronization errors, this connector runs 
on an asynchronous background queue. This means a slow Odoo server will never slow
down your WooCommerce checkout.

Fully compatible with Odoo 16, 17, 18, 19, and 20, WooCommerce HPOS, and block-based
checkouts.

#### Automated Order Management (Bi-Directional)

 * **Triggered on Checkout:** Orders export to Odoo before the customer even sees
   the thank-you page.
 * **Status-Based Rules:** Choose exactly which orders export. (e.g., Send “Processing”
   orders automatically, but hold “Pending Payment” or “COD” orders).
 * **Quotation or Sales Order:** Draft incoming WooCommerce orders as Odoo Quotations
   for manual review, or push them straight through as confirmed Sales Orders.
 * **Custom Numbering:** Keep your exact WooCommerce order numbers in Odoo (with
   optional prefixes/suffixes) so your referencing stays clean.
 * **Discount & Shipping Mapping:** Shipping costs and coupon codes land on their
   own specific Odoo order lines, keeping your accountant happy and reporting accurate.
 * **Odoo to WooCommerce Import:** Pull Odoo sales orders down into WooCommerce 
   on a schedule or on demand.
 * **Built for Volume:** Orders travel to Odoo in batches of 25 rather than one 
   at a time, which is what turns a backlog of several thousand orders into a job
   of hours rather than days.

#### Smart Invoicing & Payment Routing

 * **Automated Financials:** Odoo invoices are created automatically based on the
   order statuses you define.
 * **Payment Journal Mapping:** Route funds correctly. Stripe payments, PayPal funds,
   and Cash on Delivery can each land in their own dedicated Odoo payment journal—
   eliminating month-end reclassification.
 * **Automated Credit Notes:** Processing a refund in WooCommerce automatically 
   generates the corresponding credit note in Odoo.
 * **Invoice State Control:** Separate your triggers. Choose one status to mark 
   an invoice in payment and another to mark it fully paid.

#### Complete Product & Inventory Sync

 * **Two-Way Product Sync:** Import and export products, including complex variations,
   attributes, nested categories, and high-res images.
 * **Intelligent Stock Rules:** Sync Quantity Available or Quantity On Hand based
   on what your fulfillment team actually trusts. Limit stock sync to specific Odoo
   warehouses.
 * **Field Mapping:** Carry custom data between systems. Map WooCommerce standard
   or custom fields directly to Odoo custom fields (`x_...`), in either direction,
   including fields on variants.
 * **Barcode & SKU Matching:** Prevent duplicates. Link your existing Odoo catalog
   to your store via Internal Reference (`default_code`) or Barcode matching.
 * **Safe Updates:** On re-import, choose to update everything, update price/stock
   only, or leave existing WooCommerce product details untouched.
 * **Images on Their Own Terms:** Import images on a dedicated Media tab, at the
   size you choose (thumbnail through to the full 1920px), and an image is downloaded
   again only when Odoo’s copy has actually changed.

#### Customer & CRM Alignment

 * **Flexible Customer Handling:** Create a unique Odoo contact for every buyer,
   log guest checkouts, route orders by tag, or map all B2C retail orders to one
   single “Web Sales” customer account.
 * **Role-Based Export:** Choose which WordPress user roles sync to Odoo, keeping
   your ERP contacts free of store administrators and subscribers.

#### Built for Enterprise Reliability

We know what happens when a sync fails during a busy sales event. We built this 
connector to be transparent, resilient, and honest.

 * **Asynchronous Background Queue:** Every sync runs through a background queue
   with automatic retries. Your site performance is completely isolated from Odoo’s
   uptime.
 * **Human-Readable Logs:** No cryptic error codes. Get plain-language messages (
   e.g., “Odoo returned a temporary error — retrying automatically”). Full technical
   payloads are one click away for debugging.
 * **Secure Webhooks:** Authenticated webhook callbacks confirm every synchronization
   result.
 * **Honest Dashboards:** Live progress reporting. See exactly how many records 
   synced and how many failed. Failures never quietly disappear from the total.
 * **Multi-Company Odoo Support:** Explicitly pick which Odoo company your store
   synchronizes with.

#### Pricing & Transparency

Every single feature listed above is fully functional in the plugin itself. There
are no disabled code paths, trialware gates, or hidden “Pro-only” toggle switches
inside WordPress. The connection runs through the OdooConnector service.

 * **Free Plan:** Includes 10 orders, 10 products, and 10 customers synced per month
   forever. Ideal for testing and very low-volume setups.
 * **Paid Plans:** Removes the volume limits for growing stores. Every paid plan
   includes a 14-day free trial (cancel anytime, no charge until the trial ends).
 * **Real Support:** Live-chat support is built directly into the plugin settings
   page — and yes, we provide support to Free plan users, too.

#### Technical Requirements

 * WooCommerce 7.0 or higher
 * Compatible with WooCommerce High-Performance Order Storage (HPOS)
 * An active Odoo instance (URL, database name, username, password)
 * Compatible with Odoo versions 16, 17, 18, 19, and 20
 * Network access to the OdooConnector service

#### Ready in 3 Minutes

 1. Install and activate the plugin.
 2. Enter your Odoo URL and credentials, then click “Test Connection.”
 3. Place a test order in WooCommerce and watch it appear in Odoo instantly.

## Screenshots

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

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⌉⌊
Product sync — import from Odoo and export back, each direction switched on separately⌉[

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⌉⌊Order sync — export on checkout at the statuses you choose, and import Odoo
orders back⌉[

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⌉⌊Sync logs — a plain-language record of every product and order,
filterable by type and context⌉[

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⌉⌊Customer export — in bulk or the moment an account changes, limited to
the roles you pick⌉[

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⌉⌊Sync defaults — company, warehouse, price list, journals and tax,
chosen from your own Odoo⌉[

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⌉⌊Plans — every feature is in the plugin; the service plan
governs how much you sync, never what works⌉[

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

## Installation

 1. Upload the plugin folder to `/wp-content/plugins/erp7-solutions-sync-for-odoo-and-
    woocommerce/` (or install via WordPress admin)
 2. Activate the plugin through the ‘Plugins’ screen in WordPress
 3. Navigate to WooCommerce  Odoo Connector and enter your Odoo URL, database, username,
    and password, then test the connection
 4. Configure sync preferences and save
 5. Optionally subscribe to the OdooConnector service from the Features tab for unlimited
    middleware order sync

## FAQ

### Is this plugin free? Does it require a paid service?

The plugin is free and every feature in it is fully functional. Synchronization 
runs through the OdooConnector cloud service, whose free plan includes 10 order,
10 product, and 10 customer syncs per calendar month — enough to run a small store
or evaluate everything. Paid service plans remove the limits and add inventory/price
sync, and come with a 14-day free trial.

### How do I sync WooCommerce orders to Odoo?

Install the plugin, enter your Odoo URL and credentials, and enable “Export on checkout”.
From then on every order is created in Odoo automatically — customer, order lines,
invoice, and payment included. You can also export on specific status changes or
with one click from the Orders tab.

### Can I import products from Odoo to WooCommerce?

Yes. Product sync works in both directions: import your Odoo catalog into WooCommerce(
variations, attributes, categories, and images included) or export WooCommerce products
to Odoo, manually or on a schedule.

### Are any features locked behind a paid upgrade in the plugin?

No — everything is built into this one plugin, with no license check, feature gate,
or add-on to install. Here is what each plan of the OdooConnector service provides:

Free:

 * Order export to Odoo — automatic on checkout, on status change, and manual
 * Order import from Odoo, invoice creation, payment registration, and refund sync(
   credit notes)
 * Product import and export, customer export
 * 10 orders, 10 products, and 10 customers synced per month
 * Dashboard, sync logs, and live-chat support

Paid:

 * Everything in Free, with unlimited syncs
 * Inventory and price sync (scheduled and on-demand, per warehouse)
 * Scheduled automation with background processing
 * Priority email support
 * 14-day free trial — cancel anytime

The Plans tab in the plugin shows the full comparison.

### Does it work with Odoo Online (odoo.com) and Odoo.sh?

Yes. Any Odoo instance the OdooConnector service can reach over the internet works:
Odoo Online (odoo.com), Odoo.sh, and self-hosted Odoo Community or Enterprise.

### Which Odoo versions are supported?

Odoo 16 through 20 are supported. For Odoo 16–18 the service communicates with your
Odoo instance over XML-RPC; for Odoo 19 and later it uses Odoo’s modern JSON-2 API.
Your Odoo version is detected automatically when you connect — there is nothing 
to select or configure, and the detected version is shown in the API Connection 
bar.

### How do I create an Odoo API key?

In Odoo, open Preferences  Account Security  New API Key, copy the generated key,
and paste it into the Password / API Key field on the API Settings tab. The key 
is shown only once. An API key is required on Odoo 19 and later; on Odoo 16–18 your
account password also works. Full step-by-step guide, including where to find your
server URL, database name and username: https://odooconnector.cloud/docs/odoo-api-
credentials

### Is HPOS supported?

Yes, this plugin is fully compatible with WooCommerce High-Performance Order Storage(
HPOS).

## Reviews

![](https://secure.gravatar.com/avatar/d51fd15f4be0f8b515db8c8873cf189e7ce73adef3aa0ae3b1bb500568838ffb?
s=60&d=retro&r=g)

### 󠀁[Perfect plugin, perfect support](https://wordpress.org/support/topic/perfect-plugin-perfect-support-39/)󠁿

 [devdevii](https://profiles.wordpress.org/devdevii/) October 4, 2026

A plugin that does exactly what I needed plus the support is incredible and fast,
very collaborative, and even ready to develop an option specific to my needs, which
really surprised me. The best support I’ve seen so far in my development journey.

![](https://secure.gravatar.com/avatar/acbad6e1bd3528b457f783de4fd19b23e1430f28e35c947c2c28940396fdacd6?
s=60&d=retro&r=g)

### 󠀁[Super plugin, support très reactif](https://wordpress.org/support/topic/super-plugin-support-tres-reactif/)󠁿

 [kevinpenhars](https://profiles.wordpress.org/kevinpenhars/) October 1, 2026

J'utilise ce plugin pour synchroniser mes commandes WooCommerce vers Odoo (commandes,
factures, paiements), et franchement ça tourne bien. Une fois bien paramétré, les
commandes arrivent correctement dans Odoo, sans erreur sur les montants ou les produits,
et la facturation se fait toute seule. J'ai eu quelques questions techniques en 
phase de test, et le support a toujours répondu vite, avec des corrections rapides
quand il y avait un souci. C'est clairement un plugin sur lequel je peux compter
au quotidien. Je recommande pour qui veut relier sérieusement sa boutique à Odoo.

![](https://secure.gravatar.com/avatar/dc21a9313cf5f3118988139acc3ef2f4a82f1942896649ed55a5d4b4e92876eb?
s=60&d=retro&r=g)

### 󠀁[Good support and works great](https://wordpress.org/support/topic/good-support-and-works-great/)󠁿

 [kocheric](https://profiles.wordpress.org/kocheric/) September 1, 2026

Just wanted to leave a quick review because the support team literally saved my 
sanity this week. I was trying to get our Woo shop connected to Odoo and got stuck
trying to map out a couple of custom inventory flows. Reached out to support expecting
a automated reply, but they actually jumped in and helped me tweak the config until
everything ran right. The plugin has pretty much everything you need for syncing
orders and stock without making it overly complicated. Really glad I found this 
one.

![](https://secure.gravatar.com/avatar/275327baafb9d924f817b5f2dc52bcb75caf47d58eedbf3e104b4c623dbbaa42?
s=60&d=retro&r=g)

### 󠀁[Top-notch Odoo Connector](https://wordpress.org/support/topic/top-notch-odoo-connector/)󠁿

 [seanholyfields](https://profiles.wordpress.org/seanholyfields/) August 19, 2026

Easily one of the best connector plugins on the market. It covers all the features
required for a solid integration and functions flawlessly. Special thanks to the
support team, who went above and beyond to help me configure everything quickly.
Highly recommended!

 [ Read all 8 reviews ](https://wordpress.org/support/plugin/erp7-solutions-sync-for-odoo-and-woocommerce/reviews/)

## Contributors & Developers

“Odoo Integration for WooCommerce” is open source software. The following people
have contributed to this plugin.

Contributors

 *   [ Niraj Gupta ](https://profiles.wordpress.org/smgom/)

[Translate “Odoo Integration for WooCommerce” into your language.](https://translate.wordpress.org/projects/wp-plugins/erp7-solutions-sync-for-odoo-and-woocommerce)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/erp7-solutions-sync-for-odoo-and-woocommerce/),
check out the [SVN repository](https://plugins.svn.wordpress.org/erp7-solutions-sync-for-odoo-and-woocommerce/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/erp7-solutions-sync-for-odoo-and-woocommerce/)
by [RSS](https://plugins.trac.wordpress.org/log/erp7-solutions-sync-for-odoo-and-woocommerce/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 2.3.2

 * Added – Order status changes in Odoo can now update orders that already exist
   in WooCommerce, not only orders being imported for the first time. One switch,“
   Update order”, and it is obeyed by both the manual import and the scheduled one
 * Added – Product import schedules are followed as set. A schedule changed to Daily
   kept running hourly, and “Batch size” now means what it says — how many records
   are read from Odoo per call — instead of silently capping the whole run
 * Added – A product import whose previous run is still going is skipped rather 
   than queued behind it, so an hourly schedule and a two-hour catalogue no longer
   pile up
 * Fixed – The Plans tab could show a Pro card with no price and no subscribe button,
   with no way to pay. A failed price lookup was being cached as “this connector
   sells nothing” for five minutes; a failure is now a failure, the last known prices
   keep serving, and when there is genuinely nothing to show the card says so and
   offers to retry
 * Fixed – “Pro plan active” could appear on a store that had never paid, while 
   the page below it offered a free trial. The badge read a leftover local record;
   it now reads the same verdict as every other screen
 * Fixed – A subscription that had been cancelled or moved to another store could
   linger locally forever. The hourly check now acts on “this store has no subscription”
   instead of ignoring it
 * Fixed – A checkout in progress was not recorded locally at all: the column holding
   its id was too short for the id, and the write failed without a word
 * Fixed – Importing images only asks Odoo for the products that have one. A catalogue
   of 20,000 products with few photos queued 20,000 jobs to discover there was nothing
   to fetch
 * Fixed – Progress bars count the run you are watching. Four flows measured themselves
   against every row the site had ever queued, or against a start time the database
   could not read, so a 3,942-order export opened at 3,996 and a scheduled import
   reported from stale counters
 * Fixed – Excluding a product category now excludes it everywhere — the scheduled
   import, the manual import and the counts all honour it
 * Fixed – A variant whose SKU changed in Odoo is picked up again. Products were
   compared by a date that moves on any edit, so a renamed SKU could be skipped
 * Fixed – Credit notes are matched to the WooCommerce order they belong to more
   reliably, including orders exported to Odoo before the note was raised
 * Fixed – The dashboard’s “Products Synced” tile counts the catalogue, not the 
   successes twice: a run of 100 with 4 failures reads 96/100
 * Fixed – A sync started from an external cron manager shows its own progress and
   its own log, instead of 0% under the previous run’s output
 * Fixed – “Subscription already active” no longer blocks a new checkout when nothing
   is actually active — an abandoned checkout or a lapsed trial is not a subscription
 * Fixed – The payment method can be updated with any method the account offers,
   not card only
 * Changed – The Orders and Customers tabs under Field mapping say “Coming soon”
   on the page instead of in a tooltip nobody sees. Their standard fields already
   sync; only custom-field mapping is still to come

#### 2.3.1

 * Fixed – Activating the plugin could fail outright on stores west of UTC. A one-
   off queue repair that runs during activation read a class constant before activation
   had loaded that class, which is a fatal error rather than a warning — and it 
   only fires on a negative GMT offset, so every store in the Americas met it and
   no store east of London did

#### 2.3.0

 * Added – Odoo 20 is supported end to end. Order import reads a line’s description
   from `label`, which is where Odoo 20 moved it — on Odoo 20 every imported line
   previously arrived with an empty description. Invoicing, payment registration
   and credit notes were re-checked against Odoo 20’s own call shapes, and product
   images are read in the form Odoo 20 returns
 * Added – Credit notes raised in Odoo import into WooCommerce as refunds, matched
   to the order they belong to, line by line where the note names lines
 * Added – “Export Invoice” now issues the invoice at every point an order reaches
   Odoo, not only on one path. Stores had 7,958 exported orders and no invoices
 * Added – A notification email address, so welcome, payment and uninstall mail 
   can go somewhere other than the store’s admin address
 * Fixed – A sync the plan does not cover now stops and says so. Product import,
   product export and inventory sync used to retry the service’s refusal every couple
   of hours indefinitely — one store did so for six days with its progress bar frozen
   at 50% and nothing on screen explaining why
 * Fixed – The free monthly allowance is honoured even when the service cannot be
   reached. An unanswered usage check was treated as “no limit”, and one store queued
   its entire 20,003-product catalogue on a free plan
 * Fixed – Pressing Import Products no longer leaves the previous run’s “an active
   plan is required” notice on screen after the plan is upgraded
 * Fixed – Product export no longer stalls silently when the service declines to
   read your Odoo categories. The queued items are failed with the reason instead
   of being retried for ever
 * Fixed – Two PHP warnings on sites with WP_DEBUG on: an undefined variable in 
   the billing history fetch (which also meant the row limit never reached the service)
   and an undefined array key on stores with no customer accounts

#### 2.2.9

 * Fixed – Stop could not end a sync that was still collecting the products it was
   about to work on. Nothing had been queued yet, so Stop found nothing to cancel
   and left the run marked as preparing: the widget went on reporting “Sync in progress”
   and the button could be pressed repeatedly with no effect
 * Fixed – A new sync opened showing the previous run’s log lines beneath a progress
   bar reading 0%, which reads as a run already well under way. The console is now
   cleared the moment a run starts collecting, and says what it is doing
 * Fixed – Starting an image import on a large catalogue read the Odoo link back
   one product at a time — twenty thousand extra database queries inside a single
   admin request, long enough to be cut off before the run had queued anything

#### 2.2.8

 * Added – Orders are sent to Odoo in batches of 25 instead of one at a time. An
   export of 3,996 orders that managed two orders a minute — about 33 hours — now
   runs at roughly 27 a minute with no failures. Order import is batched the same
   way
 * Added – Products has its own Media sub-tab. Images import on a button of their
   own, and the image size to import is a setting (from thumbnail up to the full
   1920px) rather than always the largest one
 * Added – Field mapping for products: rules that carry your own WooCommerce fields
   into Odoo fields and back again, on their own tab, on by default
 * Added – Custom attributes of a variable product — the ones typed on the product
   rather than set up under Products > Attributes — are exported to Odoo
 * Added – Odoo 20 support: images, customers and order lines are read in the shapes
   Odoo 20 returns
 * Added – A “Version X is available” notice on the plugin’s own screens, so an 
   update is not missed by an owner who rarely opens the Plugins screen
 * Fixed – The inventory sync ran every hour whatever the Inventory tab’s Sync Frequency
   said. Stock and price now run on the frequency that tab saves
 * Fixed – An out-of-stock product was left with no price at all. “Do not sync Zero
   Qty” skipped the whole product rather than just the stock figure, and a product
   Odoo holds at zero is at zero on every run, so its price never arrived
 * Fixed – The Export Orders button exported every order regardless of “Export order
   statuses” — 1,029 cancelled, refunded and failed orders out of 5,000 on one store
 * Fixed – Exporting several thousand orders failed with “Internal Server Error”.
   The button read whole orders into memory, reaching 380 MB by the fifth page; 
   it reads order ids now
 * Fixed – An order line whose product this store had never synced travelled as 
   its WooCommerce id, and Odoo failed the whole order with “Record does not exist
   or has been deleted”
 * Fixed – A shipping, fee or discount product could be created again on every order:
   one store had the same shipping product 135 times across 10 orders
 * Fixed – Importing an order sent WooCommerce’s customer emails and moved its stock.
   The order already happened in Odoo
 * Fixed – Order export and order import could run at once and neither moved — switching
   the import on mid-export started 8,730 imports beside 275 exports — and a stopped
   run’s leftovers had each side reporting the other as running
 * Fixed – A long export vanished from the progress widget after 30 minutes, and
   progress counted an earlier run’s rows alongside this one’s
 * Fixed – Every product’s image was downloaded on every import, changed or not:
   20,000 image reads for 2,000 images on one catalogue. Odoo is now asked for a
   checksum first, and only a new or changed image is fetched
 * Fixed – Field mapping rules for variants were ignored on stores that sync over
   JSON-2 (Odoo 19 and up), so a mapped variant field stayed empty in Odoo
 * Fixed – Saving Product Sync or Inventory stored the image settings as off, because
   those fields were not on the form being saved
 * Changed – Sync log lines are written for shop owners: “Sent 12 orders to Odoo—
   waiting for Odoo to answer.” The connector job id is still there, under debug
 * Changed – Products, Inventory, Orders and Customers share one Start button, one
   Stop button, one progress bar and one log console
 * Changed – The product sync panel refreshes every 5 seconds while a run is going,
   and every 20 when nothing is

#### 2.2.7

 * Fixed – Product imports stalled at the same point on every run on servers with
   default request size limits. Product images were sent back inside the import 
   results, and nginx or PHP turned the larger results away before WordPress received
   them. Images are now fetched right after each product is imported, in a separate
   step
 * Fixed – An import could freeze for good once enough results had gone missing.
   Items still waiting for a result after a few minutes are now checked with the
   connector and recovered automatically
 * Fixed – The inventory sync could lower on-hand stock in Odoo. Saving the updated
   product sent WooCommerce’s figure straight back to Odoo; inventory and price 
   updates no longer trigger a product export
 * Fixed – One WooCommerce order could become two Odoo orders when an export at 
   checkout overlapped a queued export of the same order
 * Fixed – Imported order lines take their tax from Odoo line by line, and exported
   orders match WooCommerce tax rates to Odoo taxes correctly
 * Fixed – The product and inventory frequency dropdowns and the “Update Stock Status”
   switch now take effect
 * Fixed – The scheduled stock sync no longer rewrites products whose stock and 
   price did not change, and no longer reports them as warnings
 * Fixed – A sync whose completion was never recorded no longer stays “running” 
   for ever, and a scheduled run that cannot start yet waits for the current one
   instead of being dropped
 * Fixed – Failed product exports show the reason from Odoo instead of “Unknown 
   sync error”
 * Fixed – Admin pages no longer wait for the connector before loading, and the 
   sync progress check runs less often
 * Added – A rebuilt dashboard: order sync totals, success rate, last order and 
   inventory sync times, and a table of every synced or failed order with search,
   filters and a retry button
 * Added – Separate date ranges for order export and order import
 * Added – “Export order statuses” on the Orders tab: the statuses that reach Odoo
   when an order changes status later, by scheduled export or by the Export button
 * Added – Imported product images are fetched in their own step after the product,
   and unchanged images are not downloaded again
 * Changed – Settings that had no effect are hidden: order status sync from Odoo,
   automatic credit note reconciliation and the default delivery warehouse
 * Changed – The queue checks for work every 45 seconds, and asks for the next import
   batch as soon as the previous one has arrived

#### 2.2.6

 * Fixed – A product the importer had already matched could be imported again as
   a duplicate. When “update existing products” is off, or Odoo reported no change
   since the last run, the match was made and then discarded without recording the
   Odoo link — so a product whose Odoo record carries no SKU had nothing left to
   match on, and the next run created a second copy
 * Fixed – Products created while importing an order did not record their Odoo product
   link, leaving them invisible to product sync and liable to be duplicated by it
 * Fixed – Queued product imports stopped importing once any product existed. The
   check for “is this already imported?” asked WooCommerce a question it quietly
   ignores, so the first product in the catalogue matched every queued import and
   each one was skipped against a product it had nothing to do with
 * Fixed – Importing a product with variations could fail against Odoo 19 with “
   Invalid falsy real id” when the list of attribute values had gaps in it
 * Fixed – A successful product import left no trace on the Sync Logs screen — only
   failures were recorded, so a healthy run read as a wall of problems. Each imported
   product is now listed by name
 * Fixed – A finished sync reported every item as successful. “22 of 54 synced, 
   32 failed” was announced as “22 of 22 synced” because the summary recounted a
   queue whose failed rows had already been cleaned up; the run now records its 
   own result as it finishes
 * Fixed – One completed run was announced twice, once with the real figures and
   once with a recount of the same queue
 * Fixed – The Product sync panel stayed at 100% with “Stop Sync” showing and the
   start buttons locked after a run had finished, until another admin screen was
   opened
 * Added – An Odoo column on the WooCommerce products list, linking each product
   to its record in Odoo, matching the column already on the orders list
 * Changed – A product already linked to an Odoo record is never silently re-pointed
   at a different one; the conflict is written to the log instead

#### 2.2.5

 * Added – Odoo’s eCommerce description and product media can now be imported into
   WooCommerce; both are opt-in on the Product Sync tab and require the eCommerce(
   Website Sale) module in Odoo. The media becomes the WooCommerce product gallery,
   in Odoo’s own order, and the featured image is unchanged
 * Added – Sales team is chosen from the teams that exist in Odoo instead of typing
   the name by hand
 * Added – A progress row for the media import, so a large catalogue shows what 
   is still to come
 * Fixed – Top-level WooCommerce categories were filed under whichever Odoo category
   happened to be read first (often “Deliveries”) rather than being created as top-
   level categories in Odoo
 * Fixed – Nested WooCommerce categories exported flat, because each category was
   created before its parent existed
 * Fixed – A category left in the wrong place stayed there on re-export, and a duplicate
   was created alongside it; the existing category is now moved to the correct parent
 * Fixed – Images taken from Odoo were always saved with a .jpg name even when the
   file was WebP or PNG, which broke image optimisers, CDNs and WordPress’s own 
   file checks
 * Changed – Product categories and the featured image are exported on their own
   queue after the product itself, so image uploads no longer hold up a catalogue
   export
 * Improved – The media import checks a whole batch of products in one request instead
   of two requests per product, so catalogues where few products have media finish
   in seconds rather than minutes

#### 2.2.4

 * Fixed – Variations of a variable product all took the parent’s price in Odoo,
   so only the cheapest variation was priced correctly; each variation now carries
   its own price
 * Fixed – Product import returned no usable data, so inventory runs reported every
   product as failed and updated nothing
 * Fixed – Importing overwrote variation prices in WooCommerce even with Price Sync
   switched off; the setting is now respected for variations as it always was for
   simple products
 * Fixed – Products mapped to Odoo by variant reference could not be imported at
   all
 * Fixed – A temporary network or Odoo error during import was reported as “not 
   a valid product ID”, so the product was dropped instead of retried
 * Fixed – Progress showed 0% for an entire run, or opened at 100% with the previous
   run’s result, when a new sync was started
 * Added – Product export now writes a per-product line to the Logs tab, as product
   import already did, including the Odoo record each product landed in
 * Changed – Product export and inventory sync ask Odoo for variant data in batches,
   roughly halving the number of requests a catalogue sync makes

#### 2.2.3

 * Fixed – Variations exported to Odoo stored the wrong Odoo variant reference, 
   which could send stock and price updates to the wrong Odoo record; affected variations
   are cleared on update and re-linked on the next sync

#### 2.2.2

 * Added – Live progress, a per-item log and a Stop button on the Products, Orders
   and Customers tabs — including syncs started on a schedule
 * Added – Readable sync log (“Order import SUCCESS: Odoo sale order 466 to WooCommerce#
   16241”) without turning on debug logging
 * Added – Refresh button on the Logs tab
 * Added – Setup checklist on the dashboard collapses once every sync area is switched
   on
 * Fixed – Fatal error (“Call to private method”) that could take the site down 
   while sync work was being queued
 * Fixed – Progress and the Stop button disappearing part-way through a sync that
   was still running
 * Fixed – Progress totals counted earlier runs as well as the current one
 * Fixed – Odoo product names could be rendered as HTML in the sync log (security
   fix)
 * Changed – “Select Fiscal Position” is hidden unless fiscal positions are enabled
 * Changed – Settings screens, including the order status mapping table, now work
   on phones and small windows
 * Changed – Repeated internal warnings are summarised instead of filling the log

#### 2.2.1

 * Fixed – Odoo 19 and newer no longer ask for a username; those versions sign in
   with the API key alone, and the field is marked “Not required”
 * Fixed – Saving connection details now tests them, so a wrong database or password
   is reported straight away instead of the plugin still showing “Connected”
 * Fixed – Connection errors now appear in the Odoo Connection form itself, next
   to the field that needs correcting
 * Added – A wrong database name is now matched against your Odoo address, and the
   suggested name can be applied in one click
 * Added – Dashboard setup checklist showing which of product, order and customer
   sync are switched on, with a link to each; it collapses once all three are on
 * Added – Support email and call-booking links in the API settings card
 * Changed – Saving your connection now takes you to the configuration page, and
   saving configuration takes you to the dashboard
 * Changed – Product, order and customer setup tabs move to the end once your store
   is connected
 * Fixed – Queued work now retries on the correct schedule on stores not set to 
   UTC; some stores retried immediately and others waited hours
 * Fixed – Large imports and exports now drain many times faster; queued items were
   only being processed once a minute regardless of backlog
 * Fixed – Rate-limited Odoo instances now back off and resume instead of failing
   repeatedly
 * Fixed – Server version now shows “-” when it is unknown, instead of incorrectly
   reporting 14.0

#### 2.2.0

 * Added – Product, customer, inventory and real-time sync are now built into this
   plugin (the separate Pro add-on is retired and no longer needed)
 * Added – Free service plan now includes 10 orders, 10 products and 10 customers
   synced per month; paid plans remove the limits
 * Added – Usage banner on the plugin settings pages showing your remaining free
   allowance
 * Added – Running imports and exports now show a progress card on every admin screen,
   with a Stop button for each sync
 * Fixed – Stopping a sync no longer pauses other syncs that are still running
 * Fixed – Stopping a real-time product import now cancels its queued items instead
   of leaving them to run
 * Fixed – Customer export can now be stopped while it is running
 * Fixed – Product export and queue-clearing code paths that previously required
   the add-on

#### 2.1.4

 * Added – Dashboard now lists recent order syncs (successes and failures) with 
   links to the WooCommerce order and the Odoo sale order
 * Added – Odoo order and invoice IDs on the order screen link directly to the record
   in Odoo
 * Added – Odoo server version is detected automatically — the manual version selection
   was removed
 * Improved – Configuration refresh buttons fetch fresh data from Odoo instead of
   the stored cache
 * Improved – Order export and import write clear success entries and per-run summaries
   to the logs
 * Improved – Scheduled order export settings with per-run result totals
 * Fixed – Subscription state display when the service ends a subscription

#### 2.1.3

 * Fixed – Various bug fixes and stability improvements
 * Improved – Settings, logs, and subscription user interface

#### 2.1.2

 * Changed – Pro download and Support links now point at the service domain (wp.
   odooconnector.cloud)

#### 2.1.1

 * Changed – Plugin scope clarified: this plugin focuses on complete order sync (
   export, import, invoices, payments, refunds); product/customer/inventory sync
   moved to the separate Pro add-on
 * Fixed – Order export on checkout: sync classes now load on front-end requests,
   so checkout hooks (classic and block checkout) fire reliably
 * Fixed – Queue cleanup failed on strict-mode MySQL (invalid DATETIME comparison)
 * Fixed – Order import progress counts included deferred webhook rows, so totals
   no longer fluctuate
 * Fixed – Invoice ID extraction handles all Odoo response shapes; refunds fall 
   back to an amount-only credit note line when products are unmapped
 * Improved – Settings screens reorganized into cards; dashboard icon alignment;
   stale progress panels auto-hide
 * Improved – Subscription state reconciles from the service (stale local subscriptions
   are purged)

#### 1.0.0

 * Initial public release as ERP7 Solutions Sync for Odoo and WooCommerce
 * Order sync through OdooConnector
 * WordPress.org compliance: no trialware or plugin-side feature locks
 * Mandatory webhook secret (hash_equals); guest orders on import
 * Text domain aligned to plugin slug `erp7-solutions-sync-for-odoo-and-woocommerce`
 * Dashboard, logging, HPOS-compatible order handling

## Meta

 *  Version **2.3.2**
 *  Last updated: **1 week ago**
 *  Active installations: **20+**
 *  WordPress Version: ** 5.8 or higher **
 *  Tested up to: **7.1.3**
 *  PHP Version: ** 7.4 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/erp7-solutions-sync-for-odoo-and-woocommerce/)
 * Tags:
 * [Accounting](https://en-ca.wordpress.org/plugins/tags/accounting/)[ERP](https://en-ca.wordpress.org/plugins/tags/erp/)
   [inventory sync](https://en-ca.wordpress.org/plugins/tags/inventory-sync/)[odoo](https://en-ca.wordpress.org/plugins/tags/odoo/)
   [order sync](https://en-ca.wordpress.org/plugins/tags/order-sync/)
 *  [Advanced View](https://en-ca.wordpress.org/plugins/erp7-solutions-sync-for-odoo-and-woocommerce/advanced/)

## Ratings

 5 out of 5 stars.

 *  [  4 5-star reviews     ](https://wordpress.org/support/plugin/erp7-solutions-sync-for-odoo-and-woocommerce/reviews/?filter=5)
 *  [  0 4-star reviews     ](https://wordpress.org/support/plugin/erp7-solutions-sync-for-odoo-and-woocommerce/reviews/?filter=4)
 *  [  0 3-star reviews     ](https://wordpress.org/support/plugin/erp7-solutions-sync-for-odoo-and-woocommerce/reviews/?filter=3)
 *  [  0 2-star reviews     ](https://wordpress.org/support/plugin/erp7-solutions-sync-for-odoo-and-woocommerce/reviews/?filter=2)
 *  [  0 1-star reviews     ](https://wordpress.org/support/plugin/erp7-solutions-sync-for-odoo-and-woocommerce/reviews/?filter=1)

[Your review](https://wordpress.org/support/plugin/erp7-solutions-sync-for-odoo-and-woocommerce/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/erp7-solutions-sync-for-odoo-and-woocommerce/reviews/)

## Contributors

 *   [ Niraj Gupta ](https://profiles.wordpress.org/smgom/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/erp7-solutions-sync-for-odoo-and-woocommerce/)