La tâche et son rythme
Tout tourne autour d'une action planifiée du module : celle qui envoie le stock d'Odoo vers Shopify. Voici ses termes, avec les libellés tels que vous les voyez dans Odoo en français.

Envoyer le stock vers Shopify(Shopify Push Stock)- Action planifiée du module. À chaque passage, elle cherche les boutiques qui remplissent les conditions de la section suivante et, boutique par boutique, envoie à Shopify la quantité de chaque produit lié. Elle existe dans les branches 17.0, 18.0, 19.0 et 20.0.
- Fréquence
- La tâche s'exécute toutes les 20 minutes et elle est active dès l'installation. Dans Odoo 17.0, elle est configurée pour se répéter sans fin. Si elle ne fait rien, vérifiez d'abord qu'elle est toujours active.
- Boutiques (menu)
- Les fiches des boutiques s'ouvrent depuis
Shopify › Configuration › Boutiques. Pour voir la partieConfiguration, il faut la permissionOpérateur(Operator) ; pour la partieShopify, la permissionLecteur(Viewer). Si vous n'avez ni l'une ni l'autre, vous ne voyez pas cette partie.
- Administrateur
- Celui qui exécute la tâche doit être administrateur. Sinon, la tâche s'arrête avec
Only an administrator can run this scheduled action.et n'envoie rien.
Le nom de la tâche change selon la langue de votre Odoo. Avec Odoo en français, elle s'appelle Envoyer le stock vers Shopify ; le schéma montre son nom dans d'autres langues.

Enviar stock a Shopify ; en allemand, Bestand an Shopify senden ; en français, Envoyer le stock vers Shopify ; en italien, Invia giacenze a Shopify ; en portugais, Enviar stock para o Shopify.
Quelles boutiques sont concernées
- Boutique active avec la synchronisation du stock activée
- La tâche ne prend que les boutiques actives dont la synchronisation du stock est activée. Une boutique qui ne remplit pas l'une des deux conditions reste en dehors du passage.
- Identifiants enregistrés
- De plus, la boutique doit avoir enregistré un jeton d'accès ou le secret de l'API de l'app. L'un des deux suffit : une boutique avec des identifiants client peut ne pas avoir de jeton tant que son premier appel ne l'a pas généré, et c'est pourquoi la tâche accepte aussi qu'elle ait seulement des identifiants.
- Erreur dans une boutique
- Chaque boutique est traitée séparément. Si l'une échoue, l'erreur est consignée dans le journal et la tâche passe à la boutique suivante.
Quels produits et quelle quantité sont envoyés
- Produit lié et actif
- Pour chaque boutique, on envoie les produits liés qui sont actifs, qui ont un article d'inventaire Shopify attribué et qui appartiennent à la société de la boutique : on n'envoie pas le stock d'un produit d'une autre société, pas même à cause d'un ancien lien. Si une boutique n'en a aucun, le passage se contente d'enregistrer la date d'envoi dans la boutique et passe à la suivante.
- Quantité libre
- Ce qui est envoyé, c'est le stock libre (ce qu'il y a moins ce qui est déjà réservé), et non le stock en main, arrondi à un nombre entier et calculé avec la société de la boutique ; s'il n'y a pas de valeur, on envoie zéro. Une commande Shopify confirmée dans Odoo réserve l'unité, mais le stock en main ne baisse qu'à la validation de la livraison : avec le stock en main, Shopify verrait de nouveau comme disponible l'unité déjà vendue.
- Emplacement
- Toutes les quantités d'une boutique, lors d'un passage, sont envoyées avec le même emplacement Shopify.
- Groupe de cent
- Les produits d'une boutique sont envoyés par groupes de 100. Après l'envoi de chaque groupe, le module enregistre la date de dernière synchronisation du stock sur les produits de ce groupe. La date du dernier envoi de la boutique est enregistrée une fois tous les groupes terminés.
- Quantité fixée sans comparaison
- Chaque quantité est envoyée comme quantité disponible, avec un motif de correction et sans comparaison avec ce que Shopify a à ce moment-là : on fixe la valeur d'Odoo, quelle que soit celle de Shopify.
- Clé d'envoi
- Chaque passage génère une clé propre, différente pour chaque groupe, qui accompagne l'envoi. Ainsi, les mêmes quantités envoyées plus tard ne sont pas traitées comme un doublon d'un envoi précédent.
Que vérifier si la tâche ne fait rien
Suivez l'ordre dans lequel la tâche décide :
- Que la tâche
Envoyer le stock vers Shopifysoit toujours active. - Que celui qui l'exécute soit administrateur ; sinon, elle s'arrête avec le message ci-dessus.
- Que la boutique soit active et que la synchronisation du stock soit activée. Les fiches s'ouvrent depuis
Shopify › Configuration › Boutiques. - Que la boutique ait enregistré un jeton d'accès ou le secret de l'API de l'app.
- Qu'il y ait des produits liés actifs, avec article d'inventaire Shopify et de la société de la boutique. Sans aucun, le passage se contente d'enregistrer la date et continue.
- Que la quantité libre soit celle que vous attendez : ce qui est réservé a déjà été déduit.
Pour le bouton Pull Stock, il y a un article à part : ce qu'il fait pas à pas.
Comment FlexigoTech vous aide
FlexigoTech met en place Odoo 17, 18, 19 et 20 et développe des connecteurs et des intégrations sur mesure. Le module est publié pour 17.0, 18.0, 19.0 et 20.0 (fiche sur Odoo Apps, page du module). Il est en paiement unique par version et nécessite l'abonnement à FlexigoTech Cloud : le plan Connecteur coûte 49 €/mois ou 490 €/an HT (le plan Pro, 98 €/mois ou 980 €/an HT). 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.
À 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/en/services.html
- flexigotech.com/precios.html
