Skip to main content
Mirakl

How to set up Leroy Merlin or Decathlon in the Mirakl connector

Leroy Merlin and Decathlon both sell through Mirakl, and in Odoo each one is set up as another marketplace of the Mirakl connector. What changes is the operator profile: with the Leroy Merlin or Decathlon module installed, you pick the profile in "Provider Code" and Odoo ticks the order and return boxes you need, fills in the operator's address and, when you validate a delivery, sends the tracking to Mirakl without you clicking anything.

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

Key facts

Module
Mirakl
Versions
Odoo 17, 18, 19 and 20
Checked
in the connector's source code, version 17.0, 18.0, 19.0 and 20.0
Reading time
4 min

Set up the operator

  1. Install the Mirakl connector and the operator module: "Leroy Merlin for Mirakl" or "Decathlon for Mirakl". Without it, "Provider Code" only offers "Generic Mirakl".
  2. Go to Mirakl › Configuration › Marketplaces and create a new marketplace.
  3. In "Provider Code", choose Leroy Merlin or Decathlon. Odoo then fills in the profile's boxes that are unticked and the fields that are empty.
  4. Check the address. For Leroy Merlin it is https://adeo-marketplace.mirakl.net, with the API at https://adeo-marketplace.mirakl.net/api; for Decathlon, marketplace-decathlon-eu.mirakl.net.
  5. Complete the connection with your account details from the operator, save and click "Test Connection".
List of Mirakl marketplaces in Odoo, one per operator, with their provider code and last connection test
One marketplace per operator under Mirakl › Configuration › Marketplaces. The operator modules are not installed in this demo database, so all three use "Generic Mirakl". Odoo screenshot with demo data.

If you start with the generic profile and type the operator's address, Odoo recognises it from the host: adeo-marketplace or leroymerlin for Leroy Merlin; marketplace-decathlon, marketplace.decathlon, seller.decathlon, partner.decathlon, .decathlon.net or .decathlon.com for Decathlon. And if you switch from one operator to another, the old operator's address is replaced with the new one. An address typed by hand that belongs to no known operator is left alone.

Same stock on every Mirakl marketplace, sent from Odoo
Video: Same stock on every Mirakl marketplace, sent from Odoo

What the profile ticks

BoxGeneric profileLeroy Merlin and DecathlonWhat it does
Sync Orders EnabledUntickedTickedThe "Mirakl - Sync Orders" task imports its orders every 10 minutes
Auto Accept OrdersUntickedTickedThe "Mirakl - Accept Orders" task accepts, every 10 minutes, the orders Mirakl holds waiting for your acceptance
Accept Pending On ImportUntickedTickedTries to accept waiting orders right after each import, manual or scheduled
Auto Confirm SaleUntickedTickedConfirms the imported sale orders
Sync Returns EnabledUntickedTickedThe "Mirakl - Sync Returns" task brings in returns every 30 minutes
Returns Fallback To OrdersTickedTickedIf the operator offers no returns through the API, builds them from the refunds found in the orders

The profile only fills in what is empty or unticked. A value you had already set stays. That matters for "Offer Price Tax Mode": the profile carries "Include Sales Taxes", but the field already comes set to "As Computed", so choosing the profile on the form does not change it. Decide how you quote your offer prices and set it before exporting.

Leroy Merlin: catalogue and offers in the operator's format

The Leroy Merlin profile ticks two more boxes, which come unticked and which the Decathlon profile leaves alone:

  • Export the catalogue in operator format. The field's help puts it like this: When enabled, catalog export defaults to Mirakl operator-format multipart CSV instead of raw JSON.
  • Export offers with the OF01 operator-format file import: When enabled, offer export defaults to Mirakl OF01 operator-format multipart file import.

If you export from a marketplace without the Leroy Merlin profile, check these two boxes before you blame the catalogue.

The shipment goes out when you validate the delivery

With these two profiles, validating the delivery of a Mirakl order in Odoo is enough to tell the marketplace, even with the "Send Tracking to Mirakl on Validation" box unticked, which is how it comes. On the generic profile, that box decides.

Before validating, Odoo updates the sale order from the Mirakl order and puts the buyer's delivery contact on the transfer. If that contact is missing the street, city, postcode or phone, it fetches the order from Mirakl again and rebuilds it.

Then the shipment goes in two steps. First the tracking (OR23). If Mirakl does not yet show the order as shipped, Odoo marks it as shipped (OR24). If the operator rejects the first step, for example with a 404 or because it does not recognise the carrier code, Odoo goes straight to the second. And when your Odoo carrier only translates to OTHER, it uses the carrier that came with the Mirakl order.

Validated delivery of a Mirakl order with the Push Mirakl Tracking button and the tracking in Synced state
A validated delivery: the "Push Mirakl Tracking" button, the tracking state at Synced, the last request sent to Mirakl and, in the history, "Mirakl tracking pushed successfully." Odoo screenshot with demo data.

If the delivery has no tracking number

Nothing is sent. Odoo writes it on the transfer: Shipment not sent to Mirakl: this transfer has no tracking reference. Add the carrier's tracking number to the delivery and click Push Mirakl Tracking to notify the marketplace. Add the carrier's number and click "Push Mirakl Tracking", which sends the tracking by hand.

If the order lines are missing

With these two profiles, the shipment needs the Mirakl order lines. If Odoo finds them neither on the Mirakl order nor on the sale order, it stops with Missing Mirakl order lines to push tracking.

Can I have Leroy Merlin and Decathlon in the same Odoo?

Yes. Each operator is a separate marketplace under Mirakl › Configuration › Marketplaces, with its own profile, key and shop.

What if I don't want orders accepted automatically?

Untick "Auto Accept Orders" and "Accept Pending On Import" after choosing the profile, and save: what you set by hand beats the profile. If you later choose the profile again in "Provider Code", it will tick them again.

Keep reading

A Mirakl order in Odoo, from purchase to payoutTimeline of an order from a Mirakl marketplace inside Odoo 17, 18, 19 and 20: acceptance, shipping, tracking, return, invoice and settlement.How to map Mirakl categories and attributes in Odoo, step by stepHow to prepare a Mirakl marketplace catalogue in Odoo: category dictionary, attributes, value lists, mapping and export, with the usual errors.Setting up Leroy Merlin Connector in Odoo: questions and answersWhich fields to fill in Leroy Merlin Connector for Odoo, what the tracking states are and what to check during your first week after connecting.
Checked in the connector's source code (version 17.0, 18.0, 19.0 and 20.0)

Sources

  • Module source code: flexigobe_mirakl_connector · 17.0 f10058e · 18.0 0d42567 · 19.0 9939dcd · 20.0 5c53911: models/mirakl_instance.py (_onchange_provider_code, _apply_provider_defaults_to_record, _should_apply_provider_default), views/menu_views.xml, views/mirakl_instance_views.xml; flexigobe_mirakl_provider_leroy_merlin · 17.0 e4e5b5d · 18.0 01707b8 · 19.0 6e605bb · 20.0 f3f10df y flexigobe_mirakl_provider_decathlon · 17.0 d6944fe · 18.0 8b78e2d · 19.0 c0c6021 · 20.0 80e11d3: models/mirakl_instance.py (_mirakl_provider_default_values)
  • Module source code: flexigobe_mirakl_connector · 17.0 f10058e · 18.0 0d42567 · 19.0 9939dcd · 20.0 5c53911: models/mirakl_instance.py (cron_sync_orders, cron_accept_orders, cron_sync_returns), data/ir_cron_data.xml
  • Module source code: flexigobe_mirakl_connector · 17.0 f10058e · 18.0 0d42567 · 19.0 9939dcd · 20.0 5c53911: models/mirakl_instance.py (_mirakl_provider_known_hosts, _onchange_connection_urls, _mirakl_detect_provider_from_urls); proveedores Leroy Merlin y Decathlon (mismos commits que mir.prov.perfil): _mirakl_provider_detection_signatures
  • Module source code: flexigobe_mirakl_provider_leroy_merlin · 17.0 e4e5b5d · 18.0 01707b8 · 19.0 6e605bb · 20.0 f3f10df: models/mirakl_instance.py; flexigobe_mirakl_provider_decathlon (commits de mir.prov.perfil): models/mirakl_instance.py; flexigobe_mirakl_connector (commits de mir.prov.perfil): models/mirakl_marketplace_profile_mixin.py
  • Module source code: flexigobe_mirakl_connector · 17.0 f10058e · 18.0 0d42567 · 19.0 9939dcd · 20.0 5c53911: models/stock_picking.py (button_validate, _mirakl_sync_sale_shipping_contacts, action_mirakl_push_tracking), models/mirakl_instance.py (_mirakl_auto_push_tracking_on_validate), views/stock_picking_views.xml; proveedores Leroy Merlin y Decathlon: _mirakl_auto_push_tracking_on_validate y _mirakl_repair_shipping_before_validate devuelven True
  • Module source code: flexigobe_mirakl_connector · 17.0 f10058e · 18.0 0d42567 · 19.0 9939dcd · 20.0 5c53911: models/mirakl_instance.py (push de seguimiento con _mirakl_supports_advanced_tracking_flow)