Cuándo se puede
El gesto va sobre un pedido ya en camino: Odoo solo lo envía si el pedido de Octopia está en Shipped o Delivered. Además, el canal de venta tiene que admitir gestos. Lo ves en Octopia › Configuration › Sales Channels, en el grupo «Commercial Gestures» de cada canal: «Commercial Gestures Enabled», «Gesture Max Amount», «Gesture Max Rate (%)» y «Gesture Currency». Son datos de solo lectura que llegan de Octopia al sincronizar la configuración. Mientras un canal no se ha sincronizado, Odoo no frena el gesto por ese motivo y la última palabra es de Octopia.
Los botones del gesto solo los ve quien tiene permisos de gestor en el conector.

Paso a paso
- Ve a Octopia › Orders › Commercial Gestures y crea uno nuevo.
- Elige el pedido y el motivo, y escribe el detalle si hace falta.
- Pulsa «Check Remaining Budget». Odoo lee de Octopia cuánto queda por conceder en ese pedido y lo deja en el campo de presupuesto disponible.
- Escribe el importe del gesto, sin pasarte de ese presupuesto.
- Pulsa «Submit to Octopia» y confirma: el aviso recuerda que el gesto devuelve ese importe al cliente.
- El gesto pasa a In Progress con la referencia de Octopia y la fecha de envío.

Los motivos
Octopia pide un motivo de su lista, y Odoo te ofrece los mismos: Late Delivery, Missing Product, Product Return Fees, Quantity Compensation, Reference Mistake, Shipping Fees, Fees Unduly Charged, Warranty Period Exceeded y Other. Elige el que describe lo que pasó; el detalle, si lo rellenas, viaja con el gesto.
Lo que comprueba al enviar
| Comprobación | Aviso si falla |
|---|---|
| El canal no tiene los gestos desactivados | Sales channel %s has commercial gestures disabled. |
| El pedido está en Shipped o Delivered | Commercial gestures apply to shipped or delivered orders only (order %s is %s). |
| El importe no supera el presupuesto restante, cuando es mayor que 0 | Gesture amount %(amount).2f exceeds the remaining budget %(available).2f for this order. |
Odoo vuelve a leer el presupuesto justo antes de enviar, así que el tercer control usa la cifra del momento, no la que viste al pulsar el botón. Ese control solo frena cuando hay una cifra de presupuesto mayor que 0: con el presupuesto a 0, agotado o sin dato, Odoo envía el gesto igual y decide Octopia.

Después de enviarlo
La tarea «Octopia: poll async jobs (packages, cancellations, gestures)» pregunta a Octopia cada 5 minutos por los gestos en In Progress. Si no quieres esperar, «Poll Status» hace la misma consulta al momento. El gesto termina en Done si Octopia lo acepta o en Rejected si no; la lista los pinta en verde y en rojo.
Con Done, Odoo puede dejarte preparado el abono. Tiene que estar marcada «Auto-create Credit Notes» en la cuenta de Octopia y el pedido tiene que tener cliente. El abono se crea en borrador, con una sola línea por el importe del gesto y sin impuestos, y la referencia empieza por «Octopia commercial gesture». Va sin impuestos porque ese importe es el bruto que devolvió el canal, con el IVA ya dentro. Revísalo antes de publicarlo: si en tu contabilidad tienes que desglosar ese IVA, hazlo sin cambiar el total.
¿El gesto anula el pedido?
No. El pedido sigue igual y el cliente recibe solo el importe del gesto. Para anular el pedido entero o algunas líneas está la anulación de pedidos de Cdiscount.
¿Está en todas las versiones?
Sí, los gestos comerciales están en el conector publicado para Odoo 17, 18, 19 y 20.
Sigue leyendo
Comprobado en el código del conector (versión 17.0, 18.0, 19.0 y 20.0) y en las fuentes enlazadas
Fuentes
- Código del módulo: 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
- Código del módulo: 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
- Código del módulo: 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)
- Código del módulo: 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
- Código del módulo: 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
