Co widzisz i kiedy się pojawia
Po kliknięciu Zadeklaruj w Octopia w kreatorze, w którym znajduje się ten przycisk, Odoo może wyświetlić Zamówienia Fulfillment wysyłane są samodzielnie -- deklaracja takiego zamówienia zostałaby odrzucona (409) przez Octopia. To błąd: akcja zostaje zatrzymana i nic z tego, co przycisk miał zmienić, nie jest zapisywane.
Przycisk jest zawsze widoczny w tym kreatorze, w Odoo 17, 18, 19 i 20, a komunikat występuje w opublikowanym kodzie wszystkich czterech wersji. Trafiasz na niego po kliknięciu tego przycisku.


Dokładny warunek w kodzie
W kodzie Odoo 20 ostrzeżenie pojawia się, gdy jednocześnie spełnione są dwie rzeczy dotyczące deklarowanego zamówienia Octopia:
- zamówienie ma podany tryb zaopatrzenia (nie jest pusty);
- ten tryb zaopatrzenia nie jest trybem sprzedawcy.
Odwracając: jeśli tryb zaopatrzenia jest pusty, ostrzeżenie się nie pojawia; jeśli jest podany i jest to tryb sprzedawcy, również nie. Akcja zostaje zatrzymana tylko wtedy, gdy tryb jest podany i różni się od trybu sprzedawcy.
Co jest sprawdzane wcześniej, a co później
Kolejność ma znaczenie. Według kodu Odoo 20 kreator najpierw wymaga co najmniej jednej paczki. Sprawdzenie trybu zaopatrzenia następuje zaraz po tym wymogu, a przed przeglądem paczek jedna po drugiej, utworzeniem rekordu wysyłki i wywołaniem Octopia.
Dlatego gdy w kreatorze jest już jakaś paczka, nie ma znaczenia, jak wypełnione są jej dane: ostrzeżenie zależy od zamówienia, a nie od tego, co wpiszesz w kreatorze.
Co to oznacza
Komunikat mówi dwie rzeczy: że zamówienia Fulfillment są wysyłane samodzielnie oraz że deklaracja takiego zamówienia zostałaby odrzucona przez Octopia z kodem 409. Moduł nie czeka na to odrzucenie: uprzedza je i przerywa akcję, zanim cokolwiek zostanie wysłane. Dla tego zamówienia nie ma deklaracji wysyłki do złożenia z tego przycisku.

Przykład ilustracyjny: dwa zamówienia, dwa wyniki
Przykład Przypadek poglądowy: firma i jej dane są zmyślone, żeby pokazać przebieg.
Tienda Aurora to wymyślona firma, która sprzedaje na marketplace Cdiscount i obsługuje swoje zamówienia Octopia z poziomu Odoo. Beatriz z logistyki ma przed sobą dwa zamówienia, które już przygotowała.
Przy pierwszym otwiera kreator, dodaje paczkę, uzupełnia jej dane i klika Zadeklaruj w Octopia. Zamówienie nie ma podanego trybu zaopatrzenia albo ma i jest to tryb sprzedawcy, więc sprawdzenie przechodzi, a kreator idzie dalej.
Przy drugim robi dokładnie to samo, ale Odoo odpowiada Zamówienia Fulfillment wysyłane są samodzielnie -- deklaracja takiego zamówienia zostałaby odrzucona (409) przez Octopia. To zamówienie ma podany tryb zaopatrzenia różny od trybu sprzedawcy. Beatriz próbuje zmienić paczkę i wpisać innego przewoźnika, a wynik jest ten sam, ponieważ sprawdzenie odbywa się, zanim cokolwiek z tego zostanie przejrzane.
Czego uczy ten przypadek:
- Gdy w kreatorze jest jakaś paczka, ostrzeżenie dotyczy zamówienia, a nie paczki.
- W tej próbie nie utworzono żadnego rekordu wysyłki i nie wywołano Octopia.
- Beatriz nie ma nic do poprawienia w danych paczki: to zamówienie nie jest deklarowane stamtąd.
Co się dzieje, gdy sprawdzenie przechodzi
Dla porównania, oto co robi kreator z zamówieniem, które nie wywołuje ostrzeżenia, według kodu Odoo 20, po kolei:
- Wymaga co najmniej jednej paczki, a następnie sprawdza tryb zaopatrzenia zamówienia.
- Przegląda każdą paczkę (numer paczki i przewoźnik) i buduje listę, która zostanie wysłana.
- Tworzy rekord wysyłki z tymi paczkami.
- Wywołuje klienta Octopia z zamówieniem i listą paczek.
- Jeśli Octopia zwróci błąd, rekord wysyłki zostaje oznaczony jako błąd, z tekstem błędu i jego szczegółami, a błąd jest zgłaszany ponownie, abyś go zobaczył.
- Jeśli wszystko się powiedzie, rekord przechodzi w stan wysłany z datą i godziną, zamówienie przechodzi w stan wysłane, w dzienniku synchronizacji wysyłek zapisywany jest wpis o powodzeniu, a kreator się zamyka.
Przy ostrzeżeniu Fulfillment żaden z kroków następujących po sprawdzeniu nie ma miejsca.
Co zrobić, gdy się pojawi
- Zamknij kreator: z tego przycisku to zamówienie nie jest deklarowane.
- Nie trać czasu na numer paczki, przewoźnika ani śledzenie: sprawdzenie następuje wcześniej i ich nie analizuje.
- Jeśli spodziewałeś się, że możesz je zadeklarować, o wszystkim decyduje tryb zaopatrzenia zamówienia. Moduł odczytuje go z samego zamówienia i nie pozwala iść dalej, jeśli jest podany i nie jest to tryb sprzedawcy.
Konkretne pytania o ostrzeżenie
Czy coś jest zapisywane, gdy się pojawi?
Nie. To błąd, który zatrzymuje akcję: nie powstaje rekord wysyłki, Octopia nie jest wywoływana, a zamówienie nie zmienia stanu.
Czy pojawia się tak samo we wszystkich wersjach?
Komunikat występuje w opublikowanym kodzie Odoo 17, 18, 19 i 20.
Czy może się pojawić, jeśli zamówienie nie ma trybu zaopatrzenia?
Nie przy pustym trybie: warunek wymaga, aby był podany i aby różnił się od trybu sprzedawcy.
Czy ma znaczenie, jak wypełniona jest paczka?
Dla tego ostrzeżenia nie: sprawdzenie trybu zaopatrzenia następuje przed przeglądem danych każdej paczki. W kodzie Odoo 20 jedyne, czego wymaga się wcześniej, to co najmniej jedna paczka w kreatorze.
Jak pomaga FlexigoTech
FlexigoTech wdraża Odoo 17, 18, 19 i 20 oraz tworzy konektory i integracje na zamówienie. Jeśli masz zamówienia z różnymi trybami zaopatrzenia i chcesz uporządkować, jak są traktowane w Odoo, możemy to z Tobą przejrzeć. Moduł jest opublikowany dla czterech wersji na swojej stronie 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_octopia_connector 20.0 (4848da6a): wizard/octopia_shipment_wizard.py
- Kod modułu: flexigobe_octopia_connector 20.0 (4848da6a): views/octopia_completeness2_views.xml
- apps.odoo.com/apps/modules/20.0/flexigobe_octopia_connector
- flexigotech.com/en/services.html
