An Odoo–WooCommerce connection that works both ways, for as many stores as you run.
We connect one or more WooCommerce stores to Odoo, and the data updates by itself in both directions: products, each store's prices and each warehouse's stock go to the eshop; orders and customers go to Odoo. If the connection drops, nothing is lost, and a console shows you what's waiting and what needs attention.
Retail
WooCommerce
- Price list
- Retail, incl. VAT
- Stock from
- Athens and Thessaloniki
- Orders
- to Odoo
Wholesale
WooCommerce for B2B
- Price list
- Per customer, excl. VAT
- Stock from
- Athens
- Orders
- to Odoo
Outlet
WooCommerce
- Price list
- Outlet, with its own offers
- Stock from
- Outlet warehouse
- Orders
- to Odoo
WHERE WOOCOMMERCE CONNECTIONS USUALLY TRIP UP
Most problems don't show on day one. They show when the catalogue grows, a second store opens or the connection drops for a few minutes.
A list of webhooks where the new-order webhook was disabled Orders stopped, and nobody noticed
Many connections wait for WooCommerce to send a message (a webhook) for every new order. If that message fails more than five times in a row, WooCommerce switches it off by itself. Orders keep arriving on the eshop but not in Odoo, and you find out when a customer asks where their parcel is.
You see what's waiting on the console, and if the connection drops nothing is lost.
If the connection drops, nothing is lostThe offer price and the price after the overnight sync The weekend offer vanished overnight
Someone set a weekend offer in WooCommerce. That night the sync pushed every price from Odoo again, and the offer was gone without anyone noticing. Nobody had written down which system decides the sale price.
We write down which system decides each field, so the offer stays.
Which system decides each fieldThe same variation with a different code in WooCommerce and Odoo Variations don't match
In WooCommerce the T-shirt has a size and a colour; in Odoo every combination is its own product code. If the codes (SKUs) don't match one to one, stock for “M blue” ends up on “L blue”, or an order comes in without an item.
One code for each variation, so stock goes where it should.
One offer across two storesA spreadsheet of prices for the second store, with an old price The second store is updated by hand
You opened a second WooCommerce store, for wholesale or an outlet. But the connection only knows the first, so the second store's prices and stock go through a spreadsheet, once a week, when someone finds the time.
However many WooCommerce stores you have, they connect to one Odoo, each with its own rules.
WHAT STAYS IN STEP BETWEEN WOOCOMMERCE AND ODOO
Every kind of data has one system that decides and one direction. Only what changed is sent, not the whole catalogue every night.
Catalogue import
The catalogue comes into Odoo from Excel, CSV, supplier files or the WooCommerce store you already have: products, variations, attributes, barcodes and photos, with no duplicates.
Prices per store and channel
Each store gets its own price list from Odoo: retail including VAT, wholesale excluding VAT, outlet. Offers go into WooCommerce's sale price, with a start and an end date.
Stock per warehouse
You choose which warehouses supply stock to each store. If you like, you also keep a small safety stock that doesn't show online, so you never sell what isn't on the shelf.
Orders and customers
Every order goes into Odoo once, with the customer, shipping, payment method and the buyer's choice of a receipt or an invoice with a Greek VAT number. The status and tracking number go back to the eshop.
Several stores, one Odoo
However many WooCommerce stores you run, they connect to the same Odoo, each with its own rules for codes, prices and warehouses. A new store is added without changing anything in the others.
A console for the office
You see what went through, what's waiting and what needs attention, and you resend an order or a product with one click. See what it looks like.
WHICH SYSTEM DECIDES EACH WOOCOMMERCE FIELD
The connection map records which system has the last word on each kind of data. For WooCommerce we write it down field by field, and it usually ends up something like this:
Scroll sideways to see all columns
| In WooCommerce | Has the last word | What we watch for |
|---|---|---|
| Product code (SKU) and barcode | Odoo | One code for every variation. That's how we find the same product on both sides |
| Regular price | Odoo, from each store's price list | With or without VAT, as the store is set up |
| Sale price and dates | Odoo or the store, as agreed | If the store decides, the connection never touches it |
| Stock and availability | Odoo | From which warehouses, and with a safety stock if you want one |
| Title, description and photos | Odoo or WooCommerce, as agreed | If the eshop team writes them, they stay in WooCommerce |
| Categories and attributes | Odoo | The eshop's filters come from the same attributes |
| Orders | WooCommerce | They go into Odoo once, with the order number as the key |
| Order status and tracking number | Odoo | They go back to the eshop, and the customer gets an email |
| Customers | Odoo for billing details, WooCommerce for the account | We match the customer by email or VAT number, so there are no duplicate records |
Why one system for each kind of data, and what happens when two disagree: see the guide to which system has the last word.
ONE OFFER ACROSS TWO STORES, STEP BY STEP
You change prices once in Odoo, and each store gets its own. Use the switch to see what happens when a store doesn't answer.
- Odoo
- The connection
- Retail
- Wholesale
Confirmation and price history back to Odoo
- The pricing manager sets a 15% discount on 240 products in the retail price list, from Friday to Sunday.
- The connection works out which stores the change affects. Only retail: wholesale has its own price list.
- The sale prices reach the retail store in batches, with a start and an end date.
- The retail store doesn't answer, because its server is being updated. The changes aren't lost: they wait their turn.
- Another try in a minute, and again in five. The console shows “Waiting”, so the office knows.
- The server is back. The 240 prices go through once, and the console turns back to “Done”.
- No price changes in the wholesale store. It only gets the stock, which both stores share.
- Odoo keeps the history of every price, so at the next offer it knows the lowest price of the last 30 days, which EU rules ask you to show beside a discount.
IF THE CONNECTION DROPS, NOTHING IS LOST
Every change, whether an order, a price or a stock level, first goes into a queue and then goes out. If Odoo or WooCommerce doesn't answer, it's sent again a few minutes later, and the order number stops it going in twice.
We don't rely on WooCommerce's messages (webhooks) alone, because WooCommerce switches them off after more than five failures in a row, as its documentation says. Every few minutes the connection also checks on its own for orders that didn't arrive.
In the console, the office sees what went through, what's waiting and what needs attention, such as a product code that doesn't exist in Odoo. You fix it and resend it with one click. If needed, we resend a whole day's data with you.
Connection console
Odoo and 3 WooCommerce stores · today, 14:20
- 186orders went through
- 2waiting for a retry
- 1needs attention
- 14:18Done#10511 from retail, entered in Odoo as S02233
- 14:16Waiting240 prices for the outlet, next try at 14:21
- 14:09Needs attention#10507 product code TS-204-M-BL doesn't exist in OdooRESEND
- 14:02DoneStock 1,204 products updated in 3 stores
CATALOGUE IMPORT WITHOUT DUPLICATES
Before the sync starts, the catalogue has to be right in Odoo. We bring it in from Excel, CSV, your suppliers' files or the WooCommerce store you already have, with variations, attributes, barcodes and photos.
Every import runs as a dry run first: nothing changes, and you see what will be added, what will change and what doesn't match. Products that already exist are found by their code or EAN, so the same import can run again without filling the catalogue with duplicates.
If descriptions or categories are missing, AI fills them in, and a person checks them before they appear on the eshop.
- Excel, CSV or WooCommercethe catalogue as it is today
- Dry runchanges nothing, shows what will happen
- Matchingby code or EAN, no duplicates
- Odooone catalogue for every store
ODOO AND WOOCOMMERCE SYNC THAT WORKS AS ONE SYSTEM
Whatever changes in Odoo shows on WooCommerce, and whatever WooCommerce sells lands in Odoo, without anyone touching it.
- Retail and wholesale
Many WooCommerce stores, one Odoo
Your catalogue goes into Odoo and syncs every WooCommerce store you have, in both directions, with each store's own rules for codes and prices. Anything that doesn't go through waits its turn, and a console shows you what needs attention.
- Wholesale, shop and eshop
One product, three prices
You sell wholesale, in the shop and online, and each channel has its own price list. Orders go to the right warehouse, and the product is found by any of its barcodes.
- Sales
Every eshop order in your sales team's CRM
Every order opens or updates an opportunity in Odoo's CRM. The customer is found by VAT number or phone, and whatever your salespeople have written stays untouched.
- Eshop
Drop photos in a folder, and you're done
Name the photos after the product code and they land in the right place in each gallery. Each run handles only the ones that changed, however many thousands there are.
On WooCommerce and thinking about Odoo? Tell us how you work today.
HOW WE SET UP THE WOOCOMMERCE–ODOO CONNECTION
Connection map
About a week: which stores, which price lists and warehouses, and which system decides each field. We write it into the connection map, which you keep.
Catalogue and matching
We bring the catalogue into Odoo, with a dry run first, and match every product and every variation to its code in WooCommerce.
Tests on a copy
The connection runs first on a copy of the eshop and a test Odoo. We place orders, change prices and cut the connection on purpose, to see that nothing is lost.
One store at a time
We switch the connection on for the first store and watch the console with you for the first few days. Then we add the rest.
QUESTIONS
There are ready-made Odoo–WooCommerce plugins. Why not use one?
For one store with a simple catalogue, a ready-made plugin may be enough. The hard part starts with several stores, different prices per channel, variations and several warehouses, and when you want to know what happened to an order that didn't go through. That's where we build the connection on your own rules, with a console and a history.
We already have a connection that makes mistakes. Can you fix it?
Yes. We start with the connection map: we see which system decides each field today and where changes get lost. Then we fix the connection you have or replace it, without stopping orders.
Can each store have different prices?
Yes. Each store gets its own price list from Odoo, for example retail including VAT, wholesale excluding VAT, and outlet. If you like, one store decides its own offers, and the connection leaves them alone.
Do changes go through straight away?
Orders reach Odoo within seconds. Prices and stock go out as soon as they change, and only what changed is sent, not the whole catalogue. On top of that, every few minutes the connection checks on its own that nothing slipped through.
How many products and stores can it handle?
The connection sends only what changed, in batches, so it works the same with hundreds or tens of thousands of product codes. The limit is usually the WooCommerce hosting, and we check it from the start.
We're not on Odoo yet. Where do we start?
With Odoo for the catalogue, stock and eshop orders, while invoices keep coming from the software you use today. The rest moves to Odoo step by step. See how we set up Odoo for companies in Greece.
Our eshop is on Shopify. Can you connect it?
Yes, we connect Shopify to Odoo too, on the same connection map. If you're still choosing a platform, see the guide WooCommerce or Shopify. See also what we set up on Shopify.
Can you work in English with our team?
Yes. Proposals, the connection map and handover notes are in English or Greek, and we talk to your Greek accountant and warehouse in Greek.
How much does it cost?
It depends on the stores, the price lists, the warehouses and how clean the catalogue is. After the connection map we write down what will be connected and at what fixed price.
RELATED
Eshop–ERP integration
The big picture: what we connect to Odoo, the connection map and an order's journey.
Guide: which system has the last word
Prices, stock, orders, customers: which system decides, and what to ask for in writing.
Marketplaces & XML feeds
The same stock and prices on Skroutz, BestPrice, Shopflix and Public.
Retail eshop
Eshop, marketplaces and a physical shop with one stock and one price list.
Odoo Greece
Odoo set up for a company in Greece, with myDATA, e-invoicing and delivery notes.
Guide: WooCommerce or Shopify
How each one charges, what applies to invoices, and when one fits better than the other.
TELL US HOW MANY STORES YOU WANT CONNECTED.
And about your price lists and warehouses. Then we send you a written proposal: what we connect, how long it takes and a fixed price.