Aller au contenu principal
Amazon

« Impossible de construire orderItems pour confirmShipment » dans Amazon et Odoo : cause et solution

Il apparaît en cliquant sur Envoyer le suivi Amazon quand aucune ligne de la commande Amazon ne peut être associée à ce que vous avez livré dans Odoo ; on le corrige en faisant coïncider les SKU puis en cliquant de nouveau sur le bouton.

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

L'essentiel

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

Le message et le bouton qui le provoque

Le message Impossible de construire orderItems pour confirmShipment (commande …). (Could not build orderItems for confirmShipment (order …).) apparaît en cliquant sur le bouton Envoyer le suivi Amazon, sur la fiche du transfert (bon de livraison). Ce bouton n'est visible que lorsque le transfert est à l'état Terminé (Fait en Odoo 17.0) et qu'il correspond à une commande Amazon (le module l'indique avec un champ, Commande Amazon (Amazon Order), qui n'apparaît dans aucune vue). Les points de suspension du message sont remplacés par l'identifiant de la commande chez Amazon.

C'est une erreur qui interrompt l'action. Ce que le message vous dit, c'est que le module n'a pas pu construire la liste des lignes (orderItems) que transporte confirmShipment.

Schéma réalisé avec du code, pas un écran d'Odoo : en haut le bouton Envoyer le suivi Amazon et en dessous le message d'erreur, avec les libellés en anglais du code du module
Schéma du bouton et du message qui peut apparaître en cliquant dessus (Odoo 17, 18, 19 et 20). Ce n'est pas une capture d'Odoo.

Comment vous le voyez selon la langue d'Odoo

Le module fournit le message traduit. Avec Odoo en français, vous le voyez ainsi : Impossible de construire orderItems pour confirmShipment (commande …). ; le schéma suivant montre aussi comment il apparaît en espagnol, en allemand, en italien et en portugais.

Schéma réalisé avec du code à partir des traductions publiées du module : le même message en espagnol, allemand, français, italien et portugais
Schéma, pas un écran d'Odoo : le texte du message selon la langue d'Odoo, avec … à l'endroit où va la commande.
Your Odoo doesn't talk to Amazon, Temu or Shopify?
Vidéo : Your Odoo doesn't talk to Amazon, Temu or Shopify? (vidéo en anglais)

Quand il apparaît exactement

Le code d'Odoo 20.0 lance le message à un point très précis : au moment où la liste des lignes à confirmer reste vide. Le message existe aussi dans le code publié d'Odoo 17, 18 et 19. Voici ce que fait le module, dans l'ordre, jusqu'à en arriver là :

  • Il calcule, à partir du transfert, la quantité faite de chaque SKU et la quantité totale faite. Il privilégie les quantités des lignes de vente, de sorte qu'avec un kit il compte le SKU commercial et non celui des composants.
  • Il demande à Amazon les lignes de la commande.
  • Si Odoo a des quantités faites par SKU, il parcourt les lignes d'Amazon et note celles qu'il peut associer. Ce message n'apparaît que par ce chemin.
  • S'il n'en a noté aucune, il essaie un recours prévu pour les commandes d'une seule ligne.
  • Si aucune ligne n'en sort non plus, il lance le message.

Une ligne d'Amazon est ignorée quand elle n'a pas d'identifiant de ligne, quand son SKU est vide, ou quand son SKU ne correspond à aucun SKU livré dans Odoo ayant encore une quantité à affecter. Il suffit qu'une seule ligne corresponde pour que ce message n'apparaisse pas.

Le recours d'une seule ligne ne fonctionne que si Amazon renvoie exactement une ligne avec identifiant et que, dans ce qui a été livré dans Odoo, il n'y a qu'un seul SKU avec une quantité. Avec plusieurs lignes chez Amazon, ou plusieurs SKU livrés, il ne s'applique pas.

Comment le module compare les SKU

Avant de comparer, le module normalise le SKU des deux côtés : il le passe en majuscules, supprime les espaces aux extrémités, convertit les tirets spéciaux en un tiret normal et élimine tout ce qui n'est pas une lettre de A à Z (sans accents) ou un chiffre. C'est pourquoi taza-azul, TAZA AZUL et Taza–Azul donnent la même clé. Notez qu'une lettre accentuée ou une ñ est supprimée de la clé au lieu d'être conservée. Si deux SKU restent différents après ce nettoyage, c'est qu'ils diffèrent vraiment par des lettres ou des chiffres.

Dans le calcul par lignes de vente, le SKU d'Odoo provient du produit de la ligne. Si ce produit n'a pas de SKU, il n'apporte aucune quantité à l'association.

Un cas illustratif

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

Casa Ficticia, une boutique inventée, vend de la céramique et des bougies sur Amazon. Un client achète une tasse et une bougie dans la même commande, donc Amazon renvoie deux lignes, chacune avec son identifiant. Dans Odoo, les produits ont les SKU TAZAAZUL et VELA ; chez Amazon, le vendeur a publié les offres sous TAZA-AZUL-GRANDE et VELA-LAVANDA.

Le transfert est validé et passe à Terminé. En cliquant sur Envoyer le suivi Amazon, le module normalise les SKU : côté Amazon on obtient TAZAAZULGRANDE et VELALAVANDA ; côté Odoo, TAZAAZUL et VELA. Aucun ne coïncide, donc il ne note aucune ligne. Le recours d'une seule ligne ne sert à rien non plus, car Amazon a renvoyé deux lignes avec identifiant. Résultat : Impossible de construire orderItems pour confirmShipment (commande …).

Casa Ficticia égalise les SKU, de sorte que celui de chaque produit dans Odoo et celui de sa ligne chez Amazon disent la même chose, et clique de nouveau sur le bouton. Avec des SKU identiques, chaque ligne d'Amazon peut être associée à son SKU livré et la liste n'est plus vide.

Ce que l'on retient du cas : l'erreur ne parle pas du transfert en lui-même, mais du fait que les SKU des deux côtés ne se reconnaissent pas. Un tiret ou une majuscule ne la provoquent pas ; des lettres en trop, si.

Que faire, pas à pas

  1. Notez l'identifiant de la commande Amazon qui figure dans le message et ouvrez le transfert correspondant.
  2. Regardez quels produits vous y avez livrés et quel SKU a chacun dans Odoo. Vérifiez qu'aucun n'est sans SKU.
  3. Comparez chaque SKU avec celui de la ligne de la commande chez Amazon. Ignorez majuscules, espaces, tirets et signes : cherchez des lettres ou des chiffres différents.
  4. Corrigez le SKU du côté qui est erroné, pour qu'ils coïncident.
  5. Cliquez de nouveau sur Envoyer le suivi Amazon.

Questions sur ce message

Apparaît-il dans toutes les versions ?

Le message figure dans le code publié d'Odoo 17, 18, 19 et 20. La description ci-dessus, ordre des étapes compris, correspond au code d'Odoo 20.0.

Et si la commande a plusieurs lignes et qu'une seule correspond ?

Alors ce message n'apparaît pas : une ligne associée suffit pour que la liste ne soit pas vide. Si un message différent apparaît ensuite, il s'agit d'une autre vérification du module.

Pourquoi le recours d'une seule ligne n'aide-t-il pas ?

Parce qu'il exige qu'Amazon renvoie exactement une ligne avec identifiant et que ce qui a été livré dans Odoo ait un seul SKU avec une quantité. Si la commande a plusieurs lignes ou si plusieurs SKU ont été livrés, ce recours renvoie une liste vide.

Qu'en est-il des kits ?

Le module privilégie le comptage par les lignes de vente, donc il compte le SKU commercial vendu et non ceux des composants. Le SKU qui doit coïncider avec Amazon est celui du produit vendu.

Comment FlexigoTech vous aide

Si vous vendez sur Amazon et travaillez avec Odoo, nous pouvons vérifier avec vous la façon dont les SKU sont créés avant d'envoyer le suivi. FlexigoTech met en place Odoo 17, 18, 19 et 20 et développe des connecteurs et des intégrations sur mesure. Vous pouvez voir le connecteur sur sa page de flexigotech.com ou sur la fiche d'Odoo Apps.

À lire aussi

Ce que fait le bouton « Aperçu sur Amazon » d'Amazon Connector for OdooCe que fait le bouton « Aperçu sur Amazon » du connecteur Amazon pour Odoo : quand il apparaît, ce qu'il vérifie, ce qu'il enregistre et les erreurs possibles.
Vérifié dans le code du connecteur (version 20.0) et dans les sources citées

Sources