Kiedy to możliwe
Gest dotyczy zamówienia, które jest już w drodze: Odoo wysyła go tylko wtedy, gdy zamówienie w Octopii ma status Shipped lub Delivered. Do tego kanał sprzedaży musi dopuszczać gesty. Sprawdzisz to w Octopia › Configuration › Sales Channels, w grupie „Commercial Gestures” każdego kanału: „Commercial Gestures Enabled”, „Gesture Max Amount”, „Gesture Max Rate (%)” i „Gesture Currency”. To dane tylko do odczytu, które przychodzą z Octopii przy synchronizacji konfiguracji. Dopóki kanał nie został zsynchronizowany, Odoo nie blokuje gestu z tego powodu, a ostatnie słowo należy do Octopii.
Przyciski gestu widzi tylko ktoś z uprawnieniami menedżera w konektorze.

Krok po kroku
- Przejdź do Octopia › Orders › Commercial Gestures i utwórz nowy gest.
- Wybierz zamówienie i powód, a w razie potrzeby wpisz szczegóły.
- Kliknij „Check Remaining Budget”. Odoo odczytuje z Octopii, ile jeszcze można przyznać dla tego zamówienia, i wpisuje to w pole dostępnego budżetu.
- Wpisz kwotę gestu, nie przekraczając tego budżetu.
- Kliknij „Submit to Octopia” i potwierdź: komunikat przypomina, że gest zwraca tę kwotę klientowi.
- Gest przechodzi do In Progress, z numerem referencyjnym Octopii i datą wysłania.

Powody
Octopia wymaga powodu ze swojej listy, a Odoo podaje te same: Late Delivery, Missing Product, Product Return Fees, Quantity Compensation, Reference Mistake, Shipping Fees, Fees Unduly Charged, Warranty Period Exceeded i Other. Wybierz ten, który opisuje, co się stało; szczegóły, jeśli je wpiszesz, trafiają razem z gestem.
Co jest sprawdzane przy wysyłce
| Kontrola | Komunikat, jeśli się nie powiedzie |
|---|---|
| Kanał nie ma wyłączonych gestów | Sales channel %s has commercial gestures disabled. |
| Zamówienie ma status Shipped lub Delivered | Commercial gestures apply to shipped or delivered orders only (order %s is %s). |
| Kwota nie przekracza pozostałego budżetu, gdy jest on większy od 0 | Gesture amount %(amount).2f exceeds the remaining budget %(available).2f for this order. |
Odoo ponownie odczytuje budżet tuż przed wysyłką, więc trzecia kontrola używa kwoty z tej chwili, a nie tej, którą widziałeś po kliknięciu przycisku. Ta kontrola blokuje tylko wtedy, gdy budżet jest większy od 0: przy budżecie równym 0, wyczerpanym albo bez danych Odoo i tak wysyła gest, a decyduje Octopia.

Po wysłaniu
Zadanie „Octopia: poll async jobs (packages, cancellations, gestures)” co 5 minut pyta Octopię o gesty w In Progress. Jeśli nie chcesz czekać, „Poll Status” robi to samo od razu. Gest kończy się w Done, jeśli Octopia go przyjmie, albo w Rejected, jeśli nie; lista oznacza je na zielono i na czerwono.
Przy Done Odoo może przygotować dla Ciebie notę kredytową. Na koncie Octopia musi być zaznaczone „Auto-create Credit Notes”, a zamówienie musi mieć klienta. Nota kredytowa powstaje w wersji roboczej, z jedną pozycją na kwotę gestu i bez podatków, a jej numer referencyjny zaczyna się od „Octopia commercial gesture”. Jest bez podatków, bo ta kwota to brutto, które zwrócił kanał, z VAT już w środku. Sprawdź ją przed zaksięgowaniem: jeśli w Twojej księgowości musisz wykazać ten VAT osobno, zrób to bez zmiany sumy.
Czy gest anuluje zamówienie?
Nie. Zamówienie pozostaje bez zmian, a klient otrzymuje tylko kwotę gestu. Do anulowania całego zamówienia albo kilku pozycji służy anulowanie zamówień Cdiscount.
Czy to działa we wszystkich wersjach?
Tak, gesty handlowe są w konektorze opublikowanym dla Odoo 17, 18, 19 i 20.
Czytaj dalej
Sprawdzone w kodzie źródłowym konektora (wersja 17.0, 18.0, 19.0 i 20.0) i w podlinkowanych źródłach
Źródła
- Kod modułu: flexigobe_octopia_connector · 17.0 501e336 · 18.0 e234fab · 19.0 d258001 · 20.0 5cbe12a: views/octopia_order_actions_views.xml, models/octopia_order_actions.py
- Kod modułu: flexigobe_octopia_connector · 17.0 501e336 · 18.0 e234fab · 19.0 d258001 · 20.0 5cbe12a: models/octopia_api_client.py (GESTURE_REASON_SELECTION, GESTURE_STATUS_SELECTION), models/octopia_order_actions.py
- Kod modułu: flexigobe_octopia_connector · 17.0 501e336 · 18.0 e234fab · 19.0 d258001 · 20.0 5cbe12a: models/octopia_order_actions.py (action_submit, action_check_available)
- Kod modułu: flexigobe_octopia_connector · 17.0 501e336 · 18.0 e234fab · 19.0 d258001 · 20.0 5cbe12a: models/octopia_sales_channel.py, views/octopia_sales_channel_views.xml, views/menu.xml
- Kod modułu: flexigobe_octopia_connector · 17.0 501e336 · 18.0 e234fab · 19.0 d258001 · 20.0 5cbe12a: models/octopia_order_actions.py (action_poll, _on_done), models/octopia_account.py, data/octopia_cron_data.xml
- apps.odoo.com/apps/modules/20.0/flexigobe_octopia_connector
