Avant le premier passage
Désactivée à l'installation
La tâche Synchroniser les commandes Shopify s'exécute toutes les 5 minutes, mais elle s'installe désactivée : tant que personne ne l'active, il n'y a aucun passage. Elle existe dans les branches 17, 18, 19 et 20. Dans Odoo 17.0, elle est configurée pour se répéter sans fin.

Le nom de la tâche dépend de la langue de votre Odoo : avec Odoo en espagnol, c'est Sincronizar pedidos de Shopify ; en allemand, Shopify-Bestellungen synchronisieren ; en français, Synchroniser les commandes Shopify ; en italien, Sincronizza ordini Shopify ; en portugais, Sincronizar encomendas Shopify.

Seul un administrateur l'exécute
La première chose que vérifie la méthode, c'est que la personne qui l'exécute soit administrateur du système. Si ce n'est pas le cas, elle s'arrête avec Only an administrator can run this scheduled action. et ne regarde aucune boutique.
Toutes les boutiques n'entrent pas dans le parcours
La tâche ne traite que les boutiques qui sont actives, ont la synchronisation des commandes activée et conservent un jeton d'accès ou le secret de l'API de l'application. Le code explique la dernière exigence : une boutique avec des identifiants client peut ne pas avoir de jeton enregistré tant que son premier appel ne le génère pas, il suffit donc qu'elle ait des identifiants. C'est ce filtre qui décide qui entre.
Les fiches des boutiques s'ouvrent depuis Shopify › Configuration › Boutiques (Shopify › Configuration › Stores). Chaque tronçon du menu demande une permission : Configuration demande Opérateur (Operator) et Shopify demande Lecteur (Viewer). Si vous n'en avez pas une, vous ne voyez pas ce tronçon.

Ce qui se passe à chaque passage
Une boutique calme ne parcourt pas tout son historique
La première recherche associe les termes d'importation de la boutique à un filtre de date. Si elle ne trouve rien, le code ne répète la recherche sans le filtre de date que lorsque la boutique n'a jamais importé de commandes. S'il en avait déjà importé, le passage s'arrête là : le code traite ce résultat comme l'état normal d'une boutique sans activité, et répéter la recherche sans filtre parcourrait l'historique depuis la commande la plus ancienne à chaque passage.
Zéro commande n'est pas une erreur, mais laisse un message
Si le passage ne ramène aucune commande (même après la recherche sans filtre, lorsque la boutique n'avait jamais rien importé), le code ne le traite pas comme un échec et laisse un message sur la fiche de la boutique : La synchronisation des commandes Shopify a renvoyé 0 commande pour …. Vérifiez que cette application est connectée à la boutique attendue et ajoutez le scope read_all_orders si vous avez besoin de commandes de plus de 60 jours. À la place des points de suspension figure le domaine de la boutique. Dans ce cas, la date de dernière synchronisation ne change pas.
Si vous ne voyez aucune commande depuis plusieurs jours, lisez ce message : il vous demande de vérifier que l'application est connectée à la bonne boutique et, si vous avez besoin de commandes de plus de 60 jours, d'ajouter le scope read_all_orders.
Si elle s'arrête à la limite de pages, la date ne recule pas
Lorsque le passage importe des commandes, il enregistre la date de dernière synchronisation, remet à zéro le compteur d'erreurs consécutives et efface la dernière erreur. S'il s'est arrêté à cause de la limite de pages, il enregistre la date de la dernière commande importée au lieu de l'heure actuelle, à condition qu'elle soit postérieure à la dernière synchronisation enregistrée (ou qu'il n'y en ait eu aucune) ; sinon, il enregistre l'heure actuelle. Ainsi la date ne recule pas : le code l'évite pour qu'un passage interrompu qui a commencé par le début de l'historique n'oblige pas à le reparcourir pendant que les commandes du jour attendent.
Dans ce cas, la tâche laisse en plus un message sur la fiche de la boutique pour signaler qu'il reste des commandes en attente et à partir de quelle date le passage suivant reprendra.
Une boutique après l'autre, et quand elle échoue vraiment, elle laisse une trace
La tâche parcourt les boutiques une à une et appelle la synchronisation de chacune dans un bloc qui intercepte les erreurs. En cas d'erreur inattendue, la boutique ajoute un à son compteur d'erreurs consécutives et enregistre la dernière erreur. L'erreur remonte jusqu'à la tâche, qui la consigne dans le journal du serveur avec le nom de la boutique et passe à la suivante : l'échec d'une boutique ne bloque pas les autres.
Il y a deux exceptions. Si FlexigoTech Cloud a mis la synchronisation en pause, le code écarte le journal de ce passage pour qu'il ne reste pas comme échoué. Et un avertissement propre au module, de ceux qu'Odoo affiche dans une boîte de dialogue d'erreur, n'ajoute rien au compteur d'erreurs consécutives.
Si elle ne semble rien faire
- Vérifiez que la tâche est active : elle s'installe désactivée.
- Vérifiez que la personne qui l'exécute est administrateur du système.
- Rappelez-vous ce que la tâche exige de chaque boutique : être active, avoir la synchronisation des commandes activée et conserver un jeton d'accès ou le secret de l'application. Les fiches s'ouvrent depuis
Shopify › Configuration › Boutiques. - Lisez les messages de la fiche de la boutique : celui de zéro commande vous dit quoi vérifier.
- Rappelez-vous que, sans abonnement ou avec le service suspendu, ce que fournit l'abonnement s'arrête ; les données restent dans votre Odoo.
Abonnement et aide
Le module est en paiement unique par version et nécessite l'abonnement à FlexigoTech Cloud : plan Connecteur, 49 €/mois ou 490 €/an HT, jusqu'à 3 comptes de la plateforme. La connexion passe par FlexigoTech Cloud, qui conserve les identifiants chiffrés, surveille la synchronisation et prévient par e-mail en cas d'échec. Le module est publié pour Odoo 17, 18, 19 et 20 ; consultez le prix de chaque version sur la fiche d'Odoo Apps ou sur la page du module.
Pour le stock, vous avez un autre article : ce que fait le bouton de stock du module. Si vous voulez déployer Odoo avec Shopify ou un connecteur sur mesure, 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 17.0 et 20.0) et dans les sources citées
Sources
- Code du module : flexigobe_shopify_seller_connector 20.0 (d7e627b4): data/ir_cron_data.xml
- Code du module : flexigobe_shopify_seller_connector 17.0 (437257e3): data/ir_cron_data.xml
- Code du module : flexigobe_shopify_seller_connector 20.0 (d7e627b4): models/shopify_instance.py
- Code du module : flexigobe_shopify_seller_connector 20.0 (d7e627b4): models/fgt_cloud.py
- apps.odoo.com/apps/modules/20.0/flexigobe_shopify_seller_connector
- flexigotech.com/precios.html
- flexigotech.com/en/services.html
