Odoo for WooCommerce connects your WooCommerce store with Odoo so products, inventory, pricing, customers, orders, invoices, refunds, and other business data can move between the two systems.
The integration supports different workflows. Odoo can be the main source for catalog and inventory data, WooCommerce can send ecommerce orders and customers to Odoo, or selected data can move in both directions.
Installation
↑ Back to topEditorial note: Insert the Woo Marketplace synced pattern Docs – Installation here.
After installing and activating Odoo for WooCommerce, go to WooCommerce > Settings > Integrations > Odoo Integration.

Before you begin
↑ Back to topYou need:
- An active WooCommerce store.
- An Odoo environment with external API access.
- An Odoo user that has permission to access the records used by the integration.
- Your Odoo server URL.
- Your Odoo database name.
- Your Odoo username.
- An Odoo API key or password.
- The Odoo applications required for the data you plan to synchronize, such as Sales, Inventory, and Invoicing/Accounting.
Odoo for WooCommerce currently provides configuration options for Odoo versions 13 through 19.
For automated integrations, use a dedicated Odoo user with only the permissions required by your synchronization workflow where possible.
Get started
↑ Back to topFor a new installation:
- Go to WooCommerce > Settings > Integrations > Odoo Integration.
- Open Setup.
- Enter your Odoo connection details.
- Use Test connection to verify them.
- Save the settings.
- Select the Odoo company, invoice journal, and tax defaults used by the store.
- Choose a starting scenario or leave it set to Custom.
- Open Sync flows.
- Enable only the data flows your store needs.
- Test with a small number of products or orders before starting a large synchronization.
- Review Overview and Diagnostics to confirm the integration is operating normally.
Do not enable every synchronization option simply because it is available. Configure each data type according to which system owns that information in your business.
Navigate the Odoo settings
↑ Back to topOdoo for WooCommerce organizes its settings into five main areas.
Overview
↑ Back to topOverview provides a high-level status of the integration.
Use it to review:
- Odoo connection status.
- Setup completion.
- Synchronization activity.
- Recorded integration issues.
- Integration health information.
Overview is the best place to start when checking whether the connector is operating normally.
Setup
↑ Back to topSetup contains the guided initial configuration.
Use it to:
- Connect WooCommerce to Odoo.
- Select an Odoo version.
- Enter connection credentials.
- Choose a starting synchronization scenario.
- Select the Odoo company.
- Configure the invoice journal.
- Configure product and shipping tax defaults.
- Configure fiscal-position settings where required.
Sync flows
↑ Back to topSync flows controls day-to-day movement of business data.
The settings are grouped into areas including:
- Catalog.
- Inventory and pricing.
- Customers.
- Orders and refunds.
- Invoicing.
Each group also contains advanced options for schedules, exclusions, and less common workflows.
Advanced
↑ Back to topAdvanced contains synchronization options that most stores do not need during initial setup.
These include:
- Order-status synchronization.
- Coupon and promotion synchronization.
- Additional scheduled automation.
Configure the main connection and Sync flows before enabling advanced options.
Diagnostics
↑ Back to topDiagnostics provides connection testing, activity logging, recorded integration issues, and WooCommerce log information.
Use this area when investigating failed or unexpected synchronization.

Connect WooCommerce to Odoo
↑ Back to topGo to Setup > Connect to Odoo.
Enter the following information.
Odoo version
↑ Back to topSelect the version used by the Odoo database.
The current integration provides options for Odoo 13 through Odoo 19.
Server URL
↑ Back to topEnter the base URL used to access the Odoo instance.
For example:
Do not add unnecessary paths to the end of the URL.
Database name
↑ Back to topEnter the Odoo database name.
This is the database identifier, not the user’s email address.
Username
↑ Back to topEnter the login used by the Odoo integration user.
This is commonly an email address.
API key or password
↑ Back to topEnter the credential used by the Odoo integration user.
Use an API key when supported by the Odoo environment.
Treat the API key with the same care as a password.
Test the connection
↑ Back to topUse Test connection before continuing.
A successful test verifies the values currently entered in the Setup screen.
Overview and Diagnostics also provide a Test saved connection option for credentials that have already been saved.

Choose a starting scenario
↑ Back to topOdoo for WooCommerce provides starting scenarios that enable a sensible group of synchronization settings.
Custom
↑ Back to topKeeps the current synchronization choices and allows you to configure individual settings manually.
Odoo leads the catalog
↑ Back to topUse this when products, stock, and prices are primarily maintained in Odoo and should flow into WooCommerce.
WooCommerce leads orders
↑ Back to topUse this when WooCommerce is the ecommerce order source and orders, invoices, and related data should be sent to Odoo.
Two-way catalog and orders
↑ Back to topEnables a broader set of synchronization directions.
After selecting a preset, save the settings and review the individual options under Sync flows.
Configure Odoo business defaults
↑ Back to topAfter connecting successfully, configure the Odoo defaults used when WooCommerce data is sent to Odoo.
Product code source
↑ Back to topChoose how WooCommerce SKUs are matched with Odoo products:
- Internal reference (SKU)
- Barcode
Use the identifier your business already treats as the unique product reference.
Odoo company
↑ Back to topSelect the Odoo company that should receive WooCommerce sales and accounting data.
Only one company is selected for the integration at a time.
Invoice journal
↑ Back to topSelect the journal used when WooCommerce orders create customer invoices or credit notes in Odoo.
Odoo customer invoices require a Sales-type journal. If an incompatible journal is selected, Odoo may use its default Sales journal instead.
Refresh the available options after creating a new journal in Odoo.
Product tax
↑ Back to topSelect the default Odoo tax for taxable product lines created from WooCommerce orders.
Shipping tax
↑ Back to topSelect the tax used for shipping lines.
Fiscal positions
↑ Back to topEnable Odoo fiscal positions if your Odoo accounting configuration uses them to change taxes for specific customers, countries, regions, or transaction types.
GST treatment
↑ Back to topStores using applicable Indian Odoo accounting localization may also see a GST treatment setting.

Plan your synchronization directions
↑ Back to topBefore enabling synchronization, determine which application owns each data type.
For example, a store might use:
- Odoo as the source of truth for products, stock, and prices.
- WooCommerce as the source of truth for ecommerce orders.
- Odoo as the accounting system for invoices and refunds.
This configuration minimizes overlapping updates.
If both Odoo-to-WooCommerce and WooCommerce-to-Odoo synchronization are enabled for the same data, avoid editing the same record in both applications at approximately the same time.
Sync products from Odoo to WooCommerce
↑ Back to topOpen Sync flows > Catalog.
Enable Create new WooCommerce products from Odoo to allow products created in Odoo to be added to WooCommerce.
Enable Update existing WooCommerce products from Odoo when changes made to matching Odoo products should also update WooCommerce.
Additional options include:
- Excluding selected Odoo product categories.
- Skipping Odoo Point of Sale-only products.
- Keeping the existing WooCommerce product description.
- Creating WooCommerce categories from Odoo.
- Creating product attributes from Odoo.
- Selecting synchronization schedules.
- Using an Odoo ID as an SKU fallback.
- Reusing a parent product image for variants that do not have their own image.
Products without an SKU
↑ Back to topNormally, product matching relies on the WooCommerce SKU and the configured Odoo Internal Reference or Barcode.
If Use Odoo ID as SKU Fallback is enabled, products without a suitable Odoo reference can still be imported using a generated SKU.
Simple products use a value based on:
odoo-{id}
Variants use:
odoo-var-{id}
Variable parent products do not require their own SKU.
This is useful when an Odoo variable product structure does not provide a reference for the parent product.
Product images and variants
↑ Back to topWhen Reuse parent product image on variants is enabled, an Odoo variant without its own image can use the parent product’s main image in WooCommerce.
The integration references the existing image rather than intentionally creating a duplicate Media Library item for each variant.
Sync products from WooCommerce to Odoo
↑ Back to topOpen Sync flows > Catalog and configure the WooCommerce-to-Odoo options.
You can:
- Create new Odoo products from WooCommerce.
- Update existing Odoo products.
- Exclude selected WooCommerce categories.
- Send categories to Odoo.
- Send attributes to Odoo.
- Keep existing Odoo product descriptions unchanged.
- Configure scheduled synchronization.
- Use a WooCommerce ID as an SKU fallback.
- Optionally delete the linked Odoo product when a WooCommerce product is moved to Trash.
Delete products in Odoo when trashed in WooCommerce
↑ Back to topEnable Delete Product in Odoo on Woo Trash only when removing the linked Odoo product is part of your intended business process.
WooCommerce products without an SKU
↑ Back to topWhen Use Woo ID as SKU Fallback is enabled, a generated SKU can be created for products that do not already have one.
Simple products use:
wc-{id}
Variations use:
wc-var-{id}
The generated value is saved to WooCommerce so subsequent synchronization continues using the same identifier.
Variable parent products do not require their own SKU.
Sync inventory and pricing
↑ Back to topUnder Sync flows > Inventory & pricing, choose the system that controls stock quantities and prices.
Odoo to WooCommerce
↑ Back to topEnable the relevant options to:
- Update WooCommerce stock from Odoo.
- Update WooCommerce prices from Odoo.
Use this configuration when Odoo is the main inventory or pricing system.
WooCommerce to Odoo
↑ Back to topEnable the relevant options to:
- Send WooCommerce stock levels to Odoo.
- Send WooCommerce prices to Odoo.
Use this configuration when inventory or pricing is maintained in WooCommerce.
Sync customers
↑ Back to topOdoo for WooCommerce can synchronize customer records in either direction.
Odoo to WooCommerce
↑ Back to topEnable Create and update WooCommerce customers from Odoo.
Choose the schedule used to refresh customer records.
WooCommerce to Odoo
↑ Back to topEnable Create and update Odoo contacts from WooCommerce customers.
Choose the required export schedule.
If both directions are enabled, define which system is authoritative for customer information before staff edit the same customer in both systems.
Route orders to one Odoo customer
↑ Back to topSome stores do not need an individual Odoo contact for every WooCommerce customer.
Enable Attach every WooCommerce order to a single Odoo contact and enter the required Odoo contact ID when all web orders should use one Odoo customer.
This can be useful for kiosk, point-of-sale-style, or other workflows where individual ecommerce customer records are not required in Odoo.
Send WooCommerce orders to Odoo
↑ Back to topOpen Sync flows > Orders & refunds.
Enable Send new WooCommerce orders to Odoo immediately to queue new orders when they are placed.
This is enabled by default in the current configuration.
Odoo for WooCommerce can also perform scheduled order export.
For scheduled exports, configure:
- Whether scheduled order export is enabled.
- The earliest WooCommerce order date that should be included.
- How often the export should run.
Create Odoo invoices
↑ Back to topEnable Create invoices in Odoo from WooCommerce orders when the integration should generate the accounting document for exported orders.
Before enabling invoice creation, verify:
- The correct Odoo company is selected.
- A suitable Sales journal is selected.
- Product taxes are configured.
- Shipping tax is configured.
- Fiscal-position behavior is correct for the business.
Test invoice creation before enabling it on a high-volume production store.
Mark invoices as paid
↑ Back to topEnable Mark new Odoo invoices paid automatically if a successfully paid WooCommerce order should result in the corresponding Odoo invoice being treated as paid.
Sync refunds
↑ Back to topEnable Record refunds in Odoo when issued in WooCommerce to synchronize WooCommerce refund activity to Odoo.
Invoice creation must be enabled for the related Odoo accounting workflow.
The integration can also import refund information from Odoo into WooCommerce when Odoo is the system where refunds are processed.
Sync payment transaction IDs
↑ Back to topEnable Sync Payment Transaction ID to send a WooCommerce payment gateway transaction ID to Odoo.
When available, the transaction ID is stored with the related Odoo sales and invoice information.
Orders without a payment transaction ID continue to synchronize without one.
This can make payment reconciliation and transaction lookup easier when WooCommerce is the payment source.
Sync invoice language
↑ Back to topEnable Sync order language to Odoo customer and invoice when the store uses a supported multilingual setup and invoices should follow the shopper’s checkout language.
When enabled, the integration can detect the order language and pass it to the corresponding Odoo customer so Odoo can create documents in that language.
The current integration includes support for multilingual environments using systems such as WPML, Polylang, or Weglot.
When this setting is disabled, Odoo continues to use the language already assigned to the customer.
Test this workflow with each storefront language before using it for production invoicing.
Sync multi-currency orders
↑ Back to topEnable Multi-Currency Order Sync when WooCommerce orders are placed in more than one currency and the WooCommerce order currency should be used when creating the corresponding Odoo order.
The matching currency must exist and be active in Odoo.
When possible, the integration resolves the appropriate Odoo pricelist for the order currency.
If the required currency is unavailable in Odoo, review the integration log before relying on the resulting Odoo order for accounting or fulfillment.
Import orders from Odoo
↑ Back to topEnable Import sales orders from Odoo into WooCommerce when orders created in Odoo also need to appear in WooCommerce.
This workflow is useful when Odoo receives orders from additional sales channels and WooCommerce should also contain those orders.
Select the synchronization frequency according to how frequently Odoo orders need to appear in WooCommerce.
Sync order statuses
↑ Back to topOrder-status synchronization is available under Advanced.
Odoo to WooCommerce
↑ Back to topEnable Pull order status updates from Odoo into WooCommerce when Odoo controls fulfillment status.
Use this when warehouse or fulfillment staff primarily update the order in Odoo.
WooCommerce to Odoo
↑ Back to topEnable Update Odoo documents when WooCommerce order status changes when WooCommerce controls the operational order lifecycle.
Custom status mapping
↑ Back to topCustom mapping can associate WooCommerce order statuses with the corresponding Odoo document states.
Sync coupons and promotions
↑ Back to topCoupon synchronization is available under Advanced > Coupons & promotions.
Odoo for WooCommerce can:
- Create WooCommerce coupons from Odoo.
- Update existing WooCommerce coupons from Odoo.
- Send WooCommerce coupons to Odoo.
- Update corresponding Odoo discount information.
- Run coupon synchronization on a schedule.
Enable these settings only if coupons or promotions genuinely need to be shared between the two systems.
Run bulk synchronization
↑ Back to topOdoo for WooCommerce provides bulk operations for products, customers, and orders.
Bulk operations can be used for tasks such as:
- Initial product migration.
- Re-synchronizing a catalog.
- Importing or exporting customers.
- Importing or exporting historical orders.
Where available, select the operation and date range before starting the process.
A running bulk operation displays progress information.
The integration also provides a Stop control for supported background processes.
Do not start multiple conflicting bulk processes for the same data set at the same time.
If a product import is interrupted because the Odoo connection is lost, recent versions of the integration can resume the product import queue after connectivity is restored.

Monitor integration health
↑ Back to topThe Overview screen includes integration health information.
Use it to review whether the WooCommerce store and Odoo connector appear to be operating normally.
Health information can include:
- Connection state.
- Recent synchronization success or failure.
- Recent connector errors.
- WordPress cron status.
- Last scheduled run.
- Next scheduled run.
- Missing or overdue scheduled synchronization tasks.
If WordPress cron is disabled, make sure the server has an alternative system cron process calling WordPress cron correctly.
Low-traffic stores can also experience delayed WP-Cron processing.

Download diagnostics for support
↑ Back to topThe integration health area provides Download diagnostics (ZIP).
Use this when support requests diagnostic information about the integration.
The diagnostics package is designed to collect useful system and integration information in one support bundle.
Use Diagnostics and logs
↑ Back to topOpen Diagnostics when a synchronization does not behave as expected.
The screen provides:
- Test saved connection.
- Activity logging controls.
- Recorded product and synchronization issues.
- WooCommerce Odoo log files.
Enable activity logging before reproducing an issue so the relevant event is recorded.
WooCommerce file logs can also be reviewed under WooCommerce > Status > Logs.
Troubleshooting
↑ Back to topOdoo does not connect
↑ Back to topConfirm:
- The Odoo version is correct.
- The Server URL is correct.
- The Database Name is correct.
- The Username belongs to the intended Odoo user.
- The API key or password is correct.
- The Odoo user has the permissions required by the integration.
- External API access is available for the Odoo environment.
Use Test connection after making changes.
If testing succeeds, save the settings before starting synchronization.
Sync settings are unavailable
↑ Back to topComplete the Setup process first.
The integration requires a working Odoo connection and the required Odoo defaults before synchronization settings are fully available.
Confirm the company, invoice journal, and tax defaults under Setup.
A product does not synchronize
↑ Back to topCheck:
- The product identifier.
- The configured Internal Reference or Barcode mapping.
- Category exclusion settings.
- Whether product creation or updating is enabled.
- Whether the correct synchronization direction is enabled.
- The Diagnostics issues.
- The WooCommerce Odoo logs.
If products do not have normal SKUs, consider the appropriate SKU fallback setting.
A variable product parent has no SKU
↑ Back to topVariable parent products do not require their own SKU in the current integration.
If a product or variant lacks the identifier required by your workflow, use the appropriate Odoo ID or WooCommerce ID SKU fallback where suitable.
Product images are duplicated or repeatedly imported
↑ Back to topUpdate to the current release before troubleshooting historical image-import behavior.
Current product import handling is designed to preserve existing WordPress Media Library references rather than unnecessarily deleting and recreating existing attachments.
For variants without a separate image, consider enabling Reuse parent product image on variants.
An Odoo order is missing products or line items
↑ Back to topCheck that the products referenced by the WooCommerce order can be matched or created in Odoo.
Review the SKU/Internal Reference or Barcode mapping and inspect Diagnostics for the failed product operation.
Resolve product synchronization errors before retrying the affected order.
An invoice journal is missing
↑ Back to topReturn to Setup > Odoo business defaults and refresh the available Odoo options.
Confirm that the journal belongs to the selected company.
Customer invoices require a Sales-type journal.
Synchronization is delayed
↑ Back to topCheck the integration health information for:
- The last cron run.
- The next scheduled run.
- Overdue scheduled tasks.
- Missing scheduled events.
- Whether WordPress cron is disabled.
If the site has little traffic, WP-Cron may run less consistently. A server-level cron configuration can provide more predictable scheduled processing.
A bulk synchronization needs to be stopped
↑ Back to topUse the Stop control associated with the running bulk operation.
Wait for the interface to confirm that processing has stopped before beginning a conflicting operation.
The integration stopped after reconnecting Odoo
↑ Back to topTest the saved connection first.
Recent versions can resume an interrupted product import queue after the Odoo connection is restored.
Review the progress indicator and Diagnostics before manually starting the same import again.
The site URL changed
↑ Back to topIf the site was moved between domains or from staging to production and connector authentication fails, save and test the connection again.
Do not repeatedly reset a production connection without first recording the current configuration.
Best practices
↑ Back to top- Choose a source of truth for products, inventory, prices, customers, and order statuses before enabling synchronization.
- Enable only the data flows the business actually uses.
- Use a dedicated Odoo integration user where possible.
- Prefer API keys over a personal user’s normal login password where supported.
- Test a small catalog and a small number of orders before running a full synchronization.
- Verify product identifiers before a bulk migration.
- Confirm accounting settings with the person responsible for the Odoo configuration before enabling automatic invoices, paid status, refunds, or tax-related options.
- Use reasonable synchronization intervals. More frequent synchronization increases requests to WordPress, Odoo, and the connector.
- Review the Overview and integration health information regularly.
- Keep activity logging available while troubleshooting.
- Download the diagnostics package when support requests system information.
- Keep WordPress, WooCommerce, Odoo for WooCommerce, and the Odoo environment updated.
- Test significant configuration changes and upgrades in staging before applying them to a production integration.
Getting help
↑ Back to topIf the issue cannot be resolved using Diagnostics and the troubleshooting steps above, contact support through the WooCommerce.com support channel for Odoo for WooCommerce.
Include:
- A concise description of the problem.
- What you expected to happen.
- What happened instead.
- Example WooCommerce order or product IDs.
- The approximate time the issue occurred.
- The synchronization direction involved.
- Relevant WooCommerce Odoo logs.
- The diagnostics ZIP when requested.
Do not include passwords, API keys, payment credentials or other secrets in a support request.