A mensagem e o botão que a provoca
A mensagem Não foi possível construir orderItems para confirmShipment (encomenda …). (Could not build orderItems for confirmShipment (order …).) surge ao premir o botão Enviar tracking Amazon, na ficha da transferência (guia de remessa). Esse botão só se vê quando a transferência está no estado Concluído (Done) e pertence a uma encomenda da Amazon (o módulo assinala-o com um campo, Encomenda Amazon (Amazon Order), que não aparece em nenhuma vista). As reticências da mensagem são substituídas pelo identificador da encomenda na Amazon.
É um erro que interrompe a ação. O que a mensagem lhe diz é que o módulo não conseguiu montar a lista de linhas (orderItems) que o confirmShipment leva.

Como a vê consoante o idioma do Odoo
O módulo traz a mensagem traduzida. Com o Odoo em português de Portugal vê-a como Não foi possível construir orderItems para confirmShipment (encomenda …).; o esquema seguinte mostra também como fica em castelhano, alemão, francês e italiano.


Quando surge exatamente
O código do Odoo 20.0 lança a mensagem num ponto muito concreto: precisamente quando a lista de linhas a confirmar fica vazia. A mensagem existe também no código publicado do Odoo 17, 18 e 19. Isto é o que o módulo faz, por ordem, até chegar aí:
- Calcula, a partir da transferência, que quantidade se concluiu de cada SKU e a quantidade total concluída. Prefere as quantidades das linhas de venda, pelo que, com um kit, conta o SKU comercial e não o dos componentes.
- Pede à Amazon as linhas da encomenda.
- Se o Odoo tem quantidades concluídas por SKU, percorre as linhas da Amazon e regista as que consegue emparelhar. Esta mensagem só surge por este caminho.
- Se não registou nenhuma, tenta um recurso pensado para encomendas de uma única linha.
- Se mesmo assim não sai nenhuma linha, lança a mensagem.
Uma linha da Amazon é ignorada quando não traz identificador de linha, quando o seu SKU está vazio, ou quando o seu SKU não coincide com nenhum SKU entregue no Odoo que ainda tenha quantidade por atribuir. Basta que uma única linha coincida para que esta mensagem não surja.
O recurso de uma única linha só funciona se a Amazon devolver exatamente uma linha com identificador e, no que foi entregue no Odoo, houver um só SKU com quantidade. Com várias linhas na Amazon, ou com vários SKU entregues, não se aplica.
Como o módulo compara os SKU
Antes de comparar, o módulo normaliza o SKU dos dois lados: passa para maiúsculas, remove espaços das extremidades, converte os hífenes especiais num hífen normal e elimina tudo o que não seja uma letra de A a Z (sem acentos nem ñ) ou um algarismo. Por isso taza-azul, TAZA AZUL e Taza–Azul dão a mesma chave. Tenha em conta que uma letra com acento ou um ñ é eliminada da chave em vez de se conservar. Se dois SKU continuam diferentes após essa limpeza, é porque diferem realmente em letras ou algarismos.
No cálculo por linhas de venda, o SKU do Odoo vem do artigo da linha. Se esse artigo não tem SKU, não contribui com nenhuma quantidade para o emparelhamento.
Um caso ilustrativo
Exemplo Caso ilustrativo: a empresa e os seus dados são inventados para explicar o fluxo.
A Casa Ficticia, uma loja inventada, vende cerâmica e velas na Amazon. Um cliente compra uma caneca e uma vela na mesma encomenda, pelo que a Amazon devolve duas linhas, cada uma com o seu identificador. No Odoo, os artigos têm os SKU TAZAAZUL e VELA; na Amazon, o vendedor publicou as ofertas como TAZA-AZUL-GRANDE e VELA-LAVANDA.
A transferência é validada e passa a Concluído. Ao premir Enviar tracking Amazon, o módulo normaliza os SKU: da Amazon saem TAZAAZULGRANDE e VELALAVANDA; do Odoo, TAZAAZUL e VELA. Nenhum coincide, pelo que não regista nenhuma linha. O recurso de uma única linha também não serve, porque a Amazon devolveu duas linhas com identificador. Resultado: Não foi possível construir orderItems para confirmShipment (encomenda …).
A Casa Ficticia iguala os SKU, de modo que o de cada artigo no Odoo e o da sua linha na Amazon digam o mesmo, e volta a premir o botão. Com os SKU iguais, cada linha da Amazon pode emparelhar com o seu SKU entregue e a lista já não fica vazia.
O que se aprende com o caso: o erro não fala da transferência em si, mas de que os SKU dos dois lados não se reconhecem. Um hífen ou uma maiúscula não o provocam; umas letras a mais, sim.
O que fazer, passo a passo
- Anote o identificador da encomenda da Amazon que surge na mensagem e abra a transferência correspondente.
- Veja que artigos entregou nela e que SKU tem cada um no Odoo. Confirme que nenhum está sem SKU.
- Compare cada SKU com o da linha da encomenda na Amazon. Ignore maiúsculas, espaços, hífenes e sinais: procure letras ou algarismos diferentes.
- Corrija o SKU no lado que estiver errado, para que coincidam.
- Volte a premir
Enviar tracking Amazon.
Perguntas sobre esta mensagem
Surge em todas as versões?
A mensagem está no código publicado do Odoo 17, 18, 19 e 20. A descrição acima, ordem dos passos incluída, corresponde ao código do Odoo 20.0.
E se a encomenda tem várias linhas e só uma coincide?
Então esta mensagem não surge: basta uma linha emparelhada para que a lista não fique vazia. Se depois aparecer uma mensagem diferente, trata-se de outra verificação do módulo.
Porque não ajuda o recurso de uma única linha?
Porque exige que a Amazon devolva exatamente uma linha com identificador e que o que foi entregue no Odoo tenha um só SKU com quantidade. Se a encomenda tem várias linhas ou foram entregues vários SKU, esse recurso devolve uma lista vazia.
O que acontece com os kits?
O módulo prefere contar pelas linhas de venda, pelo que conta o SKU comercial vendido e não os dos componentes. O SKU que deve coincidir com a Amazon é o do artigo vendido.
Como a FlexigoTech o ajuda
Se vende na Amazon e trabalha com o Odoo, podemos rever consigo como estão registados os SKU antes de enviar o tracking. A FlexigoTech implementa o Odoo 17, 18, 19 e 20 e desenvolve conectores e integrações por medida. Pode ver o conector na sua página em flexigotech.com ou na ficha do 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_amazon_seller_connector 20.0 (8576afa5): models/stock_picking.py
- Código do módulo: flexigobe_amazon_seller_connector 20.0 (8576afa5): views/stock_picking_views.xml
- apps.odoo.com/apps/modules/20.0/flexigobe_amazon_seller_connector
- flexigotech.com/en/services.html
