Le cas : une commande Mirakl sans commande client
Exemple Cas illustratif : l'entreprise et ses chiffres sont inventés pour expliquer le flux.
Muebles Ribera est une boutique fictive qui vend sur une place de marché Mirakl et travaille avec Odoo et Mirakl Connector. La responsable des commandes ouvre Mirakl › Opérations › Commandes et trouve une commande Mirakl dont le champ Commande client (Sale Order) est vide. Le connecteur l'avait retenue : le bouton est prévu pour les commandes que le vendeur a supprimées, qui sont déjà parties ou qui sont antérieures à la date de début. Elle décide que cette commande doit bien exister comme commande client dans Odoo et clique sur Créer la commande de vente. La commande client s'ouvre, toujours en devis, et c'est elle qui la confirme.


Le chemin automatique et la case qui l'accompagne
La routine qu'utilise le bouton ne s'appelle pas uniquement quand on clique dessus. Le module étend le bouton standard de validation des bons de livraison : quand certaines vérifications propres au module sont remplies et que le bon de livraison appartient à une commande client issue de Mirakl, la validation appelle cette même routine, mais sans l'ordre de contourner la vérification de rétention. Si cet appel échoue, le module note un avertissement dans le journal et poursuit le reste de sa routine de contacts de livraison.
La case qui décide de ce chemin est Confirmer automatiquement la vente (Auto Confirm Sale), dans la fiche des Instances Mirakl (Mirakl Instances), onglet Commandes et retours (Orders and Returns), groupe Politique de synchronisation (Sync Policy). Elle est désactivée par défaut et son aide dit : Confirmer automatiquement les commandes de vente importées après la synchronisation.
Le bouton reste l'exception, pour la commande que le connecteur a retenue. Cette commande client reste en devis et c'est le vendeur qui la confirme.
Quand le bouton apparaît
Dans la fiche des Commandes Mirakl (Mirakl Orders), le bouton Créer la commande de vente est masqué dans deux cas : quand le champ Commande client a déjà une valeur ou quand le champ État (State) indique que la commande est annulée. Avec les valeurs par défaut, il est visible. Le bouton existe dans les quatre branches publiées, Odoo 17, 18, 19 et 20.
Commande client figure aussi dans la liste des Commandes Mirakl, en lecture seule. Vous ne le remplissez pas : c'est la routine de création ou de mise à jour qui l'écrit, et on y accède depuis ce bouton et depuis la validation du bon de livraison décrite plus haut.
Le module fournit des traductions du bouton. Voici son nom selon la langue de votre Odoo :
| Langue d'Odoo | Texte du bouton |
|---|---|
| Espagnol | Créer la commande de vente |
| Allemand | Verkaufsauftrag erstellen |
| Français | Créer la commande de vente |
| Italien | Crea ordine di vendita |
| Portugais | Criar encomenda de venda |

Pas à pas : ce qu'il fait quand on clique dessus dans Odoo 20
- Vous ouvrez la fiche de la commande Mirakl depuis
Mirakl › Opérations › Commandes. Le bouton est visible si la commande n'a pas de commande client et n'est pas annulée. - Vous cliquez sur
Créer la commande de vente. Si la commande avait déjà une commande client, le bouton l'ignore sans rien toucher. - Si elle n'en a pas, il retire la marque de rétention de la commande et note que la commande client a été créée à la main.
- Il appelle la routine de création ou de mise à jour avec l'ordre de contourner la vérification de rétention. Cette vérification, quand elle n'est pas contournée, peut bloquer la création et noter le motif sur la commande.
- La routine cherche d'abord une commande client portant le même identifiant de commande Mirakl dans la même instance. Si elle en trouve une, elle la réutilise et y écrit les données au lieu d'en créer une autre.
- Si elle n'en trouve pas, elle prépare les lignes et les données d'en-tête de la nouvelle commande client, qui reste en devis.
- À la fin, elle ouvre la fiche de la commande client.
La rétention existe pour une raison que le module explique lui-même dans un commentaire : auparavant, une nouvelle synchronisation recréait une commande client que le vendeur avait supprimée, et la première importation transformait en nouvelles livraisons des commandes déjà expédiées à la main, si bien que la marchandise partait deux fois. Cliquer sur le bouton revient à contourner cette protection pour cette commande, il convient donc de vérifier au préalable si la commande est déjà partie.
Les données que le code prépare pour la commande client
Entre autres, celles-ci :
- le client et le contact de livraison (une commande client déjà confirmée conserve son client et, si l'adresse de l'acheteur ne change pas, son contact de livraison), et comme adresse de facturation le client lui-même ;
- la société de l'instance et la devise de la commande Mirakl ;
- comme référence client, le nom de la commande Mirakl ;
- l'instance, l'identifiant de la commande Mirakl, son état et le moment de la dernière synchronisation ;
- le libellé du mode d'expédition choisi par l'acheteur ;
- le téléphone et la personne de contact de l'acheteur, lorsque la commande client dispose de ces champs ;
- la date de la commande, si la commande Mirakl en a une, ainsi que l'équipe commerciale et l'entrepôt de l'instance, s'ils sont configurés.
Quand il n'existe pas encore de commande client, le code prépare en plus les lignes de la commande.
Si quelque chose ne se passe pas comme prévu
- Vous ne voyez pas le bouton : regardez le champ
Commande client(s'il a une valeur, une commande est déjà liée) et le champÉtat(si la commande est annulée, le bouton est masqué). - Vous cliquez et aucune fiche ne s'ouvre : la commande client ne s'ouvre que si la commande Mirakl l'a liée après l'appel. Vérifiez le champ
Commande client. - Échec lors de la validation d'un bon de livraison : dans ce chemin, l'erreur de la routine est interceptée et notée comme avertissement dans le journal.
Si vous doutez que l'instance soit bien connectée, consultez d'abord ce que fait le bouton Test Connection.
Comment FlexigoTech vous aide
FlexigoTech met en place Odoo 17, 18, 19 et 20 et développe des connecteurs et des intégrations sur mesure. Mirakl Connector est publié sur Odoo Apps pour ces quatre versions : vous avez sa fiche et la page du module.
À lire aussi
Vérifié dans le code du connecteur (version 20.0) et dans les sources citées
Sources
- Code du module : flexigobe_mirakl_connector 20.0 (aa05e537): views/mirakl_order_views.xml
- Code du module : flexigobe_mirakl_connector 20.0 (aa05e537): models/mirakl_order.py
- Code du module : flexigobe_mirakl_connector 20.0 (aa05e537): models/stock_picking.py
- Code du module : flexigobe_mirakl_connector 20.0 (aa05e537): models/mirakl_instance.py
- apps.odoo.com/apps/modules/20.0/flexigobe_mirakl_connector
- flexigotech.com/en/services.html
