Avant de cliquer : où il se trouve et ce qu'Odoo fait seul
La fiche de l'instance s'ouvre depuis le menu Ventes (Sales) : allez dans Shopify, puis dans Control Center et enfin dans Instances. Le bouton Synchroniser les produits existe dans les branches 17, 18, 19 et 20 d'Odoo et, d'après la condition de sa vue, il est toujours visible.

Le bouton n'est pas le seul chemin. Ce qu'il fait, la tâche planifiée Shopify Sync Products le fait aussi, toutes les heures, mais elle est désactivée à l'installation du module. Ce qui suit décrit le code publié pour Odoo 20.0.
- Décidez si la tâche planifiée
Shopify Sync Products(toutes les heures, désactivée à l'installation) vous suffit : si vous ne l'activez pas, vous pouvez lancer la synchronisation des produits avec ce bouton.
- Ouvrez la fiche de l'instance et notez la valeur de
Last Product Sync. Elle s'affiche dans la fiche et dans la liste des instances, en lecture seule : c'est le module qui l'écrit, pas vous.
- Dans l'onglet
Operations, groupeParamètres de synchronisation(Sync Settings), vérifiezPage Size(50 par défaut) etMax Pages(20 par défaut). Si vous mettez moins de un dans l'un des deux, le module utilise un.
- Si l'instance ne passe pas par FlexigoTech Cloud, le code exige qu'elle ait un jeton d'accès avant d'envoyer quoi que ce soit.

Ce que fait le bouton, dans l'ordre
- Il crée un enregistrement de synchronisation de l'instance, de type produits, marqué comme en cours.
- Il prépare la requête vers Shopify. Elle demande les produits triés par date de mise à jour et, pour chacun, entre autres données : titre, fournisseur, type de produit, statut, description, étiquettes, date de mise à jour, image principale, options et jusqu'à 250 variantes avec leur SKU, prix, prix de comparaison, code-barres et quantité en stock.
- Il décide du filtre. Si
Last Product Syncest vide, il n'en met aucun. S'il contient une date, il ne demande que les produits mis à jour dans Shopify depuis ce moment. - Il appelle Shopify page par page, à la taille de
Page Size, en passant à chaque appel le curseur de la page précédente. - Il remet chaque produit reçu au lien produit Shopify du module et l'ajoute au total.
- Il s'arrête quand Shopify indique qu'il n'y a plus de pages ou quand il atteint le nombre de pages de
Max Pages. - Il écrit dans
Last Product Syncla date et l'heure de ce moment et clôt l'enregistrement de synchronisation, avec le total compté comme produits mis à jour.
Un détail sur la dernière étape : la date est écrite à la sortie de la boucle, qu'il n'y ait plus de pages ou que l'on ait été coupé par Max Pages. L'exécution suivante part donc de cette date. Gardez-le en tête en fixant Page Size et Max Pages dans une boutique avec beaucoup de produits.
Ce que fait l'appel à Shopify
- Si l'instance passe par FlexigoTech Cloud, la requête transite par le service, qui ajoute le jeton qu'il conserve (et renouvelle). Odoo ne se connecte pas à la boutique et ne reçoit pas le jeton.
- Sans ce chemin, Odoo appelle Shopify avec le jeton de l'instance.
- Si Shopify répond que vous avez dépassé sa limite de requêtes, l'appel attend (le temps indiqué par Shopify ou quelques secondes, avec un plafond de trente, et plus longtemps à chaque nouvel essai) puis recommence. Il fait jusqu'à trois tentatives.
- Si Shopify rejette le jeton dès la première tentative et que l'instance a un jeton de renouvellement, le module refait l'appel une fois, avec le jeton que l'instance a à ce moment-là.
- Toute autre réponse d'erreur, une réponse contenant des erreurs ou une réponse contenant des erreurs utilisateur arrête l'action avec cette erreur. Elle s'arrête aussi si les tentatives sont épuisées.
En cas d'échec : ce qui change et ce qui ne change pas
- Face à une erreur, le module marque l'enregistrement de synchronisation comme échoué, y enregistre le texte de l'erreur (tronqué s'il est très long) et relance l'erreur, de sorte que l'action s'arrête.
- Lors d'une exécution échouée,
Last Product Syncn'est pas mis à jour : cette étape vient après la boucle.
- Si FlexigoTech Cloud met l'exécution en pause, le module supprime l'enregistrement de cette exécution (il ne reste pas comme échoué) et l'action s'arrête quand même.
Après le clic : que vérifier
Last Product Syncaffiche la date et l'heure actuelles dans la fiche et dans la liste des instances.
- Si votre boutique a plus de produits que ce que permet
Page Sizemultiplié parMax Pages, rappelez-vous que la date est écrite quand même et que l'exécution suivante ne demande que ce qui a été mis à jour depuis.
- Vérifiez comment le bouton s'appelle dans votre langue d'Odoo. Avec Odoo en français, c'est
Synchroniser les produits; les autres traductions publiées figurent dans le schéma.

Synchroniser les produits ; en allemand, Produkte synchronisieren ; en français, Synchroniser les produits ; en italien, Sincronizza prodotti ; en portugais, Sincronizar produtos.Pour le stock de Shopify, il existe un autre article : ce que fait le bouton « Pull Stock ».
Prix et aide
Shopify Connector coûte 9 € par version d'Odoo, HT, en paiement unique (pour 17, 18, 19 et 20 ; consultez la fiche), et nécessite l'abonnement à FlexigoTech Cloud : plan Connecteur, 49 €/mois ou 490 €/an HT.
Si vous êtes en train de mettre en place Odoo et voulez que la synchronisation des produits soit bien configurée, FlexigoTech déploie Odoo 17, 18, 19 et 20 et développe des connecteurs et des intégrations sur mesure.
À lire aussi
Vérifié dans le code du connecteur (version 20.0) et dans les sources citées
Sources
- Code du module : flexigobe_shopify_connector 20.0 (c7078cd8): views/shopify_instance_views.xml
- Code du module : flexigobe_shopify_connector 20.0 (c7078cd8): models/shopify_instance.py
- Code du module : flexigobe_shopify_connector 20.0 (c7078cd8): models/fgt_cloud.py
- apps.odoo.com/apps/modules/20.0/flexigobe_shopify_connector
- apps.odoo.com/apps/modules/17.0/flexigobe_shopify_connector
- apps.odoo.com/apps/modules/18.0/flexigobe_shopify_connector
- apps.odoo.com/apps/modules/19.0/flexigobe_shopify_connector
- flexigotech.com/precios.html
- flexigotech.com/en/services.html
