Przejdź do głównej treści
Shopify

Błąd „Stock has one master” w Shopify Connector, krok po kroku

Komunikat pojawia się przy zapisie instancji Shopify z jednocześnie zaznaczonymi dwoma polami stanów: Sync Stock Enabled i Pull stock from Shopify. Odoo nie zapisze karty, dopóki nie zostanie tylko jedno, bo stan magazynowy może mieć tylko jednego właściciela: albo Odoo wysyła go do Shopify, albo Shopify przekazuje go do Odoo.

FlexigoTech · Odpowiada: Víctor Gómez · Aktualizacja: 5 listopada 2026

Najważniejsze

Moduł
Shopify
Wersje
Odoo 17, 18, 19 i 20
Sprawdzone
w kodzie źródłowym konektora, wersja 20.0 · w źródłach podanych na końcu
Czas czytania
4 min

Co widzisz i w którym momencie

Przy zapisie karty instancji Shopify Odoo może przerwać zapis takim tekstem: Stock has one master: push it from Odoo to Shopify or pull it from Shopify into Odoo, not both. Karta się nie zapisuje, więc to, co właśnie w niej zmieniono, nie zostaje zapisane.

W Odoo 20.0 kartę otwierasz z menu Sprzedaż, następnie Shopify, Control Center i Instances, w tej kolejności. Oba pola, których dotyczy problem, znajdują się na zakładce Operations, w grupie Sync Settings: Sync Stock Enabled i Pull stock from Shopify. Zgodnie z kodem oba są domyślnie odznaczone.

Schemat wykonany kodem, nie zrzut ekranu Odoo: od góry menu instancji, zapis z polami stanów i komunikat o błędzie
Schemat na podstawie opublikowanego kodu modułu (Odoo 17.0, 18.0, 19.0 i 20.0). Etykiety są po angielsku, tak jak w oryginalnym kodzie.
Your Odoo doesn't talk to Amazon, Temu or Shopify?
Wideo: Your Odoo doesn't talk to Amazon, Temu or Shopify? (wideo po angielsku)

Przykład, żeby to zobaczyć

Przykład Przypadek poglądowy: firma i jej dane są zmyślone, żeby pokazać przebieg.

Wyobraź sobie fikcyjny sklep Cerámicas del Norte, który sprzedaje w Shopify, a magazyn prowadzi w Odoo. Osoba zarządzająca połączeniem ma zaznaczone Sync Stock Enabled: Odoo jest właścicielem stanów i wysyła do Shopify swoją ilość na stanie. Pewnego dnia uznaje, że skoro już tu jest, to chce też, żeby Shopify przekazywało to, co dzieje się w sklepie. Zaznacza Pull stock from Shopify i klika zapisz. Pojawia się komunikat, a karta pozostaje bez zmian.

Połączenie jest nienaruszone: moduł po prostu zablokował konfigurację z dwoma właścicielami. Komentarz w samym kodzie tłumaczy to tak: przy obu aktywnych wysyłka z Odoo do Shopify i odczyt z Shopify do Odoo nadpisywałyby tę samą liczbę jedna drugą.

Osoba zarządzająca powinna zapamiętać, że najpierw decyduje się, kto rządzi stanami, a dopiero potem zaznacza się jedno pole. W sklepie z przykładu, jeśli właścicielem nadal ma być Odoo, odznacza się pole pobierające stany i zapisuje bez dalszych kroków.

Co dokładnie sprawdza moduł

To kontrola wykonywana przy zapisie, uruchamiana, gdy zmieni się którekolwiek z dwóch pól. Moduł przegląda zapisywane instancje: jeśli w którejś jednocześnie aktywne są Sync Stock Enabled i Pull stock from Shopify, przerywa akcję i wyświetla komunikat. W tym kodzie nie ma żadnego innego warunku: ani stanu połączenia, ani sklepu, ani magazynu.

Pomoc każdego pola opisuje znaczenie każdego kierunku:

  • Sync Stock Enabled: Odoo jest właścicielem stanów, a jego ilość na stanie jest wysyłana do Shopify. Pomoc dodaje, że pole nie może być aktywne jednocześnie z Pull stock from Shopify.
  • Pull stock from Shopify: Shopify jest właścicielem stanów. Każdy odczyt ustawia stan na ręku głównej lokalizacji Shopify w powiązanej lokalizacji Odoo, za pomocą korekty zapasów, odejmując to, co Odoo już wydało, a czego Shopify jeszcze nie zrealizowało.

Pomoc drugiego pola ostrzega ponadto, że stan na ręku w Shopify obejmuje także towar uszkodzony, w kontroli jakości lub jako zapas bezpieczeństwa, a w Odoo jest to zwykły stan jak każdy inny. Mówi też, że pole nie może być aktywne razem z innym sklepem, który pobiera stany do tej samej lokalizacji Odoo.

Jak to rozwiązać

  1. Otwórz instancję z menu instancji Shopify (ścieżka jest wyżej).
  2. Przejdź na zakładkę Operations i znajdź grupę Sync Settings.
  3. Zdecyduj, kto jest właścicielem stanów w tym sklepie. To decyzja biznesowa, nie modułu.
  4. Jeśli właścicielem jest Odoo, zostaw zaznaczone Sync Stock Enabled i odznacz Pull stock from Shopify.
  5. Jeśli właścicielem jest Shopify, zostaw zaznaczone Pull stock from Shopify i odznacz Sync Stock Enabled.
  6. Zapisz kartę. Gdy zaznaczone jest tylko jedno pole, ta kontrola przestaje blokować zapis.

Jeśli zdecydujesz, że rządzi Shopify, pomoc pola mówi, że jego aktywacja nie uruchamia odczytu: trzeba też włączyć zaplanowaną akcję pobierania stanów, którą wymienia ta pomoc. O odczycie stanów jest osobny artykuł: przycisk Pull Stock, krok po kroku.

Co sprawdzić potem

  • Czy karta zapisuje się bez komunikatu i czy w grupie Sync Settings zaznaczone jest tylko jedno z dwóch pól.
  • Jeśli właścicielem jest Shopify, czy zaplanowana akcja wspomniana w pomocy jest włączona.
  • Jeśli inny sklep pobiera stany do tej samej lokalizacji Odoo, czy dwa sklepy nie nakładają się na tej lokalizacji: pomoc wskazuje to jako kolejne ograniczenie pola Pull stock from Shopify.

Przy Odoo po hiszpańsku tekst błędu jest taki, jak wyżej. Ten schemat, wykonany kodem na podstawie opublikowanych tłumaczeń, pokazuje, jak komunikat brzmi w innych językach:

Schemat wykonany kodem, nie zrzut ekranu Odoo: ten sam komunikat po hiszpańsku, niemiecku, francusku, włosku i portugalsku
Schemat na podstawie opublikowanych tłumaczeń modułu.

Wersje i koszt

Komunikat znajduje się w opublikowanym kodzie wszystkich czterech gałęzi (17.0, 18.0, 19.0 i 20.0). Warunek, pola i menu opisane tutaj odpowiadają kodowi Odoo 20.0. Moduł jest opublikowany w Odoo Apps dla Odoo 17, 18, 19 i 20 w cenie 9 € za wersję Odoo, jednorazowo, netto (bez VAT), i wymaga subskrypcji FlexigoTech Cloud: plan Conector kosztuje 49 €/mies. lub 490 €/rok, netto (bez VAT).

Jak pomaga FlexigoTech

Jeśli wdrażasz Odoo i nadal nie masz jasności, kto ma być właścicielem stanów między sklepem a magazynem, FlexigoTech wdraża Odoo 17, 18, 19 i 20 oraz tworzy konektory i integracje na zamówienie. Tę decyzję warto podjąć, zanim zaznaczysz jakiekolwiek pole.

Jedno pole zaznaczone, drugie nie

Komunikat wynika z reguły modułu sprawdzanej przy zapisie. Zostaw zaznaczone tylko pole kierunku, który wybierzesz, a karta się zapisze.

Czytaj dalej

Co robi przycisk Pull Stock w Shopify Connector, krok po krokuCo robi przycisk Pull Stock w Shopify Connector dla Odoo 20: kiedy się pojawia, co sprawdza, jakie korekty magazynowe tworzy i jakie błędy może zgłosić.
Sprawdzone w kodzie źródłowym konektora (wersja 20.0) i w podlinkowanych źródłach

Źródła