Quand c'est possible
Le geste porte sur une commande déjà en route : Odoo ne l'envoie que si la commande Octopia est en Shipped ou Delivered. De plus, le canal de vente doit accepter les gestes. Vous le voyez dans Octopia › Configuration › Sales Channels, dans le groupe « Commercial Gestures » de chaque canal : « Commercial Gestures Enabled », « Gesture Max Amount », « Gesture Max Rate (%) » et « Gesture Currency ». Ce sont des données en lecture seule qui arrivent d'Octopia lors de la synchronisation de la configuration. Tant qu'un canal n'a pas été synchronisé, Odoo ne bloque pas le geste pour cette raison et le dernier mot revient à Octopia.
Seuls les utilisateurs qui ont les droits de gestionnaire sur le connecteur voient les boutons du geste.

Pas à pas
- Allez dans Octopia › Orders › Commercial Gestures et créez-en un nouveau.
- Choisissez la commande et le motif, et écrivez le détail si besoin.
- Cliquez sur « Check Remaining Budget ». Odoo lit chez Octopia combien il reste à accorder sur cette commande et le place dans le champ de budget disponible.
- Saisissez le montant du geste, sans dépasser ce budget.
- Cliquez sur « Submit to Octopia » et confirmez : l'avertissement rappelle que le geste rembourse ce montant au client.
- Le geste passe en In Progress avec la référence Octopia et la date d'envoi.

Les motifs
Octopia demande un motif de sa liste, et Odoo vous propose les mêmes : Late Delivery, Missing Product, Product Return Fees, Quantity Compensation, Reference Mistake, Shipping Fees, Fees Unduly Charged, Warranty Period Exceeded et Other. Choisissez celui qui décrit ce qui s'est passé ; le détail, si vous le remplissez, voyage avec le geste.
Ce qu'il vérifie à l'envoi
| Vérification | Message si elle échoue |
|---|---|
| Le canal n'a pas les gestes désactivés | Sales channel %s has commercial gestures disabled. |
| La commande est en Shipped ou Delivered | Commercial gestures apply to shipped or delivered orders only (order %s is %s). |
| Le montant ne dépasse pas le budget restant, quand celui-ci est supérieur à 0 | Gesture amount %(amount).2f exceeds the remaining budget %(available).2f for this order. |
Odoo relit le budget juste avant l'envoi, donc le troisième contrôle utilise le chiffre du moment, pas celui que vous avez vu en cliquant sur le bouton. Ce contrôle ne bloque que s'il y a un budget supérieur à 0 : avec un budget à 0, épuisé ou sans donnée, Odoo envoie quand même le geste et c'est Octopia qui décide.

Après l'envoi
La tâche « Octopia: poll async jobs (packages, cancellations, gestures) » interroge Octopia toutes les 5 minutes sur les gestes en In Progress. Si vous ne voulez pas attendre, « Poll Status » fait la même consultation sur-le-champ. Le geste se termine en Done si Octopia l'accepte ou en Rejected sinon ; la liste les affiche en vert et en rouge.
Avec Done, Odoo peut vous préparer l'avoir. Il faut que « Auto-create Credit Notes » soit cochée dans le compte Octopia et que la commande ait un client. L'avoir est créé en brouillon, avec une seule ligne pour le montant du geste et sans taxes, et sa référence commence par « Octopia commercial gesture ». Il est sans taxes parce que ce montant est le brut remboursé par le canal, TVA déjà comprise. Vérifiez-le avant de le valider : si votre comptabilité doit ventiler cette TVA, faites-le sans changer le total.
Le geste annule-t-il la commande ?
Non. La commande reste telle quelle et le client ne reçoit que le montant du geste. Pour annuler la commande entière ou quelques lignes, il y a l'annulation de commandes Cdiscount.
Est-ce dans toutes les versions ?
Oui, les gestes commerciaux sont dans le connecteur publié pour Odoo 17, 18, 19 et 20.
À lire aussi
Vérifié dans le code du connecteur (version 17.0, 18.0, 19.0 et 20.0) et dans les sources citées
Sources
- Code du module : flexigobe_octopia_connector · 17.0 501e336 · 18.0 e234fab · 19.0 d258001 · 20.0 5cbe12a: views/octopia_order_actions_views.xml, models/octopia_order_actions.py
- Code du module : flexigobe_octopia_connector · 17.0 501e336 · 18.0 e234fab · 19.0 d258001 · 20.0 5cbe12a: models/octopia_api_client.py (GESTURE_REASON_SELECTION, GESTURE_STATUS_SELECTION), models/octopia_order_actions.py
- Code du module : flexigobe_octopia_connector · 17.0 501e336 · 18.0 e234fab · 19.0 d258001 · 20.0 5cbe12a: models/octopia_order_actions.py (action_submit, action_check_available)
- Code du module : flexigobe_octopia_connector · 17.0 501e336 · 18.0 e234fab · 19.0 d258001 · 20.0 5cbe12a: models/octopia_sales_channel.py, views/octopia_sales_channel_views.xml, views/menu.xml
- Code du module : flexigobe_octopia_connector · 17.0 501e336 · 18.0 e234fab · 19.0 d258001 · 20.0 5cbe12a: models/octopia_order_actions.py (action_poll, _on_done), models/octopia_account.py, data/octopia_cron_data.xml
- apps.odoo.com/apps/modules/20.0/flexigobe_octopia_connector
