Skip to main content
Shopify

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

The Connect button asks Shopify for a fresh token using your app's Client ID and Client Secret and, if that works, tests the connection to the store. If all goes well you see Connection successful for …; if something fails, the store is marked with an error and a red notice stays on screen. Even without pressing it, the module already renews that token on its own in several situations.

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

What the module does on its own before you press anything

Pressing Connect is not the normal way to hold a valid token. According to the module's code, since 2026 Shopify no longer shows a permanent token in its interface: an app displays a Client ID and a Client Secret, and a token that expires every 24 hours is generated from them. That is why the module also requests that token by itself, with nobody pressing anything.

It does so when the store has a Client ID and a Client Secret and no refresh token, and one of these conditions holds: a forced renewal has been requested, there is no token yet, or the current token has five minutes or less left. That check is reached, without touching the button, from:

  • saving a delivery order record;
  • validating a delivery order with Odoo's standard button, which the module extends;
  • the scheduled task Shopify Process Webhooks, every minute and active on install;
  • the scheduled task Shopify Sync Orders, every five minutes and inactive on install;
  • the scheduled task Shopify Sync Payouts, every six hours and inactive on install;
  • the scheduled task Shopify Sync Products, every hour and inactive on install.

Stores that hold a refresh token are left out of this route. According to the code, automatic token generation is meant for an app developed by your own organisation and installed in a store you own, not for an app distributed to someone else's store.

Your Odoo doesn't talk to Amazon, Temu or Shopify?
Video: Your Odoo doesn't talk to Amazon, Temu or Shopify?

Where Connect is and when you see it

Store records open from Shopify › Configuration › Stores. The Shopify step asks for the Viewer permission and the Configuration step asks for Operator: if you lack one of them, you do not see that step of the menu. The Connect button is on the Shopify Instances screen in every published branch of the module: Odoo 17, 18, 19 and 20.

Schematic drawn from code, not an Odoo screen: the Shopify stores menu, the Connect button and, to one side, the successful-connection message
Schematic of the route: from the stores menu to the Connect button, with Connection successful for … as a possible outcome.

With the default values the button is visible. It is hidden only for one specific combination of two internal settings, Shopify connection (which does not appear in any view) and Shopify app, when both hold a particular value. The condition is the same in Odoo 17, 18, 19 and 20.

The Cerámica Norte case: connecting the store in one click

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

Cerámica Norte is an invented company that sells through Shopify and runs its back office in Odoo. Marta, its operations manager, has created an app in the company's own organisation, has the Client ID and Client Secret to hand and wants to leave the store connected. This is what happens when she presses Connect, in the order the Odoo 20 code follows:

  1. Marta opens Shopify › Configuration › Stores, goes into her store's record and presses Connect.
  2. The module checks that the store has a Client ID and a Client Secret. If either is missing, it does not even call Shopify: it marks the connection with an error, stores the error text and shows a red notice.
  3. With both in place, it asks Shopify for an access token. If Shopify replies with an error, or replies without a token, the outcome is the same: the error is stored on the store and a red notice appears.
  4. If Shopify hands over the token, the module saves it together with the time of the renewal and the permissions Shopify returns. If Shopify says how long it lasts, the expiry date is saved too.
  5. It then tests the connection: it gets the store's profile, saves its name, email and currency, marks the connection as connected and clears the last error.
  6. Finally it shows a success notice that does not stay pinned: Connection successful for …, with the store's name or, if it has no name yet, its domain.
Schematic drawn from the module's translations, not an Odoo screen: the successful-connection text in five languages
Schematic of the same notice by Odoo language: in Spanish Conexión exitosa para …, in German Verbindung erfolgreich für …, in French Connexion réussie pour …, in Italian Connessione riuscita per … and in Portuguese Ligação bem-sucedida para ….

What is stored depending on the result

ResultWhat the module doesNotice
All correctSaves the token, name, email and currency, marks the connection as connected and clears the last errorGreen: Connection successful for …
Token generation or the connection test failsMarks the connection with an error and stores the error textRed, stays on screen and carries the error text
FlexigoTech Cloud pauses the service during the connection testIn that test it does not mark the store as failingThe pause notice appears

On failures the module deliberately does not raise an exception. According to its code, this way what has been saved is not rolled back and the record can show the reason for the last failure, instead of leaving the problem with no trace.

What to take from the case

  • If you are on the store's record and the button does not show, the cause is the combination of Shopify connection and Shopify app that hides the button.
  • Connect always asks for a new token; it does not wait for the current one to be close to expiry. The automatic renewal, by contrast, acts only when the token is missing or nearly expired.
  • If you see the red notice, read its text: it is the reason the module has stored on the store.
  • A token generated once is not for ever: it expires, and the module renews it by itself as long as the store has a Client ID and a Client Secret and no refresh token.

Another button of the module with its own article: What the Pull Stock button does.

How it fits with the subscription

The module is a one-off purchase per version and needs the FlexigoTech Cloud subscription, Connector plan: €49/month or €490/year excluding VAT, up to 3 platform accounts. It is published for Odoo 17, 18, 19 and 20. The connection goes through FlexigoTech Cloud, which stores the credentials encrypted, watches the synchronisation and emails you if it fails. If you bought it on flexigotech.com, the module for newer Odoo versions is included with the subscription; on the Odoo App Store, each version is bought there. You can see the module on its page.

If you are implementing Odoo and want someone to review the Shopify connection with you, FlexigoTech implements Odoo 17, 18, 19 and 20 and builds custom connectors and integrations.

Keep reading

What the Pull Stock button does in the Shopify connector for OdooWhat the Pull Stock button does in the Shopify connector for Odoo: when it shows, what it checks, what changes in your stock and which error it can raise.The 'is now the primary location' notice in the Shopify connector for OdooWhat the 'is now the primary location' notice in the Shopify connector for Odoo means, when it appears and how to change the primary location.Shopify Connector error: no payload to create the sales orderWhat the Shopify Connector for Odoo message means when you press Create Sale Order on an order with no stored data, when it appears and how to fix it.
Checked in the connector's source code (version 20.0) and the linked sources

Sources