Przypadek: Marta klika Accept Order i Odoo się zatrzymuje
Przykład Przypadek poglądowy: firma i jej dane są zmyślone, żeby pokazać przebieg.
Distribuciones Norte, firma wymyślona na potrzeby tego przykładu, ma już zainstalowany Mirakl Connector. Marta pracuje tam jako użytkownik wewnętrzny Odoo. Otwiera Mirakl › Operations › Orders, wchodzi w zamówienie, klika Accept Order i dostaje ten komunikat: Only a Mirakl Manager can accept, cancel or refund a marketplace order. These actions change the order on the marketplace and move real money.
Marta myśli, że coś poszło nie tak z zamówieniem albo z połączeniem. Ale komunikat nie mówi o żadnym z nich: mówi o tym, kto kliknął przycisk.


Kiedy dokładnie się pojawia
Moduł sprawdza na serwerze, czy użytkownik, który kliknął, należy do grupy Mirakl Manager. Jeśli nie należy, zgłasza komunikat i akcja zostaje zatrzymana: pojawia się komunikat zamiast dalszego ciągu. Jeśli należy, sprawdzenie jest zaliczone i akcja przebiega dalej.
Komunikat znajduje się w opublikowanym kodzie wszystkich czterech wersji Odoo, które obsługuje moduł: 17, 18, 19 i 20.
Sam kod wyjaśnia, dlaczego sprawdzenie odbywa się na serwerze. Przyciski, które coś zmieniają w marketplace (akceptacja, anulowanie, zwrot), są w widokach ograniczone grupami, ale atrybut widoku nie jest barierą bezpieczeństwa: każdy użytkownik wewnętrzny mógłby wywołać metodę przez RPC, a prawo dostępu daje użytkownikom wewnętrznym zapis na zamówieniach Mirakl. Dlatego grupa jest wymagana ponownie na serwerze.
Przyciski, przy których może pojawić się komunikat
To dwa przyciski na karcie zamówienia, które docierają do sprawdzenia grupy:
| Przycisk | Kiedy jest widoczny | Co się dzieje, gdy nie jesteś Mirakl Manager |
|---|---|---|
Accept Order | Jest ukryty, jeśli Acceptance State wskazuje, że zamówienie jest już zaakceptowane, lub jeśli zamówienie nie wymaga akceptacji (pole Requires Acceptance) | Pojawia się komunikat i akcja zostaje zatrzymana |
Cancel in Mirakl | Jest ukryty, gdy State ma wartość anulowane; przy wartościach domyślnych (zamówienie oczekujące) jest widoczny | Pojawia się komunikat i akcja zostaje zatrzymana |
Widoczność przycisku nie oznacza, że akcja będzie kontynuowana: sprawdzenie grupy odbywa się w chwili kliknięcia. Jeśli nie widzisz któregoś z przycisków, może to wynikać z warunków z tabeli.
Jak to rozwiązać, krok po kroku
- Upewnij się, że to ten komunikat, w pełnym brzmieniu:
Only a Mirakl Manager can accept, cancel or refund a marketplace order. These actions change the order on the marketplace and move real money. - Zdecyduj, czy ta akcja należy do Ciebie. Według samego komunikatu akceptacja, anulowanie lub zwrot zmienia zamówienie w marketplace i przesuwa prawdziwe pieniądze.
- Jeśli nie należy do Ciebie, poproś kogoś z grupy
Mirakl Manager, żeby otworzył to samo zamówienie i kliknął przycisk. - Jeśli należy do Ciebie, poproś osobę zarządzającą użytkownikami w Twoim Odoo, żeby dodała Cię do grupy
Mirakl Manager. - Wróć do zamówienia, kliknij przycisk ponownie i sprawdź, że komunikat już się nie pojawia.

Wątpliwości osoby, która widzi komunikat
Czy to błąd połączenia z Mirakl?
Komunikat dotyczy grupy użytkownika: pojawia się, gdy klikający nie należy do Mirakl Manager. Nie wspomina o połączeniu ani o danych zamówienia.
Co się dzieje, gdy się pojawi?
Akcja zostaje zatrzymana: pojawia się komunikat zamiast dalszego ciągu. Może się pojawić np. po kliknięciu Accept Order lub Cancel in Mirakl.
Czy wystarczy, że przycisk jest ukryty w widoku, by chronić akcję?
Według wyjaśnienia w kodzie nie: atrybut widoku nie jest barierą bezpieczeństwa, dlatego grupa jest wymagana także na serwerze.
Czy dzieje się tak również w Odoo 17, 18 lub 19?
Komunikat znajduje się w opublikowanym kodzie wersji 17, 18, 19 i 20.
Czego uczy ten przypadek
- Komunikat dotyczy uprawnień, nie danych: zanim sprawdzisz zamówienie, zobacz, do jakiej grupy należy osoba klikająca.
- Liczy się przynależność do
Mirakl Manager. Bycie użytkownikiem wewnętrznym Odoo, jak Marta, nie wystarcza. - Rozważnie decyduj, kto wchodzi do grupy: chronione akcje zmieniają zamówienie w marketplace i przesuwają prawdziwe pieniądze.
- To, czy przycisk jest widoczny, zależy od warunków widoku; to, czy akcja pójdzie dalej, zależy od grupy użytkownika, sprawdzanej na serwerze w chwili kliknięcia.
Jak pomaga FlexigoTech
FlexigoTech wdraża Odoo 17, 18, 19 i 20 oraz tworzy konektory i integracje na zamówienie; jeśli rozdzielasz uprawnienia dla zespołu obsługującego zamówienia z marketplace, możemy przejrzeć to razem z Tobą. Mirakl Connector jest opublikowany w Odoo Apps dla wersji 17, 18, 19 i 20 i wymaga subskrypcji FlexigoTech Cloud (plan Konektor: 49 €/mies. lub 490 €/rok, netto (bez VAT)). Masz kartę w Odoo Apps i stronę modułu.
Bez subskrypcji lub przy zawieszonej usłudze zatrzymuje się to, co daje subskrypcja; dane zostają w Twoim Odoo.
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_mirakl_connector 20.0 (aa05e537): models/mirakl_order.py
- Kod modułu: flexigobe_mirakl_connector 20.0 (aa05e537): views/mirakl_order_views.xml
- apps.odoo.com/apps/modules/20.0/flexigobe_mirakl_connector
- flexigotech.com/en/services.html
- flexigotech.com/precios.html
