Dónde está el botón y cuándo se ve
Las fichas de devolución se abren desde el menú Octopia › Fulfillment › Devoluciones (Octopia › Fulfillment › Returns). El tramo Octopia pide el permiso Usuario de Octopia (Octopia User): si no lo tienes, no ves ese tramo. En la pantalla Devoluciones FFM (FFM Returns) está el botón, y está en las cuatro versiones publicadas del módulo: Odoo 17, 18, 19 y 20.

El botón tiene una sola condición de vista: se oculta cuando el campo ID de la devolución tiene valor. Con los valores por defecto ese campo está vacío, así que el botón se ve. Dicho al revés: una devolución que ya tiene ID de la devolución deja de ofrecer el botón.
Con Odoo en castellano el botón se llama Enviar a Octopia. Así se lee en cada idioma con traducción publicada:

| Idioma de Odoo | Rótulo del botón |
|---|---|
| Castellano | Enviar a Octopia |
| Alemán | An Octopia übermitteln |
| Francés | Soumettre à Octopia |
| Italiano | Invia a Octopia |
| Portugués | Submeter à Octopia |

Un caso para seguirlo de principio a fin
Ejemplo Caso ilustrativo: la empresa y sus datos son inventados para explicar el flujo.
Hogar Norte es una tienda inventada que vende menaje en Cdiscount y gestiona sus devoluciones FFM desde Odoo. Un cliente devuelve un producto de un envío ya realizado. Marta, de atención al cliente, abre la ficha de la devolución en Octopia › Fulfillment › Devoluciones y rellena lo que esa ficha muestra: la Cuenta (Account) de Octopia, el Envío saliente (Outbound Shipment) del que viene el producto, el Comentario (Comment) si quiere dejar una nota y las Líneas (Lines) de la devolución.
Primero pulsa Enviar a Octopia con la ficha sin líneas: la acción se detiene y aparece Una devolución necesita al menos una línea. No se ha enviado nada a Octopia. Marta añade una línea en Líneas y vuelve a pulsar. Esta vez el módulo prepara la petición, la manda con la cuenta elegida y, si la respuesta trae el identificador de la devolución, lo guarda en ID de la devolución. Después pasa la devolución a estado creado y anota una línea en el registro de sincronización de la cuenta. Como ID de la devolución ya tiene valor, el botón desaparece de la ficha.
Lo que se aprende del caso: la comprobación previa que hace el módulo es que haya líneas, y el rastro de que la creación llegó a Octopia es el valor de ID de la devolución.
Qué hace el botón, en orden
- Si la devolución ya tiene
ID de la devolución, el método la salta sin hacer nada. - Comprueba que la devolución tenga líneas. Si no tiene ninguna, se detiene con
Una devolución necesita al menos una línea.y no sigue. - Prepara la petición con el identificador externo del
Envío saliente, el motivo de la devolución y, por cada línea, el producto, la cantidad y el estado del producto. - Si
Comentariotiene texto, lo añade a la petición. Si está vacío, la petición va sin comentario. - Se conecta con la
Cuentade la devolución y pide a Octopia que cree la devolución. - Si la respuesta incluye el identificador de la devolución, lo guarda en
ID de la devolución. - Pasa la devolución a estado creado.
- Anota una línea en el registro de sincronización de la cuenta: de tipo fulfillment, con resultado correcto, con el envío saliente en el texto y un registro contado.
Ese registro no es exclusivo del botón. También escriben en él dos tareas programadas. La tarea Octopia: refrescar referenciales (categorías, marcas, transportistas, tipologías) (Octopia: refresh referentials (categories, brands, carriers, typologies)) corre cada siete días y está activa al instalar, pero solo anota en el registro cuando algún paso del refresco falla: entonces deja un error de referenciales incompletos. La tarea Octopia: descargar conversaciones (cola ToTreat) (Octopia: pull discussions (ToTreat queue)) corre cada 15 minutos, está activa al instalar y también deja su anotación en ese registro.
El mensaje que puede detener el botón
| Mensaje | Cuándo sale | Qué hacer |
|---|---|---|
Una devolución necesita al menos una línea. | Al pulsar Enviar a Octopia con la devolución sin líneas. | Añade al menos una línea en Líneas de la ficha y vuelve a pulsar. |
La comprobación va antes de preparar la petición y de conectar con Octopia. Cuando el mensaje sale, esa devolución no se envía y no se guarda nada de lo que el botón iba a escribir: ni ID de la devolución, ni el cambio de estado, ni la línea de registro.
Dudas que surgen al usarlo
¿Se envía el comentario si lo dejo vacío?
No. El módulo solo añade el comentario a la petición cuando Comentario tiene texto.
¿Con qué cuenta se envía?
Con la que figura en Cuenta en la ficha de la devolución. También la ves en la lista de Devoluciones FFM, junto con el Envío saliente.
¿Qué pasa si la respuesta no trae identificador?
El módulo pasa igualmente la devolución a estado creado y anota la línea de registro, pero ID de la devolución queda vacío. Según la condición de vista del botón, con ese campo vacío el botón sigue visible.
¿Se puede enviar dos veces la misma devolución?
Depende de ID de la devolución. Si la devolución ya lo tiene, no: el botón no se muestra y el método la salta. Si quedó vacío porque la respuesta no trajo identificador, el botón sigue visible y pulsarlo otra vez vuelve a mandar la petición a Octopia.
Qué necesitas para usarlo
El módulo es de pago único por versión y está publicado en Odoo Apps para Odoo 17, 18, 19 y 20; cada versión de Odoo se compra allí por separado y su precio está en su ficha. Además necesita la suscripción a FlexigoTech Cloud, plan Conector: 49 €/mes o 490 €/año sin IVA, para hasta 3 cuentas de la plataforma (el plan Pro es de 98 €/mes o 980 €/año sin IVA, para hasta 10).
La conexión pasa por FlexigoTech Cloud, que guarda cifradas las credenciales, vigila la sincronización y avisa por correo si falla; si la plataforma cambia su API, se adaptan el módulo y el servicio. Sin suscripción, o con el servicio suspendido, se para lo que da la suscripción; los datos se quedan en tu Odoo.
El módulo tiene otros botones con su propio artículo, como Abrir conversación y Declarar a Octopia.
Si necesitas ayuda con Octopia y Odoo
FlexigoTech implanta Odoo 17, 18, 19 y 20 y desarrolla conectores e integraciones a medida. Si quieres revisar cómo encajan tus devoluciones FFM en tu Odoo, escríbenos.
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_fulfillment_views.xml
- Código del módulo: flexigobe_octopia_connector 20.0 (4848da6a): models/octopia_fulfillment.py
- Código del módulo: flexigobe_octopia_connector 20.0 (4848da6a): models/octopia_referential.py
- apps.odoo.com/apps/modules/20.0/flexigobe_octopia_connector
- flexigotech.com/en/services.html
- flexigotech.com/precios.html
