Ce qu'est cette tâche et quand elle tourne
Shopify Connector for Odoo inclut une tâche planifiée appelée Traiter les webhooks Shopify (Shopify Process Webhooks). Elle appartient au modèle des boutiques Shopify et exécute la méthode qui traite les événements de webhook reçus. Elle tourne toutes les minutes et est active dès l'installation du module. Elle existe dans toutes les branches publiées (17.0, 18.0, 19.0 et 20.0) ; dans Odoo 17.0, elle est en outre configurée pour se répéter sans fin.

Shopify › Configuration › Boutiques (Shopify › Configuration › Stores).Avec Odoo en français, la tâche s'appelle Traiter les webhooks Shopify ; ce schéma reprend son nom dans d'autres langues :

Traiter les webhooks Shopify ; en allemand, « Shopify-Webhooks verarbeiten » ; en italien, « Elabora webhook Shopify » ; en portugais, « Processar webhooks Shopify ».
Chronologie d'un passage
Dans Odoo 20.0, un passage suit cet ordre :
- Toutes les minutes Odoo lance la tâche. La première chose qu'elle fait est de vérifier que celui qui l'exécute est administrateur du système ; s'il ne l'est pas, elle peut s'arrêter avec
Only an administrator can run this scheduled action.et ne traite rien.
- Au démarrage Elle cherche les événements de webhook en attente. Elle les trie du plus ancien au plus récent selon leur date de réception (et, en cas d'égalité, par ordre de création) et en prend 50 au maximum à chaque passage.
- Événement sans boutique Si un événement n'a pas de boutique associée, la tâche le marque comme échoué, lui met l'heure de traitement et un message d'erreur, puis passe au suivant.
- Événement avec boutique La tâche demande à la boutique de traiter cet événement selon son thème (plus bas, thème par thème). Si tout se passe bien, l'événement passe à traité, avec son heure de traitement, le résultat enregistré et sans message d'erreur. Après chaque événement, la tâche enregistre les modifications dans la base de données.
- Si le traitement échoue L'événement reste marqué comme échoué, avec l'heure de traitement, le texte de l'erreur et le résultat partiel (les compteurs de commandes, de produits et de stock). La tâche ne s'arrête pas : elle poursuit avec l'événement suivant.
- Si autre chose échoue Si une exception échappe au traitement d'un événement, la tâche la note dans le journal du serveur, annule les modifications en attente de ce tour et continue avec le reste.
- À la fin des événements Elle cherche les commandes Shopify qui ont une commande client associée en brouillon ou envoyée, dont la boutique a activé la confirmation automatique des ventes et qui ne portent pas la marque de commande client manuelle. Elle les prend des plus récemment mises à jour aux plus anciennes, jusqu'à 50, et demande à les confirmer ; si cette partie échoue, l'erreur est notée et la tâche ne s'arrête pas.
- À la fin Si une commande client a été confirmée, le code le note dans le journal du serveur. Si cette dernière partie échoue, l'erreur est notée et seule cette étape est annulée : ce qui a déjà été enregistré pour les événements est conservé.
Ce qu'elle fait avec chaque événement selon son thème
Le thème de l'événement est lu en majuscules et décide de ce qui se passe :
APP_UNINSTALLED: la boutique est désactivée et son jeton d'accès, son jeton d'actualisation et la date d'expiration du jeton sont vidés.- Thèmes qui commencent par
ORDERS_: si la boutique a activé la synchronisation des commandes par webhook, la tâche transmet la commande de l'événement au processus de synchronisation des commandes et enregistre dans le résultat combien ont été traitées. - Thèmes qui commencent par
PRODUCTS_: si la boutique a activé la synchronisation des produits par webhook, la tâche transmet le produit de l'événement au processus de synchronisation des produits et enregistre dans le résultat combien ont été traités. - Thèmes qui commencent par
INVENTORY_LEVELS: seulement si la boutique a activé la synchronisation du stock par webhook et, de plus, la synchronisation du stock en général, la tâche transmet le changement d'inventaire au processus qui l'applique ; si ce processus le confirme, le résultat note une mise à jour de stock.
Un détail qui compte : si le thème n'est aucun de ceux-ci, ou si le paramètre correspondant de la boutique est désactivé, la tâche ne transmet rien à synchroniser, mais l'événement passe quand même à traité, avec les compteurs à zéro. Un événement traité ne signifie donc pas qu'on a touché à une commande, à un produit ou au stock.
Que vérifier si elle ne fait rien
- La tâche doit être active. Elle est active à l'installation et tourne toutes les minutes.
- Qui l'exécute. Si elle est lancée par quelqu'un qui n'est pas administrateur du système, elle peut s'arrêter avec
Only an administrator can run this scheduled action. - Elle ne prend que les événements en attente. Un événement marqué comme échoué ne rentre plus dans cette tâche. S'il y en a beaucoup en attente, à chaque passage les plus anciens sont traités, jusqu'à 50, et le reste attend les passages suivants.
- Résultat avec compteurs à zéro. Cela arrive quand le thème de l'événement n'est pas de ceux que la tâche traite ou quand la boutique n'a pas activé la synchronisation par webhook de ce type (pour le stock, aussi la synchronisation du stock en général). L'événement est marqué comme traité sans rien transmettre à synchroniser.
- Boutique désactivée. Un événement
APP_UNINSTALLEDdésactive la boutique et efface ses jetons. - Commandes clients qui restent en brouillon. La confirmation automatique exige que la boutique l'ait activée, que la commande client soit en brouillon ou envoyée et que la commande Shopify ne porte pas la marque de commande client manuelle. Elle ne regarde que 50 commandes au maximum par passage.
Les boutiques s'ouvrent depuis Shopify › Configuration › Boutiques (Shopify › Configuration › Stores). Pour voir ce menu, il vous faut la permission Opérateur (Operator) dans la section Configuration et Lecteur (Viewer) dans la section Shopify.
Prix et aide
Le module est en paiement unique par version et nécessite l'abonnement à FlexigoTech Cloud, plan Connecteur : 49 € par mois ou 490 € par an, HT. Il est publié pour Odoo 17, 18, 19 et 20. 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.
Si vous mettez en place Odoo avec Shopify ou si vous avez besoin d'une intégration sur mesure, FlexigoTech implante Odoo 17, 18, 19 et 20 et développe des connecteurs. Vous trouverez plus de détails sur la page du module et sur sa fiche Odoo Apps.
À 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
