Il messaggio e il pulsante che lo provoca
Il messaggio Impossibile costruire orderItems per confirmShipment (ordine …). (Could not build orderItems for confirmShipment (order …).) compare quando premi il pulsante Invia tracking Amazon, nella scheda del trasferimento (documento di trasporto). Quel pulsante si vede solo quando il trasferimento è nello stato Completato (Done) e riguarda un ordine Amazon (il modulo lo segna con un campo, Ordine Amazon (Amazon Order), che non è visibile in nessuna vista). I puntini di sospensione del messaggio vengono sostituiti dall'identificativo dell'ordine su Amazon.
È un errore che interrompe l'azione. Ciò che il messaggio ti dice è che il modulo non è riuscito a costruire l'elenco di righe (orderItems) che confirmShipment trasporta.

Come lo vedi in base alla lingua di Odoo
Il modulo include il messaggio tradotto. Con Odoo in italiano lo vedi come Impossibile costruire orderItems per confirmShipment (ordine …).; lo schema seguente mostra anche come appare in spagnolo, tedesco, francese e portoghese.


Quando compare esattamente
Il codice di Odoo 20.0 lancia il messaggio in un punto molto preciso: proprio quando l'elenco delle righe da confermare resta vuoto. Il messaggio esiste anche nel codice pubblicato di Odoo 17, 18 e 19. Ecco cosa fa il modulo, in ordine, fino ad arrivare lì:
- Calcola, a partire dal trasferimento, quale quantità è stata completata per ogni SKU e la quantità totale completata. Dà la preferenza alle quantità delle righe di vendita, quindi con un kit conta lo SKU commerciale e non quello dei componenti.
- Chiede ad Amazon le righe dell'ordine.
- Se Odoo ha quantità completate per SKU, scorre le righe di Amazon e annota quelle che riesce ad abbinare. Questo messaggio compare solo percorrendo questa strada.
- Se non ne ha annotata nessuna, prova una risorsa pensata per gli ordini di una sola riga.
- Se nemmeno così esce alcuna riga, lancia il messaggio.
Una riga di Amazon viene saltata quando non ha un identificativo di riga, quando il suo SKU è vuoto, o quando il suo SKU non coincide con nessuno SKU consegnato in Odoo che abbia ancora quantità da assegnare. Basta che una sola riga corrisponda perché questo messaggio non compaia.
La risorsa a riga singola funziona solo se Amazon restituisce esattamente una riga con identificativo e, in ciò che è stato consegnato in Odoo, c'è un solo SKU con quantità. Con più righe su Amazon, o con più SKU consegnati, non si applica.
Come il modulo confronta gli SKU
Prima di confrontare, il modulo normalizza lo SKU da entrambi i lati: lo converte in maiuscolo, toglie gli spazi agli estremi, trasforma i trattini speciali in un trattino normale ed elimina tutto ciò che non è una lettera dalla A alla Z (senza accenti né lettere speciali) o una cifra. Per questo taza-azul, TAZA AZUL e Taza–Azul danno la stessa chiave. Tieni presente che una lettera accentata o una ñ viene eliminata dalla chiave invece di essere conservata. Se due SKU restano diversi dopo questa pulizia, significa che differiscono davvero per lettere o cifre.
Nel calcolo per righe di vendita, lo SKU di Odoo deriva dal prodotto della riga. Se quel prodotto non ha SKU, non apporta alcuna quantità all'abbinamento.
Un caso illustrativo
Esempio Caso illustrativo: l'azienda e i suoi dati sono inventati per spiegare il flusso.
Casa Ficticia, un negozio inventato, vende ceramiche e candele su Amazon. Un cliente compra una tazza e una candela nello stesso ordine, quindi Amazon restituisce due righe, ciascuna con il suo identificativo. In Odoo, i prodotti hanno gli SKU TAZAAZUL e VELA; su Amazon, il venditore ha pubblicato le offerte come TAZA-AZUL-GRANDE e VELA-LAVANDA.
Il trasferimento viene convalidato e passa a Completato. Premendo Invia tracking Amazon, il modulo normalizza gli SKU: da Amazon risultano TAZAAZULGRANDE e VELALAVANDA; da Odoo, TAZAAZUL e VELA. Nessuno coincide, quindi non annota alcuna riga. Nemmeno la risorsa a riga singola serve, perché Amazon ha restituito due righe con identificativo. Risultato: Impossibile costruire orderItems per confirmShipment (ordine …).
Casa Ficticia uniforma gli SKU, in modo che quello di ogni prodotto in Odoo e quello della sua riga su Amazon dicano la stessa cosa, e preme di nuovo il pulsante. Con gli SKU uguali, ogni riga di Amazon può abbinarsi al suo SKU consegnato e l'elenco non resta più vuoto.
Ciò che si impara dal caso: l'errore non riguarda il trasferimento in sé, ma il fatto che gli SKU dei due lati non si riconoscono. Un trattino o una maiuscola non lo provocano; lettere in più, sì.
Cosa fare, passo per passo
- Annota l'identificativo dell'ordine Amazon che compare nel messaggio e apri il trasferimento corrispondente.
- Guarda quali prodotti hai consegnato in esso e quale SKU ha ciascuno in Odoo. Verifica che nessuno sia privo di SKU.
- Confronta ogni SKU con quello della riga dell'ordine su Amazon. Ignora maiuscole, spazi, trattini e segni: cerca lettere o cifre diverse.
- Correggi lo SKU dal lato sbagliato, in modo che coincidano.
- Premi di nuovo
Invia tracking Amazon.
Domande su questo messaggio
Compare in tutte le versioni?
Il messaggio è nel codice pubblicato di Odoo 17, 18, 19 e 20. La descrizione qui sopra, ordine dei passaggi compreso, corrisponde al codice di Odoo 20.0.
E se l'ordine ha più righe e ne corrisponde solo una?
Allora questo messaggio non compare: basta una riga abbinata perché l'elenco non resti vuoto. Se poi appare un messaggio diverso, si tratta di un altro controllo del modulo.
Perché la risorsa a riga singola non aiuta?
Perché richiede che Amazon restituisca esattamente una riga con identificativo e che ciò che è stato consegnato in Odoo abbia un solo SKU con quantità. Se l'ordine ha più righe o sono stati consegnati più SKU, quella risorsa restituisce un elenco vuoto.
Che succede con i kit?
Il modulo preferisce contare in base alle righe di vendita, quindi conta lo SKU commerciale venduto e non quelli dei componenti. Lo SKU che deve coincidere con Amazon è quello del prodotto venduto.
Come ti aiuta FlexigoTech
Se vendi su Amazon e lavori con Odoo, possiamo rivedere con te come sono registrati gli SKU prima di inviare il tracking. FlexigoTech implementa Odoo 17, 18, 19 e 20 e sviluppa connettori e integrazioni su misura. Puoi vedere il connettore sulla sua pagina di flexigotech.com o nella scheda di Odoo Apps.
Continua a leggere
Verificato nel codice del connettore (versione 20.0) e nelle fonti collegate
Fonti
- Codice del modulo: flexigobe_amazon_seller_connector 20.0 (8576afa5): models/stock_picking.py
- Codice del modulo: 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
