Dónde sale y cuándo se ve el botón
Sale desde un botón de la solicitud de cancelación
Las fichas de 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.
El mensaje El pedido no tiene canal de ventas del que obtener los motivos. (The order has no sales channel to fetch reasons for.) puede salir al pulsar el botón Obtener motivos elegibles (Fetch Eligible Reasons) de esa ficha. Está en el código publicado de Odoo 17, 18, 19 y 20.

Con las traducciones publicadas del módulo, el mismo mensaje se lee así:
| Idioma | Texto del mensaje |
|---|---|
| Castellano | El pedido no tiene canal de ventas del que obtener los motivos. |
| Inglés | The order has no sales channel to fetch reasons for. |
| Alemán | Die Bestellung hat keinen Verkaufskanal, für den Gründe abgerufen werden könnten. |
| Francés | La commande n'a aucun canal de vente pour lequel récupérer des motifs. |
| Italiano | L'ordine non ha un canale di vendita per cui recuperare i motivi. |
| Portugués | A encomenda não tem canal de vendas para o qual obter motivos. |

El botón solo se ve mientras la solicitud está en su estado inicial
La vista oculta Obtener motivos elegibles cuando la solicitud ya no está en su estado inicial, el que tiene por defecto en el campo Estado (State). Con los valores por defecto, el botón se ve. Es igual en Odoo 17, 18, 19 y 20.
Tiene una consecuencia práctica: si abres una solicitud y no ves el botón, no hay nada que pulsar y, por tanto, este mensaje no sale desde esa ficha. Si lo ves, la solicitud sigue en su estado inicial.

Qué comprueba el código y en qué orden
Se mira el canal del pedido, no el de la solicitud
El canal de ventas no se lee de la solicitud de cancelación, sino del pedido al que está ligada. La condición exacta del código es esa: que el canal de ventas de ese pedido esté vacío. Por eso dos solicitudes distintas pueden dar resultados distintos: depende de si su pedido tiene canal de ventas.
Es lo primero que hace el método
El botón llama a un método que recorre las solicitudes sobre las que se lanza. Para cada una toma su pedido y mira el canal de ventas de ese pedido. Si está vacío, lanza el mensaje y la acción se detiene ahí.
Esta comprobación va antes que cualquier otra cosa del método: antes de decidir qué estado del pedido se va a usar y antes de pasar ningún dato al paso siguiente del módulo.
Pulsar otra vez no lo arregla
El método solo lee el canal de ventas del pedido. No lo rellena ni lo cambia, así que volver a pulsar Obtener motivos elegibles sin tocar nada da el mismo resultado: el mensaje seguirá saliendo mientras el pedido no tenga canal de ventas.
Cuando sí hay canal, el método sigue
Si el pedido tiene canal, el método decide con qué estado del pedido va a seguir: si el estado del pedido es Accepted, InPreparation, Shipped o Delivered, usa ese; con cualquier otro usa Accepted.
Después pasa la cuenta del pedido, el código del canal, el valor Seller y ese estado al paso siguiente del módulo, y termina. Por eso el canal importa de verdad: su código es uno de los datos que el método pasa, y sin canal el método ni llega a ese punto.
Cómo resolverlo
Lo que pide el mensaje es que el pedido de la solicitud tenga canal de ventas. Como el botón no lo escribe, el arreglo está en el pedido, no en el botón.
- Abre la solicitud desde
Octopia › Pedidos › Cancelacionesy comprueba que vesObtener motivos elegibles. Si no lo ves, la solicitud ya no está en su estado inicial. - Identifica el pedido al que pertenece la solicitud: es el que tiene que tener canal de ventas.
- Cuando ese pedido tenga canal de ventas, vuelve a pulsar
Obtener motivos elegibles.
Si después de eso vuelve a salir el mismo mensaje, el pedido sigue con el canal de ventas vacío: la comprobación del código no mira otra cosa.
Si necesitas una mano
FlexigoTech implanta Odoo 17, 18, 19 y 20 y desarrolla conectores e integraciones a medida. Octopia Connector es un módulo de pago único por versión y necesita la suscripción a FlexigoTech Cloud: el plan Conector cuesta 49 €/mes o 490 €/año sin IVA.
Si quieres ver cómo actúa otro botón de la solicitud, tienes el de Submit to Octopia.
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): models/octopia_order_actions.py
- Código del módulo: flexigobe_octopia_connector 20.0 (4848da6a): views/octopia_completeness2_views.xml
- flexigotech.com/en/services.html
- flexigotech.com/precios.html
