Gdzie jest przycisk i kiedy go widać
Karty wysyłki otwiera się z menu Temu › Orders & Fulfillment › Fulfillment. Na tym ekranie jest przycisk Execute, który zawsze widać w karcie, bez żadnego warunku w widoku, i który występuje w Odoo 17, 18 i 19. Wszystko, co poniżej opisuje jego działanie, odpowiada kodowi opublikowanemu dla Odoo 19.
Przycisk uruchamia operację, którą niesie karta, za pośrednictwem przypisanej jej instancji Temu. Najpierw sprawdza, czy jest instancja i czy da się zbudować żądanie; potem zapisuje statusy i przechowuje odpowiedź Temu.


Execute.
Co dzieje się bez klikania
Część pracy tego przycisku odbywa się także bez jego naciskania. Moduł rozszerza zapis karty dokumentu WZ oraz standardowy przycisk zatwierdzania dokumentu WZ i stamtąd może uzgodnić przesyłkę, którą Temu uznawało już za wysłaną. Robi to tylko wtedy, gdy spełnione jest wszystko poniższe:
- Istnieją karta wysyłki, zamówienie Temu i odnośnik przesyłki.
- Ostatni błąd karty wysyłki wskazuje, że zamówienie zostało już wysłane: ma kod
120012004albo tekst z Temu mówiący, że zamówienie zostało już wysłane i że zmiana nie obowiązuje dla zamówienia wysłanego. - Zamówienie ma numer zamówienia nadrzędnego z Temu (albo identyfikator zamówienia z Temu) oraz numer zamówienia.
Wtedy moduł pyta Temu o status własnej przesyłki. Jeśli odpowiedź zawiera numer przesyłki, karta przechodzi na Done, ostatni błąd jest czyszczony, stosowane jest to samo podsumowanie wyniku, którego używa przycisk, dokument WZ zostaje oznaczony jako zsynchronizowany i dodawana jest do niego notatka. Jeśli zapytanie się nie powiedzie albo numeru przesyłki nie ma, nic się nie zmienia.
Aby uruchomić operację ręcznie z karty, służy przycisk Execute.
Przykład: Hogar Norte uruchamia operację
Przykład Przypadek poglądowy: firma i jej dane są zmyślone, żeby pokazać przebieg.
Hogar Norte to wymyślony sklep, który sprzedaje na Temu i obsługuje wysyłki z Odoo. Osoba z zespołu otwiera Temu › Orders & Fulfillment › Fulfillment i wchodzi w nową kartę. Zobaczmy, co dzieje się przy każdej próbie.
Pierwsza próba: bez instancji
Klika Execute przy pustym polu Instance (widać je w karcie i na liście Fulfillment). Metoda sprawdza to najpierw i zatrzymuje się z komunikatem Temu instance is required.. Nie zapisała żadnego statusu ani żadnego żądania: karta zostaje taka, jaka była.
Druga próba: brakuje danej
Karta niesie zapytanie o firmy logistyczne. Mimo ustawionej instancji moduł próbuje zbudować żądanie i zatrzymuje się z komunikatem regionId is required for logistics companies query.. Nadal nic nie zostało zapisane. Komunikat mówi, jakiej danej brakuje: osoba ją uzupełnia i klika ponownie.
Trzecia próba: wszystko się udaje
Teraz metoda działa w takiej kolejności:
- Buduje żądanie z danych karty. Jeśli pole
Request Override Json(zakładkaPayload Override) jest wypełnione i jest obiektem, używa jego zawartości bez zmian jako żądania. - Zapisuje status
Running, zapisuje zbudowane żądanie i godzinę żądania oraz czyści ostatni błąd. - Wywołuje instancję Temu z operacją odpowiadającą karcie.
- Jeśli Temu odpowie poprawnie, przygotowuje podsumowanie wyniku: jeśli odpowiedź zawiera numery paczek, zapisuje je posortowane i bez powtórzeń, a jeśli karta nie miała numeru paczki, bierze pierwszy; jeśli zawiera ostrzeżenia, zapisuje je po jednym w wierszu; jeśli zawiera rezerwację odbioru, zapisuje jej numer.
- Za jednym razem zapisuje
Done, odpowiedź, wynik, to podsumowanie i godzinę zakończenia oraz zostawia ostatni błąd pusty.
Podsumowanie jest liczone przed zapisaniem Done. Jeśli podsumowanie się nie powiedzie, Done nie zostaje zapisane: metoda traktuje to jak każdy inny błąd.
Gdy coś zawiedzie po Running
Jeśli operacja lub podsumowanie zawiodą po zapisaniu Running, kod zapisuje Failed z godziną zakończenia i tekstem błędu, a następnie rzuca błąd ponownie; to właśnie ostrzeżenie widzi osoba po kliknięciu. Sprawdź status w karcie, zamiast zakładać, jaki został.
Komunikaty, które mogą zatrzymać przycisk
Po kliknięciu Execute te komunikaty pojawiają się, gdy moduł przygotowuje żądanie, przed zapisaniem Running. To tylko niektóre z możliwych:
Temu instance is required.: karta nie ma instancji.Request Override JSON must be an object/dict payload.: zawartość polaRequest Override Jsonkarty nie jest obiektem.Provide orderSnList or payload lines for shipping services query.: w zapytaniu o usługi wysyłkowe nie ma ani listy zamówień, ani pozycji.regionId is required for ship logistics type query.: brakuje tej danej w zapytaniu o typy logistyki wysyłkowej.regionId is required for logistics companies query.: brakuje tej danej w zapytaniu o firmy logistyczne.packageSnList is required for buy shipping result query.: brakuje listy paczek w zapytaniu o wynik zakupionej wysyłki.packageSnList is required for shipping document query.: brakuje listy paczek w zapytaniu o dokumenty wysyłkowe.parentOrderSn and orderSn are required for self shipment status query.: brakuje tych danych w zapytaniu o status własnej przesyłki.mainPackageSn (package_sn) is required for shipment sub confirm.: brakuje paczki głównej przy potwierdzaniu podpaczek.At least one sub package request is required.: brakuje co najmniej jednego żądania podpaczki.pickupStartTime and pickupEndTime are required for pickup reservation creation.: brakuje godzin rezerwacji odbioru.packageSnList is required for pickup reservation creation.: brakuje listy paczek przy tworzeniu rezerwacji odbioru.packageSnList is required for pickup reservation result query.: brakuje listy paczek przy sprawdzaniu wyniku rezerwacji.reservationSn is required for pickup reservation cancellation.: brakuje numeru rezerwacji przy jej anulowaniu.packageSn is required for tracking info query.: brakuje paczki w zapytaniu o śledzenie.Set Request Override JSON for cooperative warehouse operation '…'.: przy operacjach magazynu kooperacyjnego komunikat prosi o wypełnienie polaRequest Override Json.
Czego uczy ten przykład
- Kolejność jest stała: najpierw instancja, potem żądanie, na końcu statusy.
- Powyższe komunikaty zatrzymują akcję, zanim cokolwiek zostanie zapisane: naprawia się je, uzupełniając to, o co proszą.
Donezapisuje się za jednym razem razem z odpowiedzią, wynikiem i podsumowaniem; jeśli podsumowanie zawiedzie, karta przechodzi naFailed.- Podsumowanie wyniku jest takie samo, jak w automatycznym uzgadnianiu dokumentu WZ.
- Błąd po
Runningjest rzucany ponownie i zostawia kartę wFailed; po kliknięciu sprawdź status.
Jak pomaga FlexigoTech
Temu Connector for Odoo to jednorazowa opłata za wersję i wymaga subskrypcji FlexigoTech Cloud (plan Konektor: 49 €/mies. lub 490 €/rok, netto (bez VAT)). Jest opublikowany dla Odoo 17, 18, 19 i 20. Połączenie przechodzi przez FlexigoTech Cloud, który przechowuje dane uwierzytelniające w postaci zaszyfrowanej i wysyła e-mail, gdy synchronizacja zawiedzie. Moduł możesz zobaczyć na jego stronie lub w karcie w Odoo Apps.
Jeśli wdrażasz Odoo i potrzebujesz zbudować logistykę z Temu albo integrację na miarę, FlexigoTech wdraża Odoo 17, 18, 19 i 20 oraz tworzy konektory i integracje.
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): views/temu_fulfillment_views.xml
- Kod modułu: flexigobe_temu_connector 19.0 (455b3f0f): models/temu_fulfillment.py
- Kod modułu: flexigobe_temu_connector 19.0 (455b3f0f): models/stock_picking.py
- apps.odoo.com/apps/modules/19.0/flexigobe_temu_connector
- flexigotech.com/precios.html
- flexigotech.com/en/services.html
