Saltar para o conteúdo principal
Temu

O que faz o botão Execute do Temu Connector for Odoo, passo a passo

O botão Execute da ficha Fulfillment lança contra o Temu a operação que a ficha tem associada: verifica se existe instância, prepara o pedido, envia-o e escreve Done se tudo correr bem. Se faltar algo, pára com uma mensagem antes de escrever qualquer estado. Seguimo-lo com um caso ilustrativo.

FlexigoTech · Responsável: Víctor Gómez · Atualizado em 5 de novembro de 2026

O essencial

Módulo
Temu
Versões
Odoo 17, 18, 19 e 20
Verificado
no código do conector, versão 19.0 · nas fontes indicadas no fim
Leitura
7 min

Onde está o botão e quando se vê

As fichas de envio abrem-se a partir do menu Temu › Orders & Fulfillment › Fulfillment. Nesse ecrã está o botão Execute, que aparece sempre na ficha, sem condição na vista, e existe no Odoo 17, 18 e 19. O que se segue sobre o seu funcionamento corresponde ao código publicado para o Odoo 19.

O botão lança a operação que a ficha tem associada através da instância do Temu que lhe esteja atribuída. Primeiro verifica se existe instância e se o pedido pode ser construído; depois escreve estados e guarda o que o Temu responde.

Esquema feito com código do percurso do botão: o menu Fulfillment, o botão Execute com duas das mensagens que o podem travar e o estado Done
Esquema feito com código a partir do código publicado do módulo (não é uma captura do Odoo), com os rótulos em inglês do código.
Esquema feito com código que mostra o texto Execute tal como o vê o utilizador com o Odoo em português de Portugal: Execute
Esquema feito com código a partir das traduções publicadas do módulo (não é uma captura do Odoo): o módulo não traz tradução para este idioma, pelo que o botão se chama Execute.
Temu orders in Odoo every 15 minutes. Stock out every 5
Vídeo: Temu orders in Odoo every 15 minutes. Stock out every 5 (vídeo em inglês)

O que acontece sem carregar em nada

Parte do trabalho deste botão também acontece sem o carregar. O módulo amplia a gravação de uma ficha de guia e o botão padrão de validar da guia, e a partir daí pode reconciliar um envio que o Temu já dava como enviado. Fá-lo apenas se se cumprir tudo o seguinte:

  • Existe ficha de envio, encomenda do Temu e referência de seguimento.
  • O último erro da ficha de envio indica que a encomenda já foi enviada: tem o código 120012004, ou um texto do Temu que diz que a encomenda já foi enviada e que a alteração não é efetiva para uma encomenda enviada.
  • A encomenda tem número de encomenda pai do Temu (ou o identificador da encomenda do Temu) e número de ordem.

Então consulta o Temu sobre o estado do envio próprio. Se a resposta contiver o número de seguimento, a ficha passa a Done, o último erro é limpo, aplica-se o mesmo resumo do resultado que o botão usa, a guia fica marcada como sincronizada e deixa-se uma nota nela. Se a consulta falhar ou o seguimento não aparecer, nada muda.

Para lançar a operação à mão a partir da ficha, resta o botão Execute.

O caso: a Hogar Norte lança uma operação

Exemplo Caso ilustrativo: a empresa e os seus dados são inventados para explicar o fluxo.

A Hogar Norte é uma loja inventada que vende no Temu e gere os seus envios a partir do Odoo. Uma pessoa da equipa abre Temu › Orders & Fulfillment › Fulfillment e entra numa ficha nova. Vejamos o que acontece em cada tentativa.

Primeira tentativa: sem instância

Carrega em Execute com o campo Instance vazio (vê-se na ficha e na lista de Fulfillment). O método verifica-o logo à partida e pára com Temu instance is required.. Não escreveu nenhum estado nem guardou qualquer pedido: a ficha fica como estava.

Segunda tentativa: falta um dado

A ficha leva uma consulta de empresas de logística. Com a instância preenchida, o módulo tenta construir o pedido e pára com regionId is required for logistics companies query.. Continua sem se ter escrito nada. A mensagem diz que dado falta: completa-o e carrega de novo.

Terceira tentativa: corre bem

Agora o método segue esta ordem:

  1. Constrói o pedido com os dados da ficha. Se o campo Request Override Json (separador Payload Override) estiver preenchido e for um objeto, usa esse conteúdo tal qual como pedido.
  2. Escreve o estado Running, guarda o pedido construído e a hora do pedido, e limpa o último erro.
  3. Chama a instância do Temu com a operação que corresponde à ficha.
  4. Se o Temu responder bem, prepara um resumo do resultado: se a resposta traz números de pacote, guarda-os ordenados e sem repetições, e se a ficha não tinha número de pacote, fica com o primeiro; se traz avisos, guarda-os um por linha; se traz uma reserva de recolha, guarda o seu número.
  5. Escreve de uma só vez Done, a resposta, o resultado, esse resumo e a hora de conclusão, e deixa o último erro vazio.

O resumo calcula-se antes de escrever Done. Se o resumo falhar, Done não chega a ser escrito: o método trata-o como qualquer outro erro.

Quando algo falha depois de Running

Se a operação ou o resumo falharem depois de escrito Running, o código escreve Failed com a hora de conclusão e o texto do erro, e volta a lançar o erro, que é o aviso que a pessoa vê ao carregar. Verifica o estado na ficha em vez de dar por certo qual ficou.

Mensagens que podem travar o botão

Ao carregar em Execute, estas mensagens surgem quando o módulo prepara o pedido, antes de escrever Running. São algumas das que pode dar:

  • Temu instance is required.: a ficha não tem instância.
  • Request Override JSON must be an object/dict payload.: o conteúdo do campo Request Override Json da ficha não é um objeto.
  • Provide orderSnList or payload lines for shipping services query.: na consulta de serviços de envio, não há nem lista de encomendas nem linhas.
  • regionId is required for ship logistics type query.: falta esse dado na consulta de tipos de logística de envio.
  • regionId is required for logistics companies query.: falta esse dado na consulta de empresas de logística.
  • packageSnList is required for buy shipping result query.: falta a lista de pacotes na consulta do resultado do envio comprado.
  • packageSnList is required for shipping document query.: falta a lista de pacotes na consulta de documentos de envio.
  • parentOrderSn and orderSn are required for self shipment status query.: faltam esses dados na consulta de estado do envio próprio.
  • mainPackageSn (package_sn) is required for shipment sub confirm.: falta o pacote principal ao confirmar subpacotes.
  • At least one sub package request is required.: falta pelo menos um pedido de subpacote.
  • pickupStartTime and pickupEndTime are required for pickup reservation creation.: faltam as horas da reserva de recolha.
  • packageSnList is required for pickup reservation creation.: falta a lista de pacotes ao criar a reserva de recolha.
  • packageSnList is required for pickup reservation result query.: falta a lista de pacotes ao consultar o resultado da reserva.
  • reservationSn is required for pickup reservation cancellation.: falta o número de reserva ao cancelá-la.
  • packageSn is required for tracking info query.: falta o pacote na consulta de seguimento.
  • Set Request Override JSON for cooperative warehouse operation '…'.: em operações de armazém cooperativo, a mensagem pede que se preencha o campo Request Override Json.

O que aprender com o caso

  • A ordem é fixa: primeiro a instância, depois o pedido, a seguir os estados.
  • As mensagens acima param a ação antes de escrever o que quer que seja: resolvem-se completando o que pedem.
  • Done escreve-se de uma só vez, juntamente com a resposta, o resultado e o resumo; se o resumo falhar, a ficha passa a Failed.
  • O resumo do resultado é o mesmo que usa a reconciliação automática da guia.
  • Um erro posterior a Running é relançado e deixa a ficha em Failed; depois de carregar, verifica o estado.

Como ajuda a FlexigoTech

O Temu Connector for Odoo é de pagamento único por versão e precisa da subscrição do FlexigoTech Cloud (plano Conector: 49 €/mês ou 490 €/ano, sem IVA). Está publicado para o Odoo 17, 18, 19 e 20. A ligação passa pelo FlexigoTech Cloud, que guarda as credenciais cifradas e avisa por e-mail se a sincronização falhar. Podes ver o módulo na sua página ou na ficha do Odoo Apps.

Se estás a implementar o Odoo e precisas de montar a logística com o Temu ou uma integração à medida, a FlexigoTech implementa o Odoo 17, 18, 19 e 20 e desenvolve conectores e integrações.

Continue a ler

«Parent After-sales SN is required.» no Temu Connector for Odoo: causa e soluçãoQuando surge «Parent After-sales SN is required.» no Temu Connector for Odoo, que condição do código o provoca e como o resolver passo a passo.
Verificado no código do conector (versão 19.0) e nas fontes indicadas

Fontes