Date de livraison estimée — Guide complet
Installer et configurer le module Date de livraison estimée : cut-off, délais de préparation, transporteurs et jours fériés.
Présentation
DataFirefly Delivery Date affiche une date de livraison estimée sur la fiche produit, le panier et le checkout de votre boutique PrestaShop 8 ou 9. Le calcul combine quatre facteurs : le délai de préparation propre à chaque produit, la fourchette de livraison du transporteur (min/max jours ouvrés), les week-ends et jours fériés, et votre heure de cut-off quotidienne. Avant la cut-off, un compte à rebours live indique au client le temps restant pour une expédition le jour même.
Installation
- Dans votre back-office PrestaShop, ouvrez Modules → Gestionnaire de modules → Installer un module.
- Téléversez le fichier
dfdeliverydate.zip. - Cliquez sur Installer, puis sur Configurer.
L’installation crée trois tables (ps_dfdeliverydate_product, ps_dfdeliverydate_carrier, ps_dfdeliverydate_holiday), enregistre les hooks nécessaires, ajoute un onglet d’administration pour les jours fériés et pré-remplit les 8 jours fériés nationaux français en récurrent annuel.
Configuration générale
Depuis Modules → Gestionnaire de modules → DataFirefly Delivery Date → Configurer, le premier panneau regroupe les réglages globaux :
- Heure et minute de cut-off — l’heure limite de commande pour une expédition le jour même (par défaut 14h00).
- Fuseau horaire d’expédition — chaîne de fuseau PHP, par défaut
Europe/Paris. Tous les calculs de dates sont effectués dans ce fuseau, indépendamment du fuseau du serveur. - Délai de préparation par défaut — appliqué à tous les produits pour lesquels aucun délai spécifique n’a été saisi.
- Min/max jours transporteur par défaut — utilisés quand un transporteur n’a pas de fourchette propre.
- Exclusion des week-ends — exclut samedi et dimanche du calcul. Si désactivé, vous pouvez exclure uniquement le dimanche (option suivante) si vous expédiez le samedi.
- Mode d’affichage — fourchette (entre min et max), date au plus tard uniquement, ou fourchette accompagnée de la date d’expédition.
- Zones d’affichage — trois interrupteurs indépendants : fiche produit, panier, checkout.
- Compte à rebours live — active ou désactive le compteur HH:MM:SS jusqu’à la cut-off.
Délai de préparation par produit
Chaque fiche produit du back-office affiche un panneau « Delivery date — preparation time ». Saisissez le nombre de jours ouvrés nécessaires avant que ce produit puisse être expédié :
0— produit en stock, expédiable immédiatement (éligible à l’expédition le jour même avant la cut-off) ;2— produit nécessitant deux jours ouvrés de préparation ;14— produit fabriqué ou personnalisé à la commande.
La valeur est enregistrée lors de la sauvegarde du produit. Dans le panier, c’est le produit au délai de préparation le plus long qui détermine la date d’expédition de la commande complète.
Configuration des transporteurs
Le deuxième panneau de la page de configuration liste tous les transporteurs actifs. Pour chacun, définissez le minimum et le maximum de jours ouvrés de livraison. Exemples courants : Chronopost 1–2, Colissimo 3–5, Mondial Relay 4–7. Sur la fiche produit et le panier, la fourchette du transporteur par défaut de la boutique est utilisée ; au checkout, le module bascule sur le transporteur réellement sélectionné par le client.
Lorsque PrestaShop versionne un transporteur (nouvel ID créé automatiquement après modification), le module recopie la configuration vers le nouvel ID — aucun paramétrage n’est perdu.
Jours fériés
Les jours fériés se gèrent depuis Améliorer → Livraison → Jours fériés (Delivery Date). Chaque entrée comporte une date, un nom, un indicateur récurrent et un statut actif/inactif :
- Récurrent — seul le mois et le jour comptent ; le férié est projeté automatiquement sur l’année courante et l’année suivante (ex. Noël chaque 25 décembre).
- Ponctuel — une date précise unique, idéale pour un pont ou une fermeture exceptionnelle.
Les 8 fériés nationaux français sont pré-installés en récurrent : 1er janvier, 1er mai, 8 mai, 14 juillet, 15 août, Toussaint, 11 novembre, 25 décembre. Vous pouvez les désactiver individuellement et ajouter vos fériés régionaux (Alsace-Moselle, DOM-TOM) ou étrangers.
Algorithme de calcul
Le calcul suit ces étapes, toutes exprimées en jours ouvrés dans le fuseau configuré :
- La date d’expédition démarre à aujourd’hui. Si l’heure actuelle dépasse la cut-off, elle est décalée à demain.
- Le délai de préparation du produit (ou le maximum du panier) est ajouté en jours ouvrés, en sautant week-ends et fériés.
- Si la date d’expédition obtenue tombe un jour non ouvré, elle est poussée au jour ouvré suivant.
- La fourchette de livraison est calculée en ajoutant le min et le max du transporteur, toujours en jours ouvrés.
La mention « expédition aujourd’hui » et le compte à rebours n’apparaissent que si trois conditions sont réunies : l’heure actuelle est avant la cut-off, aujourd’hui est un jour ouvré, et le délai de préparation vaut zéro.
Personnalisation des templates
Les trois widgets frontend sont rendus par des templates Smarty surchargeables. Copiez le ou les fichiers concernés depuis modules/dfdeliverydate/views/templates/hook/ vers themes/votre-theme/modules/dfdeliverydate/views/templates/hook/ :
product-delivery-date.tpl— fiche produit ;cart-delivery-date.tpl— panier ;checkout-delivery-date.tpl— checkout et confirmation de commande.
Chaque template reçoit un tableau $dfdd contenant notamment ships_today, min_date_label, max_date_label, ship_date_label, cutoff_ts et display_mode. Le CSS se trouve dans views/css/front.css (classes préfixées dfdd-).
Dépannage
- Le widget n’apparaît pas sur la fiche produit — vérifiez que la zone est activée dans la configuration et que votre thème implémente bien le hook
displayProductAdditionalInfo(c’est le cas du thème Classic et de la plupart des thèmes du marché). - Le compte à rebours affiche 00:00:00 — la cut-off du jour est dépassée ; le compteur ne s’affiche que lorsque l’expédition le jour même est encore possible.
- Les dates semblent décalées d’un jour — contrôlez le fuseau horaire configuré dans le module : le calcul utilise ce fuseau et non celui du serveur ni celui du navigateur.
- Un férié n’est pas pris en compte — vérifiez qu’il est actif, et pour un férié ponctuel que son année correspond bien à l’année en cours.
Désinstallation
La désinstallation supprime les trois tables du module, toutes les entrées de configuration (préfixe DFDD_), l’onglet d’administration des jours fériés et les enregistrements de hooks. Les délais de préparation saisis produit par produit sont donc définitivement perdus — exportez-les au préalable si nécessaire.