Où se trouve le bouton et quand il est visible
Les demandes d'annulation s'ouvrent depuis le menu Octopia › Commandes › Annulations (Octopia › Orders › Cancellations). La section Octopia demande la permission Utilisateur Octopia (Octopia User) : si vous ne l'avez pas, vous ne voyez pas cette section. Sur cet écran se trouve le bouton Soumettre à Octopia, qui existe dans Odoo 17, 18, 19 et 20.
Le bouton n'est visible que tant que la demande est à son état initial. Dès que l'État (State) devient autre, il disparaît.

Avant de cliquer, regardez les données de la fiche qui comptent. La liste des Annulations affiche Compte (Account), Commande (Order) et Type d'événement (Event Type). Dans la fiche, Type d'événement a la valeur Commande complète (Full Order), qui est celle par défaut, ou Lignes spécifiques (Specific Lines). Le champ Lignes (partiel) (Lines (partial)) n'apparaît que lorsque Type d'événement vaut Lignes spécifiques ; avec la valeur par défaut, il n'est pas visible.

Un cas inventé : Tienda Mediterránea annule deux commandes
Exemple Cas illustratif : l'entreprise et ses chiffres sont inventés pour expliquer le flux.
Tienda Mediterránea, une entreprise inventée qui vend des articles de maison sur Cdiscount, a deux annulations à envoyer. Elle ouvre Octopia › Commandes › Annulations et ouvre la première.
Première annulation : la commande entière
Le Type d'événement est Commande complète. La personne clique sur Soumettre à Octopia et Odoo demande : Soumettre une annulation acceptée rembourse le client. Continuer ? (Submitting an accepted cancellation refunds the customer. Continue?). Une fois la confirmation acceptée, dans Odoo 20 la méthode fait ceci, dans cet ordre :
- Si la demande n'est plus à son état initial, elle la saute sans rien faire.
- Elle prend la commande de la demande et ouvre la connexion avec Octopia du compte de cette commande.
- S'agissant d'une commande complète, elle envoie à Octopia l'identifiant de la commande, le motif de la demande et le remboursement des frais d'expédition que porte la demande.
- Si la réponse d'Octopia est un ensemble de données, elle enregistre dans la fiche, comme référence, l'identifiant de la demande qu'Octopia renvoie.
- Elle écrit l'état
InProgressainsi que la date et l'heure de l'envoi. - Elle note dans le journal de synchronisation une entrée de type annulations, avec un résultat correct et un texte indiquant le type d'événement, la commande et le motif.
Pour une commande complète, la méthode ne vérifie pas qu'il y ait des lignes : elle n'en a pas besoin.
Deuxième annulation : seulement certaines lignes
La deuxième annulation a son Type d'événement sur Lignes spécifiques, mais la personne n'a pas encore ajouté de ligne dans Lignes (partiel). Elle clique sur le bouton, accepte la confirmation et Odoo s'arrête avec ce message : Une annulation partielle nécessite au moins une ligne. (A partial cancellation needs at least one line.)
Le message s'affiche lorsqu'on clique sur Soumettre à Octopia dans une annulation partielle sans lignes. La vérification passe avant l'envoi de quoi que ce soit à Octopia, et comme l'action s'arrête, rien de ce qui devait changer n'est enregistré : la demande reste comme elle était et le bouton reste visible.
La solution est d'ajouter au moins une ligne dans Lignes (partiel). Passer le Type d'événement à Commande complète ferait aussi disparaître le message, mais c'est alors la commande entière qui serait annulée ; cela n'a donc de sens que si c'est ce que vous voulez.
Une fois les lignes ajoutées, le bouton envoie une seule requête avec toutes ces lignes. Pour chaque ligne, il envoie son identifiant, l'offre, le motif et le remboursement des frais d'expédition de la demande. Si une ligne n'a pas de motif propre, il utilise celui de la demande. Octopia peut répondre avec une liste de résultats ou avec un seul résultat ; de chacun, le module récupère l'identifiant de la demande, et s'il en récupère au moins un, il les enregistre dans la fiche séparés par des virgules. Ensuite, il fait la même chose que pour l'annulation complète : état InProgress, date et heure, et entrée dans le journal de synchronisation.
Ce qui change à la fin
- L'
Étatde la demande passe àInProgress. - La date et l'heure de l'envoi sont enregistrées.
- Si Octopia a renvoyé des identifiants, la fiche les conserve comme référence.
- Le journal de synchronisation reçoit une entrée de type annulations avec un résultat correct.
- Le bouton n'est plus visible, car sa condition ne l'affiche qu'à l'état initial.
Le libellé selon la langue de votre Odoo
Avec Odoo en français, le bouton s'appelle Soumettre à Octopia. Le module apporte aussi ses traductions dans d'autres langues, que montre le schéma.

Ce que vous retenez du cas
- Avant de cliquer, vérifiez le
Type d'événement: c'est de lui que dépend l'envoi de la commande entière ou seulement de certaines lignes. - Dans une annulation partielle, les lignes passent en premier ; sans elles, rien n'est envoyé.
- La question de confirmation prévient que soumettre une annulation acceptée rembourse le client.
- Si la demande n'est plus à son état initial, la méthode ne la renvoie pas.
Coût et aide
Le module est à paiement unique par version d'Odoo et publié pour 17, 18, 19 et 20 sur sa fiche Odoo Apps. Il nécessite l'abonnement à FlexigoTech Cloud, plan Connecteur : 49 €/mois ou 490 €/an HT, avec jusqu'à trois comptes de la plateforme. 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. Sans abonnement, ou avec le service suspendu, ce qu'apporte l'abonnement s'arrête ; les données restent dans votre Odoo.
Si vous êtes en train de mettre en place Odoo et souhaitez vérifier comment les annulations de Cdiscount s'intègrent à votre fonctionnement, FlexigoTech met en place Odoo et développe des connecteurs et des intégrations sur mesure.
À lire aussi
Vérifié dans le code du connecteur (version 20.0) et dans les sources citées
Sources
- Code du module : flexigobe_octopia_connector 20.0 (4848da6a): views/octopia_order_actions_views.xml
- Code du module : flexigobe_octopia_connector 20.0 (4848da6a): models/octopia_order_actions.py
- apps.odoo.com/apps/modules/20.0/flexigobe_octopia_connector
- flexigotech.com/precios.html
- flexigotech.com/en/services.html
