Skip to main content
Octopia (Cdiscount)

Declare to Octopia in Odoo: a step-by-step button checklist

The Declare to Octopia button checks that there are parcels, that the order is not a Fulfillment order and that every parcel has a number and a carrier; if all is well, it declares the shipment to Octopia and marks the order as shipped. Here is what to check before, what it does when pressed and what to review afterwards.

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

Key facts

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

Before you press it: where the button is and what the shipment must meet

The Declare to Octopia button is on the same form as the fields Order, Picking and Parcels. The view puts no condition on it: it is always visible, in Odoo 17, 18, 19 and 20.

Code-drawn diagram of the Declare to Octopia button, with some of the messages that can stop it and the error state it leaves the record in
Diagram built from the module code, not an Odoo screen: the button, messages that stop it and the error state.

What the button checks, in this order

  • There is at least one parcel. If the Parcels list is empty, the button stops with Add at least one parcel.. It is the first check.
  • The order is one you ship yourself. In Odoo 20.0, if the order has a supply mode set and it is not the seller's, the button stops with Fulfillment orders ship themselves -- declaring one would be refused (409) by Octopia.. If the supply mode is empty, this check stops nothing.
  • Every parcel has a parcel number. Parcels are checked one by one; the first one without a number stops the action with Every parcel needs a parcel number..
  • Every parcel has a carrier. The name of the mapped carrier is sent and, if there is none, the free text. With neither, you get Every parcel needs a carrier (mapped or free text)..

If any of these checks fails, the action stops at that point: the shipment record and the call to Octopia come afterwards.

Optional data that travels with the declaration

  • Tracking URL. If a parcel has one, it is added to that parcel's declaration; if not, the parcel goes without it.
  • Order lines. If a parcel has some of the order lines selected, but not all of them, the declaration names those lines. If it has none selected, or all of them, it gives no line detail.
  • Picking. If the form has a picking, the shipment record that gets created stores it.

The Cdiscount Marketplace CGMAD (25/08/2025, p. 47) state that the shipping confirmation carries the tracking number.

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

What happens when you press it, step by step

In Odoo 20.0, once the checks pass, the button does this, in this order:

  1. It creates the order's shipment record, with the prepared parcels and the picking if there is one.
  2. It takes the connection of the order's Octopia account and sends Octopia the shipment declaration, with the order's Octopia identifier and the parcels.
  3. If Octopia's API returns an error, it writes the state error on the shipment and, as its message, the error text followed by the error details in the response, and raises the same error again. The action ends with that error and the order is not marked as shipped.
  4. If all goes well, it sets the shipment to the state sent with the sending date and time, marks the order as shipped, adds a line to the synchronisation log (type shipments, successful result, with the order identifier and the number of parcels) and closes the window.

With Odoo in English the button is called Declare to Octopia; in other languages the label changes:

Code-drawn diagram built from the module's translations, with the button text in five languages
Diagram built from the module's language files, not an Odoo screen: Spanish Declarar a Octopia, German An Octopia melden, French Déclarer à Octopia, Italian Dichiara a Octopia and Portuguese Declarar à Octopia.

After you press it: what to check

  • The window has closed: that is what the button does when it finishes well.
  • The shipment is in sent and the order shows as shipped.
  • There is a new line in the synchronisation log, of type shipments.
  • If an Octopia error came up, read the whole text, which includes the error details from the response, and fix whatever it points to before declaring again.
  • If the message is one from the first section, the problem is in the data on the form: those checks run before the shipment is created and before Octopia is called.

What you need to have it

The module is a one-off payment per version and is published on Odoo Apps for 17, 18, 19 and 20; the price for each version is on its Odoo Apps listing. It also needs the FlexigoTech Cloud subscription, Connector plan: €49 a month or €490 a year, excluding VAT. The connection goes through FlexigoTech Cloud, which stores the credentials encrypted and watches the synchronisation.

How FlexigoTech can help

If you are implementing Odoo and want the shipping flow with Octopia ready, FlexigoTech implements Odoo 17, 18, 19 and 20 and builds custom connectors and integrations.

Keep reading

What the Open Discussion button in Octopia Connector does: myths and factsWhat the Open Discussion button in Octopia Connector does in Odoo: when it shows, what it checks, what changes and which errors it gives, myth by myth.What the Submit to Octopia button does on promotions, step by stepHow the Submit to Octopia button works on Odoo promotions: when it shows, what it checks, what it changes and which warnings it can give.What the «Submit to Octopia» button on a cancellation does, with a caseWhat the Submit to Octopia button on a cancellation does in Odoo: when it shows, what it checks, what changes and how to fix its error message.
Checked in the connector's source code (version 20.0) and the linked sources

Sources