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.

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.


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
- Notez l'identifiant de la commande Amazon qui figure dans le message et ouvrez le transfert correspondant.
- Regardez quels produits vous y avez livrés et quel SKU a chacun dans Odoo. Vérifiez qu'aucun n'est sans SKU.
- 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.
- Corrigez le SKU du côté qui est erroné, pour qu'ils coïncident.
- 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
Vérifié dans le code du connecteur (version 20.0) et dans les sources citées
Sources
- Code du module : flexigobe_amazon_seller_connector 20.0 (8576afa5): models/stock_picking.py
- Code du module : flexigobe_amazon_seller_connector 20.0 (8576afa5): views/stock_picking_views.xml
- apps.odoo.com/apps/modules/20.0/flexigobe_amazon_seller_connector
- flexigotech.com/en/services.html
