Co mówi komunikat i gdzie się pojawia
Przy Odoo w języku hiszpańskim widzisz Amazon orderItems cannot be built without a reliable SKU when the order has multiple lines or multiple products.

Pojawia się po kliknięciu przycisku Enviar tracking Amazon, który znajduje się w widoku dokumentu wydania. Przycisk jest widoczny tylko wtedy, gdy dokument wydania ma status Wykonano i jest to zamówienie Amazon przez SP-API; w pozostałych przypadkach jest ukryty. Dotyczy to Odoo 17, 18, 19 i 20, a komunikat znajduje się w opublikowanym kodzie wszystkich czterech wersji.

To błąd, który zatrzymuje akcję.

Co to oznacza w praktyce
Aby przekazać wysyłkę do Amazon, moduł musi wskazać, które pozycje zamówienia Amazon zostały wysłane i w jakiej ilości. Robi to, dopasowując SKU tego, co wydałeś w dokumencie wydania, do SKU pozycji zwracanych przez Amazon. Komunikat pojawia się, gdy z dokumentu wydania nie udaje się wyciągnąć żadnego SKU z ilością, a moduł nie może też zastosować swojego rozwiązania awaryjnego dla zamówień z jedną pozycją. Nie jest to więc awaria połączenia, tylko brak SKU, na którym moduł mógłby się oprzeć, żeby wiedzieć, co wysłać.
Kiedy dokładnie się pojawia
Po kliknięciu przycisku moduł wywołuje metodę, która buduje pozycje (orderItems) przekazywane do Amazon. Po kolei robi to:
- Oblicza, jaka ilość każdego SKU została zrealizowana w dokumencie wydania i jaka jest łączna zrealizowana ilość.
- Pobiera z Amazon pozycje zamówienia.
- Jeśli obliczenie według SKU daje wynik pusty, próbuje rozwiązania awaryjnego przewidzianego dla zamówień z jedną pozycją.
- Jeśli to rozwiązanie nic nie zwraca, wyświetla komunikat.
Komunikat pojawia się więc, gdy zbiegną się dwie rzeczy: dokument wydania nie dostarcza żadnego SKU z ilością, a rozwiązanie dla jednej pozycji nie może zostać zastosowane. Jeśli obliczenie zwraca jakikolwiek SKU z ilością, ten warunek nie jest spełniony i metoda idzie inną ścieżką: dopasowuje każdy SKU do pozycji zwróconych przez Amazon.
Kiedy obliczenie według SKU daje wynik pusty
Główna ścieżka wychodzi od ruchów dokumentu wydania, które nie są anulowane, mają produkt i pochodzą z pozycji sprzedaży. Liczą się tylko te, których zrealizowana ilość jest większa od zera, a jako SKU moduł bierze wewnętrzny kod produktu z tej pozycji sprzedaży. Jeśli ten kod jest pusty, pozycja niczego nie dodaje.
Przed porównaniem moduł normalizuje SKU: zamienia go na wielkie litery, usuwa spacje, ujednolica myślniki innych typów i odrzuca każdy znak, który nie jest literą od A do Z ani cyfrą. Dlatego wielkie litery, spacje czy inne myślniki nie przeszkadzają w dopasowaniu dwóch SKU, ale kod, który po tym filtrze zostaje pusty (na przykład złożony wyłącznie z symboli), nic nie wnosi.
Istnieje też inna ścieżka, przewidziana dla zestawów (kitów), która wychodzi od zamówienia sprzedaży, gdy ma ono jedną pozycję handlową z kodem.
Kiedy nie można zastosować rozwiązania dla jednej pozycji
Przy pustym obliczeniu moduł sprawdza pozycje zwrócone przez Amazon. Rozwiązanie jest ważne tylko wtedy, gdy:
- Amazon zwrócił dokładnie jedną pozycję wraz z jej identyfikatorem pozycji;
- spełniony jest dodatkowo inny wewnętrzny warunek modułu dotyczący dokumentu wydania;
- łączna zrealizowana ilość w dokumencie wydania, po zaokrągleniu, jest większa od zera.
Jeśli wszystko jest spełnione, moduł używa tej jedynej pozycji Amazon, z ilością nieprzekraczającą zamówionej tam ilości, i zostawia ostrzeżenie w logu serwera. Jeśli Amazon zwróci więcej niż jedną pozycję albo któryś z pozostałych warunków zawiedzie, pojawia się komunikat. Dlatego tekst mówi o wielu pozycjach lub wielu produktach, ale może pojawić się także przy zamówieniu z jedną pozycją, jeśli dokument wydania nie ma użytecznej ilości.
Jak to rozwiązać krok po kroku
- Upewnij się, że to ten przypadek: dokument wydania ma status
Wykonano, kliknąłeśEnviar tracking Amazon, a treść błędu jest taka jak powyżej, w całości. - Sprawdź, jakie produkty zostały wydane w dokumencie wydania i z której pozycji sprzedaży pochodzą. Główna ścieżka liczy tylko ruchy nieanulowane, z produktem, powiązane z pozycją sprzedaży i o zrealizowanej ilości większej od zera.
- Sprawdź, czy każdy sprzedany produkt ma wewnętrzny kod służący jako SKU i czy nie zostaje pusty po normalizacji opisanej w poprzedniej sekcji.
- Sprawdź, czy ten kod zgadza się z SKU sprzedawcy, które Amazon ma na pozycji zamówienia. Gdy dokument wydania dostarcza SKU z ilością, moduł dopasowuje je do pozycji Amazon, stosując tę samą normalizację.
- Zobacz, ile pozycji ma zamówienie w Amazon. Przy jednej pozycji rozwiązanie dla jednej pozycji może uratować wysyłkę, jeśli spełnione są jego warunki. Przy kilku SKU z dokumentu wydania jest niezbędny.
- Popraw to, czego brakuje, i kliknij ponownie
Enviar tracking Amazon.
Jak pomaga FlexigoTech
Moduł jest opublikowany w Odoo Apps dla Odoo 17, 18, 19 i 20, a jego stronę na flexigotech.com możesz zobaczyć. Jeśli źródło problemu leży w sposobie kodowania produktów albo w sposobie sprzedaży na Amazon z Twojego Odoo, FlexigoTech wdraża Odoo 17, 18, 19 i 20 oraz tworzy konektory i integracje na zamówienie, więc możemy razem z Tobą przejrzeć kodowanie SKU i przepływ dokumentów wydania.
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
