Dar de alta el operador
- Instala el conector de Mirakl y el módulo del operador: «Leroy Merlin for Mirakl» o «Decathlon for Mirakl». Sin ese módulo, «Provider Code» solo ofrece «Generic Mirakl».
- Ve a Mirakl › Configuration › Marketplaces y crea un marketplace nuevo.
- En «Provider Code», elige Leroy Merlin o Decathlon. Odoo rellena en ese momento las casillas del perfil que estén desmarcadas y los campos vacíos.
- Revisa la dirección. Para Leroy Merlin es https://adeo-marketplace.mirakl.net, con la API en https://adeo-marketplace.mirakl.net/api; para Decathlon, marketplace-decathlon-eu.mirakl.net.
- Completa la conexión con los datos de tu cuenta en el operador, guarda y pulsa «Test Connection».

Si empiezas con el perfil genérico y escribes la dirección del operador, Odoo lo reconoce por el host: adeo-marketplace o leroymerlin para Leroy Merlin; marketplace-decathlon, marketplace.decathlon, seller.decathlon, partner.decathlon, .decathlon.net o .decathlon.com para Decathlon. Y si cambias de un operador a otro, la dirección del anterior se sustituye por la del nuevo. Una dirección escrita a mano que no es de ningún operador conocido se respeta.

Lo que deja marcado el perfil
| Casilla | Perfil genérico | Leroy Merlin y Decathlon | Para qué sirve |
|---|---|---|---|
| Sync Orders Enabled | Desmarcada | Marcada | La tarea «Mirakl - Sync Orders» importa sus pedidos cada 10 minutos |
| Auto Accept Orders | Desmarcada | Marcada | La tarea «Mirakl - Accept Orders» acepta cada 10 minutos los pedidos que Mirakl tiene esperando tu aceptación |
| Accept Pending On Import | Desmarcada | Marcada | Intenta aceptar los pedidos en espera justo después de cada importación, manual o programada |
| Auto Confirm Sale | Desmarcada | Marcada | Confirma los pedidos de venta importados |
| Sync Returns Enabled | Desmarcada | Marcada | La tarea «Mirakl - Sync Returns» trae las devoluciones cada 30 minutos |
| Returns Fallback To Orders | Marcada | Marcada | Si el operador no ofrece devoluciones por la API, las crea a partir de los reembolsos que vienen en los pedidos |
El perfil solo rellena lo que está vacío o desmarcado. Si ya habías puesto un valor, se queda. Eso afecta a «Offer Price Tax Mode»: el perfil trae «Include Sales Taxes», pero el campo ya viene con «As Computed», así que al elegir el perfil en el formulario no cambia. Decide tú cómo das los precios de tus ofertas y déjalo puesto antes de exportar.
Leroy Merlin: catálogo y ofertas en el formato del operador
El perfil de Leroy Merlin marca dos casillas más, que de serie vienen desmarcadas y que el de Decathlon no toca:
- Exportar el catálogo en el formato de operador. La ayuda del campo lo dice así:
When enabled, catalog export defaults to Mirakl operator-format multipart CSV instead of raw JSON. - Exportar las ofertas con la importación de ficheros OF01 en formato de operador:
When enabled, offer export defaults to Mirakl OF01 operator-format multipart file import.
Si exportas desde un marketplace que no tiene el perfil de Leroy Merlin, comprueba estas dos casillas antes de culpar al catálogo.
El envío sale al validar el albarán
Con estos dos perfiles, validar en Odoo la entrega de un pedido de Mirakl basta para avisar al marketplace, aunque la casilla «Send Tracking to Mirakl on Validation» esté desmarcada, que es como viene. En el perfil genérico es esa casilla la que decide.
Antes de validar, Odoo actualiza el pedido de venta con el de Mirakl y pone en el albarán el contacto de entrega del comprador. Si a ese contacto le falta la calle, la ciudad, el código postal o el teléfono, vuelve a pedir el pedido a Mirakl y lo rehace.
Después, el envío va en dos pasos. Primero el seguimiento (OR23). Si Mirakl aún no da el pedido por enviado, Odoo lo marca como enviado (OR24). Si el operador no admite el primer paso, por ejemplo con un 404 o porque no reconoce el código del transportista, Odoo prueba directamente el segundo. Y cuando tu transportista de Odoo solo se traduce como OTHER, usa el transportista que venía en el pedido de Mirakl.

Si el albarán no lleva número de seguimiento
No se envía nada. Odoo lo deja escrito en el albarán: 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. Pon el número del transportista y pulsa «Push Mirakl Tracking», que envía el seguimiento a mano.
Si faltan las líneas del pedido
Con estos dos perfiles, el envío necesita las líneas del pedido de Mirakl. Si no las encuentra, ni en el pedido de Mirakl ni en el de venta, se para con Missing Mirakl order lines to push tracking.
¿Puedo tener Leroy Merlin y Decathlon en el mismo Odoo?
Sí. Cada operador es un marketplace distinto en Mirakl › Configuration › Marketplaces, con su perfil, su clave y su tienda.
¿Y si no quiero que los pedidos se acepten solos?
Desmarca «Auto Accept Orders» y «Accept Pending On Import» después de elegir el perfil y guarda: lo que pones a mano gana al perfil. Si más adelante vuelves a elegir el perfil en «Provider Code», las marcará otra vez.
Sigue leyendo
Comprobado en el código del conector (versión 17.0, 18.0, 19.0 y 20.0)
Fuentes
- Código del módulo: 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)
- Código del módulo: 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
- Código del módulo: 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
- Código del módulo: 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
- Código del módulo: 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
- Código del módulo: 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)
