DataFirefly Advent Calendar : calendrier de l’Avent pour PrestaShop
Installation, tâche cron des rappels, création du calendrier et des cases, codes promo, tirage au sort, statistiques et dépannage.
Installation
Installez le module depuis Modules > Gestionnaire de modules > Installer un module en envoyant le fichier ZIP, ou déposez le dossier dfadventcalendar dans le répertoire /modules/ de votre boutique puis cliquez sur Installer.
L’installation crée les tables du module, enregistre ses hooks et ajoute l’onglet Catalogue > Réductions > Calendrier de l’Avent. Les images envoyées pour les cases sont stockées dans /img/dfadventcalendar/, hors du dossier du module, pour survivre à une mise à jour.
Réglages du module et tâche cron
La page de configuration du module (bouton Configurer dans le gestionnaire de modules) contient trois réglages et l’adresse cron.
Adresse de la page
Dernière partie de l’URL du calendrier, la même pour toutes les langues (PrestaShop ajoute le préfixe de langue, par exemple /en/). La valeur par défaut dépend de la langue principale de la boutique : /calendrier-de-l-avent en français, /advent-calendar en anglais, /adventskalender en allemand. Les URL simplifiées doivent être activées dans PrestaShop.
Rappel quotidien : tâche cron
Le rappel par e-mail part grâce à une tâche cron. Copiez l’adresse affichée et programmez-la toutes les 15 minutes dans le panneau de votre hébergeur, par exemple :
*/15 * * * * curl -s "https://www.votre-boutique.fr/module/dfadventcalendar/cron?token=VOTRE_JETON" > /dev/null
À chaque appel, le module envoie les rappels du jour à partir de l’heure réglée sur le calendrier, par lots (150 par défaut, réglable dans « Rappels par passage du cron »). Chaque participant reçoit au maximum un rappel par jour, et seulement s’il n’a pas encore ouvert la case du jour. La date du dernier passage est affichée sous l’adresse ; le bouton « Générer un nouveau jeton » rend l’ancienne adresse inutilisable.
Le calendrier fonctionne sans cron. Seuls les e-mails de rappel en dépendent. Le tableau de bord affiche une alerte si le cron n’a pas tourné depuis 24 heures.
Créer un calendrier
Ouvrez Catalogue > Réductions > Calendrier de l’Avent et cliquez sur Nouveau calendrier.
Dates et cases
- Date de la première case : la case 1 s’ouvre à minuit ce jour-là, dans le fuseau horaire de la boutique, puis une case par jour.
- Nombre de cases : 24 pour un calendrier classique, 25 pour inclure Noël, de 1 à 31.
- Autoriser l’ouverture des cases passées : un participant qui a manqué un jour peut rattraper la case jusqu’à la fin du calendrier.
À l’enregistrement, le module crée les cases vides. Elles restent fermées tant que vous ne les avez pas configurées et activées.
Apparence
Cinq ambiances sont proposées : Forêt de sapins, Papier kraft, Givre, Nuit d’hiver et Sucre d’orge. L’option Couleurs personnalisées active quatre couleurs (fond, texte, cases, accent). Vous pouvez ajouter une image de fond (JPG, PNG ou WebP, 5 Mo maximum), la neige qui tombe, le mélange des cases et les tailles variées.
Avec les tailles variées, le module choisit lui-même quelles cases sont larges ou grandes pour que la grille se remplisse sans trou sur 6, 4 ou 3 colonnes selon l’écran. La dernière case est toujours la plus grande.
Participation
- E-mail obligatoire pour ouvrir les cases : si désactivé, les visiteurs ouvrent librement, mais les codes personnels restent réservés aux inscrits.
- Confirmer l’adresse e-mail (double opt-in) : le participant clique sur un lien reçu par e-mail avant d’ouvrir les cases. Recommandé contre les fausses adresses.
- Case newsletter : ajoute une case facultative, non cochée. L’inscription passe par la newsletter client native ou par le module ps_emailsubscription s’il est installé.
- Texte de consentement : affiché à côté de la case obligatoire. Ajoutez-y le lien vers votre politique de confidentialité.
Rappels
Activez l’e-mail de rappel quotidien et choisissez l’heure du rappel. Le participant peut couper les rappels depuis la page du calendrier ou depuis le lien présent dans chaque e-mail.
Bannière d’accueil
La bannière s’affiche sur la page d’accueil pendant le calendrier et, si vous le souhaitez, quelques jours avant avec un compte à rebours. Pour la placer ailleurs dans votre thème, ajoutez {hook h='displayDfAdventCalendar'} dans un template.
Configurer les cases
Depuis le tableau de bord du calendrier, bouton Cases, puis Modifier sur chaque case.
Types de case
- Message : texte et image.
- Code promo : le code est mis en avant dans la fenêtre d’ouverture.
- Produit dévoilé : fiche produit avec prix et bouton d’ajout au panier. Recherchez le produit par nom ou référence.
Le champ Accroche pour l’e-mail de rappel est la phrase envoyée dans le rappel du jour : donnez envie sans dévoiler la surprise.
Récompense
Remise en pourcentage, remise en montant (TTC, devise par défaut), livraison offerte ou produit offert, avec un montant minimum de commande optionnel. Pour une case produit, l’option « Appliquer la réduction au seul produit dévoilé » limite le code à ce produit.
Type de code
- Code personnel : une règle panier à usage unique est générée quand le participant ouvre la case. Elle est rattachée à son compte client s’il est connu. Elle est valable jusqu’à minuit le jour de l’ouverture, plus la validité supplémentaire choisie.
- Même code pour tous : une seule règle panier par case, créée et synchronisée par le module. Laissez le champ vide pour obtenir un code automatique (préfixe, année et numéro de case, par exemple
ADVENT26-07), ou saisissez le vôtre. Le code compte à partir de la date de la case.
Pas le temps de configurer 24 cases ? Dans le tableau de bord, le bouton Remplir les cases vides applique un plan prêt à l’emploi : 10 à 20 % de remise et livraison offerte en alternance, 25 % sur la dernière case, codes personnels valables un jour de plus. Les textes sont écrits dans toutes les langues de la boutique. Les cases déjà configurées ne sont pas modifiées.
Prévisualiser avant le lancement
Le bouton Aperçu du tableau de bord ouvre le calendrier tel qu’il sera le jour choisi, et l’icône œil de chaque ligne ouvre directement la case de ce jour. En aperçu, les codes affichés sont des exemples et rien n’est enregistré. La page n’est pas indexée.
Le menu Plus > M’envoyer les e-mails de test envoie les trois e-mails (rappel, bienvenue, confirmation) à l’adresse de l’employé connecté, dans sa langue.
Ce que voit le client
- Un compte à rebours jusqu’à la prochaine case et, pour un participant, une barre de progression.
- La case du jour mise en avant. Les cases s’ouvrent en 3D, avec des confettis la première fois. Les animations sont coupées pour les visiteurs qui demandent moins de mouvement.
- Un bouton Ajouter à mon panier sous chaque code. Si le panier est vide, le code est mémorisé 14 jours et s’applique avec le premier produit ajouté.
- Le récapitulatif Vos codes sous la grille, avec la validité de chaque code et son état (utilisé, expiré).
- Un bouton de partage du calendrier et un lien dans le compte client.
Un participant déjà inscrit qui ressaisit son adresse reçoit un lien de connexion par e-mail : le module ne connecte jamais quelqu’un sur la seule saisie d’une adresse.
Tirage au sort final
Dans les réglages du calendrier, le champ Tirage au sort final fixe le nombre minimum de cases à avoir ouvertes pour participer (0 désactive le tirage), et le champ Lot du tirage final décrit le lot affiché sur le calendrier.
Le panneau Tirage au sort du tableau de bord indique le nombre de participants éligibles. Le bouton Tirer un gagnant au sort choisit au hasard parmi les participants confirmés éligibles, en excluant les gagnants précédents. Chaque tirage est enregistré avec l’e-mail, le nombre de cases ouvertes, le nombre d’éligibles et la date.
Un tirage au sort relève de la réglementation des jeux concours. Publiez un règlement sur votre boutique avant le lancement.
Tableau de bord et statistiques
Le tableau de bord affiche les participants, les confirmés, les rappels actifs, les inscriptions newsletter, les commandes passées avec un code et le chiffre d’affaires HT. Pour chaque case : ouvertures, commandes et chiffre d’affaires. Les participants s’exportent en CSV depuis la liste Participants.
Le menu Plus > Dupliquer pour l’année suivante copie le calendrier avec ses cases, textes et images, décale la date d’un an et le laisse inactif, sans participants ni codes.
Si Google Tag Manager est présent, le module envoie ces événements dans le dataLayer : dfadv_join, dfadv_door_open, dfadv_code_copy, dfadv_code_apply et dfadv_share.
E-mails
Trois modèles sont fournis en huit langues dans mails/ : dfadvent_reminder (rappel), dfadvent_confirm (confirmation et lien de connexion) et dfadvent_welcome (bienvenue). Pour les personnaliser sans perdre vos modifications à la mise à jour, copiez-les dans themes/votre-theme/modules/dfadventcalendar/mails/.
Données personnelles
- La case de consentement est obligatoire, la case newsletter est séparée et non cochée.
- Chaque e-mail de rappel contient un lien de désinscription en un clic.
- L’adresse IP n’est conservée que hachée, pour limiter les inscriptions à 5 par heure et par connexion.
- Le module répond aux demandes d’export et de suppression des données personnelles de PrestaShop.
Dépannage
Les rappels ne partent pas
Vérifiez la date du dernier passage du cron dans la configuration du module, que les rappels sont activés sur le calendrier et que l’heure du rappel est passée. Seuls les participants confirmés et n’ayant pas encore ouvert la case du jour reçoivent le rappel. Testez l’envoi avec « M’envoyer les e-mails de test ».
La page du calendrier renvoie une erreur 404
Vérifiez que les URL simplifiées sont activées, puis videz le cache de PrestaShop. Si l’adresse entre en conflit avec une page CMS ou une catégorie, changez-la dans la configuration du module.
Le code n’est pas ajouté au panier
Le message affiché est celui de PrestaShop : minimum de commande non atteint, code expiré ou code personnel lié à un compte client alors que le client n’est pas connecté. Dans ce dernier cas, le code reste en attente et s’applique au panier suivant une fois le client connecté.
Une case reste fermée alors que c’est le jour
Les cases s’ouvrent à minuit dans le fuseau horaire de la boutique (International > Localisation > Configuration). Vérifiez aussi que la case est active : une case non configurée reste fermée.
Compatibilité
- PrestaShop 8.0 à 9.x, le même ZIP couvre les deux versions.
- Thèmes Classic, Hummingbird et thèmes dérivés.
- Multiboutique et multilingue.
- Architecture ModuleAdminController, sans dépendance Composer.
- Module traduit en anglais, français, espagnol, allemand, italien, néerlandais, polonais et portugais.