Skip to main content
Octopia (Cdiscount)

How to cancel a Cdiscount order from Odoo

With the Octopia connector, you request a Cdiscount cancellation from inside Odoo, under Octopia › Orders › Cancellations: you pick the order, decide whether it goes in full or only some lines, choose a reason Octopia accepts for that order, and send it. Odoo checks the outcome every 5 minutes and, once the cancellation is closed, cancels the sale or drafts the credit note if you had already invoiced.

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

Before you cancel

Cdiscount asks sellers not to cancel sales on their own without a justified reason. That is why a cancellation cannot be sent without a reason: each one carries a reason from the list Octopia accepts for the order's sales channel, acting as the seller and depending on the state the order is in. If the problem is stock, look at what caused it as well, because the next sale of that product can end up the same way.

What you need:

  • The Cdiscount order already imported into Odoo, with its sales channel.
  • To know whether you are cancelling the whole order or only some of its lines.
  • If it is already invoiced, to decide whether you want Odoo to draft the credit note on its own.
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 › Cancellations and create a new request.
  2. Pick the order and the type: Full Order to cancel all of it, Specific Lines to take out only some lines.
  3. Press «Fetch Eligible Reasons». Odoo pulls from Octopia the reasons that are valid for that order and stores them; you will also find them under Octopia › Configuration › Referentials › Cancellation Reasons.
  4. Choose the reason. The box to refund the shipping costs as well comes ticked; untick it only if it does not apply.
  5. For a partial cancellation, add the lines you are cancelling. Each line can carry its own reason; if it has none, it takes the one on the request.
  6. Press «Submit to Octopia». The request moves from Draft to In Progress.
Diagram of a Cdiscount cancellation sent from Odoo
The path of a cancellation request with Odoo's labels: it is created in Cancellations, sent with «Submit to Octopia», tracked by the periodic check and finished in Done. Diagram built from the module's code.

What happens next

The «Octopia: poll async jobs (packages, cancellations, gestures)» task checks every 5 minutes on the requests that are still open. If you would rather not wait, «Poll Status» on the request itself runs the same check right away.

  1. In Progress Octopia has received the request and is working on it.
  2. Blocked The request has stalled on Octopia's side. The list shows it in red: open it and look into it.
  3. Done Octopia has accepted it. From here on, Odoo takes over.

Once it reaches Done, what Odoo does depends on whether you had already invoiced:

SituationWhat Odoo does
Full cancellation, no posted invoiceCancels the sales order
Invoiced, with «Auto-create Credit Notes» tickedCreates a draft credit note
Partial cancellation, invoicedThe credit note carries only the cancelled lines
Invoiced, with the box untickedCreates nothing: you make the credit note yourself
Partial cancellation, not invoicedLeaves the sales order as it is: you adjust the quantities yourself

The credit note stays in draft so you can check it before posting it. The box is on the Octopia account, Automation tab, Accounting group.

Accepted Cdiscount order in Odoo
A Cdiscount order inside Odoo, already accepted: this is the order you pick when you create the cancellation request. Real Odoo screenshot with a simulated Octopia API.

If something goes wrong

  • The order has no sales channel to fetch reasons for. The order has no sales channel, so Odoo does not know which reasons to ask for. Check the imported order before going any further.
  • A partial cancellation needs at least one line. You chose Specific Lines and did not add a single line.
  • The request stays in Blocked. Open it and look at the order in Octopia: as long as it stays that way, Odoo does not touch the sale or the invoice.

Can I cancel just one unit of a line?

A partial request works on order lines: each line you add is cancelled with its reason.

Is it in every version?

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

Keep reading

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.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.Selling on several stores without selling the same product twiceWhy a shared stock spreadsheet ends up selling what you no longer have, what Cdiscount, Mirakl and Shopify expect from your stock, and how one inventory fixes it.
Checked in the connector's source code (version 17.0, 18.0, 19.0 and 20.0) and the linked sources

Sources