O caso: uma encomenda Mirakl sem encomenda de venda
Exemplo Caso ilustrativo: a empresa e os seus dados são inventados para explicar o fluxo.
A Muebles Ribera é uma loja inventada que vende num marketplace Mirakl e trabalha com Odoo e Mirakl Connector. A responsável pelas encomendas abre Mirakl › Operações › Encomendas e encontra uma encomenda Mirakl com o campo Encomenda de Venda vazio. O conector tinha-a retido: o botão está pensado para encomendas que o vendedor apagou, que já saíram ou que são anteriores à data de início. Ela decide que essa encomenda deve mesmo existir como encomenda de venda no Odoo e clica em Criar encomenda de venda. Abre-se a encomenda de venda, que continua como orçamento, e é ela quem a confirma.


O caminho automático e a caixa que o acompanha
A rotina que o botão usa não é chamada apenas ao clicar. O módulo alarga o botão standard de validar das guias de remessa: quando se cumprem umas verificações próprias do módulo e a guia pertence a uma encomenda de venda que vem do Mirakl, a validação chama essa mesma rotina, mas sem a ordem de ignorar a verificação de retenção. Se essa chamada falhar, o módulo regista um aviso no registo e continua com o resto da sua rotina de contactos de entrega.
A caixa que decide esse caminho é Confirmar Venda Automaticamente (Auto Confirm Sale), na ficha de Instâncias Mirakl (Mirakl Instances), separador Encomendas e Devoluções (Orders and Returns), grupo Política de Sincronização (Sync Policy). Vem desativada por defeito e a sua ajuda diz: Confirmar automaticamente as encomendas de venda importadas após a sincronização.
O botão fica como exceção, para a encomenda que o conector reteve. Essa encomenda de venda fica como orçamento e é o vendedor que a confirma.
Quando aparece o botão
Na ficha de Encomendas Mirakl (Mirakl Orders) o botão Criar encomenda de venda fica oculto em dois casos: quando o campo Encomenda de Venda já tem valor ou quando o campo Estado (State) indica que a encomenda está cancelada. Com os valores por defeito, vê-se. O botão existe nas quatro versões publicadas, Odoo 17, 18, 19 e 20.
Encomenda de Venda também aparece na lista de Encomendas Mirakl, apenas em leitura. Não o preenches tu: é escrito pela rotina de criar ou atualizar, a que se chega a partir deste botão e da validação da guia de remessa descrita acima.
O módulo inclui traduções do botão. Assim se chama consoante o idioma do teu Odoo:
| Idioma do Odoo | Texto do botão |
|---|---|
| Espanhol | Criar encomenda de venda |
| Alemão | Verkaufsauftrag erstellen |
| Francês | Créer la commande de vente |
| Italiano | Crea ordine di vendita |
| Português | Criar encomenda de venda |

Passo a passo: o que faz ao clicar no Odoo 20
- Entras na ficha da encomenda Mirakl a partir de
Mirakl › Operações › Encomendas. O botão vê-se se a encomenda não tiver encomenda de venda e não estiver cancelada. - Clicas em
Criar encomenda de venda. Se a encomenda já tivesse encomenda de venda, o botão ignora-a sem tocar em nada. - Se não a tiver, retira a marca de retenção da encomenda e deixa registado que a encomenda de venda foi criada manualmente.
- Chama a rotina de criar ou atualizar com a ordem de ignorar a verificação de retenção. Essa verificação, quando não é ignorada, pode travar a criação e registar o motivo na encomenda.
- A rotina procura primeiro uma encomenda de venda com o mesmo identificador de encomenda Mirakl na mesma instância. Se a encontrar, reutiliza-a e escreve-lhe os dados em vez de criar outra.
- Se não a encontrar, prepara as linhas e os dados de cabeçalho da nova encomenda de venda, que fica como orçamento.
- No fim, abre a ficha da encomenda de venda.
A retenção existe por uma razão que o próprio módulo conta num comentário: antes, ao sincronizar de novo recriava-se uma encomenda de venda que o vendedor tinha apagado, e a primeira importação transformava em novas entregas encomendas já enviadas manualmente, de modo que a mercadoria saía duas vezes. Clicar no botão é ignorar essa proteção para essa encomenda, pelo que convém verificar antes se a encomenda já saiu.
Que dados prepara o código para a encomenda de venda
Entre outros, estes:
- o cliente e o contacto de entrega (uma encomenda de venda já confirmada mantém o seu cliente e, se o endereço do comprador não mudar, o seu contacto de entrega), e como endereço de faturação o próprio cliente;
- a empresa da instância e a moeda da encomenda Mirakl;
- como referência do cliente, o nome da encomenda Mirakl;
- a instância, o identificador da encomenda Mirakl, o seu estado e o momento da última sincronização;
- a etiqueta do método de envio que o comprador escolheu;
- o telefone e a pessoa de contacto do comprador, quando a encomenda de venda tem esses campos;
- a data da encomenda, se a encomenda Mirakl a tiver, e a equipa de vendas e o armazém da instância, se estiverem configurados.
Quando ainda não existe encomenda de venda, o código prepara também as linhas da encomenda.
Se algo não correr como esperas
- Não vês o botão: verifica o campo
Encomenda de Venda(se tiver valor, já há uma associada) e o campoEstado(se a encomenda estiver cancelada, fica oculto). - Clicas e não se abre nenhuma ficha: a encomenda de venda só se abre se a encomenda Mirakl a tiver associada após a chamada. Verifica o campo
Encomenda de Venda. - Falha ao validar uma guia de remessa: nesse caminho o erro da rotina é capturado e registado como aviso no registo.
Se tiveres dúvidas sobre se a instância está bem ligada, revê antes o que faz o botão Test Connection.
Como a FlexigoTech te ajuda
A FlexigoTech implementa Odoo 17, 18, 19 e 20 e desenvolve conectores e integrações à medida. O Mirakl Connector está publicado no Odoo Apps para essas quatro versões: tens a sua ficha e a página do módulo.
Continue a ler
Verificado no código do conector (versão 20.0) e nas fontes indicadas
Fontes
- Código do módulo: flexigobe_mirakl_connector 20.0 (aa05e537): views/mirakl_order_views.xml
- Código do módulo: flexigobe_mirakl_connector 20.0 (aa05e537): models/mirakl_order.py
- Código do módulo: flexigobe_mirakl_connector 20.0 (aa05e537): models/stock_picking.py
- Código do módulo: flexigobe_mirakl_connector 20.0 (aa05e537): models/mirakl_instance.py
- apps.odoo.com/apps/modules/20.0/flexigobe_mirakl_connector
- flexigotech.com/en/services.html
