Um caso: um gesto comercial que não se deixa enviar
Exemplo Caso ilustrativo: a empresa e os seus dados são inventados para explicar o fluxo.
Distribuciones Norte, uma empresa inventada para este exemplo, vende na Cdiscount e gere as suas encomendas no Odoo com o Octopia Connector. A Marta, do apoio ao cliente, quer compensar um cliente com um gesto comercial. Abre Octopia › Encomendas › Gestos comerciais (Octopia › Orders › Commercial Gestures). Esse troço Octopia do menu vê-o quem tem a permissão Utilizador Octopia (Octopia User); se não a tiver, não vê esse troço.
Cria a ficha do gesto e prime Submeter à Octopia (Submit to Octopia). O Odoo pede-lhe confirmação com este texto: Um gesto comercial reembolsa este montante ao cliente. Continuar? (A commercial gesture refunds the customer this amount. Continue?). A Marta aceita e a ação é interrompida com este aviso: Os gestos comerciais aplicam-se apenas a encomendas expedidas ou entregues (a encomenda … está …). (Commercial gestures apply to shipped or delivered orders only (order … is …).). Onde estão as reticências, o Odoo escreve o identificador da Octopia da encomenda e o estado em que se encontra.

O problema não está na ficha do gesto, mas no estado da encomenda a que se refere.

Quando surge exatamente
O aviso surge ao premir Submeter à Octopia na ficha do gesto, quando a encomenda cumpre a condição que verá abaixo. O botão vê-se enquanto o campo Estado (State) do gesto tem o seu valor de partida e fica oculto com qualquer outro, no Odoo 17, 18, 19 e 20.
Segundo o código do Odoo 20.0, o módulo percorre os gestos e salta os que não estão nesse estado de partida. Para cada um dos restantes faz estas verificações, por esta ordem:
- Verifica se o montante é superior a zero. Se não for, interrompe com outro aviso diferente.
- Verifica o canal de vendas da encomenda: se a sua configuração foi sincronizada e tem os gestos comerciais desativados, interrompe também com outro aviso.
- Verifica o estado da encomenda: se não for expedida nem entregue, interrompe com o aviso que nos ocupa.
Ou seja, o aviso surge quando o estado da encomenda não é expedida nem entregue, desde que antes tenham passado a verificação do montante e a do canal. E o próprio aviso indica o estado atual da encomenda.
Ao interromper-se, não se guarda nada do que a ação ia alterar:
- o gesto não passa a outro estado;
- não se regista a referência do pedido nem a data de envio;
- não se envia nada à Octopia.
Por isso o botão continua visível na ficha e pode voltar a premi-lo mais tarde.
A mensagem está no código publicado das ramificações 17.0, 18.0, 19.0 e 20.0. A ordem de verificações que acabou de ler é a do código do Odoo 20.0.

Os gestos comerciais aplicam-se apenas a encomendas expedidas ou entregues (a encomenda … está …).Como se resolve
- Leia o aviso: traz o identificador da Octopia da encomenda e o seu estado atual.
- Se esse estado não for expedida nem entregue, o gesto ainda não pode ser enviado. Deixe a ficha como está: não há nada a corrigir nela por causa deste aviso.
- Quando a encomenda estiver expedida ou entregue, volte a abrir o gesto em
Octopia › Encomendas › Gestos comerciais, primaSubmeter à Octopiae confirme. - Verifique o resultado: se o envio correu bem, o gesto fica em curso e o botão desaparece da ficha, porque o gesto já não tem o estado de partida.
Se, em vez deste aviso, surgir um diferente, pode vir de uma das verificações anteriores: o montante do gesto ou os gestos desativados no canal de vendas.
Para o resto do que faz esse botão, tem o passo a passo do botão Submeter à Octopia.
O que acontece quando a encomenda cumpre
Com a encomenda expedida ou entregue, o módulo segue em frente. Pergunta à Octopia o orçamento restante da encomenda. Se a Octopia devolver um orçamento e o montante do gesto o exceder, interrompe com um aviso de montante superior ao orçamento restante. Se não o exceder, ou se a Octopia não disser nada, envia o gesto com o seu motivo, o seu detalhe e o seu montante.
Se a Octopia devolver uma referência do pedido, guarda-a na ficha. Depois regista a data de envio, deixa o gesto em curso e cria um registo de sincronização do tipo gestos com resultado correto.
O que aprender com o caso
- O aviso fala da encomenda, não do gesto: a condição que o provoca é o estado da encomenda.
- Os espaços da mensagem são a pista: o identificador da Octopia da encomenda e o seu estado atual.
- Um aviso deste tipo não deixa o envio a meio: nem altera o estado do gesto nem chega nada à Octopia.
- O botão fica à vista, pelo que a nova tentativa é premi-lo outra vez quando a encomenda estiver expedida ou entregue.
Custo e ajuda da FlexigoTech
O Octopia Connector (Cdiscount & Octopia Marketplaces) é um módulo de pagamento único por versão do Odoo (17, 18, 19 e 20; o preço de cada versão está na sua ficha do Odoo Apps) e requer a subscrição do FlexigoTech Cloud, plano Conector: 49 €/mês ou 490 €/ano sem IVA, com até 3 contas da plataforma.
Se está a implementar o Odoo e quer rever como encaixa o circuito de encomendas e gestos comerciais da Cdiscount na sua empresa, na FlexigoTech implementamos o Odoo 17, 18, 19 e 20 e desenvolvemos conectores e integrações à medida.
Se lhe interessa outro botão do módulo, tem o artigo sobre o botão Importar.
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_order_actions_views.xml
- apps.odoo.com/apps/modules/20.0/flexigobe_octopia_connector
- flexigotech.com/precios.html
- flexigotech.com/en/services.html
