Kiedy się pojawia i czego wymaga
Przycisk Pull Stock znajduje się w karcie Shopify Instances, którą otwierasz z menu Sprzedaż › Shopify › Control Center › Instances (przy Odoo po hiszpańsku pierwszy człon nazywa się Sprzedaż). Istnieje w gałęziach 17, 18, 19 i 20 modułu i jest widoczny zawsze, bez żadnych warunków.

Pull Stock i to, co może go zatrzymać.Aby coś zrobił, instancja potrzebuje aktywnego pola Pull stock from Shopify: dzięki temu Shopify staje się właścicielem stanów magazynowych. Zgodnie z jego pomocą nie może być aktywne jednocześnie z wysyłaniem stanów (Sync Stock Enabled) ani razem z innym sklepem, który pobiera stan do tej samej lokalizacji Odoo. Pomoc dodaje, że to, co Shopify liczy jako uszkodzone, w kontroli jakości lub jako zapas bezpieczeństwa, wchodzi do jego stanu: w Odoo jest to zwykły zapas jak każdy inny.

Krok po kroku
- Zacznij od drogi automatycznej. W karcie
Shopify Instances, na zakładceOperations, w grupieSync Settings, włączPull stock from Shopify. Domyślnie jest wyłączone. - Włącz też zadanie zaplanowane
Shopify Pull Stock (Shopify → Odoo): uruchamia się co sześć godzin i po instalacji jest wyłączone. Pomoc pola o tym ostrzega: jego włączenie nie uruchamia pobierania. - Naciśnij
Pull Stocktylko wtedy, gdy chcesz pobrać stany teraz, nie czekając na zadanie. To droga ręczna i przebiega według poniższych kroków. - Zanim cokolwiek utworzy, przycisk sprawdza, czy pole jest aktywne. Jeśli nie jest, zatrzymuje się i niczego nie zmienia.
- Następnie sprawdza, czy osoba naciskająca ma uprawnienia do Magazynowania, bo pobieranie robi korekty magazynowe. Jeśli ich nie ma, zatrzymuje się z komunikatem o uprawnieniach z tabeli.
- Tworzy wpis w dzienniku synchronizacji, typu pobieranie stanów, w toku.
- Szuka aktywnych powiązań produktów tej instancji, które mają pozycję magazynową Shopify, i odrzuca te, w których produkt innej firmy został powiązany przed poprawką. Jeśli nie zostanie żadne, zamyka wpis jako zakończony, z notatką, i niczego nie zmienia.
- Ustala lokalizację w Odoo: powiązaną z główną lokalizacją Shopify lub, jeśli jej nie ma, lokalizację zapasów magazynu sklepu (jego firmy). Jeśli nie znajdzie żadnej, oznacza wpis jako nieudany i zapisuje w nim powód.
- Sprawdza, czy żaden inny aktywny sklep z włączonym polem nie pobiera stanów do tej samej lokalizacji, do lokalizacji w jej wnętrzu ani do takiej, która ją zawiera. Jeśli tak jest, oznacza wpis jako nieudany i przerywa, nie ruszając zapasów.
- Używa lokalizacji Shopify zapisanej w
Default Location Gid(zakładkaWebhookskarty). Jeśli jest pusta, prosi Shopify o jego pierwszą lokalizację i zapisuje ją tam. - Pyta Shopify, w paczkach po sto pozycji, ile jest w tej lokalizacji (to, co jest w środku, łącznie z tym, co już zarezerwowane).
- Pomija produkty śledzone partiami lub numerami seryjnymi, te, które nie są magazynowane, oraz zestawy, i odnotowuje je. Produkty, dla których Shopify nie zwróciło ilości, zostają nietknięte.
- Jeśli w lokalizacji Odoo (wraz z jej podlokalizacjami) czeka inwentaryzacja tego produktu, nie nadpisuje jej: zostawia produkt bez korekty i odnotowuje to.
- Oblicza różnicę: stan ze Shopify, minus to, co Odoo wydało z tej lokalizacji (wraz z podlokalizacjami) dla otwartych zamówień sklepu, a Shopify jeszcze nie zrealizowało, minus to, co Odoo ma dostępne w lokalizacji. Nie liczy tego, co zrealizował konektor, ani zamówień, które Shopify zrealizowało inną drogą.
- Jeśli różnica jest dodatnia, tworzy i stosuje korektę magazynową, która zwiększa zapas lokalizacji. Jeśli jest ujemna, zmniejsza go, zabierając ze stanu lokalizacji (łącznie z podlokalizacjami i paczkami, nigdy tego, co należy do właściciela), w kolejności wydania. Jeśli Odoo nie ma wystarczającego zapasu do skorygowania w dół, nie koryguje tego produktu i liczy to jako błąd.
- Każdy produkt jest obsługiwany osobno: jeśli jeden zawiedzie, liczy się jako błąd i przechodzi do następnego. Gdy skoryguje produkt, zapisuje datę synchronizacji w jego powiązaniu.
- Zamyka wpis notatką: ile ilości pobrał oraz które produkty pominął, zostawił z oczekującą inwentaryzacją lub nie zdołał zmniejszyć. Wpis jest poprawny, jeśli nie było błędów, częściowy, jeśli były błędy i coś zaktualizowano, i nieudany, jeśli były błędy i nic nie zaktualizowano.
Niektóre komunikaty, które może zgłosić przycisk
| Komunikat | Kiedy się pojawia | Co zrobić |
|---|---|---|
Pulling stock from Shopify makes inventory adjustments: it needs Inventory rights. | Po naciśnięciu przycisku bez uprawnień do Magazynowania. | Niech naciśnie go użytkownik z uprawnieniami do Magazynowania. |
Shopify stock pull failed for …: … | Gdy coś zawiedzie podczas pobierania, już po utworzeniu wpisu. Najpierw jest domena sklepu (Shop Domain), potem powód. | Przeczytaj powód po dwukropku: wpis zostaje jako nieudany z tym tekstem. |
Jeśli FlexigoTech Cloud wstrzymało usługę, kod usuwa wpis z dziennika i nie zostawia go jako nieudanego; w takim przypadku komunikat o niepowodzeniu z ostatniego wiersza nie jest generowany.

Co sprawdzić potem
Otwórz wpis tego uruchomienia: jego status i notatka mówią, ile ilości pobrano oraz które produkty pominięto, zostawiono z powodu oczekującej inwentaryzacji lub nie udało się ich zmniejszyć. Korekty zostają w historii magazynu i są wyceniane jak każde inne. Jeśli produkt pojawia się w notatce z powodu oczekującej inwentaryzacji, sama notatka wskazuje, by zastosować ją lub usunąć w Odoo.
Koszt i pomoc
Moduł kosztuje 9 € za wersję Odoo, dla 17, 18, 19 i 20, netto (bez VAT), jednorazowo. Potrzebuje dodatkowo subskrypcji FlexigoTech Cloud: plan Konektor kosztuje 49 €/mies. lub 490 €/rok netto (bez VAT).
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 20.0) i w podlinkowanych źródłach
Źródła
- Kod modułu: flexigobe_shopify_connector 20.0 (c7078cd8): views/shopify_instance_views.xml
- Kod modułu: flexigobe_shopify_connector 20.0 (c7078cd8): models/shopify_instance.py
- Kod modułu: flexigobe_shopify_connector 20.0 (c7078cd8): models/fgt_cloud.py
- apps.odoo.com/apps/modules/17.0/flexigobe_shopify_connector
- apps.odoo.com/apps/modules/18.0/flexigobe_shopify_connector
- apps.odoo.com/apps/modules/19.0/flexigobe_shopify_connector
- apps.odoo.com/apps/modules/20.0/flexigobe_shopify_connector
- flexigotech.com/precios.html
- flexigotech.com/en/services.html
