Dónde está el botón y cuándo se ve
Las fichas de envío se abren desde el menú Temu › Orders & Fulfillment › Fulfillment. En esa pantalla está el botón Ejecutar (Execute), que se ve siempre en la ficha, sin condición en la vista, y está en Odoo 17, 18 y 19. Lo que sigue sobre su funcionamiento corresponde al código publicado para Odoo 19.
El botón lanza la operación que lleva la ficha a través de la instancia de Temu que tenga asignada. Primero comprueba que haya instancia y que se pueda construir la petición; después escribe estados y guarda lo que responde Temu.


Ejecutar.
Lo que ocurre sin pulsar nada
Una parte del trabajo de este botón también ocurre sin pulsarlo. El módulo amplía el guardado de una ficha de albarán y el botón estándar de validar del albarán, y desde ahí puede reconciliar un envío que Temu ya daba por enviado. Lo hace solo si se cumple todo lo siguiente:
- Hay ficha de envío, pedido de Temu y referencia de seguimiento.
- El último error de la ficha de envío indica que el pedido ya se envió: lleva el código
120012004, o un texto de Temu que dice que el pedido ya se envió y que el cambio no es efectivo para un pedido enviado. - El pedido tiene número de pedido padre de Temu (o el identificador del pedido de Temu) y número de orden.
Entonces consulta a Temu el estado del envío propio. Si la respuesta contiene el número de seguimiento, la ficha pasa a Done, se vacía el último error, se aplica el mismo resumen del resultado que usa el botón, el albarán queda marcado como sincronizado y se deja una nota en él. Si la consulta falla o el seguimiento no aparece, no cambia nada.
Para lanzar la operación a mano desde la ficha, queda el botón Ejecutar.
El caso: Hogar Norte lanza una operación
Ejemplo Caso ilustrativo: la empresa y sus datos son inventados para explicar el flujo.
Hogar Norte es una tienda inventada que vende en Temu y gestiona sus envíos desde Odoo. Una persona del equipo abre Temu › Orders & Fulfillment › Fulfillment y entra en una ficha nueva. Veamos qué pasa en cada intento.
Primer intento: sin instancia
Pulsa Ejecutar con el campo Instance vacío (se ve en la ficha y en la lista de Fulfillment). El método lo comprueba lo primero y para con Temu instance is required.. No ha escrito ningún estado ni ha guardado petición alguna: la ficha queda como estaba.
Segundo intento: falta un dato
La ficha lleva una consulta de empresas de logística. Con la instancia puesta, el módulo intenta construir la petición y para con regionId is required for logistics companies query.. Sigue sin haberse escrito nada. El mensaje dice qué dato falta: lo completa y vuelve a pulsar.
Tercer intento: sale bien
Ahora el método sigue este orden:
- Construye la petición con los datos de la ficha. Si el campo
Request Override Json(pestañaPayload Override) está informado y es un objeto, usa ese contenido tal cual como petición. - Escribe el estado
Running, guarda la petición construida y la hora de la petición, y vacía el último error. - Llama a la instancia de Temu con la operación que corresponde a la ficha.
- Si Temu responde bien, prepara un resumen del resultado: si la respuesta trae números de paquete, los guarda ordenados y sin repetir, y si la ficha no tenía número de paquete, toma el primero; si trae avisos, los guarda uno por línea; si trae una reserva de recogida, guarda su número.
- Escribe de una vez
Done, la respuesta, el resultado, ese resumen y la hora de finalización, y deja vacío el último error.
El resumen se calcula antes de escribir Done. Si falla el resumen, Done no llega a escribirse: el método lo trata como cualquier otro error.
Cuando algo falla después de Running
Si la operación o el resumen fallan una vez escrito Running, el código escribe Failed con la hora de finalización y el texto del error, y vuelve a lanzar el error, que es el aviso que ve la persona al pulsar. Comprueba el estado en la ficha en lugar de dar por hecho cuál ha quedado.
Mensajes que pueden parar el botón
Al pulsar Ejecutar (Execute), estos mensajes salen cuando el módulo prepara la petición, antes de escribir Running. Son algunos de los que puede dar:
Temu instance is required.: la ficha no tiene instancia.Request Override JSON must be an object/dict payload.: el contenido del campoRequest Override Jsonde la ficha no es un objeto.Provide orderSnList or payload lines for shipping services query.: en la consulta de servicios de envío, no hay ni lista de pedidos ni líneas.regionId is required for ship logistics type query.: falta ese dato en la consulta de tipos de logística de envío.regionId is required for logistics companies query.: falta ese dato en la consulta de empresas de logística.packageSnList is required for buy shipping result query.: falta la lista de paquetes en la consulta del resultado del envío comprado.packageSnList is required for shipping document query.: falta la lista de paquetes en la consulta de documentos de envío.parentOrderSn and orderSn are required for self shipment status query.: faltan esos datos en la consulta de estado del envío propio.mainPackageSn (package_sn) is required for shipment sub confirm.: falta el paquete principal al confirmar subpaquetes.At least one sub package request is required.: falta al menos una petición de subpaquete.pickupStartTime and pickupEndTime are required for pickup reservation creation.: faltan las horas de la reserva de recogida.packageSnList is required for pickup reservation creation.: falta la lista de paquetes al crear la reserva de recogida.packageSnList is required for pickup reservation result query.: falta la lista de paquetes al consultar el resultado de la reserva.reservationSn is required for pickup reservation cancellation.: falta el número de reserva al cancelarla.packageSn is required for tracking info query.: falta el paquete en la consulta de seguimiento.Set Request Override JSON for cooperative warehouse operation '…'.: en operaciones de almacén cooperativo, el mensaje pide informar el campoRequest Override Json.
Qué aprender del caso
- El orden es fijo: primero la instancia, luego la petición, después los estados.
- Los mensajes de arriba paran la acción antes de escribir nada: se arreglan completando lo que piden.
Donese escribe de una sola vez junto con la respuesta, el resultado y el resumen; si el resumen falla, la ficha pasa aFailed.- El resumen del resultado es el mismo que usa la reconciliación automática del albarán.
- Un error posterior a
Runningse relanza y deja la ficha enFailed; tras pulsar, revisa el estado.
Cómo ayuda FlexigoTech
Temu Connector for Odoo es de pago único por versión y necesita la suscripción a FlexigoTech Cloud (plan Conector: 49 € al mes o 490 € al año, sin IVA). Está publicado para Odoo 17, 18, 19 y 20. La conexión pasa por FlexigoTech Cloud, que guarda cifradas las credenciales y avisa por correo si falla la sincronización. Puedes ver el módulo en su página o en la ficha de Odoo Apps.
Si estás implantando Odoo y necesitas montar la logística con Temu o una integración a medida, FlexigoTech implanta Odoo 17, 18, 19 y 20 y desarrolla conectores e integraciones.
Sigue leyendo
Comprobado en el código del conector (versión 19.0) y en las fuentes enlazadas
Fuentes
- Código del módulo: flexigobe_temu_connector 19.0 (455b3f0f): views/temu_fulfillment_views.xml
- Código del módulo: flexigobe_temu_connector 19.0 (455b3f0f): models/temu_fulfillment.py
- Código del módulo: flexigobe_temu_connector 19.0 (455b3f0f): models/stock_picking.py
- apps.odoo.com/apps/modules/19.0/flexigobe_temu_connector
- flexigotech.com/precios.html
- flexigotech.com/en/services.html
