O caso: a Marta carrega em Aceitar Encomenda e o Odoo pára
Exemplo Caso ilustrativo: a empresa e os seus dados são inventados para explicar o fluxo.
A Distribuciones Norte, uma empresa inventada para este exemplo, já tem o Mirakl Connector instalado. A Marta trabalha lá com um utilizador interno do Odoo. Abre Mirakl › Operações › Encomendas, entra numa encomenda, carrega em Aceitar Encomenda (Accept Order) e recebe este aviso: Só um Mirakl Manager pode aceitar, cancelar ou reembolsar uma encomenda do marketplace. Estas ações alteram a encomenda no marketplace e movimentam dinheiro real.
A Marta pensa que algo falhou na encomenda ou na ligação. Mas o aviso não fala de nenhuma das duas coisas: fala de quem carregou no botão.


Quando surge exatamente
O módulo verifica, no servidor, se o utilizador que carregou pertence ao grupo Mirakl Manager. Se não pertence, lança o aviso e a ação pára: surge o aviso em vez de seguir em frente. Se pertence, a verificação dá-se por boa e a ação segue o seu curso.
O aviso está no código publicado das quatro versões do Odoo que o módulo cobre: 17, 18, 19 e 20.
O próprio código explica porque é que a verificação se faz no servidor. Os botões que alteram algo no marketplace (aceitar, cancelar, reembolsar) são limitados nas vistas por grupos, mas um atributo de vista não é uma barreira de segurança: qualquer utilizador interno poderia chamar o método por RPC, e a permissão de acesso dá escrita sobre as encomendas do Mirakl aos utilizadores internos. Por isso o grupo volta a ser exigido no servidor.
Botões com que pode surgir o aviso
Estes são dois botões da ficha da encomenda que chegam à verificação do grupo:
| Botão | Quando se vê | O que acontece se não for Mirakl Manager |
|---|---|---|
Aceitar Encomenda | Fica oculto se Estado de Aceitação (Acceptance State) indicar que a encomenda já está aceite ou se a encomenda não requer aceitação (campo Requer Aceitação, Requires Acceptance) | Surge o aviso e a ação pára |
Cancelar no Mirakl (Cancel in Mirakl) | Fica oculto quando Estado (State) é o de cancelado; com os valores por defeito (encomenda pendente) vê-se | Surge o aviso e a ação pára |
Ver o botão não quer dizer que a ação vá continuar: a verificação do grupo faz-se quando carrega nele. Se não vir um dos botões, pode dever-se às condições da tabela.
Como se resolve, passo a passo
- Confirme que o aviso é este, com o texto inteiro:
Só um Mirakl Manager pode aceitar, cancelar ou reembolsar uma encomenda do marketplace. Estas ações alteram a encomenda no marketplace e movimentam dinheiro real. - Decida se essa ação lhe compete a si. Segundo o próprio aviso, aceitar, cancelar ou reembolsar altera a encomenda no marketplace e movimenta dinheiro real.
- Se não lhe compete, peça a alguém do grupo
Mirakl Managerque abra a mesma encomenda e carregue no botão. - Se lhe compete, peça a quem administra os utilizadores do seu Odoo que o adicione ao grupo
Mirakl Manager. - Volte à encomenda, carregue de novo no botão e confirme que o aviso já não surge.

Dúvidas de quem vê o aviso
É uma falha da ligação com o Mirakl?
O aviso fala do grupo do utilizador: é lançado quando o utilizador que carrega não pertence a Mirakl Manager. Não menciona a ligação nem dados da encomenda.
O que acontece quando surge?
A ação pára: surge o aviso em vez de seguir em frente. Pode surgir, por exemplo, ao carregar em Aceitar Encomenda ou Cancelar no Mirakl.
Basta o botão estar oculto na vista para proteger a ação?
Segundo explica o código, não: um atributo de vista não é uma barreira de segurança, e por isso o grupo também é exigido no servidor.
Acontece também no Odoo 17, 18 ou 19?
O aviso está no código publicado de 17, 18, 19 e 20.
O que aprender com o caso
- O aviso trata de permissões, não de dados: antes de rever a encomenda, veja a que grupo pertence quem carrega.
- Pertencer a
Mirakl Manageré o que conta. Ser utilizador interno do Odoo, como a Marta, não basta. - Decida com critério quem entra no grupo: as ações que protege alteram a encomenda no marketplace e movimentam dinheiro real.
- Que um botão se veja depende das condições da vista; que a ação siga em frente depende do grupo do utilizador, que se verifica no servidor ao carregar.
Como a FlexigoTech o ajuda
A FlexigoTech implementa Odoo 17, 18, 19 e 20 e desenvolve conectores e integrações à medida; se está a distribuir permissões pela equipa que gere encomendas de marketplace, podemos revê-lo consigo. O Mirakl Connector está publicado no Odoo Apps para 17, 18, 19 e 20, e precisa da subscrição da FlexigoTech Cloud (plano Conector: 49 €/mês ou 490 €/ano, sem IVA). Tem a ficha no Odoo Apps e a página do módulo.
Sem a subscrição, ou com o serviço suspenso, pára o que a subscrição dá; os dados ficam no seu Odoo.
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): models/mirakl_order.py
- Código do módulo: flexigobe_mirakl_connector 20.0 (aa05e537): views/mirakl_order_views.xml
- apps.odoo.com/apps/modules/20.0/flexigobe_mirakl_connector
- flexigotech.com/en/services.html
- flexigotech.com/precios.html
