Saltar al contenido principal
Amazon

«No se pudo construir orderItems para confirmShipment» en Amazon y Odoo: causa y solución

Sale al pulsar Enviar tracking Amazon cuando ninguna línea del pedido de Amazon se puede emparejar con lo que has entregado en Odoo; se arregla haciendo que los SKU coincidan y volviendo a pulsar el botón.

FlexigoTech · Responsable: Víctor Gómez · Actualizado el 5 de noviembre de 2026

Lo esencial

Módulo
Amazon
Versiones
Odoo 17, 18, 19 y 20
Comprobado
en el código del conector, versión 20.0 · en las fuentes enlazadas al final
Lectura
6 min

El mensaje y el botón que lo provoca

El mensaje No se pudo construir orderItems para confirmShipment (pedido …). (Could not build orderItems for confirmShipment (order …).) sale al pulsar el botón Enviar tracking Amazon, en la ficha de la transferencia (albarán). Ese botón solo se ve cuando la transferencia está en estado Hecho (Done) y es de un pedido de Amazon (el módulo lo marca con un campo, Pedido Amazon (Amazon Order), que no se ve en ninguna vista). Los puntos suspensivos del mensaje se sustituyen por el identificador del pedido en Amazon.

Es un error que detiene la acción. Lo que el mensaje te dice es que el módulo no ha podido armar la lista de líneas (orderItems) que lleva confirmShipment.

Esquema hecho con código, no una pantalla de Odoo: arriba el botón Enviar tracking Amazon y debajo el mensaje de error, con los rótulos en inglés del código del módulo
Esquema del botón y del mensaje que puede salir al pulsarlo (Odoo 17, 18, 19 y 20). No es una captura de Odoo.

Cómo lo ves según el idioma de Odoo

El módulo trae el mensaje traducido. Con Odoo en castellano lo ves como No se pudo construir orderItems para confirmShipment (pedido …).; el esquema siguiente muestra también cómo queda en alemán, francés, italiano y portugués.

Esquema hecho con código a partir de las traducciones publicadas del módulo: el mismo mensaje en castellano, alemán, francés, italiano y portugués
Esquema, no una pantalla de Odoo: el texto del mensaje según el idioma de Odoo, con … donde va el pedido.
Your Odoo doesn't talk to Amazon, Temu or Shopify?
Vídeo: Your Odoo doesn't talk to Amazon, Temu or Shopify? (vídeo en inglés)

Cuándo sale exactamente

El código de Odoo 20.0 lanza el mensaje en un punto muy concreto: justo cuando la lista de líneas a confirmar se queda vacía. El mensaje existe también en el código publicado de Odoo 17, 18 y 19. Esto es lo que hace el módulo, en orden, hasta llegar ahí:

  • Calcula, a partir de la transferencia, qué cantidad se ha hecho de cada SKU y la cantidad total hecha. Prefiere las cantidades de las líneas de venta, de modo que con un kit cuenta el SKU comercial y no el de los componentes.
  • Pide a Amazon las líneas del pedido.
  • Si Odoo tiene cantidades hechas por SKU, recorre las líneas de Amazon y apunta las que puede emparejar. Este mensaje sale solo por este camino.
  • Si no ha apuntado ninguna, prueba un recurso pensado para pedidos de una sola línea.
  • Si tampoco así sale ninguna línea, lanza el mensaje.

Una línea de Amazon se salta cuando no trae identificador de línea, cuando su SKU queda vacío, o cuando su SKU no coincide con ningún SKU entregado en Odoo que aún tenga cantidad por asignar. Basta con que una sola línea case para que este mensaje no salga.

El recurso de una sola línea solo funciona si Amazon devuelve exactamente una línea con identificador y, en lo entregado en Odoo, hay un solo SKU con cantidad. Con varias líneas en Amazon, o con varios SKU entregados, no se aplica.

Cómo compara los SKU el módulo

Antes de comparar, el módulo normaliza el SKU de los dos lados: pasa a mayúsculas, quita espacios de los extremos, convierte los guiones especiales en un guion normal y elimina todo lo que no sea una letra de la A a la Z (sin tildes ni ñ) o una cifra. Por eso taza-azul, TAZA AZUL y Taza–Azul dan la misma clave. Ten en cuenta que una letra con tilde o una ñ se elimina de la clave en lugar de conservarse. Si dos SKU siguen siendo distintos tras esa limpieza, es que difieren en letras o cifras de verdad.

En el cálculo por líneas de venta, el SKU de Odoo sale del producto de la línea. Si ese producto no tiene SKU, no aporta ninguna cantidad al emparejamiento.

Un caso ilustrativo

Ejemplo Caso ilustrativo: la empresa y sus datos son inventados para explicar el flujo.

Casa Ficticia, una tienda inventada, vende cerámica y velas en Amazon. Un cliente compra una taza y una vela en el mismo pedido, así que Amazon devuelve dos líneas, cada una con su identificador. En Odoo, los productos tienen los SKU TAZAAZUL y VELA; en Amazon, el vendedor publicó las ofertas como TAZA-AZUL-GRANDE y VELA-LAVANDA.

La transferencia se valida y pasa a Hecho. Al pulsar Enviar tracking Amazon, el módulo normaliza los SKU: de Amazon salen TAZAAZULGRANDE y VELALAVANDA; de Odoo, TAZAAZUL y VELA. Ninguno coincide, así que no apunta ninguna línea. El recurso de una sola línea tampoco sirve, porque Amazon devolvió dos líneas con identificador. Resultado: No se pudo construir orderItems para confirmShipment (pedido …).

Casa Ficticia iguala los SKU, de modo que el de cada producto en Odoo y el de su línea en Amazon digan lo mismo, y vuelve a pulsar el botón. Con los SKU iguales, cada línea de Amazon puede emparejarse con su SKU entregado y la lista ya no queda vacía.

Lo que se aprende del caso: el error no habla de la transferencia en sí, sino de que los SKU de los dos lados no se reconocen. Un guion o una mayúscula no lo provocan; unas letras de más, sí.

Qué hacer, paso a paso

  1. Anota el identificador del pedido de Amazon que sale en el mensaje y abre la transferencia correspondiente.
  2. Mira qué productos has entregado en ella y qué SKU tiene cada uno en Odoo. Comprueba que ninguno esté sin SKU.
  3. Compara cada SKU con el de la línea del pedido en Amazon. Ignora mayúsculas, espacios, guiones y signos: busca letras o cifras distintas.
  4. Corrige el SKU en el lado que esté mal, para que coincidan.
  5. Vuelve a pulsar Enviar tracking Amazon.

Preguntas sobre este mensaje

¿Sale en todas las versiones?

El mensaje está en el código publicado de Odoo 17, 18, 19 y 20. La descripción de arriba, orden de pasos incluido, corresponde al código de Odoo 20.0.

¿Y si el pedido tiene varias líneas y solo casa una?

Entonces este mensaje no sale: basta una línea emparejada para que la lista no quede vacía. Si después aparece un mensaje distinto, se trata de otra comprobación del módulo.

¿Por qué no ayuda el recurso de una sola línea?

Porque exige que Amazon devuelva exactamente una línea con identificador y que lo entregado en Odoo tenga un solo SKU con cantidad. Si el pedido tiene varias líneas o se entregaron varios SKU, ese recurso devuelve una lista vacía.

¿Qué pasa con los kits?

El módulo prefiere contar por las líneas de venta, así que cuenta el SKU comercial vendido y no los de los componentes. El SKU que debe coincidir con Amazon es el del producto vendido.

Cómo te ayuda FlexigoTech

Si vendes en Amazon y trabajas con Odoo, podemos revisar contigo cómo están dados de alta los SKU antes de enviar tracking. FlexigoTech implanta Odoo 17, 18, 19 y 20 y desarrolla conectores e integraciones a medida. Puedes ver el conector en su página de flexigotech.com o en la ficha de Odoo Apps.

Sigue leyendo

Qué hace el botón «Vista previa en Amazon» de Amazon Connector for OdooQué hace el botón «Vista previa en Amazon» del conector de Amazon para Odoo: cuándo aparece, qué comprueba, qué guarda y qué errores puede dar.
Comprobado en el código del conector (versión 20.0) y en las fuentes enlazadas

Fuentes