Skip to main content
Shopify

What the Sync Orders button in Shopify Connector for Odoo does, step by step

The Sync Orders button on the store record asks Shopify for the orders updated since the last run, processes them in Odoo and stores the date to continue from. Pressed by hand, it does the same as the scheduled action: here is what it checks, what it changes and when it stops with an error.

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
5 min

Where the button is and who can see it

The store records open from the menu Shopify › Configuration › Stores. The Shopify level asks for the Viewer permission and the Configuration level asks for Operator; if you lack one of them, you do not see that level. On the Shopify Instances screen you will find the Sync Orders button, which has no visibility condition in Odoo 17, 18, 19 and 20.

Diagram showing the stores menu, the sync orders button and, beside it, the error message that can stop the action
Diagram built from the published module code, not an Odoo screen: the menu, the button (Odoo 17, 18, 19 and 20) and the message that can stop it.

The label of the button changes with the language of your Odoo, as this diagram shows.

Diagram with the button label in Spanish, German, French, Italian and Portuguese
Diagram built from the module's published translations, not an Odoo screen: Sincronizar pedidos (Spanish), Bestellungen synchronisieren (German), Synchroniser les commandes (French), Sincronizza ordini (Italian) and Sincronizar pedidos (Portuguese).
Your Odoo doesn't talk to Amazon, Temu or Shopify?
Video: Your Odoo doesn't talk to Amazon, Temu or Shopify?

Step by step: what happens when orders are synced

This is what the code does, in the order it does it.

  1. First, the automatic path. The scheduled action Shopify Sync Orders runs every 5 minutes and reaches the same action as the button; it is switched off when you install the module. So the button is the way to launch it by hand, not the usual step.
  2. You press the button. The module creates a sync log entry of the orders type, in a running state.
  3. It works out where to start from. If Last Order Sync has a date and the store has already imported at least one order, it asks for orders updated since that date. Otherwise it steps back from the current moment by a number of hours set on the store, never less than one hour. The filter is on the order's update date, not its creation date.
  4. It applies the store's import scope. Depending on the configured scope, it asks for all orders, only paid ones, or paid ones that are still waiting to be fulfilled.
  5. It requests pages from Shopify. The orders updated longest ago arrive first, and each one is processed in Odoo one by one. It stops when Shopify has no more or when it reaches Max Pages, which defaults to 20 in the code and shows on the record, in the Operations tab, Sync Settings group.
  6. First use: a second pass without the date filter. If nothing arrived and the store has never imported an order, it repeats the request without the date filter, walking the history from the oldest order (with the same page limit). If the store had already imported orders and nothing arrives, it does not repeat: a quiet shop is the normal state.
  7. If orders arrived, it stores the date. Last Order Sync becomes the current moment, the Consecutive Sync Errors counter goes back to zero and the last stored error is cleared. If the run stopped at the page limit, the stored date is that of the last order processed when it is later than the one already there (or there was none); the date never moves backwards. The next run continues from there. If Shopify returned no orders, none of this is written.
  8. It closes the log entry. It records the end time and the duration, counts every processed order as updated (this action counts none as created) and with no errors, so the entry ends as successful. The button returns the total number of orders synced.

Which errors it can raise

When you press Sync Orders, the action can stop with Shopify order sync failed for …: …. After «for» comes the value of Shop Domain, and after the colon the text of the error that caused it. Before showing the message, the module marks the sync log entry as failed and stores the error text in it.

Two other endings are possible, also according to the code:

  • If the error is already an Odoo warning of the kind shown in a dialog, the log entry is marked as failed and that warning is shown as it is.
  • If FlexigoTech Cloud has paused the sync, the module deletes the log entry for that run, so it does not appear as failed, and the action stops.

The Consecutive Sync Errors counter is written by the code, not by you. It has no label on the record (only the number shows, read-only) and it only appears when it is not zero. It is filled in by the Sync Orders button, the Run button and the scheduled action; the Reset Sync button empties it, and also empties Last Order Sync.

What to check after syncing

  • The date. Last Order Sync shows on the record and in the Shopify Instances list, read-only. If it does not change after a run with no errors, Shopify returned no orders; if the action stopped with a message or FlexigoTech Cloud paused it, the date is not updated either.
  • The domain. Shop Domain shows on the record and in the list. Its help text reads: «Use your exact Shopify domain, for example: flexigobe.myshopify.com». The failure message carries that domain, so compare the two.
  • The page limit. The code cuts off at Max Pages, so that field limits how many pages of orders are requested from Shopify in each run. With many orders waiting, the date moves up to the last order processed and the next run carries on from there.
  • The error counter. If it appears on the record, consecutive errors have been logged; it goes back to zero when a run that brings orders finishes successfully.

Cost and versions

The module is published on Odoo Apps for Odoo 17, 18, 19 and 20, and works with the FlexigoTech Cloud subscription, Connector plan: €49 a month or €490 a year excluding VAT, up to 3 accounts on the platform. The connection goes through FlexigoTech Cloud, which stores the credentials encrypted, monitors the sync and emails you if it fails. Without a subscription, or with the service suspended, whatever the subscription provides stops; your data stays in your Odoo. The module price for each version is on the Odoo Apps listing and on the module page.

How FlexigoTech can help

FlexigoTech implements Odoo 17, 18, 19 and 20 and builds connectors and custom integrations. If you want to review how your Shopify store is set up in Odoo, get in touch.

Keep reading

Sale order … is not linked to a Shopify order: what to doWhat the Odoo error about a sale order not linked to a Shopify order means, when Push to Shopify raises it and how to check the order step by step.The «Webhook URL is not available» message in Shopify for OdooWhen Odoo shows «Webhook URL is not available» in the Shopify connector, which condition triggers it, and what to check step by step.Shopify in Odoo: what to do when you lack Operator accessWhat the Shopify Operator (or Manager) access error means in Odoo, when it appears on Push to Shopify or Cancel in Shopify, and how to fix it.
Checked in the connector's source code (version 20.0) and the linked sources

Sources