From 1 February 2027, Greek invoices issued from software go only through a licensed provider.1 Feb 2027: invoices only through a provider. What changes 

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.

Odooone catalogue, price lists per store, stock per warehouse
  • 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
Odoo connected both ways to three WooCommerce stores: retail gets the retail price list including VAT and stock from Athens and Thessaloniki, wholesale gets per-customer prices excluding VAT and stock from Athens, the outlet gets its own offers and its own warehouse, and orders from all three go 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 lost
  • The 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 field
  • The 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 stores
  • A 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 WooCommerceHas the last wordWhat we watch for
Product code (SKU) and barcodeOdooOne code for every variation. That's how we find the same product on both sides
Regular priceOdoo, from each store's price listWith or without VAT, as the store is set up
Sale price and datesOdoo or the store, as agreedIf the store decides, the connection never touches it
Stock and availabilityOdooFrom which warehouses, and with a safety stock if you want one
Title, description and photosOdoo or WooCommerce, as agreedIf the eshop team writes them, they stay in WooCommerce
Categories and attributesOdooThe eshop's filters come from the same attributes
OrdersWooCommerceThey go into Odoo once, with the order number as the key
Order status and tracking numberOdooThey go back to the eshop, and the customer gets an email
CustomersOdoo for billing details, WooCommerce for the accountWe 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.

  1. Odoo
  2. The connection
  3. Retail
  4. Wholesale

Confirmation and price history back to Odoo

  1. The pricing manager sets a 15% discount on 240 products in the retail price list, from Friday to Sunday.
  2. The connection works out which stores the change affects. Only retail: wholesale has its own price list.
  3. The sale prices reach the retail store in batches, with a start and an end date.
  4. No price changes in the wholesale store. It only gets the stock, which both stores share.
  5. 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
  1. 14:18Done#10511 from retail, entered in Odoo as S02233
  2. 14:16Waiting240 prices for the outlet, next try at 14:21
  3. 14:09Needs attention#10507 product code TS-204-M-BL doesn't exist in OdooRESEND
  4. 14:02DoneStock 1,204 products updated in 3 stores
The console of the Odoo–WooCommerce connection for three stores: 186 orders went through today, 2 changes are waiting for a retry and 1 needs attention. In the list, order #10511 went into Odoo, 240 prices for the outlet are waiting for a retry, order #10507 needs attention because its product code doesn't exist in Odoo and has a resend button, and stock for 1,204 products was updated

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.

  1. Excel, CSV or WooCommercethe catalogue as it is today
  2. Dry runchanges nothing, shows what will happen
  3. Matchingby code or EAN, no duplicates
  4. Odooone catalogue for every store
Catalogue import in four steps: the catalogue from Excel, CSV or WooCommerce, a dry run that changes nothing, matching by code or EAN with no duplicates, and one catalogue in Odoo 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

  1. 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.

  2. 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.

  3. 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.

  4. 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

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.