Co sprawdza moduł, zanim wyświetli komunikat
Komunikat Request Override JSON must be an object/dict payload. zgłasza krok modułu, który buduje dane wysyłane do Temu z karty Fulfillment. Ten krok jest uruchamiany po kliknięciu przycisku Execute na karcie. W Odoo 17, 18 i 19 ten przycisk jest zawsze widoczny, a komunikat znajduje się w opublikowanym kodzie wszystkich trzech gałęzi.
Logika kodu jest krótka i wygląda tak:
- Jeśli pole
Request Override Jsonma zawartość, moduł sprawdza, jakiego typu są to dane. - Jeśli ta zawartość nie jest obiektem (słownikiem kluczy i wartości), akcja zostaje zatrzymana z tym komunikatem.
- Jeśli jest obiektem, moduł zwraca kopię tego obiektu bez zmian i nie czyta pozostałych pól karty, aby zbudować dane do wysłania.
- Jeśli pole jest puste, kod nie wchodzi w to sprawdzenie. W większości operacji przechodzi do zbudowania danych do wysłania na podstawie typu operacji z karty i jej pól. W operacjach magazynu kooperacyjnego nie buduje nic: pole musi być wypełnione, a gdy jest puste, akcja zatrzymuje się z innym komunikatem.
Innymi słowy, ten komunikat nie mówi o brakującej danej: mówi o tym, że wpisano dane w złej formie. Na przykład tablica elementów zamiast obiektu już spełnia warunek błędu.


Zanim klikniesz Execute
Szybki przegląd karty pozwala uniknąć błędu. Karty Fulfillment otwierasz z menu Temu › Orders & Fulfillment › Fulfillment.
- Otwórz kartę «Fulfillment» z menu
Temu › Orders & Fulfillment › Fulfillment. - Przejdź do zakładki
Payload Override. - Spójrz na pole
Request Override Json. Jego pomoc brzmi: «Optional payload override. If set, it is sent as-is.». - Zdecyduj, czy naprawdę chcesz zastąpić to, co buduje moduł. Jeśli wypełnisz pole, wysłane zostanie dokładnie to, co wpiszesz.
- Jeśli nie chcesz niczego zastępować, zostaw pole puste, chyba że operacja na karcie dotyczy magazynu kooperacyjnego: w takich operacjach pole musi być wypełnione.
- Jeśli je wypełniasz, wpisz jeden obiekt JSON: jeden blok kluczy i wartości, a nie tablicę elementów ani pojedynczy tekst czy liczbę.
Pole Request Override Json znajduje się w zakładce Payload Override karty Fulfillment.
Jeśli komunikat już się pojawił
Błąd ma w kodzie jeden warunek: pole Request Override Json jest wypełnione, a jego zawartość nie jest obiektem. Oto kroki, po kolei.
- Zamknij komunikat i nie klikaj jeszcze ponownie
Execute: przy tej samej zawartości pojawi się ten sam komunikat. - Otwórz zakładkę
Payload Overridetej samej karty. - Przeczytaj, co jest w
Request Override Json, i sprawdź, czy to obiekt (blok kluczy i wartości), czy coś innego, na przykład tablica elementów. - Jeśli to była tablica, przepisz zawartość jako jeden obiekt JSON albo wyczyść pole. Wyczyszczenie pola wystarczy tylko wtedy, gdy operacja nie dotyczy magazynu kooperacyjnego; w takich operacjach pole musi zawierać obiekt.
- Jeśli nie zamierzałeś zastępować tego, co buduje moduł, wyczyść pole (znowu z wyjątkiem operacji magazynu kooperacyjnego).
- Zapisz kartę z poprawionym polem.
- Kliknij ponownie
Execute.
Gdy wyczyścisz pole, kod nie wchodzi już w sprawdzenie tego komunikatu. W większości operacji przechodzi do zbudowania danych do wysłania na podstawie typu operacji i jej pól, czyli inną ścieżką z własnymi kontrolami, którą opisuje przycisk Execute krok po kroku. W operacjach magazynu kooperacyjnego pole musi być wypełnione: gdy jest puste, akcja zatrzymuje się z innym komunikatem.

Execute.Po poprawieniu
Po zapisaniu i ponownym kliknięciu przycisku sprawdź poniższe punkty.
- Komunikat
Request Override JSON must be an object/dict payload.już się nie pojawia. - Jeśli zostawiłeś pole wypełnione, jego zawartość jest obiektem i dokładnie tym, co chcesz wysłać, ponieważ moduł kopiuje go bez zmian i nie uzupełnia go innymi polami karty.
- Jeśli wyczyściłeś je w operacji niedotyczącej magazynu kooperacyjnego, sprawdź, czy karta ma poprawnie ustawione dane wybranej operacji, bo teraz moduł czyta te pola zamiast używać Twojej zawartości.
- Jeśli operacja dotyczy magazynu kooperacyjnego, a pole wyczyściłeś, akcja zatrzyma się z innym komunikatem: tam pole musi zawierać obiekt.
- Jeśli pojawi się inny komunikat, to nie jest już ten błąd: to inna kontrola modułu i trzeba spojrzeć na jej własny tekst.
Pytania, które sobie zadasz
Czy może się pojawić, gdy pole jest puste?
Nie przy tym warunku: kod sprawdza typ zawartości tylko wtedy, gdy pole coś zawiera. Przy pustym polu przechodzi do operacji z karty, z wyjątkiem operacji magazynu kooperacyjnego, gdzie zatrzymuje się z innym komunikatem, ponieważ pole musi być wypełnione.
Gdzie pojawia się komunikat?
Po kliknięciu przycisku Execute na karcie Fulfillment: właśnie tam metoda dochodzi do sprawdzenia.
Co dzieje się z akcją, gdy komunikat się pojawi?
Komunikat zatrzymuje akcję: przycisk Execute nie kontynuuje tego, co miało zostać wysłane.
Czy jest tak samo we wszystkich wersjach?
Komunikat znajduje się w opublikowanym kodzie gałęzi 17.0, 18.0 i 19.0. Moduł jest opublikowany w Odoo Apps także dla wersji 20.0.
Jeśli potrzebujesz pomocy przy integracji
Jeśli w Twoim przypadku do Temu trzeba wysyłać zawartość na miarę i chcesz, żeby ktoś przejrzał ją razem z Tobą, możesz zajrzeć na stronę modułu. FlexigoTech wdraża Odoo 17, 18, 19 i 20 oraz tworzy konektory i integracje na zamówienie, na wypadek gdyby Twoja sprawa wykraczała poza to pole.
Czytaj dalej
Sprawdzone w kodzie źródłowym konektora (wersja 19.0) i w podlinkowanych źródłach
Źródła
- Kod modułu: flexigobe_temu_connector 19.0 (455b3f0f): models/temu_fulfillment.py
- Kod modułu: flexigobe_temu_connector 19.0 (455b3f0f): views/temu_fulfillment_views.xml
- apps.odoo.com/apps/modules/19.0/flexigobe_temu_connector
- flexigotech.com/en/services.html
