Skip to main content
Shopify

Selling on several stores without selling the same product twice

When you sell the same product in your own shop and on one or two marketplaces, stock has to go down everywhere at once. A spreadsheet cannot do that: someone updates it later, and in the meantime another shop sells the unit that is already gone. The fix is a single inventory that sends the quantity to each channel by itself, every few minutes.

FlexigoTech · Editor in charge: Víctor Gómez · Updated 4 November 2026

Key facts

Module
Shopify
Versions
Odoo 17, 18, 19 and 20
Checked
in the connector's source code, version 17.0, 18.0, 19.0 and 20.0 · against the sources linked at the end
Reading time
4 min

How the same unit gets sold twice

The case is simple. There is one unit left of a product. It sells in your online shop mid-morning. The spreadsheet where you track stock gets updated in the afternoon, when someone has a moment. Meanwhile, the marketplace keeps showing that unit and a second customer buys it.

Diagram of how the same unit gets sold twice with two stock counts
Two channels and two counts: the shop sells the last unit, the spreadsheet is updated late and the marketplace sells it again. Illustrative diagram.

Now you have two bad ways out: cancel the second order or make the customer wait until more stock comes in. Both have a cost you do not see at the time.

How to stop copy-pasting between apps (Odoo)
Video: How to stop copy-pasting between apps (Odoo)

What nobody tells you when you open a second channel

The marketplace assumes your stock is up to date

Cdiscount's terms ask sellers to have everything they list in stock and available immediately, to update their stock in real time and to take down anything that stops being available. When you report that you have no stock of a product, Cdiscount blocks its listing automatically. In other words, the system trusts the number you send it.

Cancelling has a cost

Cdiscount also asks you not to cancel sales on your own without a justified reason. And it measures your service: it requires a dispatch rate of 97.5% or higher. If you do not report the shipment after the buyer validates the order, the order is cancelled automatically and that rate gets worse.

So does making the customer wait

The EU Consumer Rights Directive says that, unless you agree on another period, you deliver without undue delay and no later than 30 days after the purchase. If you miss that, the customer gives you an additional period and, if you miss that one too, they can terminate the contract and you refund everything they paid.

Your own shop can keep selling at zero

In Shopify, each variant has its own inventory policy. With CONTINUE, customers can keep buying it when it is sold out; with DENY, they cannot. If a variant was left on CONTINUE by mistake, your website sells what you do not have even when the number is right.

Updating by hand has a catch too

In Mirakl's seller API (Mirakl is the platform behind marketplaces such as Leroy Merlin or Decathlon), creating or updating offers means sending every field: any field you leave out goes back to its default value. Mirakl recommends doing it every 5 minutes and no more than once a minute. No team can keep up that pace by hand.

What really fixes it

Stock that lives in one place, with every channel reading from there. Eurostat describes two ways of sharing information automatically between a company's departments: linking several applications to a common database, or using one modular ERP. Odoo belongs to the second kind.

With Odoo the inventory lives in one place and the connectors share it out:

  • The Shopify connector sends Odoo's stock to the store every 20 minutes and, every 6 hours, pulls Shopify's available quantity and sets it as Odoo's on-hand stock, over whatever was there and with no stock move.
  • What it sends is the free quantity: what you have minus what is already reserved. A confirmed order reserves the unit straight away, before it has even left the warehouse, so the store stops offering it without waiting for the shipment.
  • The Amazon connector syncs its pending price and stock updates every minute.
Odoo products linked to Shopify, with price and stock
The Odoo products linked to the Shopify store, grouped by product, with their price and inventory quantity. Odoo screenshot.

Day to day, this is what changes: orders confirmed in Odoo reserve from the same inventory and the channels get the new quantity on the next run. There is no longer a spreadsheet that someone has to remember to update.

How we set it up

At FlexigoTech we implement Odoo 17, 18, 19 or 20 and connect your stores and marketplaces with our connectors. Odoo Online does not accept third-party modules, so we work on Odoo.sh or on your own server. Each connector can be tried for 14 days from Odoo, free and without a card, and the Connector plan starts at €49 a month, VAT excluded. If the way you work needs something that does not exist, we build it to measure: we analyse the case for free and give you a closed price before we write any code.

Write to comercial@flexigobe.com, leave your details on our contact page or book a call and we will go through it with your channels in front of us.

Keep reading

Returns in an online store without an ERP: Spanish deadlines and what gets lost along the wayThe deadlines Spanish law sets for a return on a distance sale, the paperwork it creates in your business and where you lose control when it all lives in spreadsheets.Shopify alone or Shopify with Odoo: what changes in your day-to-dayComparison for Shopify stores without an ERP: orders, stock, shipping, returns, invoices and payouts, before and after running the store inside Odoo.Selling on Cdiscount without an ERP: myths and factsWhat sellers often believe when selling on Cdiscount with the Octopia back office and spreadsheets, checked against the channel's rules and what Odoo does.
Checked in the connector's source code (version 17.0, 18.0, 19.0 and 20.0) and the linked sources

Sources