Créer l'opérateur
- Installez le connecteur Mirakl et le module de l'opérateur : « Leroy Merlin for Mirakl » ou « Decathlon for Mirakl ». Sans ce module, « Provider Code » ne propose que « Generic Mirakl ».
- Allez dans Mirakl › Configuration › Marketplaces et créez un nouveau marketplace.
- Dans « Provider Code », choisissez Leroy Merlin ou Decathlon. Odoo remplit alors les cases du profil qui sont décochées et les champs vides.
- Vérifiez l'adresse. Pour Leroy Merlin, c'est https://adeo-marketplace.mirakl.net, avec l'API sur https://adeo-marketplace.mirakl.net/api ; pour Decathlon, marketplace-decathlon-eu.mirakl.net.
- Complétez la connexion avec les données de votre compte chez l'opérateur, enregistrez et cliquez sur « Test Connection ».

Si vous commencez avec le profil générique et saisissez l'adresse de l'opérateur, Odoo la reconnaît à partir de l'hôte : adeo-marketplace ou leroymerlin pour Leroy Merlin ; marketplace-decathlon, marketplace.decathlon, seller.decathlon, partner.decathlon, .decathlon.net ou .decathlon.com pour Decathlon. Et si vous passez d'un opérateur à un autre, l'adresse de l'ancien est remplacée par celle du nouveau. Une adresse saisie à la main qui n'appartient à aucun opérateur connu est respectée.

Ce que coche le profil
| Case | Profil générique | Leroy Merlin et Decathlon | À quoi elle sert |
|---|---|---|---|
| Sync Orders Enabled | Décochée | Cochée | La tâche « Mirakl - Sync Orders » importe ses commandes toutes les 10 minutes |
| Auto Accept Orders | Décochée | Cochée | La tâche « Mirakl - Accept Orders » accepte toutes les 10 minutes les commandes que Mirakl attend de votre acceptation |
| Accept Pending On Import | Décochée | Cochée | Tente d'accepter les commandes en attente juste après chaque importation, manuelle ou programmée |
| Auto Confirm Sale | Décochée | Cochée | Confirme les commandes de vente importées |
| Sync Returns Enabled | Décochée | Cochée | La tâche « Mirakl - Sync Returns » récupère les retours toutes les 30 minutes |
| Returns Fallback To Orders | Cochée | Cochée | Si l'opérateur ne propose pas de retours par l'API, les crée à partir des remboursements présents dans les commandes |
Le profil ne remplit que ce qui est vide ou décoché. Une valeur que vous aviez déjà saisie reste en place. Cela concerne « Offer Price Tax Mode » : le profil apporte « Include Sales Taxes », mais le champ arrive déjà sur « As Computed », donc choisir le profil dans le formulaire ne le modifie pas. Décidez comment vous indiquez les prix de vos offres et réglez-le avant l'export.
Leroy Merlin : catalogue et offres au format de l'opérateur
Le profil Leroy Merlin coche deux cases de plus, qui sont décochées par défaut et que le profil Decathlon ne touche pas :
- Exporter le catalogue au format de l'opérateur. L'aide du champ le précise :
When enabled, catalog export defaults to Mirakl operator-format multipart CSV instead of raw JSON. - Exporter les offres avec l'import de fichiers OF01 au format de l'opérateur :
When enabled, offer export defaults to Mirakl OF01 operator-format multipart file import.
Si vous exportez depuis un marketplace qui n'a pas le profil Leroy Merlin, vérifiez ces deux cases avant d'incriminer le catalogue.
L'expédition part à la validation du bon de livraison
Avec ces deux profils, valider dans Odoo la livraison d'une commande Mirakl suffit à prévenir la place de marché, même si la case « Send Tracking to Mirakl on Validation » est décochée, ce qui est son état par défaut. Sur le profil générique, c'est cette case qui décide.
Avant la validation, Odoo met à jour la commande de vente à partir de la commande Mirakl et indique sur le transfert le contact de livraison de l'acheteur. Si à ce contact il manque la rue, la ville, le code postal ou le téléphone, il redemande la commande à Mirakl et la reconstruit.
Ensuite, l'envoi se fait en deux étapes. D'abord le suivi (OR23). Si Mirakl ne considère pas encore la commande comme expédiée, Odoo la marque comme expédiée (OR24). Si l'opérateur refuse la première étape, par exemple avec un 404 ou parce qu'il ne reconnaît pas le code du transporteur, Odoo passe directement à la seconde. Et lorsque votre transporteur Odoo ne se traduit que par OTHER, il utilise le transporteur qui accompagnait la commande Mirakl.

Si le bon de livraison n'a pas de numéro de suivi
Rien n'est envoyé. Odoo le note sur le transfert : 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. Renseignez le numéro du transporteur et cliquez sur « Push Mirakl Tracking », qui envoie le suivi manuellement.
Si les lignes de commande manquent
Avec ces deux profils, l'expédition a besoin des lignes de la commande Mirakl. Si elles ne se trouvent ni dans la commande Mirakl ni dans la commande de vente, l'opération s'arrête avec Missing Mirakl order lines to push tracking.
Puis-je avoir Leroy Merlin et Decathlon dans le même Odoo ?
Oui. Chaque opérateur est un marketplace distinct dans Mirakl › Configuration › Marketplaces, avec son propre profil, sa clé et sa boutique.
Et si je ne veux pas que les commandes soient acceptées automatiquement ?
Décochez « Auto Accept Orders » et « Accept Pending On Import » après avoir choisi le profil, puis enregistrez : ce que vous réglez à la main l'emporte sur le profil. Si vous choisissez à nouveau le profil dans « Provider Code » plus tard, il les recochera.
À lire aussi
Vérifié dans le code du connecteur (version 17.0, 18.0, 19.0 et 20.0)
Sources
- Code du module : 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)
- Code du module : 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
- Code du module : 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
- Code du module : 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
- Code du module : 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
- Code du module : 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)
