Przed pierwszym przebiegiem
Po instalacji jest wyłączone
Zadanie Shopify Sync Orders uruchamia się co 5 minut, ale instaluje się jako wyłączone: dopóki ktoś go nie włączy, nie ma żadnych przebiegów. Istnieje w gałęziach 17, 18, 19 i 20. W Odoo 17.0 jest skonfigurowane tak, by powtarzać się bez końca.

Nazwa zadania zależy od języka Twojego Odoo: po niemiecku to Shopify-Bestellungen synchronisieren; po francusku Synchroniser les commandes Shopify; po włosku Sincronizza ordini Shopify; po portugalsku Sincronizar encomendas Shopify; a w pozostałych językach, w tym po polsku, moduł go nie tłumaczy i zadanie nazywa się Shopify Sync Orders.

Uruchamia je tylko administrator
Pierwsza rzecz, którą sprawdza metoda, to czy uruchamia ją administrator systemu. Jeśli nie, zatrzymuje się z komunikatem Only an administrator can run this scheduled action. i nawet nie zagląda do żadnego sklepu.
Nie każdy sklep trafia do obchodu
Zadanie obsługuje tylko sklepy, które są aktywne, mają włączoną synchronizację zamówień i przechowują token dostępu lub sekret API aplikacji. Ostatni wymóg wyjaśnia kod: sklep z danymi uwierzytelniającymi klienta może nie mieć zapisanego tokenu, dopóki jego pierwsze wywołanie go nie wygeneruje, więc wystarczy, że ma dane uwierzytelniające. O tym, kto wchodzi, decyduje właśnie ten filtr.
Karty sklepów otwierasz z Shopify › Configuration › Stores. Każdy człon menu wymaga uprawnienia: Configuration wymaga Operator, a Shopify wymaga Viewer. Jeśli nie masz któregoś z nich, nie widzisz tego członu.

Co dzieje się w każdym przebiegu
Spokojny sklep nie przegląda całej swojej historii
Pierwsze wyszukiwanie łączy warunki importu sklepu z filtrem daty. Jeśli niczego nie znajdzie, kod powtarza wyszukiwanie bez filtra daty tylko wtedy, gdy sklep nigdy nie zaimportował zamówień. Jeśli jakieś już zaimportował, przebieg kończy się tutaj: kod traktuje ten wynik jako normalny stan sklepu bez ruchu, a powtórzenie wyszukiwania bez filtra przeglądałoby historię od najstarszego zamówienia w każdym przebiegu.
Zero zamówień to nie błąd, ale zostawia komunikat
Jeśli przebieg nie przyniesie żadnego zamówienia (nawet po wyszukiwaniu bez filtra, gdy sklep nigdy nic nie zaimportował), kod nie traktuje tego jako awarii i zostawia komunikat na karcie sklepu: Shopify order sync returned 0 orders for …. Check that this app is connected to the expected shop and add scope read_all_orders if you need orders older than 60 days. Zamiast wielokropka pojawia się domena sklepu. W takim przypadku data ostatniej synchronizacji się nie zmienia.
Jeśli od dni nie widzisz zamówień, przeczytaj ten komunikat: prosi o sprawdzenie, czy aplikacja jest połączona z właściwym sklepem i, jeśli potrzebujesz zamówień starszych niż 60 dni, o dodanie scope read_all_orders.
Jeśli przerwie go limit stron, data nie cofa się
Gdy przebieg importuje zamówienia, zapisuje datę ostatniej synchronizacji, zeruje licznik kolejnych błędów i usuwa ostatni błąd. Jeśli zatrzymał go limit stron, zapisuje datę ostatniego zaimportowanego zamówienia zamiast aktualnej godziny, pod warunkiem że jest późniejsza niż zapisana ostatnia synchronizacja (lub że żadnej nie było); jeśli nie jest, zapisuje aktualną godzinę. Dzięki temu data nie przesuwa się wstecz: kod tego pilnuje, aby przerwany przebieg, który zaczął od początku historii, nie zmuszał do przeglądania jej od nowa, podczas gdy dzisiejsze zamówienia czekają.
W takim przypadku zadanie zostawia też na karcie sklepu komunikat, że zostały zamówienia do pobrania i od jakiej daty będzie kontynuował następny przebieg.
Jeden sklep po drugim, a prawdziwa awaria zostawia ślad
Zadanie obchodzi sklepy jeden po drugim i wywołuje synchronizację każdego z nich wewnątrz bloku przechwytującego błędy. Jeśli wystąpi nieoczekiwany błąd, sklep zwiększa o jeden licznik kolejnych błędów i zapisuje ostatni błąd. Błąd trafia do zadania, które zapisuje go w dzienniku serwera z nazwą sklepu i przechodzi do następnego: awaria jednego sklepu nie wstrzymuje pozostałych.
Są dwa wyjątki. Jeśli FlexigoTech Cloud wstrzymał synchronizację, kod odrzuca zapis tego przebiegu, aby nie został jako nieudany. A własne ostrzeżenie modułu, z tych, które Odoo pokazuje w oknie błędu, nie zwiększa licznika kolejnych błędów.
Jeśli wygląda, że nic nie robi
- Sprawdź, czy zadanie jest aktywne: instaluje się jako wyłączone.
- Sprawdź, czy uruchamia je administrator systemu.
- Pamiętaj, czego zadanie wymaga od każdego sklepu: być aktywnym, mieć włączoną synchronizację zamówień i przechowywać token dostępu lub sekret aplikacji. Karty otwierasz z
Shopify › Configuration › Stores. - Czytaj komunikaty na karcie sklepu: ten o zerze zamówień mówi, co sprawdzić.
- Pamiętaj, że bez subskrypcji lub przy zawieszonej usłudze zatrzymuje się to, co daje subskrypcja; dane zostają w Twoim Odoo.
Subskrypcja i pomoc
Moduł jest płatny jednorazowo za wersję i wymaga subskrypcji FlexigoTech Cloud: plan Konektor, 49 €/mies. lub 490 €/rok netto (bez VAT), do 3 kont platformy. Połączenie przechodzi przez FlexigoTech Cloud, który przechowuje dane dostępowe w formie zaszyfrowanej, czuwa nad synchronizacją i ostrzega e-mailem, gdy zawiedzie. Moduł jest opublikowany dla Odoo 17, 18, 19 i 20; cenę każdej wersji znajdziesz na karcie Odoo Apps lub na stronie modułu.
O stanach magazynowych mamy inny artykuł: co robi przycisk stanów magazynowych w module. Jeśli chcesz wdrożyć Odoo ze Shopify lub konektor na zamówienie, 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_shopify_seller_connector 20.0 (d7e627b4): data/ir_cron_data.xml
- Kod modułu: flexigobe_shopify_seller_connector 17.0 (437257e3): data/ir_cron_data.xml
- Kod modułu: flexigobe_shopify_seller_connector 20.0 (d7e627b4): models/shopify_instance.py
- Kod modułu: flexigobe_shopify_seller_connector 20.0 (d7e627b4): models/fgt_cloud.py
- apps.odoo.com/apps/modules/20.0/flexigobe_shopify_seller_connector
- flexigotech.com/precios.html
- flexigotech.com/en/services.html
