Co zadanie robi w każdym przebiegu

Co robi Mirakl - Sync Orders w każdym przebiegu?
Według kodu Odoo 20.0 przebieg wygląda następująco. Najpierw sprawdza, czy osoba, która je uruchamia, jest administratorem. Potem bierze aktywne marketplace'y z włączoną synchronizacją zamówień i zostawia te, do których może wykonać wywołanie (niżej: które odpadają). Dla każdego, na którego według jego interwału przyszła kolej, importuje zamówienia, a następnie sprawdza otwarte zamówienia, które już są w Odoo. Potem przechodzi do następnego marketplace'u.
Jak często działa i jak nazywa się w moim Odoo?
Działa co 10 minut i jest aktywne po zainstalowaniu modułu. Występuje we wszystkich opublikowanych gałęziach (Odoo 17, 18, 19 i 20), a w Odoo 17.0 powtarza się bez końca. Nazwa w Odoo po polsku to Mirakl - Sync Orders; kolejny schemat pokazuje nazwę zadania w innych językach.

Czy w każdym przebiegu importuje wszystkie marketplace'y?
Nie koniecznie: zależy to od własnego interwału każdego marketplace'u. Jeśli nie ma interwału (to wartość domyślna), importuje w każdym przebiegu, czyli co 10 minut. Jeśli ma interwał i istnieje już poprzednia synchronizacja zamówień, marketplace czeka, aż od ostatniej upłynie ten czas; jeśli jeszcze żadnej nie było, importuje. Zadanie nadal budzi się co 10 minut, ale ten marketplace pomija przebiegi, dopóki nie przyjdzie na niego kolej.

Co czyta z Mirakl i co sprawdza potem
Czego żąda od Mirakl przy imporcie zamówień i kiedy przestaje żądać?
Pobiera zamówienia stronami, z określonym rozmiarem strony i maksymalną liczbą stron na przebieg, od punktu początkowego w czasie. Każde zamówienie jest zapisywane osobno: jeśli któreś się nie powiedzie, zostaje wpis w rejestrze na poziomie błędu z numerem zamówienia, a przebieg idzie dalej z pozostałymi. Przestaje pobierać, gdy strona zawiera mniej zamówień niż wynosi rozmiar strony albo gdy przeczytał już łączną liczbę podaną w odpowiedzi; jeśli wyczerpie maksymalną liczbę stron, zapisuje wpis w rejestrze na poziomie ostrzeżenia. A jeśli strona przyjdzie bez zamówień i konektor nie rozpoznaje formy odpowiedzi, nie traktuje jej jak pustej strony: zapisuje błąd i przestaje pobierać strony.
Do czego służy sprawdzanie otwartych zamówień?
Import przyrostowy patrzy tylko na niedawne okno czasowe. Dlatego po imporcie zadanie ponownie odczytuje zamówienia, które już są w Odoo i jeszcze się nie zakończyły: dzięki temu zmiana statusu dokonana w marketplace'ie długo po utworzeniu zamówienia trafia do Odoo. Uruchamia się tylko wtedy, gdy to sprawdzanie jest włączone w marketplace'ie; w przeciwnym razie nic nie robi. Odczytuje zamówienia partiami: jeśli partia się nie powiedzie, zapisuje to w logu serwera i próbuje zamówienie po zamówieniu. Po zakończeniu każdej partii oznacza wszystkie jej zamówienia datą sprawdzenia, także te, których marketplace nie zwrócił, aby brakujące zamówienie nie blokowało rotacji pozostałych.
Co sprawdzić, gdy nic nie robi
Dlaczego pojawia się Only an administrator can run this scheduled action.?
Pierwsze, co robi zadanie, to sprawdza, czy osoba, która je uruchamia, jest administratorem. Jeśli nie jest, zatrzymuje się z tym komunikatem i nie przetwarza żadnego marketplace'u.
Które marketplace'y odpadają w przebiegu?
Te, które nie są aktywne lub nie mają włączonej synchronizacji zamówień. Spośród pozostałych pierwsze idą te, które nie przechodzą przez FlexigoTech Cloud; te, które przechodzą, są wywoływane tylko wtedy, gdy mają zapisany klucz, bo bez niego usługa by je odrzuciła, a jeśli uprawnienie zapisane w twoim Odoo nie obejmuje usługi modułu, żaden z marketplace'ów przechodzących przez FlexigoTech Cloud nie jest wywoływany (to sprawdzenie nie korzysta z sieci). Wreszcie te z własnym interwałem pomijają przebieg, dopóki nie przyjdzie na nie kolej. Karty marketplace'ów otwierasz z Mirakl › Configuration › Marketplaces.
Co się dzieje, gdy marketplace zwraca błąd albo FlexigoTech Cloud wstrzymuje połączenie?
Są dwie ścieżki. Jeśli marketplace zakończy się błędem, trafia on do logu serwera, zapisywany jest wpis w rejestrze na poziomie błędu z komunikatem błędu, a zadanie idzie do następnego marketplace'u; ponieważ sprawdzanie otwartych zamówień następuje po imporcie w tym samym bloku, ten marketplace w danym przebiegu do niego nie dochodzi. Jeśli natomiast FlexigoTech Cloud wstrzyma połączenie, zadanie przestaje w tym przebiegu przechodzić po marketplace'ach, a następny przebieg kontynuuje; marketplace'y bezpośrednie idą pierwsze, żeby żaden nie został w tyle. Wstrzymanie jest widoczne tylko w raporcie kondycji FlexigoTech Cloud, w postaci kodów, nigdy tekstu. Jeśli wstrzymanie nastąpi podczas sprawdzania otwartych zamówień, partia, która była właśnie czytana, nie jest oznaczana; partie już zakończone zachowują swoją datę sprawdzenia.
Czy potrzebuję subskrypcji FlexigoTech Cloud?
Tak. Mirakl Connector kupuje się jednorazowo dla danej wersji i wymaga subskrypcji FlexigoTech Cloud, plan Konektor: 49 €/mies. lub 490 €/rok, netto (bez VAT), do 3 kont platformy. Jest opublikowany dla Odoo 17, 18, 19 i 20; cena każdej wersji jest na karcie i na stronie modułu. Połączenie przechodzi przez FlexigoTech Cloud: przechowuje zaszyfrowane dane dostępowe, nadzoruje synchronizację i wysyła e-mail, jeśli coś zawiedzie. Bez subskrypcji albo przy zawieszonej usłudze zatrzymuje się to, co daje subskrypcja; dane zostają w twoim Odoo.
Jeśli wdrażasz Odoo i chcesz z kimś przejrzeć, jak ta synchronizacja będzie wyglądać, FlexigoTech wdraża Odoo 17, 18, 19 i 20 oraz tworzy konektory i integracje na zamówienie.
Czytaj dalej
Sprawdzone w kodzie źródłowym konektora (wersja 17.0 i 20.0) i w podlinkowanych źródłach
Źródła
- Kod modułu: flexigobe_mirakl_connector 20.0 (aa05e537): data/ir_cron_data.xml
- Kod modułu: flexigobe_mirakl_connector 17.0 (e430de3e): data/ir_cron_data.xml
- Kod modułu: flexigobe_mirakl_connector 20.0 (aa05e537): models/mirakl_instance.py
- Kod modułu: flexigobe_mirakl_connector 20.0 (aa05e537): models/mirakl_ai.py
- apps.odoo.com/apps/modules/20.0/flexigobe_mirakl_connector
- flexigotech.com/en/services.html
- flexigotech.com/precios.html
