Skip to main content
Correos Express

Shipping labels by hand when you sell on several stores

Making labels by hand means two copies per order: the buyer's address into the carrier's website and then the tracking number back into the store where it sold. Every marketplace wants that number early and in its own way. With Odoo and an integrated carrier, the label comes out when you validate the delivery and the connectors send the tracking back to each store.

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 17.0, 18.0, 19.0 and 20.0 · against the sources linked at the end
Reading time
4 min

The case

A DIY shop sells on its own Shopify, on Leroy Merlin and on Cdiscount, and ships with Correos Express. It has no ERP: each channel has its own back office and parcels are booked on the carrier's website.

This is what any order looks like:

  1. The order comes into one of the three back offices.
  2. Someone copies the buyer's name, address and phone number into the Correos Express website and picks the service.
  3. They print the label and stick it on the box.
  4. They copy the tracking number the carrier gives them.
  5. They go back to the store's back office, find the order and paste the number.
  6. On Leroy Merlin, they also mark the order as shipped.

With a handful of orders it is bearable. The trouble starts when orders pile up late in the day, when the person packing is not the person invoicing, or when a number gets pasted into the wrong order.

How to stop copy-pasting between apps (Odoo)
Video: How to stop copy-pasting between apps (Odoo)

What each store asks for

StoreWhat it expectsSource
ShopifyThat you mark items as fulfilled when they are ready to ship, with the tracking details and whether the customer is notifiedShopify API documentation (fulfillmentCreate)
Leroy Merlin and Decathlon (Mirakl)The tracking as soon as you have the carrier's number, and the shipment validated each time you enter itMirakl API documentation (OR23 and OR24)
CdiscountA shipping confirmation carrying the tracking numberCdiscount's terms for sellers

On Cdiscount, shipping is also measured. The seller commits to a shipping rate of 97.5% or more, and if the seller does not report the shipment after the buyer validates the order, the order is cancelled automatically and that rate gets worse. A number that never gets pasted is not a small slip.

And underneath it all sits the deadline with the customer. Under the EU consumer rights directive, unless another date was agreed, the trader delivers without undue delay and within 30 days at the latest. If the goods don't arrive, the consumer can set an additional period and, if that passes too, terminate the contract and get back everything paid.

Diagram of shipping an order with Odoo and the connectors, next to the steps you do by hand without them
On the left, what Odoo and the connectors do from the moment you validate the delivery; on the right, the same step done by hand. Illustrative diagram built from the modules' code.

The same order with Odoo

In Odoo 17, 18, 19 and 20, when you validate an outgoing delivery with an integrated carrier, Odoo sends the shipment to the carrier. Outgoing operations come with this switched on.

With the Correos Express connector, that shipment is recorded with Correos Express and the connector leaves on the delivery:

  • The PDF label, ready to print from there.
  • The tracking number and Correos Express's public tracking link.
  • The shipment status: Pendiente, Enviado, Etiqueta OK or Error CEX.

The "CEX - Sincronizar tracking API" task updates the tracking every 30 minutes.

What is left is the way back, from the delivery to the store. That is where each channel's connector comes in, and each has its own switch:

  • Shopify: with the option to send the fulfillment on validation turned on for the store, Odoo sends it with its tracking. It comes unticked.
  • Leroy Merlin and Decathlon: with the operator profile, validating the delivery makes Odoo send the tracking and mark the order as shipped in Mirakl, with no further settings.
  • Cdiscount: with "Push Tracking on Delivery Validation" ticked on the Octopia account, Odoo declares the shipment on validation. It also comes unticked.

Each one is covered step by step in its own guide: Shopify tracking, Cdiscount's shipment declaration and the Leroy Merlin and Decathlon profile.

Operacion y Producto tab of the Correos Express carrier in Odoo with the label format and tracking sync
The carrier's settings: the product, the PDF label format, the tracking link template and tracking sync switched on. Odoo screenshot with the Correos Express connector.

What changes in the warehouse

Whoever packs the order validates the delivery and prints the label from it. Nobody copies addresses or numbers any more, and the store gets the tracking without anyone opening its back office. If something fails, it is written on the delivery or in the connector's log, instead of turning up when the customer asks.

How we set it up

At FlexigoTech we implement Odoo 17, 18, 19 or 20 with our store and carrier connectors, so that your stores work connected. Odoo Online does not accept third-party modules, so we work on Odoo.sh or on your own server. Each connector can be tried for 14 days from Odoo, free and with no card, and the Connector plan starts at €49 a month, excluding VAT. Anything custom comes with a quote after a free scope analysis, and nothing goes on the invoice without your written approval.

Write to us at comercial@flexigobe.com, leave your details on the contact page or book a call and we'll look at it with a week of your shipments in front of us.

Keep reading

How to send the fulfilment and tracking to Shopify from OdooHow the Shopify connector marks an order as fulfilled and passes on the tracking number when you validate the delivery in Odoo, and what to do when sending fails.How to declare a Cdiscount order's shipment from OdooHow to declare a Cdiscount order's shipment to Octopia when you validate the delivery in Odoo, or by hand with several parcels, and where to see the ones that fail.How to set up Leroy Merlin or Decathlon in the Mirakl connectorHow to set up Leroy Merlin or Decathlon in the Mirakl connector with their operator profile, which boxes it ticks and how the shipment goes out when you validate.
Checked in the connector's source code (version 17.0, 18.0, 19.0 and 20.0) and the linked sources

Sources