Komunikat i przycisk, który go wywołuje
Komunikat Could not build orderItems for confirmShipment (order …). pojawia się po kliknięciu przycisku Enviar tracking Amazon na karcie transferu (dokumentu wydania). Ten przycisk widać tylko wtedy, gdy transfer ma status Wykonano i dotyczy zamówienia Amazon (moduł oznacza to polem Amazon Order, które nie jest widoczne w żadnym widoku). Wielokropek w komunikacie jest zastępowany identyfikatorem zamówienia w Amazon.
To błąd, który zatrzymuje akcję. Komunikat mówi Ci, że moduł nie zdołał zbudować listy pozycji (orderItems), którą przekazuje confirmShipment.

Jak widzisz go w zależności od języka Odoo
Moduł nie ma tłumaczenia tego komunikatu na polski, więc widzisz go po angielsku: Could not build orderItems for confirmShipment (order …). Poniższy schemat pokazuje też, jak wygląda po hiszpańsku, niemiecku, francusku, włosku i portugalsku.


Kiedy dokładnie się pojawia
Kod Odoo 20.0 zgłasza komunikat w bardzo konkretnym miejscu: dokładnie wtedy, gdy lista pozycji do potwierdzenia jest pusta. Komunikat istnieje także w opublikowanym kodzie Odoo 17, 18 i 19. Oto, co robi moduł, po kolei, zanim do tego dojdzie:
- Na podstawie transferu oblicza, jaka ilość każdego SKU została zrealizowana oraz łączną zrealizowaną ilość. Woli ilości z pozycji sprzedaży, więc przy zestawie liczy SKU handlowe, a nie składników.
- Pobiera z Amazon pozycje zamówienia.
- Jeśli Odoo ma zrealizowane ilości według SKU, przegląda pozycje Amazon i zapisuje te, które może dopasować. Ten komunikat pojawia się tylko na tej ścieżce.
- Jeśli nie zapisał żadnej, próbuje rozwiązania awaryjnego przeznaczonego dla zamówień jednopozycyjnych.
- Jeśli i tak nie powstaje żadna pozycja, zgłasza komunikat.
Pozycja z Amazon jest pomijana, gdy nie ma identyfikatora pozycji, gdy jej SKU jest puste albo gdy jej SKU nie pasuje do żadnego wydanego w Odoo SKU, które ma jeszcze ilość do przypisania. Wystarczy, że jedna pozycja pasuje, by ten komunikat się nie pojawił.
Rozwiązanie dla jednej pozycji działa tylko wtedy, gdy Amazon zwraca dokładnie jedną pozycję z identyfikatorem, a wśród wydanych w Odoo jest tylko jedno SKU z ilością. Przy kilku pozycjach w Amazon lub kilku wydanych SKU nie ma zastosowania.
Jak moduł porównuje SKU
Przed porównaniem moduł normalizuje SKU po obu stronach: zamienia na wielkie litery, usuwa spacje na krańcach, zamienia specjalne myślniki na zwykły myślnik i usuwa wszystko, co nie jest literą od A do Z (bez znaków diakrytycznych) ani cyfrą. Dlatego taza-azul, TAZA AZUL i Taza–Azul dają ten sam klucz. Pamiętaj, że litera ze znakiem diakrytycznym lub ñ jest usuwana z klucza, a nie zachowywana. Jeśli dwa SKU po tym czyszczeniu nadal się różnią, to naprawdę różnią się literami lub cyframi.
Przy obliczeniu według pozycji sprzedaży SKU z Odoo pochodzi z produktu pozycji. Jeśli ten produkt nie ma SKU, nie wnosi żadnej ilości do dopasowania.
Przykład ilustracyjny
Przykład Przypadek poglądowy: firma i jej dane są zmyślone, żeby pokazać przebieg.
Casa Ficticia, wymyślony sklep, sprzedaje ceramikę i świece w Amazon. Klient kupuje kubek i świecę w jednym zamówieniu, więc Amazon zwraca dwie pozycje, każdą z własnym identyfikatorem. W Odoo produkty mają SKU TAZAAZUL i VELA; w Amazon sprzedawca opublikował oferty jako TAZA-AZUL-GRANDE i VELA-LAVANDA.
Transfer zostaje zatwierdzony i przechodzi w status Wykonano. Po kliknięciu Enviar tracking Amazon moduł normalizuje SKU: z Amazon wychodzą TAZAAZULGRANDE i VELALAVANDA; z Odoo TAZAAZUL i VELA. Żadne nie pasuje, więc nie zapisuje żadnej pozycji. Rozwiązanie dla jednej pozycji też nie pomaga, bo Amazon zwrócił dwie pozycje z identyfikatorem. Wynik: Could not build orderItems for confirmShipment (order …).
Casa Ficticia ujednolica SKU, tak aby SKU każdego produktu w Odoo i jego pozycji w Amazon mówiły to samo, i klika przycisk ponownie. Przy identycznych SKU każda pozycja Amazon może zostać dopasowana do swojego wydanego SKU i lista nie jest już pusta.
Czego uczy ten przypadek: błąd nie dotyczy samego transferu, tylko tego, że SKU po obu stronach nie są rozpoznawane jako takie same. Myślnik czy wielka litera go nie wywołają; nadmiarowe litery tak.
Co zrobić, krok po kroku
- Zanotuj identyfikator zamówienia Amazon z komunikatu i otwórz odpowiedni transfer.
- Sprawdź, jakie produkty w nim wydałeś i jakie SKU ma każdy w Odoo. Upewnij się, że żaden nie jest bez SKU.
- Porównaj każde SKU z SKU pozycji zamówienia w Amazon. Zignoruj wielkie litery, spacje, myślniki i znaki: szukaj innych liter lub cyfr.
- Popraw SKU po tej stronie, która jest błędna, aby się zgadzały.
- Kliknij ponownie
Enviar tracking Amazon.
Pytania o ten komunikat
Czy pojawia się we wszystkich wersjach?
Komunikat jest w opublikowanym kodzie Odoo 17, 18, 19 i 20. Powyższy opis, razem z kolejnością kroków, odpowiada kodowi Odoo 20.0.
A jeśli zamówienie ma kilka pozycji i pasuje tylko jedna?
Wtedy ten komunikat się nie pojawia: wystarczy jedna dopasowana pozycja, by lista nie była pusta. Jeśli potem pojawi się inny komunikat, to dotyczy innej kontroli modułu.
Dlaczego rozwiązanie dla jednej pozycji nie pomaga?
Bo wymaga, by Amazon zwrócił dokładnie jedną pozycję z identyfikatorem i by wydane w Odoo miało tylko jedno SKU z ilością. Jeśli zamówienie ma kilka pozycji lub wydano kilka SKU, to rozwiązanie zwraca pustą listę.
Co z zestawami?
Moduł woli liczyć według pozycji sprzedaży, więc liczy sprzedane SKU handlowe, a nie SKU składników. SKU, które musi zgadzać się z Amazon, to SKU sprzedanego produktu.
Jak pomaga FlexigoTech
Jeśli sprzedajesz w Amazon i pracujesz z Odoo, możemy razem z Tobą sprawdzić, jak SKU są założone, zanim wyślesz tracking. FlexigoTech wdraża Odoo 17, 18, 19 i 20 oraz tworzy konektory i integracje na zamówienie. Konektor znajdziesz na jego stronie na flexigotech.com lub w karcie w Odoo Apps.
Czytaj dalej
Sprawdzone w kodzie źródłowym konektora (wersja 20.0) i w podlinkowanych źródłach
Źródła
- Kod modułu: flexigobe_amazon_seller_connector 20.0 (8576afa5): models/stock_picking.py
- Kod modułu: 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
