Poniższy opis metody pochodzi z kodu Odoo 20. Przycisk jest w gałęziach 17, 18, 19 i 20, z tym samym warunkiem widoczności.
Gdzie jest i kiedy go widać
Gdzie jest przycisk Devolver Stock i kiedy się pojawia?
Znajduje się w karcie Shopify Refunds, którą otwierasz z Sprzedaż › Shopify › Operations › Refunds. Widok pokazuje go tylko wtedy, gdy pole Stock Return ma wartość oczekujący, w przeglądzie lub nieudany; przy każdej innej wartości go ukrywa. Przy wartościach domyślnych go nie widać, bo to pole startuje z wartością, która nie jest żadną z tych. W Odoo po hiszpańsku przycisk nazywa się Devolver Stock; drugi schemat pokazuje, jak jest podpisany w innych językach.


Devolver Stock, po niemiecku Lager zurückgeben, po francusku Retourner au stock, po włosku Restituisci al magazzino i po portugalsku Devolver ao stock.Co się dzieje, jeśli zwrot zapasów był już wykonany?
Metoda sprawdza to w pierwszej kolejności. Jeśli pole było w stanie nieudany, a przesunięcie zwrotne było już wykonane, oznacza je jako wykonane i czyści tekst błędu. Jeśli było już wykonane i istnieje Return Transfer, otwiera to przesunięcie; jeśli żadnego nie ma, nie robi nic więcej.

Co sprawdza i co tworzy
Jak decyduje, które produkty zwraca?
Czyta pozycje przywrócenia na stan w zwrocie, czyli to, co Shopify przywrócił na stan. Odrzuca te o ilości zero lub mniejszej. Dla każdej szuka najpierw produktu po ID wariantu z Shopify, a jeśli go nie znajdzie, po SKU. Pozycje, których nie da się rozpoznać, nie trafiają do zwrotu i zostawiają ostrzeżenie w logu. Jeśli nie zostanie żaden produkt, metoda zatrzymuje się z komunikatem opisanym niżej.
Co robi, gdy zwrot ma zamówienie sprzedaży z zatwierdzonymi dostawami?
W karcie pole Sale Order jest w grupie Amounts. Kod szuka wydań z tego zamówienia, które są już wykonane. Jeśli jakieś są, oblicza, ile zostało do zwrotu z każdego produktu: to, co Shopify przywrócił na stan we wszystkich zwrotach tego zamówienia, minus to, co już wróciły niewycofane zwroty (także te wykonane przez samo Odoo), i nigdy więcej niż dostarczono. Podział idzie od najstarszej dostawy do najnowszej, nie przekraczając tego, co wysłała każda z nich, pomniejszonego o to, co już z niej wróciło.
Tworzy jeden zatwierdzony zwrot dla każdej dotkniętej dostawy, więc może ich być kilka. Gdy dostawa ma ruch tego produktu, zwrot jest z nim powiązany jako zwrot samego Odoo, dzięki czemu dostawa liczy go jako zwróconą.
Jeśli nie zostało nic do zwrotu, nie tworzy żadnego przesunięcia: oznacza zwrot zapasów jako wykonany, czyści błąd, zostawia w dostawach, które wysłały te produkty, notatkę Shopify refund …: nothing left to return from this delivery, Odoo already returned it. i otwiera pierwszą z nich.
A jeśli nie ma zamówienia ani żadnej zatwierdzonej dostawy?
Wtedy tworzy ręczne przesunięcie przychodzące, ze źródłem w lokalizacji klientów i miejscem docelowym w lokalizacji zapasów magazynu. Magazyn to ten skonfigurowany w instancji Shopify, a jeśli go nie ma, pierwszy znaleziony w firmie instancji. Używa typu operacji przyjęcia z tego magazynu, nadaje każdemu ruchowi opis Return: … z nazwą produktu, potwierdza przesunięcie, rezerwuje je, oznacza żądaną ilość jako wykonaną i zatwierdza je.
Co się zmienia, gdy wszystko się uda?
Zwrot zapasów zostaje oznaczony jako wykonany, tekst błędu jest czyszczony, a pole Return Transfer w grupie Amounts karty wskazuje pierwsze utworzone przesunięcie. To pole jest ukryte, dopóki jest puste, i wypełnia je przycisk, nie użytkownik. Wszystkie przesunięcia mają jako źródło Shopify Refund … z nazwą zwrotu (pole Name, grupa Shopify).
Przycisk zostawia notatki w przesunięciach: w każdym zwrocie Stock returned from Shopify refund …. Transfer: …, a jeśli pochodzi z dostawy, w tej dostawie Shopify refund …: returned in …. Na końcu otwiera pierwsze przesunięcie zwrotne.
Błędy i co zrobić
Co zrobić z komunikatem No restockable products found for this refund. Make sure products are linked by SKU or Shopify variant ID.?
To komunikat, który przycisk wyświetla, gdy po odczytaniu pozycji nie zostaje żaden produkt: pozycje o ilości zero lub mniejszej albo produkty, których nie znajduje ani ID wariantu, ani SKU. Pojawia się przed utworzeniem czegokolwiek i nie zmienia pola Stock Return. Sprawdź, czy produkty ze zwrotu są powiązane w Odoo po SKU lub po ID wariantu z Shopify, jak podaje komunikat, i kliknij ponownie.
Co oznacza Failed to create stock return: …?
To komunikat, który pojawia się, gdy coś zawiedzie podczas wyszukiwania dostaw lub tworzenia i zatwierdzania przesunięć. Po dwukropku jest tekst oryginalnego błędu i to on mówi, co poprawić. Zanim go pokaże, metoda ustawia Stock Return na nieudany i zapisuje tekst błędu. Ponieważ warunek widoku obejmuje wartość nieudany, przycisk pozostaje widoczny po usunięciu przyczyny.
Ile to kosztuje i czego potrzebuję, żeby z tego korzystać?
Shopify Connector kosztuje 9 € za wersję Odoo, dla 17, 18, 19 i 20, jednorazowo netto (bez VAT) (zobacz kartę w Odoo Apps). Dodatkowo wymaga subskrypcji FlexigoTech Cloud: plan Konektor kosztuje 49 €/mies. lub 490 €/rok netto (bez VAT), z maksymalnie 3 kontami platformy. Jeśli chcesz dopasować przepływ zwrotów do swoich magazynów, FlexigoTech wdraża Odoo i tworzy konektory oraz 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_refund_views.xml
- Kod modułu: flexigobe_shopify_connector 20.0 (c7078cd8): models/shopify_refund.py
- apps.odoo.com/apps/modules/20.0/flexigobe_shopify_connector
- 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
- flexigotech.com/en/services.html
- flexigotech.com/precios.html
