Quando aparece a mensagem
A mensagem Could not determine Temu regionId for this order. aparece ao clicar no botão Send Temu Tracking da vista da transferência. Esse botão só é visível quando a transferência é de uma encomenda da Temu e está no estado Concluído; a condição da vista é a mesma no Odoo 17, 18 e 19. Quando a mensagem surge, a ação para.

O módulo lança a mensagem ao procurar a transportadora da Temu para a encomenda, quando não consegue obter uma região. A condição do código é exatamente essa: a região está vazia.

O que faz o módulo antes de a lançar
A ordem que o código do Odoo 19 segue ao clicar no botão é esta:
- Descobre a transportadora do Odoo: a da própria transferência ou, se não tiver, a da ordem de vendas.
- Procura na instância da Temu uma correspondência de transportadora ativa para essa transportadora. Se não houver uma específica mas existir apenas uma correspondência ativa, usa essa. O mesmo acontece se não houver transportadora: a correspondência ativa só serve se for única.
- Se essa correspondência já traz um identificador numérico da transportadora da Temu, o módulo usa-o e termina aí. Nem chega a olhar para a região, pelo que por este caminho a mensagem não pode aparecer.
- Se não, procura a região da encomenda. Aqui está a condição: se não a encontrar, lança a mensagem.
- Se a encontrar, consulta a Temu sobre as empresas de logística dessa região e continua a escolher a transportadora a partir da resposta.
Onde procura a região
Quando o módulo chega ao passo quatro, procura a região da encomenda em dois sítios, por esta ordem.
- Primeiro, nos dados da encomenda tal como chegaram da Temu: os da própria encomenda, os da encomenda principal e os de envio (incluindo os de envio decifrados). Procura uma chave
regionIdouregion_id, no primeiro nível ou dentro de um bloco aninhado, e dá-a por boa se o seu valor se puder converter num número inteiro. - Se aí não houver nada utilizável, olha para o número de encomenda da Temu (e, se estiver vazio, para o identificador de encomenda da Temu). Toma o que houver antes do primeiro hífen, ou o número inteiro se não tiver hífen, e se forem só algarismos, essa é a região.
Se nenhum dos dois sítios der uma região, aparece a mensagem, antes de o módulo consultar a Temu sobre as empresas de logística.
Um caso para o ver
Exemplo Caso ilustrativo: a empresa e os seus dados são inventados para explicar o fluxo.
Imagina uma loja inventada, Casa Norte, que vende utensílios domésticos na Temu e gere os envios a partir do Odoo. Um operador valida a entrega de uma encomenda da Temu. A transferência passa a Concluído, aparece o botão Send Temu Tracking e ele clica. Surge Could not determine Temu regionId for this order. e a ação para.
O que aconteceu, passo a passo segundo o código:
- A transferência tem uma transportadora do Odoo, mas a correspondência ativa que lhe corresponde não traz um identificador da Temu. O módulo não consegue resolver o assunto no passo três.
- Passa a procurar a região. Nos dados da encomenda não há uma chave
regionIdnemregion_idcom um valor que seja número inteiro, e o que há antes do primeiro hífen do número de encomenda da Temu (ou o número inteiro, se não tiver hífen) não são só algarismos. - Sem região, o módulo lança a mensagem e não consulta mais nada à Temu.
A causa, portanto, não está no botão nem no estado da transferência: está no facto de a encomenda importada não oferecer nenhuma região ao módulo.
O que aprender com o caso
A mensagem fala da região, não da transportadora
Aparece antes de o módulo comparar transportadoras. Pode acontecer que a transportadora do Odoo esteja perfeitamente escolhida e, mesmo assim, a mensagem apareça, porque o que falta é a região.
Um identificador já definido evita a mensagem
Se a correspondência de transportadora ativa para essa transportadora já traz o seu identificador numérico da Temu, o módulo devolve-o no passo três e não verifica a região. É o único caminho que o código mostra para não depender da região.
O que o módulo precisa da encomenda
Para obter uma região, a encomenda tem de trazer nos seus dados uma região numérica, ou um número de encomenda da Temu cujo troço antes do primeiro hífen (ou o número inteiro, se não tiver hífen) sejam só algarismos. Se nenhuma das duas coisas se verificar, o módulo não tem de onde a tirar.
Versões
A ordem de verificações que leste é a do código do Odoo 19. A mensagem está publicada no código do Odoo 17, 18 e 19, e o botão tem a mesma condição de vista nas três.
Como se vê o botão com o Odoo em português de Portugal
Com o Odoo em português de Portugal, o botão aparece como Send Temu Tracking (o módulo não o traduz) e o estado em que aparece é Concluído. É o texto que deves procurar na transferência.

Como ajuda a FlexigoTech
A FlexigoTech implementa Odoo 17, 18, 19 e 20 e desenvolve conectores e integrações à medida. Se trabalhas com o Temu Connector for Odoo e as tuas encomendas não oferecem região ou precisas de ajustar a forma como as transportadoras são escolhidas, podemos revê-lo contigo.
Continue a ler
Verificado no código do conector (versão 19.0) e nas fontes indicadas
Fontes
- Código do módulo: flexigobe_temu_connector 19.0 (455b3f0f): models/stock_picking.py
- Código do módulo: flexigobe_temu_connector 19.0 (455b3f0f): views/stock_picking_views.xml
- flexigotech.com/en/services.html
