Onde surge e quando se vê o botão
Surge a partir de um botão do pedido de cancelamento
As fichas dos pedidos de cancelamento abrem-se a partir do menu Octopia › Encomendas › Cancelamentos (Octopia › Orders › Cancellations). O troço Octopia exige a permissão Utilizador Octopia (Octopia User): se não a tiveres, não vês esse troço.
A mensagem A encomenda não tem canal de vendas para o qual obter motivos. (The order has no sales channel to fetch reasons for.) pode surgir ao clicar no botão Obter motivos elegíveis (Fetch Eligible Reasons) dessa ficha. Consta do código publicado do Odoo 17, 18, 19 e 20.

Com as traduções publicadas do módulo, a mesma mensagem lê-se assim:
| Idioma | Texto da mensagem |
|---|---|
| Castelhano | 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ão | 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. |

O botão só se vê enquanto o pedido está no estado inicial
A vista oculta Obter motivos elegíveis quando o pedido já não está no seu estado inicial, o que tem por defeito no campo Estado (State). Com os valores por defeito, o botão vê-se. É igual no Odoo 17, 18, 19 e 20.
Tem uma consequência prática: se abres um pedido e não vês o botão, não há nada para clicar e, portanto, esta mensagem não surge a partir dessa ficha. Se o vês, o pedido continua no estado inicial.

O que verifica o código e por que ordem
Olha-se para o canal da encomenda, não para o do pedido
O canal de vendas não é lido do pedido de cancelamento, mas da encomenda a que este está ligado. A condição exata do código é essa: que o canal de vendas dessa encomenda esteja vazio. Por isso, dois pedidos diferentes podem dar resultados diferentes: depende de a respetiva encomenda ter canal de vendas.
É a primeira coisa que o método faz
O botão chama um método que percorre os pedidos sobre os quais é lançado. Para cada um, toma a sua encomenda e olha para o canal de vendas dessa encomenda. Se estiver vazio, lança a mensagem e a ação para aí.
Esta verificação vem antes de qualquer outra coisa do método: antes de decidir que estado da encomenda se vai usar e antes de passar qualquer dado ao passo seguinte do módulo.
Clicar outra vez não resolve
O método só lê o canal de vendas da encomenda. Não o preenche nem o altera, pelo que voltar a clicar em Obter motivos elegíveis sem mexer em nada dá o mesmo resultado: a mensagem continuará a surgir enquanto a encomenda não tiver canal de vendas.
Quando há canal, o método continua
Se a encomenda tem canal, o método decide com que estado da encomenda vai continuar: se o estado da encomenda for Accepted, InPreparation, Shipped ou Delivered, usa esse; com qualquer outro usa Accepted.
Depois passa a conta da encomenda, o código do canal, o valor Seller e esse estado ao passo seguinte do módulo, e termina. Por isso o canal importa mesmo: o seu código é um dos dados que o método passa e, sem canal, o método nem chega a esse ponto.
Como resolver
O que a mensagem pede é que a encomenda do pedido tenha canal de vendas. Como o botão não o escreve, a correção está na encomenda, não no botão.
- Abre o pedido a partir de
Octopia › Encomendas › Cancelamentose verifica que vêsObter motivos elegíveis. Se não o vires, o pedido já não está no seu estado inicial. - Identifica a encomenda a que o pedido pertence: é a que tem de ter canal de vendas.
- Quando essa encomenda tiver canal de vendas, volta a clicar em
Obter motivos elegíveis.
Se depois disso voltar a surgir a mesma mensagem, a encomenda continua com o canal de vendas vazio: a verificação do código não olha para mais nada.
Se precisares de ajuda
A FlexigoTech implementa Odoo 17, 18, 19 e 20 e desenvolve conectores e integrações à medida. O Octopia Connector é um módulo de pagamento único por versão e necessita da subscrição do FlexigoTech Cloud: o plano Conector custa 49 €/mês ou 490 €/ano sem IVA.
Se queres ver como atua outro botão do pedido, tens o de Submit to Octopia.
Continue a ler
Verificado no código do conector (versão 20.0) e nas fontes indicadas
Fontes
- Código do módulo: flexigobe_octopia_connector 20.0 (4848da6a): models/octopia_order_actions.py
- Código do módulo: flexigobe_octopia_connector 20.0 (4848da6a): views/octopia_completeness2_views.xml
- flexigotech.com/en/services.html
- flexigotech.com/precios.html
