On és el botó i quan es veu
Les fitxes d'enviament s'obren des del menú Temu › Orders & Fulfillment › Fulfillment. En aquesta pantalla hi ha el botó Execute, que es veu sempre a la fitxa, sense cap condició a la vista, i és a Odoo 17, 18 i 19. El que ve a continuació sobre el seu funcionament correspon al codi publicat per a Odoo 19.
El botó llança l'operació que porta la fitxa a través de la instància de Temu que tingui assignada. Primer comprova que hi hagi instància i que es pugui construir la petició; després escriu estats i desa el que respon Temu.


Execute.
El que passa sense prémer res
Una part de la feina d'aquest botó també passa sense prémer-lo. El mòdul amplia el desament d'una fitxa d'albarà i el botó estàndard de validar de l'albarà, i des d'aquí pot reconciliar un enviament que Temu ja donava per enviat. Ho fa només si es compleix tot el següent:
- Hi ha fitxa d'enviament, comanda de Temu i referència del seguiment.
- L'últim error de la fitxa d'enviament indica que la comanda ja es va enviar: porta el codi
120012004, o un text de Temu que diu que la comanda ja es va enviar i que el canvi no és efectiu per a una comanda enviada. - La comanda té número de comanda pare de Temu (o l'identificador de la comanda de Temu) i número d'ordre.
Llavors consulta a Temu l'estat de l'enviament propi. Si la resposta conté el número de seguiment, la fitxa passa a Done, es buida l'últim error, s'aplica el mateix resum del resultat que fa servir el botó, l'albarà queda marcat com a sincronitzat i s'hi deixa una nota. Si la consulta falla o el seguiment no apareix, no canvia res.
Per llançar l'operació a mà des de la fitxa, queda el botó Execute.
El cas: Hogar Norte llança una operació
Exemple Cas il·lustratiu: l'empresa i les seves dades són inventades per explicar el flux.
Hogar Norte és una botiga inventada que ven a Temu i gestiona els seus enviaments des d'Odoo. Una persona de l'equip obre Temu › Orders & Fulfillment › Fulfillment i entra en una fitxa nova. Vegem què passa a cada intent.
Primer intent: sense instància
Prem Execute amb el camp Instance buit (es veu a la fitxa i a la llista de Fulfillment). El mètode ho comprova el primer i s'atura amb Temu instance is required.. No ha escrit cap estat ni ha desat cap petició: la fitxa queda com estava.
Segon intent: falta una dada
La fitxa porta una consulta d'empreses de logística. Amb la instància posada, el mòdul intenta construir la petició i s'atura amb regionId is required for logistics companies query.. Continua sense haver-se escrit res. El missatge diu quina dada falta: la completa i torna a prémer.
Tercer intent: surt bé
Ara el mètode segueix aquest ordre:
- Construeix la petició amb les dades de la fitxa. Si el camp
Request Override Json(pestanyaPayload Override) està informat i és un objecte, fa servir aquest contingut tal qual com a petició. - Escriu l'estat
Running, desa la petició construïda i l'hora de la petició, i buida l'últim error. - Crida la instància de Temu amb l'operació que correspon a la fitxa.
- Si Temu respon bé, prepara un resum del resultat: si la resposta porta números de paquet, els desa ordenats i sense repetir, i si la fitxa no tenia número de paquet, pren el primer; si porta avisos, els desa un per línia; si porta una reserva de recollida, desa el seu número.
- Escriu d'una vegada
Done, la resposta, el resultat, aquest resum i l'hora de finalització, i deixa buit l'últim error.
El resum es calcula abans d'escriure Done. Si falla el resum, Done no arriba a escriure's: el mètode ho tracta com qualsevol altre error.
Quan alguna cosa falla després de Running
Si l'operació o el resum fallen un cop escrit Running, el codi escriu Failed amb l'hora de finalització i el text de l'error, i torna a llançar l'error, que és l'avís que veu la persona en prémer. Comprova l'estat a la fitxa en lloc de donar per fet quin ha quedat.
Missatges que poden aturar el botó
Quan es prem Execute, aquests missatges surten quan el mòdul prepara la petició, abans d'escriure Running. Són alguns dels que pot donar:
Temu instance is required.: la fitxa no té instància.Request Override JSON must be an object/dict payload.: el contingut del campRequest Override Jsonde la fitxa no és un objecte.Provide orderSnList or payload lines for shipping services query.: a la consulta de serveis d'enviament, no hi ha ni llista de comandes ni línies.regionId is required for ship logistics type query.: falta aquesta dada a la consulta de tipus de logística d'enviament.regionId is required for logistics companies query.: falta aquesta dada a la consulta d'empreses de logística.packageSnList is required for buy shipping result query.: falta la llista de paquets a la consulta del resultat de l'enviament comprat.packageSnList is required for shipping document query.: falta la llista de paquets a la consulta de documents d'enviament.parentOrderSn and orderSn are required for self shipment status query.: falten aquestes dades a la consulta d'estat de l'enviament propi.mainPackageSn (package_sn) is required for shipment sub confirm.: falta el paquet principal en confirmar subpaquets.At least one sub package request is required.: falta almenys una petició de subpaquet.pickupStartTime and pickupEndTime are required for pickup reservation creation.: falten les hores de la reserva de recollida.packageSnList is required for pickup reservation creation.: falta la llista de paquets en crear la reserva de recollida.packageSnList is required for pickup reservation result query.: falta la llista de paquets en consultar el resultat de la reserva.reservationSn is required for pickup reservation cancellation.: falta el número de reserva en cancel·lar-la.packageSn is required for tracking info query.: falta el paquet a la consulta de seguiment.Set Request Override JSON for cooperative warehouse operation '…'.: en operacions de magatzem cooperatiu, el missatge demana informar el campRequest Override Json.
Què aprendre del cas
- L'ordre és fix: primer la instància, després la petició, després els estats.
- Els missatges de dalt aturen l'acció abans d'escriure res: es resolen completant el que demanen.
Dones'escriu d'una sola vegada juntament amb la resposta, el resultat i el resum; si el resum falla, la fitxa passa aFailed.- El resum del resultat és el mateix que fa servir la reconciliació automàtica de l'albarà.
- Un error posterior a
Runninges rellança i deixa la fitxa enFailed; després de prémer, revisa l'estat.
Com ajuda FlexigoTech
Temu Connector for Odoo és de pagament únic per versió i necessita la subscripció a FlexigoTech Cloud (pla Connector: 49 € al mes o 490 € a l'any, sense IVA). Està publicat per a Odoo 17, 18, 19 i 20. La connexió passa per FlexigoTech Cloud, que desa xifrades les credencials i avisa per correu si falla la sincronització. Pots veure el mòdul a la seva pàgina o a la fitxa d'Odoo Apps.
Si estàs implantant Odoo i necessites muntar la logística amb Temu o una integració a mida, FlexigoTech implanta Odoo 17, 18, 19 i 20 i desenvolupa connectors i integracions.
Continua llegint
Comprovat al codi del connector (versió 19.0) i a les fonts enllaçades
Fonts
- Codi del mòdul: flexigobe_temu_connector 19.0 (455b3f0f): views/temu_fulfillment_views.xml
- Codi del mòdul: flexigobe_temu_connector 19.0 (455b3f0f): models/temu_fulfillment.py
- Codi del mòdul: 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
