- Gestion des zones de livraison par code postal
- Tarification avancée par transporteur
- Administration et productivité
- Aspects techniques
- DOM-TOM / îles / zones éloignées
- Livraison gratuite locale
- Bloquer la livraison en zone non desservie
- Frais au pourcentage
- Le module crée-t-il des transporteurs ?
- Que se passe-t-il si aucune zone ne correspond ?
- Le module supporte-t-il les codes postaux alphanumériques (UK, CA) ?
- Puis-je l’utiliser avec un One Page Checkout ?
- Le module n’apparaît pas dans le menu Livraison
- Les frais ne changent pas au checkout
- Le transporteur disparaît au checkout
Shipping Cost by Zip Code — Frais de livraison par code postal
Shipping Cost by Zip Code est un module PrestaShop qui vous permet d’appliquer des frais de livraison précis en fonction du code postal du client. Vous créez des zones postales personnalisées (illimitées), vous y associez des codes postaux (unitaires ou par plages), puis vous définissez des tarifs par transporteur avec des tranches par poids ou par montant de panier.
Contrairement au calcul natif (zones/pays), cette approche est idéale lorsque les coûts varient fortement entre centre-ville, zones rurales, îles, montagne, DOM-TOM, etc. Le module n’ajoute pas de transporteurs : il ajuste les tarifs de vos transporteurs existants au moment du checkout, selon le code postal.
Points forts :
- Zones postales illimitées (codes uniques et plages numériques)
- Tarifs par transporteur + tranches illimitées (poids ou prix)
- Livraison gratuite (par tranche, par zone ou dès un montant)
- Import / export CSV pour configurer en masse
- Système de priorité en cas de chevauchement de zones
- Multistore, multilingue, sans override
Présentation
Par défaut, PrestaShop calcule les frais de livraison selon des zones géographiques et des pays, ce qui devient rapidement trop imprécis. Une boutique peut avoir besoin d’un tarif différent selon la distance, l’accessibilité ou le coût réel du transport, même dans un même pays.
Avec Shipping Cost by Zip Code, vous définissez des règles au niveau du code postal :
- Vous créez une zone postale (ex. “Paris Intra-muros”, “DOM-TOM”, “Zone montagne”).
- Vous ajoutez des codes postaux (liste) ou des plages (ex. 75001 → 75020).
- Vous paramétrez la tarification par transporteur avec une logique par poids ou montant.
Si aucune zone ne correspond au code postal, le comportement est configurable : appliquer les frais standards de PrestaShop, ou bloquer la livraison (transporteurs masqués).
Fonctionnalités
Gestion des zones de livraison par code postal
- Création de zones postales illimitées
- Codes postaux :
- Unitaires (un code ou une liste)
- Plages numériques (ex. 75001 à 75020)
- Support de plusieurs pays dans une même zone
- Activation / désactivation de zone
- Option “Livraison désactivée” : masquer les transporteurs au checkout pour une zone donnée
- Système de priorité pour gérer les chevauchements entre zones
Tarification avancée par transporteur
- Tarifs par transporteur et par zone
- Mode de calcul :
- Poids (kg)
- Prix (montant du panier)
- Tranches illimitées (0–5, 5–10, etc.)
- Frais fixes ou en pourcentage du panier
- Livraison gratuite :
- par tranche
- par zone / transporteur
- automatiquement à partir d’un montant de panier défini
- Option “Tous les transporteurs” : appliquer une règle à tous les transporteurs en une seule configuration
Administration et productivité
- Interface intégrée dans le back-office, menu Livraison
- Liste des zones avec recherche / filtres / tri et réorganisation par position (drag & drop)
- Éditeur “tout-en-un” : général + codes postaux + tarifs sur la même page
- Import CSV en masse avec rapport d’erreurs
- Export CSV complet de la configuration
- Fichier CSV d’exemple fourni
Aspects techniques
- Compatible PrestaShop 1.7.7, 8.x et 9.x
- Compatible multistore
- Support multilingue (noms de zones traduisibles)
- Aucun override du core PrestaShop
- Utilisation de
id_carrier_reference(résistant aux modifications de transporteurs) - Requêtes optimisées + cache en mémoire (matching code postal → zone)
Prérequis
- PrestaShop : 1.7.7.0 minimum (compatible 1.7.7 → 9.x)
- PHP : 7.4+ (compatible 7.4 → 8.3)
- MySQL : 5.6+ / MariaDB : 10.1+
Limitation importante : le module supporte uniquement les codes postaux numériques. Les pays à codes alphanumériques (ex. Royaume-Uni, Canada, Pays-Bas) ne sont pas pris en charge.
Installation
Méthode 1 — via le back-office (recommandé)
- Allez dans Modules > Gestionnaire de modules
- Cliquez sur Téléverser un module
- Sélectionnez
wepresta_shipping_cost_by_zip.zip - Attendez la fin de l’installation
- Cliquez sur Configurer
Méthode 2 — via FTP
- Décompressez l’archive ZIP
- Uploadez le dossier
wepresta_shipping_cost_by_zip/dans/modules/ - Dans le back-office : Modules > Gestionnaire de modules
- Recherchez le module et cliquez sur Installer
- Cliquez sur Configurer
Ce que fait l’installation
- Crée 4 tables :
wep_zip_zone,wep_zip_zone_lang,wep_zip_range,wep_zip_delivery - Enregistre les hooks nécessaires
- Ajoute un onglet “Shipping by Zip Code” dans Livraison
- Initialise une configuration par défaut
Note : le module ne crée aucun transporteur. Il modifie le tarif des transporteurs existants selon le code postal.
Configuration
Accès :
- Modules > Gestionnaire de modules > Configurer
- ou Livraison > Shipping by Zip Code
Paramètres globaux
- Activer le module : active/désactive le calcul par code postal
- Comportement par défaut (si aucune zone ne correspond) :
- Utiliser les frais standard : PrestaShop applique ses tarifs natifs (recommandé pour démarrer)
- Bloquer la livraison : les transporteurs n’apparaissent pas au checkout
Gestion des zones
Accès : Livraison > Shipping by Zip Code
Créer une zone
- Cliquez sur Ajouter une nouvelle zone
- Renseignez :
- Nom de la zone (multilingue)
- Actif (Oui/Non)
- Livraison désactivée (Oui/Non)
- Cliquez sur Enregistrer
Ajouter des codes postaux
Dans l’éditeur de zone, section Codes postaux :
- Choisissez le pays
- Ajoutez :
- Liste de codes (séparés par virgules) :
75001, 75002, 75003
- ou plage :
- de
75001à75020
- de
- Liste de codes (séparés par virgules) :
- Cliquez sur + Ajouter
Seuls les codes postaux numériques sont supportés.
Configurer les transporteurs et tarifs
Dans la section Transporteurs & tarification :
- Sélectionnez un transporteur (ou Tous les transporteurs)
- Choisissez le type :
- Poids (kg) ou Prix (montant panier)
- Définissez la tranche :
- borne min / borne max
- Renseignez le tarif
- Options :
- Pourcentage (si activé, le prix est un % du panier)
- Livraison gratuite
- Gratuit à partir de (seuil de panier)
- Cliquez sur + Ajouter un tarif
Import / export CSV
Format du CSV
- Séparateur : point-virgule
; - Encodage : UTF-8
Colonnes principales :
zone_name(obligatoire)country_iso(obligatoire)postal_code_from(obligatoire)postal_code_to(optionnel : vide = code unique)carrier_reference(obligatoire)calculation_type:weight/price(obligatoire)range_from,range_to,price(obligatoires)is_percentage,is_free,free_from_amount(optionnels)
Importer
- Livraison > Shipping by Zip Code
- Importer CSV
- Sélectionnez le fichier
- Importez et consultez le rapport (lignes OK / mises à jour / erreurs)
Comportements utiles :
- Une zone existante avec le même nom est réutilisée (pas de doublon)
- Les plages existantes ne sont pas dupliquées
- Un tarif existant identique est mis à jour
Exporter
- Cliquez sur Exporter CSV
- Le fichier téléchargé reprend le même format que l’import
Système de priorité
Chaque zone possède une position (triable). Si un code postal correspond à plusieurs zones, la zone avec la position la plus basse est prioritaire.
Ordre de résolution :
- Match exact (code postal individuel)
- Match par plage
- Si plusieurs matchs, la position départage
Multistore
Le module est compatible avec le multistore PrestaShop :
- Les zones et tarifs sont visibles selon le contexte (toutes les boutiques / groupe / boutique)
- Une zone est rattachée à la boutique active lors de sa création
- Pour appliquer une configuration à plusieurs boutiques : dupliquez via CSV (export/import)
Comportement côté client
Au checkout, le module est transparent :
- Le client saisit son adresse (avec code postal)
- PrestaShop affiche les transporteurs
- Le module ajuste les frais selon la zone correspondante
Le client voit :
- des frais adaptés à son code postal
- éventuellement moins de transporteurs si une zone est “non livrable”
- la livraison gratuite si configurée
Cas d’usage courants
DOM-TOM / îles / zones éloignées
Définissez une zone spécifique (ex. 97100 → 97490) avec des tarifs plus élevés que la métropole.
Livraison gratuite locale
Créez une zone “locale” (codes postaux proches) et activez la livraison gratuite, tout en gardant les frais standards pour le reste.
Bloquer la livraison en zone non desservie
Créez une zone “non livrable” et activez Livraison désactivée pour masquer les transporteurs concernés.
Frais au pourcentage
Pratique pour les paniers élevés : ex. 3% du montant, puis gratuit dès un certain seuil.
FAQ
Le module crée-t-il des transporteurs ?
Non. Il utilise vos transporteurs existants et ajuste le calcul des frais selon le code postal.
Que se passe-t-il si aucune zone ne correspond ?
Selon le paramètre global :
- soit PrestaShop applique les frais standards
- soit la livraison est bloquée (transporteurs invisibles)
Le module supporte-t-il les codes postaux alphanumériques (UK, CA) ?
Non, uniquement les codes postaux numériques.
Puis-je l’utiliser avec un One Page Checkout ?
Oui, le calcul se fait côté serveur via getOrderShippingCost(), compatible checkout standard et OPC.
Dépannage
Le module n’apparaît pas dans le menu Livraison
- Vérifiez qu’il est installé et activé
- Videz le cache : Paramètres avancés > Performances > Vider le cache
- Vérifiez les permissions employés
Les frais ne changent pas au checkout
- Module activé ?
- Zone active pour le code postal du client ?
- Tarifs configurés pour la zone + transporteur ?
- Tranches couvrant le poids/prix du panier ?
- Cache vidé ?
Le transporteur disparaît au checkout
- Zone en mode Livraison désactivée
- Comportement par défaut = Bloquer la livraison et aucune zone ne matche
- Aucun tarif défini pour ce transporteur dans la zone
Changelog
Version 1.0.0
- Zones postales illimitées
- Codes postaux unitaires + plages
- Tarifs par poids ou montant
- Pourcentage du panier
- Livraison gratuite (par tranche / seuil)
- Blocage de livraison par zone
- Priorités entre zones
- Import / export CSV
- Multistore + multilingue
- Compatibilité PrestaShop 1.7.7 → 9.x
Support
- Support via la page du module (PrestaShop Addons) ou votre espace client WePresta
- Délai indicatif : 24–48h ouvrées
Avant contact, préparez :
- version PrestaShop
- version PHP
- description précise du problème
- captures d’écran
- logs PrestaShop si disponibles
Licence
Licence Academic Free License (AFL 3.0).
Copyright © WePresta. Tous droits réservés.