Aller au contenu principal
Temu

Ce que fait le bouton Execute de Temu Connector for Odoo, étape par étape

Le bouton Execute de la fiche Fulfillment lance vers Temu l'opération portée par la fiche : il vérifie qu'il y a une instance, prépare la requête, l'envoie et écrit Done si tout se passe bien. S'il manque quelque chose, il s'arrête avec un message avant d'écrire le moindre statut. Nous le suivons avec un cas illustratif.

FlexigoTech · Responsable : Víctor Gómez · Mis à jour le 5 novembre 2026

L'essentiel

Module
Temu
Versions
Odoo 17, 18, 19 et 20
Vérifié
dans le code du connecteur, version 19.0 · dans les sources citées à la fin
Lecture
7 min

Où se trouve le bouton et quand il est visible

Les fiches d'expédition s'ouvrent depuis le menu Temu › Orders & Fulfillment › Fulfillment. Sur cet écran se trouve le bouton Execute, qui est toujours visible sur la fiche, sans condition dans la vue, et qui existe dans Odoo 17, 18 et 19. Ce qui suit sur son fonctionnement correspond au code publié pour Odoo 19.

Le bouton lance l'opération portée par la fiche via l'instance Temu qui lui est assignée. Il vérifie d'abord qu'il y a une instance et que la requête peut être construite ; ensuite il écrit des statuts et conserve ce que Temu répond.

Schéma réalisé avec du code du parcours du bouton : le menu Fulfillment, le bouton Execute avec deux des messages qui peuvent l'arrêter et le statut Done
Schéma réalisé avec du code à partir du code publié du module (ce n'est pas une capture d'Odoo), avec les libellés en anglais du code.
Schéma réalisé avec du code qui montre le texte Execute tel que l'utilisateur le voit avec Odoo en espagnol : Ejecutar
Schéma réalisé avec du code à partir des traductions publiées du module (ce n'est pas une capture d'Odoo) : avec Odoo en français, le bouton s'appelle Execute.
Temu orders in Odoo every 15 minutes. Stock out every 5
Vidéo : Temu orders in Odoo every 15 minutes. Stock out every 5 (vidéo en anglais)

Ce qui se passe sans rien cliquer

Une partie du travail de ce bouton se fait aussi sans que vous le pressiez. Le module étend l'enregistrement d'une fiche de bon de livraison et le bouton standard de validation du bon de livraison, et c'est de là qu'il peut réconcilier un envoi que Temu considérait déjà comme expédié. Il ne le fait que si toutes les conditions suivantes sont réunies :

  • Il existe une fiche d'expédition, une commande Temu et une référence de suivi.
  • La dernière erreur de la fiche d'expédition indique que la commande a déjà été expédiée : elle porte le code 120012004, ou un texte de Temu disant que la commande a déjà été expédiée et que la modification n'est pas effective pour une commande expédiée.
  • La commande a un numéro de commande parent Temu (ou l'identifiant de la commande Temu) et un numéro d'ordre.

Il interroge alors Temu sur le statut de l'envoi propre. Si la réponse contient le numéro de suivi, la fiche passe à Done, la dernière erreur est effacée, le même résumé du résultat que celui du bouton est appliqué, le bon de livraison est marqué comme synchronisé et une note y est laissée. Si la requête échoue ou si le suivi n'apparaît pas, rien ne change.

Pour lancer l'opération à la main depuis la fiche, il reste le bouton Execute.

Le cas : Hogar Norte lance une opération

Exemple Cas illustratif : l'entreprise et ses chiffres sont inventés pour expliquer le flux.

Hogar Norte est une boutique fictive qui vend sur Temu et gère ses expéditions depuis Odoo. Une personne de l'équipe ouvre Temu › Orders & Fulfillment › Fulfillment et entre dans une nouvelle fiche. Voyons ce qui se passe à chaque tentative.

Première tentative : sans instance

Elle clique sur Execute avec le champ Instance vide (visible sur la fiche et dans la liste de Fulfillment). La méthode le vérifie en premier et s'arrête avec Temu instance is required.. Aucun statut n'a été écrit ni aucune requête conservée : la fiche reste comme elle était.

Deuxième tentative : il manque une donnée

La fiche porte une requête sur les sociétés de logistique. Avec l'instance renseignée, le module tente de construire la requête et s'arrête avec regionId is required for logistics companies query.. Rien n'a encore été écrit. Le message indique quelle donnée manque : elle la complète et clique de nouveau.

Troisième tentative : ça marche

Maintenant la méthode suit cet ordre :

  1. Elle construit la requête avec les données de la fiche. Si le champ Request Override Json (onglet Payload Override) est renseigné et qu'il s'agit d'un objet, elle utilise ce contenu tel quel comme requête.
  2. Elle écrit le statut Running, conserve la requête construite et l'heure de la requête, et efface la dernière erreur.
  3. Elle appelle l'instance Temu avec l'opération correspondant à la fiche.
  4. Si Temu répond correctement, elle prépare un résumé du résultat : si la réponse contient des numéros de colis, elle les conserve triés et sans doublons, et si la fiche n'avait pas de numéro de colis, elle prend le premier ; si elle contient des avertissements, elle les conserve un par ligne ; si elle contient une réservation d'enlèvement, elle conserve son numéro.
  5. Elle écrit en une seule fois Done, la réponse, le résultat, ce résumé et l'heure de fin, et laisse la dernière erreur vide.

Le résumé est calculé avant d'écrire Done. Si le résumé échoue, Done n'est jamais écrit : la méthode le traite comme n'importe quelle autre erreur.

Quand quelque chose échoue après Running

Si l'opération ou le résumé échouent une fois Running écrit, le code écrit Failed avec l'heure de fin et le texte de l'erreur, puis relance l'erreur, qui est l'avertissement que voit la personne en cliquant. Vérifiez le statut sur la fiche au lieu de supposer lequel a été conservé.

Messages qui peuvent arrêter le bouton

En cliquant sur Execute, ces messages apparaissent lorsque le module prépare la requête, avant d'écrire Running. Ce sont certains de ceux qu'il peut donner :

  • Temu instance is required. : la fiche n'a pas d'instance.
  • Request Override JSON must be an object/dict payload. : le contenu du champ Request Override Json de la fiche n'est pas un objet.
  • Provide orderSnList or payload lines for shipping services query. : dans la requête des services d'expédition, il n'y a ni liste de commandes ni lignes.
  • regionId is required for ship logistics type query. : cette donnée manque dans la requête des types de logistique d'expédition.
  • regionId is required for logistics companies query. : cette donnée manque dans la requête des sociétés de logistique.
  • packageSnList is required for buy shipping result query. : la liste des colis manque dans la requête du résultat de l'envoi acheté.
  • packageSnList is required for shipping document query. : la liste des colis manque dans la requête des documents d'expédition.
  • parentOrderSn and orderSn are required for self shipment status query. : ces données manquent dans la requête du statut de l'envoi propre.
  • mainPackageSn (package_sn) is required for shipment sub confirm. : le colis principal manque lors de la confirmation des sous-colis.
  • At least one sub package request is required. : il manque au moins une requête de sous-colis.
  • pickupStartTime and pickupEndTime are required for pickup reservation creation. : les heures de la réservation d'enlèvement manquent.
  • packageSnList is required for pickup reservation creation. : la liste des colis manque lors de la création de la réservation d'enlèvement.
  • packageSnList is required for pickup reservation result query. : la liste des colis manque lors de la consultation du résultat de la réservation.
  • reservationSn is required for pickup reservation cancellation. : le numéro de réservation manque lors de son annulation.
  • packageSn is required for tracking info query. : le colis manque dans la requête de suivi.
  • Set Request Override JSON for cooperative warehouse operation '…'. : pour les opérations d'entrepôt coopératif, le message demande de renseigner le champ Request Override Json.

Ce qu'il faut retenir du cas

  • L'ordre est fixe : d'abord l'instance, puis la requête, ensuite les statuts.
  • Les messages ci-dessus arrêtent l'action avant d'écrire quoi que ce soit : on les règle en complétant ce qu'ils demandent.
  • Done s'écrit en une seule fois avec la réponse, le résultat et le résumé ; si le résumé échoue, la fiche passe à Failed.
  • Le résumé du résultat est le même que celui qu'utilise la réconciliation automatique du bon de livraison.
  • Une erreur postérieure à Running est relancée et laisse la fiche en Failed ; après avoir cliqué, vérifiez le statut.

Comment FlexigoTech vous aide

Temu Connector for Odoo est à paiement unique par version et nécessite l'abonnement à FlexigoTech Cloud (plan Connecteur : 49 €/mois ou 490 €/an HT). Il est publié pour Odoo 17, 18, 19 et 20. La connexion passe par FlexigoTech Cloud, qui conserve les identifiants chiffrés et prévient par e-mail si la synchronisation échoue. Vous pouvez voir le module sur sa page ou sur la fiche Odoo Apps.

Si vous déployez Odoo et avez besoin de mettre en place la logistique avec Temu ou une intégration sur mesure, FlexigoTech déploie Odoo 17, 18, 19 et 20 et développe des connecteurs et des intégrations.

À lire aussi

« Parent After-sales SN is required. » dans Temu Connector for Odoo : cause et solutionQuand apparaît « Parent After-sales SN is required. » dans Temu Connector for Odoo, quelle condition du code le provoque et comment le résoudre pas à pas.
Vérifié dans le code du connecteur (version 19.0) et dans les sources citées

Sources