Le chemin normal et l'emplacement du bouton
Faut-il cliquer sur le bouton pour que l'avoir soit créé ?
Pas forcément. La tâche planifiée Shopify Create Credit Notes (toutes les trois heures, désactivée à l'installation) fait la même chose sans que vous cliquiez, mais uniquement avec les boutiques qui ont Finance activé et ont opté pour la création automatique des avoirs. Elle cherche les remboursements à l'état initial qui ont une commande client (jusqu'à cent par passage), ignore ceux dont la commande n'a pas de facture comptabilisée et, pour les autres, crée l'avoir et le valide. Elle confirme les changements remboursement par remboursement : si l'un échoue, elle annule uniquement celui-là et continue avec les autres. Les remboursements partiels ne sont pas créés par cette tâche. Tant qu'elle reste désactivée, ce chemin ne fonctionne pas et l'avoir se crée avec le bouton.
Où se trouve le bouton ?
Ouvrez le menu Shopify › Opérations › Remboursements et retours (Shopify › Operations › Refunds & Returns) et entrez dans la fiche d'un remboursement, dans l'écran Remboursements Shopify (Shopify Refunds). Les deux niveaux du menu, Shopify et Opérations (Operations), demandent la permission Lecteur (Viewer) : sans elle, vous ne voyez pas ce niveau. Avec Odoo en français, le bouton s'appelle Créer un avoir, et il existe dans les versions 17, 18, 19 et 20.


Quand le bouton apparaît-il et quand disparaît-il ?
Il est masqué quand l'État (State) du remboursement n'est ni l'état initial ni l'état d'échec. Un nouveau remboursement a l'état initial, donc le bouton s'y affiche. Si la création de l'avoir échoue et que le remboursement passe à l'état d'échec, le bouton réapparaît et le champ Erreur s'affiche, sans libellé et en montrant seulement son contenu. Dès que le remboursement a son avoir créé, le bouton est masqué. La condition est la même dans les versions 17, 18, 19 et 20.

Ce qu'il vérifie et ce qui change quand vous cliquez
Que vérifie le bouton, et dans quel ordre ?
Il regarde d'abord si le remboursement a déjà son avoir créé et lié : dans ce cas, il n'en crée pas un autre et ouvre celui qui existe. Sinon, il vérifie dans cet ordre :
- Que la boutique ait Finance activé.
- Que le remboursement ait une commande client liée.
- Que cette commande ait une facture client comptabilisée.
C'est seulement alors qu'il tente de créer l'avoir. Si une vérification échoue, le bouton s'arrête avec son message et ce qui devait changer n'est pas enregistré.
Que change-t-il quand le remboursement est total ?
Le module considère le remboursement comme total quand son montant correspond au total de la facture (une différence inférieure à 0.01 est tolérée). Il annule alors cette facture comptabilisée : l'avoir porte comme référence Remboursement Shopify … (Shopify Refund …) et comme note interne Remboursement Shopify … (Shopify refund …) avec l'identifiant du remboursement. La date de facture est celle du remboursement ou, à défaut, celle du jour. Comme le bouton demande la validation, l'avoir est validé. Le remboursement passe à l'état d'avoir créé, le champ Avoir (Credit Note) est rempli et le champ Erreur est vidé. À la fin, Odoo ouvre la fiche de l'avoir dans la même fenêtre.
Le champ Avoir se trouve dans la fiche, dans le groupe Montants (Amounts), est en lecture seule et ne s'affiche que lorsqu'il a une valeur. C'est le module qui le remplit, pas vous.
Et si le remboursement est partiel ?
Le bouton l'accepte, contrairement à la tâche planifiée. Il crée quand même une annulation complète de la facture, mais la laisse en brouillon et ajoute une note dans son historique : il faut ajuster les lignes au montant remboursé avant de la valider. Le remboursement passe quand même à l'état d'avoir créé.
Erreurs et questions
Que signifient les messages qui bloquent le bouton avant de créer quoi que ce soit ?
Voici quelques-uns des messages possibles :
Enable Finance on the store before creating credit notes.: la boutique du remboursement (champInstance, dans le groupeShopifyde la fiche) n'a pas Finance activé. Activez-le sur cette boutique et cliquez de nouveau.
Aucun bon de commande lié à ce remboursement. Impossible de créer un avoir.(No sale order linked to this refund. Cannot create credit note.) : le champBon de commande(Sale Order), dans le groupeMontants, est vide. Il est en lecture seule et c'est le module qui le remplit, vous ne pouvez donc pas le saisir.
Aucune facture comptabilisée trouvée pour la commande …. Facturez d'abord la commande avant de créer un avoir.(No posted invoice found for sale order …. Invoice the order first before creating a credit note.) : la commande n'a pas de facture client comptabilisée. Facturez la commande, validez la facture et cliquez de nouveau.
Que signifie Failed to create the credit note: … ?
Il apparaît quand, une fois les vérifications passées, l'avoir n'est pas obtenu. Le texte après les deux-points est celui que le remboursement enregistre dans son champ Erreur, qui se remplit quand l'annulation de la facture échoue. Avec le bouton, l'avertissement arrête l'action et ce qui devait changer n'est pas enregistré. Lisez le texte, corrigez le problème indiqué dans la facture et recommencez. Quand l'échec se produit dans la tâche planifiée, le remboursement reste à l'état d'échec avec le champ Erreur visible. Les boutons Ignorer (Ignore) et Réessayer (Retry) vident ce champ.
Quel est le prix et dans quelles versions est-il disponible ?
Le module est publié sur Odoo Apps pour les versions 17, 18, 19 et 20 (fiche, page du module). Il s'agit d'un paiement unique par version et il nécessite l'abonnement à FlexigoTech Cloud, formule Connecteur : 49 €/mois ou 490 €/an HT.
Comment FlexigoTech vous aide
FlexigoTech déploie Odoo 17, 18, 19 et 20 et développe des connecteurs et des intégrations sur mesure. Si vos remboursements Shopify demandent un autre traitement comptable, écrivez-nous. Un autre bouton du même connecteur est expliqué dans Annuler dans Shopify.
À 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_refund_views.xml
- Code du module : flexigobe_shopify_seller_connector 20.0 (2950bdc0): models/shopify_refund.py
- apps.odoo.com/apps/modules/20.0/flexigobe_shopify_seller_connector
- flexigotech.com/en/services.html
- flexigotech.com/precios.html
