Products and variations
Simple and variable products with attributes, images, SKUs, categories and price, published from the side that owns the catalogue.
WooCommerce is a plugin on a WordPress site, which is both its advantage and the thing that makes integration need care. The store can be changed by anyone with admin access, plugins alter how orders and taxes behave, and the database is yours to read.
That flexibility is why a WooCommerce integration works best when the rules are explicit: one owner per field, a stock figure that accounts for reservations, and a queue for the records that will not go through.
Businesses running Odoo with OdooBots
Odoo WooCommerce integration keeps one catalogue, stock figure, customer and order record across the store and the ERP. Products and variations publish from whichever side owns them, forecast available stock is pushed as it changes, paid orders arrive as Odoo sales orders with their tax and shipping lines intact, gateway transactions attach to the invoice, and refunds raise matching credit notes.
WooCommerce tax behaviour depends on the plugins installed. Before mapping anything, we check what actually lands on an order rather than what the settings page says should.
Six things move between a WooCommerce store and Odoo, and each needs an owner before it needs a connector.
Simple and variable products with attributes, images, SKUs, categories and price, published from the side that owns the catalogue.
Forecast available quantity pushed to the store as it changes, per warehouse where you sell from more than one, with an optional buffer.
A paid order becomes an Odoo sales order with its line items, coupons, shipping method and tax exactly as WooCommerce calculated them.
Billing and shipping addresses matched to existing Odoo contacts before a new one is created, including guest checkouts.
Gateway transaction references attached to the invoice so reconciliation has something to match on, whichever gateway the store uses.
Despatch from Odoo moves the order to completed with its tracking detail, and a WooCommerce refund raises the credit note.
An order is paid on the store and arrives in Odoo as a sales order against a matched customer, with the tax and shipping lines WooCommerce calculated rather than recalculated. Stock reserves, the storefront quantity drops, and the warehouse picks. On despatch the order moves to completed with its tracking, the invoice posts, and the gateway reference sits on it for reconciliation.
Because WooCommerce behaviour depends on which plugins are installed, the mapping is built against real orders from your own store rather than against the documentation.
These are the decisions that are cheap to make now and painful to reverse once two systems have been exchanging records for a month.
Decided per field. Price and stock usually belong in Odoo; images and descriptions often stay with whoever maintains the site.
Every product and variation needs a unique reference present on both sides. Missing or duplicated SKUs is the most common reason a first sync fails.
Forecast available rather than on hand, and from which warehouse. This is what stops the store selling stock already reserved.
We read real orders to see what your plugins produce, then map that. Trusting the settings page is how GST reporting goes wrong in month one.
What processing, on-hold, completed and refunded each mean in Odoo, including partial fulfilment and cancelled-after-payment.
Whether a guest becomes a contact, and how repeat guests with the same email are matched rather than duplicated.
A named person and an alert. WooCommerce sites change when plugins update, and an unwatched sync diverges quietly.
We would rather say this before you buy licences than after. These are the areas where we scope real development, recommend a different tool, or tell you the connector will not reach.
Fields added by a third-party plugin are not in the standard mapping. They can be carried across; it is development and it is scoped.
Stock is published rather than queried at checkout. A buffer absorbs the gap, which is how both systems are designed to work.
WooCommerce Subscriptions keeps its own billing schedule. Reconciling it against Odoo subscriptions is separate work.
Several stores on one WordPress multisite each need their own mapping and rules rather than sharing one.
A bundle that must consume components in Odoo needs explicit modelling before it will cost correctly.
A slow WooCommerce site slows the sync with it. Hosting problems show up as integration problems and are worth fixing first.
Connecting WooCommerce to Odoo is less about the connector than about agreeing what is true where, and what happens when a record will not go through.
Understand your catalogue, which plugins affect orders and tax, how many warehouses you ship from, and whether guest checkout is used.
Agree the owner of each field, the SKU key, the published stock figure and the status mapping, built against real orders from your own store.
Connect WooCommerce to Odoo using the standard connector where one fits, and build only what the connector genuinely cannot reach. See Odoo customization.
Your records, in a test database, including the awkward ones — the cancelled order, the partial refund, the product that exists on one side only.
A queue for failed records with a named owner and an alert, because an integration nobody watches diverges quietly and the divergence is found at audit.
Cutover with a reconciliation on both sides, then hypercare, then ongoing support and AMC.
We do not publish one integration price, because the same connector costs very differently depending on the factors below. We do publish what moves the number, and the price is fixed in writing before work starts.
We map a WooCommerce store from its real orders, not from its settings page, because plugins change what actually lands on an order. That is why GST on our WooCommerce clients reconciles in the first month rather than the third.
Product capabilities stated on this page are documented by Odoo. The mapping advice, failure handling and limitations come from our own integrations.
Tell us which plugins affect your orders and taxes, and how many warehouses you ship from. Those two answers shape the mapping, and the diagnosis call is free.