Le chemin qui n'a pas besoin du bouton
Avant de cliquer sur quoi que ce soit, il faut savoir que le module peut demander l'annulation à Shopify tout seul. Dans la fiche Instances Shopify (Shopify Instances), onglet Opérations (Operations), groupe Paramètres de synchronisation (Sync Settings), se trouve la case Pousser automatiquement les annulations vers Shopify (Auto-push cancellations to Shopify). Son aide dit : «Lorsqu'une commande client liée à Shopify est annulée dans Odoo, l'annuler également dans Shopify.» La case est décochée par défaut.
Avec la case cochée, quand on annule une commande client dans Odoo, le module la demande à Shopify si la commande est liée à une instance, possède une référence de commande Shopify et a bien été annulée. Si cette demande échoue, l'erreur est notée dans le journal et l'annulation dans Odoo n'est pas défaite.
Le bouton Annuler dans Shopify est la voie manuelle : on clique dessus depuis la fiche de la commande Shopify. Quand le bouton annule la commande client d'Odoo, il le fait en indiquant que cette annulation ne doit pas être renvoyée à Shopify par la voie automatique.

Quand le bouton apparaît
Il se trouve dans la fiche Entonnoir de traitement (Fulfilment Funnel), qui s'ouvre depuis Shopify › Opérations › Commandes (Shopify › Operations › Orders). Pour voir ce menu, il faut le droit Lecteur (Viewer).
La condition de la vue ne regarde que le champ État (State) : le bouton est masqué quand il vaut Annulé (Cancelled) et visible pour toute autre valeur. La valeur par défaut est Ouvert (Open), donc sur une commande qui vient d'arriver vous le verrez. Les autres valeurs sont Partiellement expédié (Partially Fulfilled), Expédié (Fulfilled) et Remboursé (Refunded). Le bouton existe dans Odoo 17, 18, 19 et 20, avec la même condition.
Le voir ne veut pas dire pouvoir l'utiliser : la condition de la vue ne parle que de l'état, et l'accès est vérifié au moment du clic (plus bas).

Avec Odoo en français, le bouton s'appelle Annuler dans Shopify.
Un cas : Tienda Aurora annule une commande
Exemple Cas illustratif : l'entreprise et ses chiffres sont inventés pour expliquer le flux.
Tienda Aurora (entreprise inventée pour cet exemple) vend sur Shopify et gère ses commandes dans Odoo. Un client demande l'annulation d'un achat qui n'est pas encore parti. Marta, du service client, a un accès d'opérateur Shopify.
- Marta ouvre
Shopify › Opérations › Commandeset entre dans la fiche de la commande. L'ÉtatestOuvertet le bouton est visible. - Elle clique sur
Annuler dans Shopify. Shopify ne renvoie aucune erreur avec un texte. - L'
Étatpasse àAnnulé, le bouton disparaît et la commande client liée est annulée dans Odoo.
Le lendemain, un autre cas arrive et Shopify renvoie une erreur avec son motif. Marta voit L'annulation de la commande Shopify a échoué : …, avec le texte renvoyé par Shopify après les deux-points. L'État reste comme avant et la commande client n'est pas touchée. Il ne lui reste qu'à lire le motif.
Un collègue qui n'a que le droit Lecteur ouvre la même fiche, voit le bouton et, en cliquant dessus, reçoit l'avertissement d'accès qui figure dans le tableau ci-dessous.
Ce qu'il vérifie et ce qu'il fait, dans l'ordre
Voici l'ordre du code d'Odoo 20. Dès qu'une vérification échoue, le bouton s'arrête et n'enregistre rien de ce qu'il allait modifier.
- Il vérifie que vous avez un accès d'opérateur ou de gestionnaire Shopify.
- Il vérifie que la commande n'est pas déjà annulée (le bouton est d'ailleurs déjà masqué dans cet état).
- Il vérifie que le champ
Commande Shopify(Shopify Order) a une valeur. - Il demande l'annulation à Shopify. Avertir le client, rembourser ou remettre en stock est décidé par la configuration de l'instance de la commande : le bouton ne pose aucune question. Si Shopify renvoie des erreurs avec un texte, le bouton s'arrête ici.
- Si l'étape précédente ne s'est pas arrêtée, il écrit
AnnulédansÉtat. - Si la commande a un
Bon de commande(Sale Order) lié et que celui-ci n'est pas annulé, il tente de l'annuler dans Odoo. Si cette annulation échoue, l'erreur reste dans le journal, le bouton n'affiche aucun message à ce sujet et la commande Shopify reste surAnnulé.

Les champs Commande Shopify, Bon de commande et État sont visibles dans la fiche et remplis par le module, pas par l'utilisateur. Commande Shopify est en lecture seule.
Messages possibles au clic
Voici quelques-uns des messages que peut donner le bouton :
| Message | Quand il apparaît | Que faire |
|---|---|---|
You need Shopify Operator (or Manager) access for this action. | En cliquant sur le bouton sans accès d'opérateur ni de gestionnaire Shopify. | Demandez cet accès ou faites cliquer une autre personne qui l'a. |
Aucun identifiant de commande Shopify trouvé. (No Shopify order ID found.) | En cliquant sur le bouton avec Commande Shopify vide. | Vérifiez ce champ dans la fiche : il ne s'écrit pas à la main, c'est le module qui le remplit. |
L'annulation de la commande Shopify a échoué : … (Shopify order cancel failed: …) | En cliquant sur le bouton, quand Shopify renvoie des erreurs avec un texte ; le texte de Shopify remplace les points de suspension. | Lisez le motif donné par Shopify. Dans ce cas le bouton s'arrête et l'état ne change pas. |
Ce qu'il faut retenir du cas
- Avec la case automatique décochée, annuler la commande client dans Odoo n'avertit pas Shopify par ce chemin ; le bouton, lui, le fait.
- L'
ÉtatAnnulés'écrit après avoir demandé l'annulation à Shopify, sauf si Shopify renvoie des erreurs avec un texte : alors apparaîtL'annulation de la commande Shopify a échoué : …et rien ne change. - Un échec lors de l'annulation de la commande client d'Odoo ne se voit pas à l'écran : en cas de doute, vérifiez la commande client liée après avoir cliqué.
Comment FlexigoTech vous aide
Le module est publié sur Odoo Apps pour Odoo 17, 18, 19 et 20 ; vous avez la fiche Odoo Apps et la page du module. Outre le paiement unique du module, il nécessite l'abonnement à FlexigoTech Cloud : la connexion avec Shopify passe par ce service, qui conserve les identifiants chiffrés et prévient par e-mail si la synchronisation échoue (plan Connecteur : 49 €/mois ou 490 €/an HT). FlexigoTech met en place Odoo 17, 18, 19 et 20 et développe des connecteurs et des intégrations sur mesure, au cas où vous auriez besoin d'adapter le flux d'annulations à votre boutique.
À 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 (2950bdc0): views/shopify_order_views.xml
- Code du module : flexigobe_shopify_seller_connector 20.0 (2950bdc0): models/shopify_order.py
- Code du module : flexigobe_shopify_seller_connector 20.0 (2950bdc0): models/sale_order.py
- Code du module : flexigobe_shopify_seller_connector 20.0 (2950bdc0): models/shopify_instance.py
- apps.odoo.com/apps/modules/20.0/flexigobe_shopify_seller_connector
- flexigotech.com/precios.html
- flexigotech.com/en/services.html
