Dónde está el botón y cuándo se ve
Las solicitudes de cancelación se abren desde el menú Octopia › Pedidos › Cancelaciones (Octopia › Orders › Cancellations). El tramo Octopia pide el permiso Usuario de Octopia (Octopia User): si no lo tienes, no ves ese tramo. En esa pantalla está el botón Enviar a Octopia, que existe en Odoo 17, 18, 19 y 20.
El botón solo se ve mientras la solicitud está en su estado inicial. Cuando el Estado (State) pasa a ser otro, desaparece.

Antes de pulsarlo, mira los datos de la ficha que cuentan. La lista de Cancelaciones muestra Cuenta (Account), Pedido (Order) y Tipo de evento (Event Type). En la ficha, Tipo de evento tiene el valor Pedido completo (Full Order), que es el de por defecto, o Líneas específicas (Specific Lines). El campo Líneas (parcial) (Lines (partial)) solo aparece cuando Tipo de evento es Líneas específicas; con el valor por defecto no se ve.

Un caso inventado: Tienda Mediterránea cancela dos pedidos
Ejemplo Caso ilustrativo: la empresa y sus datos son inventados para explicar el flujo.
Tienda Mediterránea, una empresa inventada que vende menaje en Cdiscount, tiene dos cancelaciones por enviar. Entra en Octopia › Pedidos › Cancelaciones y abre la primera.
Primera cancelación: el pedido entero
El Tipo de evento es Pedido completo. La persona pulsa Enviar a Octopia y Odoo pregunta: Enviar una cancelación aceptada reembolsa al cliente. ¿Continuar? (Submitting an accepted cancellation refunds the customer. Continue?). Al aceptar, en Odoo 20 el método hace esto, en este orden:
- Si la solicitud ya no está en su estado inicial, la salta sin hacer nada.
- Toma el pedido de la solicitud y abre la conexión con Octopia de la cuenta de ese pedido.
- Al ser un pedido completo, envía a Octopia el identificador del pedido, el motivo de la solicitud y el reembolso de gastos de envío que lleva la solicitud.
- Si la respuesta de Octopia es un conjunto de datos, guarda en la ficha el identificador de la solicitud que Octopia devuelve, como referencia.
- Escribe el estado
InProgressy la fecha y hora del envío. - Anota en el registro de sincronización una entrada de tipo cancelaciones, con resultado correcto y un texto con el tipo de evento, el pedido y el motivo.
En un pedido completo, el método no comprueba que haya líneas: no las necesita.
Segunda cancelación: solo algunas líneas
La segunda cancelación tiene Tipo de evento en Líneas específicas, pero la persona todavía no ha añadido ninguna línea en Líneas (parcial). Pulsa el botón, acepta la confirmación y Odoo se detiene con este mensaje: Una cancelación parcial necesita al menos una línea. (A partial cancellation needs at least one line.)
El mensaje sale al pulsar Enviar a Octopia en una cancelación parcial sin líneas. La comprobación va antes de enviar nada a Octopia, y al detenerse la acción no se guarda nada de lo que iba a cambiar: la solicitud sigue como estaba y el botón sigue visible.
La solución es añadir al menos una línea en Líneas (parcial). Cambiar el Tipo de evento a Pedido completo también haría desaparecer el mensaje, pero entonces se cancelaría el pedido entero, así que solo tiene sentido si eso es lo que quieres.
Con las líneas ya añadidas, el botón envía una única petición con todas ellas. De cada línea manda su identificador, la oferta, el motivo y el reembolso de gastos de envío de la solicitud. Si una línea no tiene motivo propio, usa el de la solicitud. Octopia puede responder con una lista de resultados o con un solo resultado; de cada uno el módulo recoge el identificador de la solicitud, y si recoge alguno, los guarda en la ficha separados por comas. Después hace lo mismo que en la cancelación completa: estado InProgress, fecha y hora, y entrada en el registro de sincronización.
Qué cambia al terminar
- El
Estadode la solicitud pasa aInProgress. - Queda guardada la fecha y hora del envío.
- Si Octopia devolvió identificadores, la ficha los conserva como referencia.
- El registro de sincronización recibe una entrada de tipo cancelaciones con resultado correcto.
- El botón deja de verse, porque su condición solo lo muestra en el estado inicial.
El rótulo según el idioma de tu Odoo
Con Odoo en castellano el botón se llama Enviar a Octopia. El módulo trae también sus traducciones a otros idiomas, que muestra el esquema.

Qué te llevas del caso
- Antes de pulsar, comprueba el
Tipo de evento: de él depende si se envía el pedido entero o solo líneas. - En una cancelación parcial, las líneas van primero; sin ellas no se envía nada.
- La pregunta de confirmación avisa de que enviar una cancelación aceptada reembolsa al cliente.
- Si la solicitud ya no está en su estado inicial, el método no la vuelve a enviar.
Coste y ayuda
El módulo es de pago único por versión de Odoo y está publicado para 17, 18, 19 y 20 en su ficha de Odoo Apps. Necesita la suscripción a FlexigoTech Cloud, plan Conector: 49 €/mes o 490 €/año sin IVA, con hasta tres cuentas de la plataforma. La conexión pasa por FlexigoTech Cloud, que guarda cifradas las credenciales, vigila la sincronización y avisa por correo si falla. Sin suscripción, o con el servicio suspendido, se para lo que da la suscripción; los datos se quedan en tu Odoo.
Si estás implantando Odoo y quieres revisar cómo encajan las cancelaciones de Cdiscount en tu operativa, FlexigoTech implanta Odoo y desarrolla conectores e integraciones a medida.
Sigue leyendo
Comprobado en el código del conector (versión 20.0) y en las fuentes enlazadas
Fuentes
- Código del módulo: flexigobe_octopia_connector 20.0 (4848da6a): views/octopia_order_actions_views.xml
- Código del módulo: 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
