Quando é possível
O gesto aplica-se a uma encomenda já a caminho: o Odoo só o envia se a encomenda da Octopia estiver em Shipped ou Delivered. Além disso, o canal de venda tem de admitir gestos. Pode confirmá-lo em Octopia › Configuration › Sales Channels, no grupo «Commercial Gestures» de cada canal: «Commercial Gestures Enabled», «Gesture Max Amount», «Gesture Max Rate (%)» e «Gesture Currency». São dados só de leitura que chegam da Octopia ao sincronizar a configuração. Enquanto um canal não tiver sido sincronizado, o Odoo não trava o gesto por esse motivo e a última palavra é da Octopia.
Os botões do gesto só aparecem a quem tem permissões de gestor no conector.

Passo a passo
- Vá a Octopia › Orders › Commercial Gestures e crie um novo.
- Escolha a encomenda e o motivo e, se for preciso, escreva o detalhe.
- Clique em «Check Remaining Budget». O Odoo lê na Octopia quanto falta conceder nessa encomenda e coloca esse valor no campo de orçamento disponível.
- Escreva o valor do gesto, sem ultrapassar esse orçamento.
- Clique em «Submit to Octopia» e confirme: o aviso lembra que o gesto devolve esse valor ao cliente.
- O gesto passa a In Progress, com a referência da Octopia e a data de envio.

Os motivos
A Octopia pede um motivo da sua lista, e o Odoo apresenta os mesmos: Late Delivery, Missing Product, Product Return Fees, Quantity Compensation, Reference Mistake, Shipping Fees, Fees Unduly Charged, Warranty Period Exceeded e Other. Escolha o que descreve o que aconteceu; o detalhe, se o preencher, segue com o gesto.
O que é verificado no envio
| Verificação | Aviso se falhar |
|---|---|
| O canal não tem os gestos desativados | Sales channel %s has commercial gestures disabled. |
| A encomenda está em Shipped ou Delivered | Commercial gestures apply to shipped or delivered orders only (order %s is %s). |
| O valor não ultrapassa o orçamento restante, quando este é superior a 0 | Gesture amount %(amount).2f exceeds the remaining budget %(available).2f for this order. |
O Odoo volta a ler o orçamento imediatamente antes de enviar, por isso o terceiro controlo usa o valor desse momento, não o que viu ao clicar no botão. Esse controlo só trava quando existe um orçamento superior a 0: com o orçamento a 0, esgotado ou sem dados, o Odoo envia o gesto na mesma e quem decide é a Octopia.

Depois de o enviar
A tarefa «Octopia: poll async jobs (packages, cancellations, gestures)» pergunta à Octopia a cada 5 minutos pelos gestos em In Progress. Se não quiser esperar, «Poll Status» faz a mesma consulta no momento. O gesto termina em Done se a Octopia o aceitar ou em Rejected se não o aceitar; a lista assinala-os a verde e a vermelho.
Com Done, o Odoo pode deixar-lhe preparada a nota de crédito. Para isso, «Auto-create Credit Notes» tem de estar marcada na conta da Octopia e a encomenda tem de ter cliente. A nota de crédito é criada em rascunho, com uma única linha pelo valor do gesto e sem impostos, e a referência começa por «Octopia commercial gesture». Vai sem impostos porque esse valor é o bruto que o canal devolveu, com o IVA já incluído. Reveja-a antes de a publicar: se na sua contabilidade tiver de discriminar esse IVA, faça-o sem alterar o total.
O gesto anula a encomenda?
Não. A encomenda mantém-se igual e o cliente recebe apenas o valor do gesto. Para anular a encomenda inteira ou algumas linhas, existe a anulação de encomendas da Cdiscount.
Está disponível em todas as versões?
Sim, os gestos comerciais estão no conector publicado para o Odoo 17, 18, 19 e 20.
Continue a ler
Verificado no código do conector (versão 17.0, 18.0, 19.0 e 20.0) e nas fontes indicadas
Fontes
- Código do módulo: 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
- Código do módulo: 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
- Código do módulo: 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)
- Código do módulo: 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
- Código do módulo: 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
