O que vês e quando aparece
Ao premir Declarar à Octopia no assistente onde está esse botão, o Odoo pode mostrar As encomendas Fulfillment expedem-se sozinhas -- a declaração seria recusada (409) pela Octopia. É um erro: a ação pára e não se guarda nada do que o botão ia alterar.
O botão aparece sempre nesse assistente, no Odoo 17, 18, 19 e 20, e a mensagem está no código publicado das quatro versões. Chega-se a ela ao premir esse botão.


A condição exata no código
No código do Odoo 20, o aviso surge quando se cumprem em simultâneo duas coisas sobre a encomenda da Octopia que se está a declarar:
- a encomenda tem um modo de fornecimento indicado (não está vazio);
- esse modo de fornecimento não é o de vendedor.
Lido ao contrário: se o modo de fornecimento está vazio, o aviso não surge; se está indicado e é o de vendedor, também não. Só com um modo indicado e diferente do de vendedor é que a ação pára.
O que se verifica antes e o que se verifica depois
A ordem importa. Segundo o código do Odoo 20, o assistente exige primeiro que exista pelo menos um volume. A verificação do modo de fornecimento vem logo a seguir a essa exigência e antes de rever os volumes um a um, de criar o registo do envio e de chamar a Octopia.
Por isso, assim que há algum volume no assistente, tanto faz como estão preenchidos os seus dados: o aviso depende da encomenda, não do que escreves no assistente.
O que significa
A mensagem diz duas coisas: que as encomendas Fulfillment se expedem sozinhas e que declarar uma seria recusado pela Octopia com um 409. O módulo não espera por essa recusa: antecipa-se e corta a ação antes de enviar seja o que for. Para essa encomenda não há declaração de envio a fazer a partir deste botão.

Um caso ilustrativo: duas encomendas, dois resultados
Exemplo Caso ilustrativo: a empresa e os seus dados são inventados para explicar o fluxo.
A Tienda Aurora é uma empresa inventada que vende no marketplace da Cdiscount e gere as suas encomendas da Octopia a partir do Odoo. A Beatriz, da logística, tem à frente duas encomendas que já preparou.
Com a primeira abre o assistente, adiciona o volume, preenche os respetivos dados e prime Declarar à Octopia. A encomenda não tem modo de fornecimento indicado, ou tem-no e é o de vendedor, pelo que a verificação passa e o assistente segue o seu caminho.
Com a segunda faz exatamente o mesmo, mas o Odoo responde com As encomendas Fulfillment expedem-se sozinhas -- a declaração seria recusada (409) pela Octopia. Essa encomenda tem um modo de fornecimento indicado e diferente do de vendedor. A Beatriz tenta mudar de volume e escrever outra transportadora, e o resultado é o mesmo, porque a verificação é feita antes de olhar para nada disso.
O que aprender com o caso:
- Com algum volume no assistente, o aviso fala da encomenda, não do volume.
- Nessa tentativa não se criou nenhum registo de envio nem se chamou a Octopia.
- A Beatriz não tem nada a corrigir nos dados do volume: essa encomenda não se declara a partir dali.
O que acontece quando a verificação passa
Para perceber o contraste, é isto que o assistente faz com uma encomenda que não dispara o aviso, segundo o código do Odoo 20, por ordem:
- Exige pelo menos um volume e, depois, verifica o modo de fornecimento da encomenda.
- Revê cada volume (número de volume e transportadora) e monta a lista que será enviada.
- Cria o registo do envio com esses volumes.
- Chama o cliente da Octopia com a encomenda e a lista de volumes.
- Se a Octopia devolver um erro, o registo do envio fica marcado como erro, com o texto do erro e o seu detalhe, e o erro é lançado de novo para que o vejas.
- Se tudo correr bem, o registo passa a enviado com a data e hora, a encomenda passa a enviada, é anotada uma entrada de sucesso no registo de sincronização de envios e o assistente fecha-se.
Com o aviso de Fulfillment não ocorre nenhum dos passos posteriores à verificação.
O que fazer quando surge
- Fecha o assistente: a partir deste botão essa encomenda não se declara.
- Não percas tempo com o número de volume, a transportadora ou o seguimento: a verificação vem antes e não os analisa.
- Se esperavas poder declará-la tu, o dado que decide é o modo de fornecimento da encomenda. O módulo lê-o da própria encomenda e não te deixa continuar se estiver indicado e não for o de vendedor.
Perguntas concretas sobre o aviso
Guarda-se alguma coisa quando surge?
Não. É um erro que pára a ação: não se cria o registo do envio, não se chama a Octopia e a encomenda não muda de estado.
Surge igual em todas as versões?
A mensagem está no código publicado do Odoo 17, 18, 19 e 20.
Pode surgir se a encomenda não tiver modo de fornecimento?
Não com o modo vazio: a condição exige que esteja indicado e que seja diferente do de vendedor.
Importa como está preenchido o volume?
Para este aviso, não: a verificação do modo de fornecimento vem antes de rever os dados de cada volume. No código do Odoo 20, a única coisa que se exige antes é que haja pelo menos um volume no assistente.
Como ajuda a FlexigoTech
A FlexigoTech implementa o Odoo 17, 18, 19 e 20 e desenvolve conectores e integrações à medida. Se tens encomendas com diferentes modos de fornecimento e queres organizar a forma como são tratadas no Odoo, podemos analisá-lo contigo. O módulo está publicado para as quatro versões na sua ficha da Odoo Apps.
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): wizard/octopia_shipment_wizard.py
- Código do módulo: flexigobe_octopia_connector 20.0 (4848da6a): views/octopia_completeness2_views.xml
- apps.odoo.com/apps/modules/20.0/flexigobe_octopia_connector
- flexigotech.com/en/services.html
