Quand l'avertissement apparaît et ce qu'il signifie
L'avertissement apparaît en cliquant sur le bouton Mettre à jour le suivi Shopify dans un bon de livraison. Ce bouton appelle Shopify pour mettre à jour le suivi du fulfillment dont l'ID est enregistré dans le bon de livraison. Si l'appel à Shopify renvoie une erreur, le module lit son texte. Lorsque ce texte contient ACCESS_DENIED (tel quel, en majuscules) et aussi le mot « fulfillment » (en majuscules ou en minuscules), le module remplace l'erreur par cet avertissement et l'action s'arrête :
Shopify a refusé l'accès à la mise à jour du suivi. Ajoutez la portée write_merchant_managed_fulfillment_orders et ré-autorisez l'application. (Shopify denied tracking update access. Add scope write_merchant_managed_fulfillment_orders and re-authorize the app.)
Cela veut dire que Shopify a refusé l'accès pour mettre à jour le suivi. L'avertissement demande deux choses : ajouter la portée write_merchant_managed_fulfillment_orders et ré-autoriser l'application. Le texte figure dans le code publié de toutes les versions (17.0, 18.0, 19.0 et 20.0). Le détail de la méthode décrit ci-dessous est celui du code d'Odoo 20.0.


Pas à pas pour le résoudre
- Ouvrez le bon de livraison de la commande Shopify. Le bouton
Mettre à jour le suivi Shopifyest masqué si le bon de livraison ne provient pas d'une commande Shopify (le champEst une commande Shopify(Is Shopify Order) n'apparaît dans aucune vue), si son statut n'est pasTerminé(Faiten Odoo 17.0) (Done) ou si le champTraitement Shopify(Shopify Fulfillment) est vide. Cette condition est la même dans Odoo 17.0, 18.0, 19.0 et 20.0. Si vous ne voyez pas le bouton, l'une des trois est remplie. - Cliquez sur
Mettre à jour le suivi Shopify. Si l'erreur renvoyée par Shopify remplit la condition ci-dessus, vous verrez l'avertissement et l'action s'arrête. - Ajoutez la portée
write_merchant_managed_fulfillment_ordersà l'application Shopify, comme le demande la première moitié de l'avertissement. - Ré-autorisez l'application, comme le demande la seconde moitié de l'avertissement.
- Revenez au même bon de livraison et cliquez de nouveau sur le bouton. Vérifiez si l'avertissement apparaît encore.
- Si un message différent apparaît maintenant, ce n'est pas cet avertissement : lisez-le en entier et traitez-le séparément (plus bas, on explique pourquoi).
Ce que fait le bouton avant que l'avertissement puisse apparaître
Il est utile de connaître le parcours pour savoir à quel moment l'avertissement est généré. D'après le code, le module prend l'ID de fulfillment enregistré dans le bon de livraison. Si le bon de livraison n'a pas cet ID, l'action s'arrête sans appeler Shopify. Ensuite, il construit les données de suivi avec ce que contient le bon de livraison, et s'il n'y a aucun numéro de suivi, l'action s'arrête aussi avant d'appeler Shopify. Ces données sont composées ainsi :
- S'il y a un seul numéro de suivi, il envoie ce numéro. S'il y en a plusieurs, il les envoie tous.
- S'il y a un transporteur, il envoie son nom. Le module prend le transporteur de la commande client ou, à défaut, celui du bon de livraison lui-même.
- Il envoie l'URL de suivi uniquement lorsqu'il y a un seul numéro.
La requête indique aussi si Shopify doit prévenir le client, selon un paramètre de l'instance Shopify. Avec tout cela, l'appel à Shopify est effectué.
L'avertissement ne dépend pas du contenu du bon de livraison : la condition du code ne regarde que le texte de l'erreur que Shopify renvoie lors de cet appel. Un bon de livraison avec un numéro de suivi correct et un transporteur bien renseigné peut tout de même afficher cet avertissement si l'erreur de Shopify remplit les deux conditions.
Où se trouvent les boutiques dans Odoo
Les fiches des boutiques s'ouvrent depuis le menu Shopify › Configuration › Boutiques. Les droits comptent : le niveau Configuration demande le droit Opérateur et le niveau Shopify demande Lecteur. S'il vous en manque un, vous ne verrez pas ce niveau du menu.
Si l'avertissement continue d'apparaître ou si un autre message s'affiche
L'avertissement n'est généré que lorsque l'erreur de Shopify remplit les deux conditions à la fois : ACCESS_DENIED et « fulfillment ». Si l'erreur renvoyée par l'appel ne les remplit pas, le module ne la modifie pas et vous la voyez telle quelle, avec son propre texte. Par conséquent, si après avoir ajouté la portée et ré-autorisé vous voyez encore une erreur avec d'autres mots, il ne s'agit plus de cet avertissement.
Si vous voyez toujours exactement cet avertissement, revoyez les étapes trois et quatre : l'avertissement demande à la fois la portée et la nouvelle autorisation de l'application.
Avec Odoo en espagnol, l'avertissement s'affiche comme l'indique la citation ci-dessus ; le schéma reprend aussi sa lecture en allemand, français, italien et portugais :

Si vous examinez d'autres messages du module, vous avez aussi l'analyse de « No hay datos de Shopify disponibles para crear el pedido de venta », avec sa condition dans le code et ce qu'il faut faire.
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. Si vous travaillez avec le connecteur et souhaitez que quelqu'un révise avec vous la connexion à votre boutique Shopify, écrivez-nous depuis la page du module.
À lire aussi
Vérifié dans le code du connecteur (version 20.0) et dans les sources citées
Sources
- Code du module : flexigobe_shopify_seller_connector 20.0 (d7e627b4): models/shopify_instance.py
- Code du module : flexigobe_shopify_seller_connector 20.0 (d7e627b4): views/stock_picking_views.xml
- 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
