Voici ce que personne ne vous dit avant de vouloir « ajouter DHL à PrestaShop » : DHL, DPD et UPS ne sont pas trois variantes d'un même travail. L'un est une entreprise mondiale unique avec une seule API. Les intégrations DHL et DPD dépendent du service et du compte expéditeur : leur compatibilité avec un contrat allemand ou polonais ne garantit pas leur compatibilité avec un contrat français. Choisissez le mauvais chemin d'intégration et vous le découvrirez après avoir tout configuré, lorsqu'une vraie commande vers le mauvais pays sera rejetée. Ce guide explique comment connecter correctement ces trois transporteurs précis à une boutique PrestaShop, quel module installer, où se trouvent réellement les réglages dans le back-office, et quels pièges de fragmentation transforment une tâche d'un après-midi en chantier de trois semaines.
Ce n'est volontairement pas un guide sur les zones de livraison, les grilles tarifaires ou les seuils de livraison gratuite, c'est un autre sujet, qui mérite un traitement complet à part. Si vous n'avez pas encore posé les bases, commencez par notre guide complet de configuration de la livraison dans PrestaShop et par les mécanismes de configuration des modules transporteur étape par étape.
Comment PrestaShop voit un transporteur au départ

Avant de toucher au moindre module transporteur, mieux vaut savoir ce que vous créez réellement. Dans PrestaShop, un « transporteur » est une ligne dans la table ps_carrier, gérée dans le back-office sous Livraison → Transporteurs. Chaque transporteur porte un mode de livraison (basé sur le prix ou sur le poids), un modèle d'URL de suivi, une règle de taxe et une affectation à une ou plusieurs zones (les zones elles-mêmes se trouvent sous International → Zones géographiques → Zones, et vous les associez à un transporteur sous Livraison → Transporteurs). Un module transporteur, l'extension DHL, DPD ou UPS, ajoute l'une de deux choses à cela : soit il crée et gère ces lignes de transporteurs pour vous, soit il s'enregistre comme fournisseur de tarifs en temps réel via les méthodes de coût de livraison des modules transporteur de PrestaShop (la logique propre du module getOrderShippingCost() / coût de livraison externe), afin que le prix revienne en direct depuis les serveurs du transporteur au lieu de provenir d'un tableau saisi à la main. Les hooks d'affichage du tunnel de commande comme displayCarrierExtraContent ajoutent seulement une interface supplémentaire, par exemple un sélecteur de point relais, ce n'est pas là que le prix en direct est calculé.
Cette distinction, module d'étiquettes et de préparation contre module de tarifs en temps réel, compte davantage que la marque du transporteur. Un module d'étiquettes accélère votre entrepôt (il imprime la bonne étiquette et renvoie le numéro de suivi dans la commande). Un module de tarifs en temps réel rend votre tunnel de commande exact (le client voit le vrai coût pour son adresse). Beaucoup de marchands installent l'un en attendant l'autre et ne comprennent pas pourquoi le tunnel de commande affiche encore leur ancien forfait. Sachez quel problème vous résolvez avant de commencer.
Les trois transporteurs, et ce que cela change pour PrestaShop
| Transporteur | Structure | Réalité PrestaShop | Le plus adapté à |
|---|---|---|---|
| UPS | Entreprise mondiale unique, une API REST unifiée | L'intégration la plus propre des trois, un module, un jeu d'identifiants API et un modèle d'API et de compte relativement unifié, même si les services disponibles et les tarifs dépendent toujours de votre compte expéditeur, du pays d'origine et du module | Transatlantique, B2B, colis de grande valeur où la fiabilité du suivi compte |
| DHL | Plusieurs activités distinctes sous une même marque (DHL Paket, DHL Express, DHL eCommerce) | Le module dépend du DHL exact avec lequel vous avez un contrat. Ils ne sont pas interchangeables | Livraisons nationales en Allemagne (Paket), express mondial (Express) |
| DPD | Fédération de filiales nationales indépendantes | Le module DPD Allemagne ne servira pas DPD France ; une configuration DPD multi-pays implique souvent plusieurs modules ou un module tiers basé sur API | Livraison terrestre transfrontalière dans l'UE, livraison en point relais |
Qu'est-ce que cela signifie au moment de configurer ? Avec UPS, vous connectez un compte et vous êtes globalement prêt. Avec DHL, vous devez d'abord identifier le produit DHL couvert par votre contrat, une boutique allemande qui expédie en Allemagne veut DHL Paket ; une boutique qui expédie en express mondial veut DHL Express ; ce sont des modules différents avec des identifiants différents. Avec DPD, vous devez faire correspondre vos pays d'expédition à la bonne filiale nationale et accepter qu'une vraie configuration DPD multi-pays soit la plus difficile des trois à garder propre.
DHL : quel « DHL » voulez-vous vraiment dire ?
L'erreur DHL la plus fréquente sur PrestaShop consiste à installer le module du mauvais produit. Un marchand rencontre trois activités DHL :
- DHL Paket, colis nationaux en Allemagne, 1 à 2 jours. C'est celui que veulent la plupart des boutiques allemandes. Le module officiel gère la génération des étiquettes et renvoie les numéros de suivi dans la commande. Il communique avec le portail clients professionnels de DHL (Geschäftskundenportal) et nécessite vos identifiants client professionnel (GKP). Il est excellent pour les envois nationaux en Allemagne et limité pour le reste.
- DHL Express, express mondial, 1 à 3 jours, avec une vraie API de tarification en temps réel et la gestion des documents douaniers. C'est le module qu'il vous faut si l'express international est votre activité, mais c'est un autre module avec d'autres identifiants, pas un réglage à l'intérieur du module Paket.
- DHL eCommerce, solution internationale optimisée en coût pour les colis plus légers. Le comportement des tarifs dépend fortement de vos conditions contractuelles.
Concrètement : dans Livraison → Transporteurs, après avoir installé le module DHL, vous obtiendrez une ou plusieurs lignes de transporteurs. Définissez l'URL de suivi de chacune sur le modèle DHL : https://www.dhl.com/global-en/home/tracking.html?tracking-id=@, où le jeton @ de PrestaShop est remplacé par le numéro de suivi de la commande au moment de l'envoi. Vérifiez que le transporteur est associé aux zones vers lesquelles vous expédiez réellement sous Livraison → Transporteurs (les zones elles-mêmes sont définies sous International → Zones géographiques → Zones), car les valeurs par défaut d'un transporteur fraîchement créé peuvent laisser des régions entières sans couverture, et le transporteur n'apparaîtra tout simplement pas dans le tunnel de commande pour ces adresses.
DPD : le problème de fédération, et comment l'éviter
Les filiales nationales de DPD fonctionnent indépendamment, et cela se répercute directement dans PrestaShop. DPD Allemagne, DPD France et DPD Pologne ont chacune leurs propres modules, leurs propres fonctionnalités et leurs propres points de terminaison API. Si vous expédiez depuis un pays vers des clients de ce même pays, choisissez le module de ce pays et tout ira bien. Les difficultés commencent lorsque vous expédiez avec DPD à travers les frontières depuis plusieurs origines, ou lorsque vous voulez un flux d'étiquettes unifié entre pays, les modules officiels par filiale n'ont tout simplement pas été conçus pour coopérer.
Il existe deux solutions propres. La première est DPD Web Services, l'API propre de DPD, qui exige un contrat professionnel et des identifiants API, et offre une interface programmatique plus uniforme que les modules par pays. La seconde est un module tiers multi-filiales qui s'appuie sur ces services web et présente un écran de configuration unique. Dans tous les cas, la décision à prendre tôt est la suivante : suis-je un expéditeur DPD mono-filiale (utiliser le module national officiel) ou multi-filiales (prévoir la voie API) ? Le décider dès le premier jour vous évite d'installer trois modules qui se disputent les mêmes lignes de transporteurs.
Le modèle de suivi DPD pour PrestaShop est https://tracking.dpd.de/status/en_US/parcel/@ pour la filiale allemande ; les autres filiales utilisent leurs propres hôtes de suivi, ce qui est une raison de plus pour configurer volontairement un DPD multi-filiales au lieu de faire du copier-coller. Le service Predict de DPD (créneau de livraison d'une heure et notifications proactives) est une vraie raison pour laquelle les clients apprécient DPD, si votre module l'expose, cela vaut la peine de le mettre en avant dans le tunnel de commande.
UPS : le cas le plus simple
UPS est le chemin de moindre résistance précisément parce qu'il s'agit d'une seule entreprise avec une seule API. Le module UPS se connecte avec un jeu unique d'identifiants API et peut calculer les tarifs en temps réel pour chaque niveau de service (UPS Standard, Express Saver, Express) dans le tunnel de commande, générer des étiquettes (PDF ou ZPL pour imprimantes thermiques) et récupérer le suivi dans le monde entier. Il est plus unifié que DHL ou DPD, mais les services exacts, les tarifs négociés et les fonctionnalités activées dépendent toujours de votre compte expéditeur, du pays d'origine et du module utilisé. Son modèle d'URL de suivi dans Livraison → Transporteurs est https://www.ups.com/track?tracknum=@.
Le compromis n'est pas la difficulté d'intégration, c'est le prix : UPS coûte généralement plus cher que DHL ou DPD pour les colis terrestres intra-européens standard. Là où ce supplément se justifie, c'est dans l'expédition transatlantique (le réseau américain le plus solide des trois), le B2B et les produits de grande valeur, où la granularité et la fiabilité du suivi valent leur prix. Si votre catalogue s'adresse surtout à l'UE et que le prix compte, UPS est souvent l'option express/premium que vous proposez à côté d'un transporteur moins cher, plutôt que votre choix par défaut.
Tarifs en temps réel ou grilles tarifaires : la décision qui joue sur la vitesse du tunnel de commande
La tarification en temps réel, interroger les serveurs du transporteur dans le tunnel de commande pour que le client voie le coût exact selon son adresse, le poids et les dimensions, est la fonctionnalité la plus demandée, et celle qui risque le plus de ralentir votre tunnel de commande jusqu'à le rendre pénible. Chaque appel API transporteur prend généralement une à trois secondes. Interrogez les trois en direct à la fois, et votre étape de livraison peut rester vide pendant presque dix secondes pendant que le client se demande si la page est cassée. PrestaShop exécute ces appels côté serveur pendant l'étape de livraison du contrôleur de commande, donc le client ressent chacun d'eux.
Comportement des trois transporteurs :
- UPS, l'API de tarification en temps réel la plus mature ; devis fiables en temps réel entre services, particulièrement utile à l'international où le coût varie réellement selon la destination.
- DHL, les tarifs DHL Express remontent proprement en direct via son API ; DHL Paket couvre le national et reste suffisamment prévisible par zone/poids pour qu'une grille tarifaire soit généralement suffisante et plus rapide.
- DPD. La tarification en temps réel est la moins standardisée ; de nombreux marchands DPD utilisent volontairement les propres grilles tarifaires de PrestaShop basées sur le poids ou le prix (Livraison → Transporteurs → Destinations d'expédition et coûts) plutôt que de se battre avec l'API.
Le modèle pragmatique adopté par la plupart des boutiques est hybride : tarifs en temps réel uniquement là où ils sont rentables (à l'international, où se tromper coûte cher), et grille tarifaire maintenue pour la livraison nationale prévisible. La question plus profonde de quel modèle tarifaire facturer aux clients, calculé en direct, forfaitaire ou gratuit au-dessus d'un seuil, est une décision à part entière, traitée dans livraison gratuite, forfaitaire ou calculée.
Étiquettes et flux d'entrepôt
Pour toute boutique qui expédie plus qu'une poignée de commandes par jour, la génération d'étiquettes est l'endroit où un module transporteur justifie son existence. Les trois transporteurs peuvent produire des étiquettes en PDF pour imprimantes A4/A6 et en ZPL pour imprimantes thermiques d'étiquettes, le format à privilégier dès que le volume justifie une imprimante dédiée. DHL Paket s'intègre au portail clients professionnels allemand pour les impressions d'étiquettes en lot ; les étiquettes DPD passent par Web Services ou par son portail MyShipping (et l'impression en lot passe parfois par l'outil propre de DPD plutôt que directement depuis PrestaShop) ; UPS produit les étiquettes directement depuis le module et propose WorldShip pour les flux de bureau à gros volume. Lorsque vous passez une commande au statut expédié et qu'un numéro de suivi est présent, le client reçoit l'e-mail de suivi uniquement si ce statut de commande est configuré pour envoyer un e-mail et utilise un modèle qui inclut le lien de suivi (construit à partir du modèle défini sur le transporteur). L'étape d'étiquetage et l'étape de notification client sont donc liées, mais seulement lorsque le statut est configuré pour notifier.
Si la partie qui vous importe le plus est de tenir les clients informés après l'expédition, le volet notifications et liens de suivi a son propre guide dans numéros de suivi et notifications de livraison.
Les erreurs qui coûtent réellement de l'argent
Deux d'entre elles grignotent la marge en silence, elles méritent donc plus qu'une simple puce :
- Poids et dimensions produit inexacts. Chaque tarif en temps réel ne vaut que ce que valent les champs de poids et de dimensions de vos produits (onglet Catalogue → Produits → Livraison). Des poids manquants ou approximatifs signifient que vous sous-facturez, en absorbant la différence sur chaque colis, ou que vous surfacturez et perdez la commande dans le tunnel de commande. C'est une hygiène de catalogue peu spectaculaire, mais c'est le levier le plus efficace pour améliorer l'exactitude des frais de livraison.
- Ignorer le poids volumétrique. Les trois transporteurs facturent les colis volumineux mais légers au poids volumétrique (DIM), pas au poids réel. Un coussin de 500 g dans une boîte de 40×40×20 cm est facturé comme plusieurs kilos. Si vous vendez des produits légers et volumineux et que votre module ne reçoit pas les dimensions, vous sous-facturerez chacun d'eux, une fuite lente qui n'apparaît qu'au rapprochement de la facture transporteur.
- Coder les tarifs en dur et ne jamais les revoir. Une grille tarifaire saisie en 2024 devient fausse dès que le transporteur publie de nouvelles grilles (ce qui arrive au moins une fois par an). Calculez les tarifs en direct, ou planifiez une révision à chaque mise à jour des tarifs du transporteur.
- Ne pas tester le tunnel de commande par zone. Après la configuration, passez des commandes de test vers une adresse nationale, une adresse UE et une adresse hors UE, puis vérifiez que les bons transporteurs apparaissent aux bons prix. Un transporteur absent d'une zone, ou affiché avec un prix aberrant, reste invisible jusqu'à ce qu'un client tombe dessus.
Quel transporteur pour quel besoin
Il n'existe pas de transporteur unique « meilleur » que les autres. La réponse honnête est que la plupart des boutiques européennes en croissance finissent par en proposer deux ou trois et laissent le client choisir entre une option économique, standard et express. Comme point de départ :
| Besoin d'expédition | Premier choix habituel | Pourquoi |
|---|---|---|
| Livraison nationale en Allemagne | DHL Paket | Le moins cher et le plus rassurant localement ; module officiel propre |
| Livraison terrestre transfrontalière UE | DPD Classic | Souvent le prix terrestre transfrontalier le plus bas |
| Express mondial | DHL Express ou UPS | Les deux disposent de vrais réseaux express et d'une tarification en temps réel |
| Transatlantique / États-Unis | UPS | Réseau américain le plus solide et suivi fiable |
| Grande valeur / B2B | UPS | Granularité du suivi qui justifie le supplément |
Plusieurs marchés sont mieux servis par un champion national que par l'un de ces trois transporteurs, et forcer DHL/DPD/UPS là où un transporteur local domine vous coûte des conversions. Pour ces cas, consultez les guides dédiés : Colissimo pour la France, InPost Paczkomaty pour la Pologne, la livraison en point relais Mondial Relay et GLS pour l'expédition multi-pays. Et si vous expédiez depuis plusieurs origines, le choix du transporteur s'entremêle avec l'emplacement du stock, c'est la gestion multi-entrepôts.
Quand le système de transporteurs par défaut ne suffit plus
Le système natif de transporteurs de PrestaShop gère bien les zones, les grilles tarifaires, les modèles de suivi et les modules standard par transporteur. Là où il atteint ses limites, c'est dans la logique autour des transporteurs : masquer conditionnellement un transporteur pour certains produits ou contenus de panier, comparer les tarifs en temps réel de plusieurs transporteurs et n'afficher que le moins cher, ou appliquer des règles personnalisées comme « DPD gratuit au-delà de €80 mais UPS toujours payant ». C'est précisément l'espace que nos modules de livraison mypresta.rocks sont conçus pour combler, étendre l'affichage des transporteurs et la logique de règles depuis le back-office, sans modification du cœur, afin que votre personnalisation survive à la prochaine mise à jour PrestaShop au lieu de casser avec elle. Le bénéfice est concret : les bons transporteurs apparaissent pour les bonnes commandes, au bon prix, automatiquement, sans que vous entreteniez à la main un enchevêtrement de règles.
L'ordre à suivre : faites fonctionner un transporteur, celui qui couvre votre marché principal, de bout en bout et testez-le complètement (prix dans le tunnel de commande, étiquette, e-mail de suivi) avant d'en ajouter un deuxième. Un seul transporteur parfaitement configuré vaut mieux que trois configurés à moitié, et une fois le premier solide, les autres suivent le même modèle. Si les attentes de rapidité font partie de votre offre, décidez ce que vous pouvez vraiment promettre avant de l'annoncer, la livraison le jour même et le lendemain pour les petites boutiques et la définition de dates de livraison réalistes aident à tenir cette promesse honnêtement.
Questions fréquentes
J'ai installé le module DHL mais le tunnel de commande affiche encore mon ancien forfait, pourquoi ?
Vous avez presque certainement installé un module d'étiquettes et de préparation alors que vous vouliez un module de tarifs en temps réel. Un module d'étiquettes accélère votre entrepôt, il imprime la bonne étiquette et renvoie le numéro de suivi dans la commande, mais il ne calcule pas les prix dans le tunnel de commande ; le client voit toujours la grille tarifaire que vous avez saisie. Un module de tarifs en temps réel interroge les serveurs du transporteur pendant l'étape de livraison, afin que le prix reflète l'adresse et le poids réels. Vérifiez le rôle de votre module avant de supposer qu'il est cassé : beaucoup de marchands installent l'un en attendant l'autre.
Le module DPD qui fonctionne en Allemagne n'expédie pas depuis la France. Est-ce un bug ?
Non, c'est la fédération. DPD est un groupe de filiales nationales indépendantes, et DPD Allemagne, DPD France et DPD Pologne ont chacune leurs propres modules, fonctionnalités et points de terminaison API, ils n'ont pas été conçus pour coopérer. Si vous expédiez depuis un seul pays, installez le module officiel de ce pays et tout ira bien. Si vous expédiez à l'international depuis plusieurs origines, prévoyez plutôt la voie API : DPD Web Services (leur propre API, derrière un contrat professionnel) ou un module tiers multi-filiales qui s'appuie dessus et présente un écran de configuration unique.
Quelle URL de suivi dois-je mettre sur le transporteur dans PrestaShop ?
Chaque ligne de transporteur dans Livraison → Transporteurs accepte un modèle d'URL de suivi avec le jeton @ de PrestaShop, remplacé par le numéro de suivi de la commande au moment de l'envoi. Les modèles sont : DHL, https://www.dhl.com/global-en/home/tracking.html?tracking-id=@ ; DPD Allemagne, https://tracking.dpd.de/status/en_US/parcel/@ (les autres filiales DPD utilisent leurs propres hôtes de suivi) ; UPS, https://www.ups.com/track?tracknum=@. L'e-mail de suivi ne part que si le statut de commande qui définit « expédié » est configuré pour envoyer un e-mail et si son modèle inclut le lien de suivi.
Pourquoi mon tunnel de commande ralentit-il quand j'active les tarifs en temps réel ?
Chaque appel API transporteur prend généralement une à trois secondes, et PrestaShop les exécute côté serveur pendant l'étape de livraison, le client ressent donc chacun d'eux. Interrogez les trois transporteurs en direct à la fois, et l'étape de livraison peut rester vide pendant presque dix secondes. Le correctif pragmatique adopté par la plupart des boutiques est hybride : tarifs en temps réel seulement là où ils sont rentables (à l'international, où se tromper coûte cher), et grille tarifaire maintenue basée sur le poids ou le prix pour les livraisons nationales prévisibles, ce qui est à la fois plus rapide et une API de moins dont dépendre.
Je sous-facture constamment les colis volumineux, qu'est-ce que j'oublie ?
Le poids dimensionnel (volumétrique). Les trois transporteurs facturent les colis volumineux mais légers au poids DIM, pas au poids réel, un coussin de 500 g dans une boîte de 40×40×20 cm est facturé comme plusieurs kilos. Si vos produits n'ont pas de dimensions renseignées, vos tarifs en temps réel sont calculés sur le seul poids réel et vous absorbez la différence sur chaque colis. Renseignez à la fois le poids et les dimensions dans l'onglet Catalogue → Produits → Livraison ; c'est une hygiène de catalogue peu spectaculaire, mais le levier le plus efficace pour l'exactitude des frais de livraison.
Par lequel des trois dois-je commencer ?
Celui qui couvre votre marché principal, et seulement celui-là pour commencer. Faites fonctionner un seul transporteur de bout en bout et testez-le complètement, prix dans le tunnel de commande, étiquette, e-mail de suivi, avant d'en ajouter un deuxième. Comme point de départ : DHL Paket pour les livraisons nationales en Allemagne, DPD pour la livraison terrestre transfrontalière dans l'UE, DHL Express ou UPS pour l'express mondial, et UPS pour le transatlantique, le B2B et les colis de grande valeur où la fiabilité du suivi justifie le supplément. Un seul transporteur parfaitement configuré vaut mieux que trois configurés à moitié.