O que diz a mensagem e onde aparece
Com o Odoo em português de Portugal vês Os orderItems da Amazon não podem ser construídos sem um SKU fiável quando a encomenda tem várias linhas ou vários produtos. (Amazon orderItems cannot be built without a reliable SKU when the order has multiple lines or multiple products.).

Aparece ao clicar no botão Enviar tracking Amazon, que está na vista da guia de remessa. O botão só é visível quando a guia de remessa está no estado Concluído (Done) e é uma encomenda da Amazon por SP-API; em qualquer outro caso está oculto. Isto vale para o Odoo 17, 18, 19 e 20, e a mensagem consta do código publicado das quatro versões.

É um erro que interrompe a ação.

O que significa na prática
Para comunicar o envio à Amazon, o módulo tem de indicar que linhas da encomenda da Amazon foram enviadas e em que quantidade. Fá-lo cruzando o SKU do que entregaste na guia de remessa com o SKU das linhas que a Amazon devolve. A mensagem surge quando o módulo não consegue obter da guia de remessa nenhum SKU com quantidade e, além disso, não pode aplicar o seu recurso para encomendas de uma só linha. Ou seja, não se trata de uma falha de ligação, mas de o módulo não ter um SKU em que se apoiar para saber o que enviar.
Quando surge exatamente
Ao clicar no botão, o módulo chega a um método que constrói as linhas (orderItems) que vão ser comunicadas à Amazon. Por ordem, faz isto:
- Calcula a quantidade concluída de cada SKU na guia de remessa e qual é a quantidade total concluída.
- Pede à Amazon as linhas da encomenda.
- Se o cálculo por SKU resultar vazio, tenta um recurso pensado para encomendas de uma só linha.
- Se esse recurso não devolver nada, lança a mensagem.
Portanto, a mensagem surge quando se juntam duas coisas: a guia de remessa não fornece nenhum SKU com quantidade e o recurso de linha única não pode ser aplicado. Se o cálculo devolver algum SKU com quantidade, essa condição não se cumpre e o método segue por outro caminho: cruza cada SKU com as linhas que a Amazon devolveu.
Quando o cálculo por SKU resulta vazio
A via principal parte dos movimentos da guia de remessa que não estão cancelados, que têm produto e que provêm de uma linha de venda. Só contam os que têm quantidade concluída superior a zero e, como SKU, toma-se o código interno do produto dessa linha de venda. Se esse código ficar vazio, essa linha não soma nada.
Antes de comparar, o módulo normaliza o SKU: passa-o para maiúsculas, remove espaços, unifica os hífenes de outros tipos e descarta todo o carácter que não seja uma letra de A a Z ou um algarismo. Por isso, maiúsculas, espaços ou hífenes diferentes não impedem que dois SKU coincidam, mas um código que fique vazio depois desse filtro (por exemplo, um formado só por símbolos) não contribui com nada.
Há ainda outra via, pensada para kits, que parte da encomenda de venda quando esta tem uma só linha comercial com código.
Quando não se pode aplicar o recurso de linha única
Com o cálculo vazio, o módulo olha para as linhas que a Amazon devolveu. O recurso só serve se:
- a Amazon tiver devolvido exatamente uma linha com o seu identificador de linha;
- se cumprir ainda outra verificação interna do módulo sobre a guia de remessa;
- a quantidade total concluída da guia de remessa, arredondada, for superior a zero.
Se tudo se cumprir, o módulo usa essa única linha da Amazon, com uma quantidade que não excede a pedida aí, e deixa um aviso no registo do servidor. Se a Amazon devolver mais de uma linha, ou falhar alguma das outras condições, surge a mensagem. Por isso o texto fala de várias linhas ou vários produtos, mas também pode surgir com uma encomenda de uma só linha se a guia de remessa não tiver quantidade utilizável.
Como resolvê-lo passo a passo
- Confirma que estás neste caso: a guia de remessa está no estado
Concluído(Done), clicaste emEnviar tracking Amazone o texto do erro é o de cima, inteiro. - Revê que produtos foram entregues na guia de remessa e de que linha de venda provêm. A via principal só conta movimentos não cancelados, com produto, ligados a uma linha de venda e com quantidade concluída superior a zero.
- Verifica que cada produto vendido tem um código interno que sirva de SKU e que não fique vazio após a normalização da secção anterior.
- Verifica que esse código coincide com o SKU do vendedor que a Amazon tem na linha da encomenda. Quando a guia de remessa fornece SKU com quantidade, o módulo cruza-os com as linhas da Amazon aplicando a mesma normalização.
- Vê quantas linhas tem a encomenda na Amazon. Com uma só linha, o recurso de linha única pode salvar o envio se as suas condições se cumprirem. Com várias, o SKU da guia de remessa é imprescindível.
- Corrige o que faltar e volta a clicar em
Enviar tracking Amazon.
Como ajuda a FlexigoTech
O módulo está publicado no Odoo Apps para o Odoo 17, 18, 19 e 20, e podes ver a sua página em flexigotech.com. Se a origem do problema estiver na forma como os produtos são codificados ou na forma como se vende na Amazon a partir do teu Odoo, a FlexigoTech implementa o Odoo 17, 18, 19 e 20 e desenvolve conectores e integrações à medida, pelo que podemos rever contigo a codificação de SKU e o fluxo de guias de remessa.
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
