Connecter un transporteur à Odoo semble être un gros projet et ça l'est presque jamais. Ce qu'il faut obtenir tient en une phrase : qu'en cliquant sur valider dans le bon de livraison, l'étiquette DHL sorte, que le numéro de suivi soit enregistré et envoyé au client. Tout le reste (enlèvements, incidents, tarifs) se construit par-dessus.
Ce dont DHL a besoin et qu'Odoo n'a pas en standard
Trois choses, et aucune n'est exotique. Le poids et les dimensions réels du colis, pas ceux du produit : un bon de livraison de trois articles part dans une seule boîte, et cette boîte a son propre poids. Le type de service, car DHL Express et DHL Parcel ne sont pas la même chose et n'ont ni les mêmes tarifs ni les mêmes délais. Et une adresse que son validateur accepte, qui n'est pas toujours celle que le client a saisie.
Là où ça casse : les adresses
La première raison pour laquelle une étiquette ne sort pas n'est pas l'API : c'est que l'adresse ne passe pas la validation. Codes postaux au format d'un autre pays, localités absentes de leur répertoire, téléphones sans indicatif international pour les envois hors UE. Un connecteur digne de ce nom ne se contente pas d'échouer : il indique quel champ DHL a rejeté et l'écrit sur le bon de livraison, pour que la personne qui prépare la commande le corrige sans ouvrir un log.
Si vous expédiez hors de l'UE, l'étiquette ne suffit pas : il faut les documents douaniers avec la valeur et le code tarifaire de chaque ligne. Ces données sont déjà dans Odoo (le code tarifaire figure sur la fiche produit) et c'est de là qu'elles doivent partir vers DHL. Si l'intégration ne les envoie pas, vous finirez par les recopier à la main à chaque expédition.
Le suivi doit parvenir au client tout seul
Enregistrer le numéro sur le bon de livraison sans rien faire d'autre, c'est faire la moitié du travail. Le numéro doit figurer dans l'e-mail de confirmation d'expédition et, si vous vendez sur des marketplaces, il doit aussi être remonté vers le canal dans le délai que chacune exige : Amazon, Mirakl et Temu mesurent cette donnée et la pénalisent. C'est là que le connecteur de transport et celui de marketplace doivent se parler, et c'est pourquoi il vaut mieux qu'ils vivent dans le même Odoo.
Module sur mesure ou OCA
Pour DHL, il existe un module de la communauté et il existe du développement sur mesure, et le choix honnête dépend de votre cas, pas de celui qui vous le vend. Nous avons écrit ce qu'il faut vérifier avant de déployer le module OCA de DHL dans Odoo 19 et quand chaque voie l'emporte dans module natif contre OCA en logistique. Résumé sans fard : si votre activité est standard et n'utilise qu'un seul service, commencez par ce qui existe déjà ; si vous avez plusieurs services, des douanes ou des exigences de marketplace, c'est là qu'un module générique devient insuffisant et que le développement sur mesure se justifie.
Nous travaillons les deux voies, et les connecteurs de transport que nous avons publiés (DHL, Correos Express et MRW) fonctionnent dans Odoo 17, 18, 19 et 20. Pour les autres transporteurs, nous le montons sur la base de votre contrat, qui est ce qui détermine vraiment les services dont vous disposez.
Questions fréquentes
Puis-je utiliser plusieurs transporteurs à la fois ?
Oui, et c'est la norme. Chaque mode de livraison d'Odoo peut être limité par pays ou code postal et son prix calculé par règles (poids, volume, montant) ; on en choisit un sur la commande et chacun génère son étiquette. Nous les avons comparés dans quel transporteur choisir selon le cas.
Faut-il un contrat propre avec DHL ?
Oui. L'intégration fonctionne avec les identifiants d'API et les services de votre contrat ; nous ne revendons pas de transport. Sans contrat, il n'y a pas de services à proposer.
Et les enlèvements ?
Avec DHL, si l'API de votre contrat les propose, ils sont développés pour pouvoir être demandés depuis Odoo : nous n'avons pas de connecteur DHL standard. Dans notre connecteur Correos Express, ils se créent, se modifient et s'annulent déjà depuis le bon de livraison, et celui de MRW envoie la date d'enlèvement dans la demande d'expédition elle-même. Quel que soit le transporteur, mieux vaut demander un enlèvement par jour et par entrepôt plutôt qu'un par expédition, c'est ainsi qu'on se retrouve avec vingt enlèvements et un transporteur agacé.
Liens utiles dans FlexigoTech
Ce que nous faisons à ce sujet
Vous voulez générer les étiquettes depuis Odoo et ne plus passer par le site du transporteur ?
Dites-nous avec quels transporteurs vous travaillez, si vous expédiez hors de l'UE et si vous vendez sur des marketplaces. Nous vous dirons ce qui s'automatise et ce qui ne s'automatise pas. Écrivez à comercial@flexigobe.com ou planifiez un appel.

