Skip to main content
Octopia (Cdiscount)

How to send a Cdiscount commercial gesture from Odoo

A commercial gesture gives the customer part of the amount of a Cdiscount order back without cancelling it: a delay, overcharged shipping, a missing part. With the Octopia connector you prepare it in Odoo, check how much budget is left for that order, send it to Octopia and Odoo follows its status every 5 minutes. If you switch it on, when Octopia marks it done Odoo prepares the draft credit note.

FlexigoTech · Editor in charge: Víctor Gómez · Updated 4 November 2026

Key facts

Versions
Odoo 17, 18, 19 and 20
Checked
in the connector's source code, version 17.0, 18.0, 19.0 and 20.0 · against the sources linked at the end
Reading time
3 min

When it is possible

The gesture applies to an order already on its way: Odoo only sends it if the Octopia order is in Shipped or Delivered. The sales channel must also accept gestures. You can see that in Octopia › Configuration › Sales Channels, in each channel's «Commercial Gestures» group: «Commercial Gestures Enabled», «Gesture Max Amount», «Gesture Max Rate (%)» and «Gesture Currency». They are read-only figures that come from Octopia when the configuration syncs. Until a channel has been synced, Odoo does not block the gesture on that ground and Octopia has the last word.

Only users with manager rights on the connector see the gesture buttons.

48 business hours to accept each Cdiscount order. Do it in Odoo
Video: 48 business hours to accept each Cdiscount order. Do it in Odoo

Step by step

  1. Go to Octopia › Orders › Commercial Gestures and create a new one.
  2. Pick the order and the reason, and add details if needed.
  3. Press «Check Remaining Budget». Odoo reads from Octopia how much is left to grant on that order and stores it in the available budget field.
  4. Type the gesture amount, without going over that budget.
  5. Press «Submit to Octopia» and confirm: the prompt reminds you the gesture refunds that amount to the customer.
  6. The gesture moves to In Progress with Octopia's reference and the submission date.
Diagram of a Cdiscount commercial gesture sent from Odoo
The gesture with Odoo's labels: budget with «Check Remaining Budget», sending with «Submit to Octopia», a check every 5 minutes and, on Done, the draft credit note. Diagram built from the module's code.

The reasons

Octopia asks for a reason from its list, and Odoo offers the same ones: Late Delivery, Missing Product, Product Return Fees, Quantity Compensation, Reference Mistake, Shipping Fees, Fees Unduly Charged, Warranty Period Exceeded and Other. Pick the one that describes what happened; the details, if you fill them in, travel with the gesture.

What it checks when sending

CheckMessage if it fails
The channel does not have gestures switched offSales channel %s has commercial gestures disabled.
The order is in Shipped or DeliveredCommercial gestures apply to shipped or delivered orders only (order %s is %s).
The amount does not exceed the remaining budget, when it is above 0Gesture amount %(amount).2f exceeds the remaining budget %(available).2f for this order.

Odoo reads the budget again right before sending, so the third check uses the figure of that moment, not the one you saw when you pressed the button. That check only stops you when there is a budget figure above 0: with the budget at 0, used up or missing, Odoo sends the gesture anyway and Octopia decides.

List of Cdiscount orders in Odoo with their status
The list of Cdiscount orders in Odoo, with channel, customer, amount and status: the gesture is only sent for those in Shipped or Delivered. Real Odoo screenshot with the Octopia API simulated.

After sending it

The «Octopia: poll async jobs (packages, cancellations, gestures)» task asks Octopia every 5 minutes about gestures in In Progress. If you do not want to wait, «Poll Status» runs the same check right away. The gesture ends in Done if Octopia accepts it or in Rejected if not; the list paints them green and red.

With Done, Odoo can prepare the credit note for you. «Auto-create Credit Notes» must be ticked on the Octopia account and the order must have a customer. The credit note is created as a draft, with a single line for the gesture amount and no taxes, and its reference starts with «Octopia commercial gesture». It has no taxes because that amount is the gross the channel refunded, with the VAT already inside. Review it before posting: if your books need that VAT split out, do it without changing the total.

Does the gesture cancel the order?

No. The order stays as it is and the customer only gets the gesture amount. To cancel the whole order or some lines there is the Cdiscount order cancellation.

Is it in every version?

Yes, commercial gestures are in the connector published for Odoo 17, 18, 19 and 20.

Keep reading

How to connect Cdiscount (Octopia) with Odoo, step by stepGuide to connecting Cdiscount and the Octopia marketplaces with Odoo 17, 18, 19 and 20: credentials, sales channel, catalogue, offers, orders and shipping.Cdiscount cancels the orders you do not accept within 48 hours: what nobody tells youCdiscount's terms require accepting orders within 48 working hours and a 97.5% acceptance rate. What happens if you miss it and how Odoo handles it.Selling on Cdiscount without an ERP: myths and factsWhat sellers often believe when selling on Cdiscount with the Octopia back office and spreadsheets, checked against the channel's rules and what Odoo does.
Checked in the connector's source code (version 17.0, 18.0, 19.0 and 20.0) and the linked sources

Sources

  • Module source code: 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
  • Module source code: 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
  • Module source code: 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)
  • Module source code: 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
  • Module source code: 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