Tout ce que vous voudriez savoir avant d'installer.
Un regard détaillé sur le fonctionnement de dffreegift — Cadeau offert au-delà d'un seuil panier pour PrestaShop 8 & 9, pourquoi nous l'avons conçu ainsi, et la réflexion derrière les fonctionnalités ci-dessus.
Le levier le plus mesurable sur le panier moyen
Sur une boutique e-commerce, deux variables font le chiffre d'affaires : le nombre de commandes et le panier moyen. Le coût d'acquisition d'une nouvelle commande est devenu très élevé (publicité, SEO, retargeting). À l'inverse, faire monter le panier d'un visiteur déjà sur le point d'acheter coûte presque rien — c'est un upsell sur un trafic déjà payé. Le cadeau au seuil panier est l'une des mécaniques les plus efficaces pour ça : le visiteur ajoute volontairement quelques euros pour ne pas passer à côté de l'offre. À condition que la mécanique soit visible, chiffrée, et instantanée. C'est exactement ce que fait dffreegift.
Le bloc de progression : la mécanique psychologique au centimètre près
Sur la page panier, le module affiche en permanence un bandeau dédié avec l'image du produit offert, son nom, et un message qui chiffre la distance restante au centime près : « Ajoutez 12,40 € pour recevoir votre cadeau ». Une barre de progression colorée passe progressivement du gris-orange au vert au fur et à mesure que le seuil approche. Au franchissement, le bandeau bascule en vert avec le message « Cadeau ajouté à votre panier ! » et une animation pulse confirme visuellement la réussite. Cette dramaturgie en temps réel est ce qui transforme une simple promotion conditionnelle en levier de comportement : le visiteur voit la jauge se remplir, calcule mentalement l'effort à fournir, et bascule.
Sous le capot : le mécanisme natif PrestaShop, propre
La grande majorité des modules cadeaux du marché manipulent directement les prix produits via le hook actionProductPriceCalculation, créent des lignes panier avec un prix forcé à zéro, ou injectent des SpecificPrice temporaires. Cette approche casse plus tard la compatibilité avec d'autres modules de promotion, génère des incohérences dans les exports comptables, et complique le débogage. dffreegift fait l'inverse : à l'installation, il crée une CartRule classique (visible dans Catalogue → Réductions → Règles panier) avec un code DFFREEGIFT_xxxxxxxx et un gift_product initialisé à zéro. Sur chaque sauvegarde de panier, le module synchronise gift_product et gift_product_attribute avec votre configuration, puis attache ou détache la règle au panier via les méthodes natives Cart::addCartRule et Cart::removeCartRule. PrestaShop prend ensuite tout en charge : insertion de la ligne cadeau (gift = 1, price = 0), affichage panier, totaux, conversion en commande, snapshot historique. Aucun appel direct sur les prix, aucune injection invasive — d'où la compatibilité native avec vos autres mécanismes promotionnels.
Trois triggers de synchronisation, plus une auto-réparation
La logique principale s'exécute sur le hook actionCartSave, qui est appelé par PrestaShop à chaque sauvegarde du panier — c'est-à-dire à chaque ajout, modification ou retrait de produit, mais aussi au login client (fusion de panier) et lors de certaines actions back-office. Un drapeau statique anti-récursion empêche que la modification du panier par le module ne re-déclenche le hook en boucle. En parallèle, le hook actionObjectCartRuleDeleteBefore surveille la suppression manuelle de notre CartRule depuis le back-office : si un admin supprime la règle par inadvertance, la configuration est remise à zéro et la prochaine synchronisation recréera une règle propre. Enfin, à chaque sauvegarde de configuration depuis l'écran Configurer, le module re-synchronise gift_product et gift_product_attribute sur la règle existante — vous n'avez jamais à toucher manuellement à la règle dans la zone Réductions.
Configuration : seuil, taxe, port, stock, groupes
L'écran Modules → DataFirefly Free Gift → Configurer regroupe tout. Un switch master pour activer ou désactiver l'ensemble. L'ID du produit cadeau (saisi à la main, avec le nom affiché en aide après enregistrement). Une liste déroulante des déclinaisons du produit (l'auto-remplissage se fait après avoir d'abord enregistré l'ID produit, le module relit alors les combinaisons disponibles). Le seuil de déclenchement en montant, avec deux switches associés : Calcul TTC (sinon HT) et Inclure les frais de port (sinon produits uniquement). Un switch Vérifier le stock du cadeau, qui suspend l'auto-ajout si le produit est en rupture (respecte la stratégie out of stock configurée globalement dans PrestaShop). Une grille de cases à cocher pour restreindre l'offre à certains groupes clients — si aucune n'est cochée, tous les clients sont éligibles, visiteurs non identifiés inclus. Deux switches d'affichage indépendants pour le message de progression et la barre de progression.
Cas d'usage typiques
Boutique de cosmétique avec marge confortable : offrir un échantillon parfum au-dessus de 40 € TTC pour pousser les paniers de 28-35 € vers 40 €. Mode et accessoires : pochette en cadeau dès 80 € TTC, calculé hors frais de port, pour fidéliser les premiers achats. B2B équipement : porte-clés ou clé USB au-dessus de 200 € HT, restreint au groupe Professionnels. Marketplace alimentaire : produit dégustation gratuit dès 50 € TTC port inclus, pour absorber le coût de livraison gratuite et l'amener à la rentabilité. Dans tous ces cas, la mécanique est identique : un seuil clair, un cadeau désirable, une progression visible, un ajout automatique. dffreegift gère tout ça sans intervention manuelle.
Compatibilité PrestaShop 8 et 9 — testée, pas promise
Le module utilise uniquement les API stables cross-version : Module, Hook, Configuration, CartRule, Cart, HelperForm, Smarty. Aucune utilisation des onglets produit Symfony de PrestaShop 9 (qui ont introduit des incompatibilités sur de nombreux modules tiers), aucune injection dans le checkout one-page, aucune dépendance à des classes dépréciées en PS 9. L'écran d'administration utilise HelperForm — composant stable et identique en PS 8 et PS 9. Côté frontend, le hook displayShoppingCart est présent et fonctionnel sur les deux versions, et le helper getCurrentLocale (utilisé pour le formatage des prix) est disponible depuis PrestaShop 1.7.6. Vous installez le module en PS 8 aujourd'hui, vous migrez en PS 9 quand vous le souhaitez : aucune intervention de votre part sur le module.
Multi-boutique, multilingue, code lisible
Le module fonctionne avec la configuration multi-boutique de PrestaShop sur le contexte boutique par défaut. Les messages frontend sont traduisibles via le mécanisme PrestaShop standard (Modules.Dffreegift.Shop pour le frontend, Modules.Dffreegift.Admin pour le back-office), avec FR, EN, ES et DE pré-positionnés. Le code source est livré en clair (PHP non chiffré, conforme aux conventions PrestaShop standard), avec des commentaires français en tête de chaque méthode importante. La logique principale tient dans un fichier dffreegift.php de moins de 700 lignes — lisible et auditable en moins d'une heure. Vous pouvez le modifier, l'étendre via vos propres hooks, ou le forker pour un besoin métier spécifique.
Il n’y a pas encore d’avis.