Skip to main content
Shopify

Shopify Connector: the Push Stock error when Shopify is the stock master

It appears when you press Push Stock and the instance has Pull stock from Shopify ticked: stock travels from Shopify to Odoo, and the module will not send it the other way. Untick that box if you want Odoo to be the one that sends the stock.

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

Key facts

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

When exactly it appears

The warning says, with the instance name included, that stock is pulled from Shopify into Odoo, that Shopify is the stock master, and that you need to turn off the Pull stock from Shopify box to push stock from Odoo.

It appears when you press the Push Stock button on the instance form, and that button is visible in Odoo 17, 18, 19 and 20 with no condition. According to the Odoo 20.0 code, one thing triggers the warning: the Pull stock from Shopify box is ticked on that instance. The method checks it before anything else, before looking up the Shopify location and before looking at which products are linked. If it is ticked, the action stops and no quantity is sent to Shopify. The warning is in the published code of all four branches: 17.0, 18.0, 19.0 and 20.0.

Diagram built from code, not an Odoo screen: the instances menu, the Push Stock button, the Shopify Push Stock scheduled action, the Pull stock from Shopify field and the message, with the labels in English
Diagram built from the module's published code (Odoo 17.0, 18.0, 19.0 and 20.0): from top to bottom, the menu, the button, the scheduled action, the field and the message.
Your Odoo doesn't talk to Amazon, Temu or Shopify?
Video: Your Odoo doesn't talk to Amazon, Temu or Shopify?

What it means

Ticking Pull stock from Shopify tells the module that Shopify is the master of the stock. According to the field's help text, each pull sets the stock on hand of Shopify's main location in the linked Odoo location, using an inventory adjustment, less what Odoo has delivered and Shopify has not yet fulfilled. The same help text says the box cannot be on together with the stock push, nor with another store pulling into the same Odoo location.

Hence the warning: with Shopify as master, Push Stock refuses to send Odoo's stock to Shopify. Pulling and pushing do not live together on one instance. In the code, the box is off by default, and with that value the check is not met.

One point from that help text is worth keeping in mind: what Shopify holds as damaged, in quality control or as safety stock is part of its stock on hand, and in Odoo it is stock like the rest.

Worked example: a shop that wants to push its stock

Example Illustrative case: the company and its figures are made up to explain the flow.

Cerámicas Aurora, an invented shop, sells on Shopify and runs its warehouse in Odoo. The person in charge of purchasing opens the instance form and presses Push Stock, expecting Shopify to show Odoo's stock levels. Instead they get the warning that Shopify is the stock master, with the name of their shop included.

This is what they do next:

  1. They open the instance form from the menu Sales › Shopify › Control Center › Instances.
  2. They go to the Operations tab, to the Sync Settings group, and see Pull stock from Shopify ticked.
  3. They decide who is in charge. If they want it to be Odoo, they untick the box, save the form and press Push Stock again. If they prefer Shopify to be in charge, they leave the box as it is and do not use Push Stock.

If they stay with Shopify as master, the field's help text warns that ticking the box does not run the pull: you also need to turn on the scheduled action that pulls stock. For the pull button, see what the Pull Stock button does.

What the example shows: the warning does not point to a dropped connection or a badly loaded record, but to a rule of the module. First decide which way the stock travels, then adjust the box.

Where the box is and what it is called

It is on the Shopify Instances form, Operations tab, Sync Settings group. Its label depends on the language of your Odoo:

LanguageLabel of the box
SpanishTraer el stock de Shopify
GermanBestand von Shopify abrufen
FrenchRécupérer le stock depuis Shopify
ItalianImporta le giacenze da Shopify
PortugueseObter o stock da Shopify
Diagram built from code, not an Odoo screen: the label Pull stock from Shopify in Spanish, German, French, Italian and Portuguese
Diagram built from the module's published translations: the same label in each language.

What Push Stock does when the box is off

According to the Odoo 20.0 code, once the check is passed the method carries on like this:

  • It uses the Shopify location saved on the instance. If there is none, it asks for the shop's first location and saves it.
  • It takes the linked products that are active and have their Shopify inventory identifier, and leaves out those of a company other than the instance's.
  • If none are left, it ends there. If some are, it sends Shopify the quantity on hand of each product in the instance's company, rounded to a whole number, in batches.

If another message appears after you untick the box, it is no longer this one: the box check comes first and you have passed it.

How FlexigoTech can help

FlexigoTech implements Odoo 17, 18, 19 and 20 and builds custom connectors and integrations. If you are unsure which side should be the master of your shop's stock, we can go through it with you before you touch the configuration.

Shopify Connector costs €9 per Odoo version, for 17, 18, 19 and 20, as a one-off payment excluding VAT. It also needs the FlexigoTech Cloud subscription, Connector plan: €49/month or €490/year excluding VAT.

Keep reading

What the Shopify Connector Pull Stock button does, step by stepWhat the Pull Stock button in Shopify Connector does in Odoo: when it shows, what it checks, what inventory adjustments it makes and which errors it gives.
Checked in the connector's source code (version 20.0) and the linked sources

Sources