Problèmes d'affichage avec un constructeur de pages
Lorsque vous construisez votre page produit avec un constructeur de pages (page builder) tel que Creative Elements ou AP Page Builder, le message Estimated Delivery peut ne pas apparaître, alors même que le module est installé, que la date de livraison est configurée et que le hook requis est en place. Ce guide explique pourquoi cela se produit et comment y remédier sans écrire de code.
Disponible depuis la v3.7.5
Vue d'ensemble
Par défaut, le module n'affiche qu'une seule instance du message de livraison par page produit. Cette protection existe pour que le message ne soit jamais imprimé deux fois lorsqu'un thème déclenche plusieurs fois le même hook.
Certains constructeurs de pages construisent la page produit en deux passes : ils produisent d'abord un espace réservé, puis lancent un second processus de rendu pour en remplir le contenu. Le module considère ce second rendu comme une répétition du premier et le supprime, si bien que le message de livraison disparaît silencieusement de la page.
Cela n'affecte que l'affichage standard par hook sur la page produit. C'est un sujet distinct du placement du widget à des emplacements personnalisés, traité dans Intégration du widget et des constructeurs de pages.
La solution
Activez un seul réglage pour autoriser le module à s'afficher plusieurs fois par page produit :
- Ouvrez le module et allez dans Avancé → Compatibilité (Advanced → Compatibility).
- Activez Activer les instances multiples sur la page produit (Enable multiple instances on Product Page).
- Enregistrez, puis rechargez une page produit de votre boutique pour confirmer que le message de livraison apparaît maintenant.
C'est tout ce qui est nécessaire : aucune modification de template et aucune modification de code.
Rappel automatique : lorsque le module détecte que Creative Elements ou AP Page Builder est actif sur votre boutique, il affiche un avis sur sa page de réglages — « You seem to be using a page builder module… » — avec un lien « click here to activate it » qui active ce réglage pour vous en un clic.
Fonctionnement
Tant que le réglage est désactivé, le premier hook déclenché sur la page produit marque le message de livraison comme « déjà affiché », et tous les appels suivants sur la même page sont ignorés. Lorsque vous activez Activer les instances multiples sur la page produit, ce verrou est levé, de sorte que chaque hook déclenché par le constructeur de pages peut effectuer un rendu.
Le module vérifie également si un constructeur de pages connu est installé et activé (actuellement Creative Elements et AP Page Builder). Lorsqu'un tel constructeur est détecté et que le réglage est toujours désactivé, il affiche l'avis de rappel décrit ci-dessus afin que vous ne restiez pas à vous demander pourquoi le message est absent.
Remarques importantes
- PrestaShop 1.7+ uniquement. Ce réglage n'a aucun effet sur PrestaShop 1.6.
- Constructeurs détectés automatiquement : l'avis de rappel se déclenche pour Creative Elements et AP Page Builder. D'autres constructeurs de pages qui rendent la page en deux passes peuvent rencontrer le même problème : la solution est identique, simplement vous ne recevrez pas l'avis automatique, vous devez donc activer le réglage manuellement.
- PrettyBlocks n'est pas concerné. Les blocs PrettyBlocks passent par le moteur de rendu des widgets et contournent entièrement la protection d'instance unique ; vous n'avez donc pas besoin de ce réglage avec les blocs PrettyBlocks.
- Laissez-le désactivé si vous n'en avez pas besoin. Sur un thème standard, la protection évite un double affichage accidentel ; n'activez donc ce réglage que lorsqu'un constructeur de pages supprime réellement le message.
Dépannage
| Problème | Solution |
|---|---|
| Le message de livraison est toujours absent après l'activation du réglage | Vérifiez que la date de livraison est bien configurée pour le produit (un produit sans règle correspondante n'affiche rien, par conception) et videz le cache de vos pages pour que la modification prenne effet. |
| Le réglage n'est pas visible dans Compatibilité | L'option est disponible sur PrestaShop 1.7 et supérieur. Sur PS 1.6, elle ne s'applique pas. |
| Le message apparaît maintenant deux fois | Votre thème affichait déjà correctement le message, et le constructeur de pages en ajoute une seconde copie. Désactivez de nouveau le réglage : vous n'en avez besoin que lorsque le message est absent, pas lorsqu'il s'affiche déjà. |
Foire aux questions
Ma page produit utilise un constructeur de pages et la date de livraison ne s'affiche pas du tout : pourquoi ?
Pour éviter d'imprimer deux fois le message de livraison, le module n'affiche qu'une seule instance par page produit. Certains constructeurs de pages créent un espace réservé puis rendent son contenu lors d'une seconde passe, ce que le module traite comme un doublon et masque. Activez **Avancé → Compatibilité → Activer les instances multiples sur la page produit** pour lever cette limite. Ce réglage nécessite PrestaShop 1.7 ou supérieur.
Dois-je modifier mon thème ou ajouter un hook manuellement ?
Non. La solution est une simple bascule dans les réglages de Compatibilité du module. Il n'est pas nécessaire de modifier des templates ni d'ajouter des hooks à la main.
Quels constructeurs de pages le module reconnaît-il automatiquement ?
Creative Elements et AP Page Builder. Lorsque l'un d'eux est actif et que le réglage est désactivé, le module affiche un rappel sur sa page de réglages avec un lien d'activation en un clic. D'autres constructeurs en deux passes peuvent provoquer le même symptôme et se corrigent de la même manière : il vous suffit d'activer le réglage vous-même.
Cela affecte-t-il PrettyBlocks ?
Non. Les blocs PrettyBlocks sont rendus via l'interface de widget et ne sont pas soumis à la protection d'instance unique ; ce réglage n'est donc pas nécessaire pour eux. Voir [Intégration du widget et des constructeurs de pages](./widget-page-builder.mdx) pour le placement avec PrettyBlocks.
L'activation de ce réglage fera-t-elle apparaître le message deux fois sur un thème normal ?
C'est possible, si votre thème affiche déjà correctement le message. La protection d'instance unique existe précisément pour éviter cela. N'activez ce réglage que lorsqu'un constructeur de pages supprime le message ; laissez-le désactivé dans le cas contraire.
Fonctionnalités associées
- Intégration du widget et des constructeurs de pages — placer le widget de livraison où vous le souhaitez via WidgetInterface ou les blocs PrettyBlocks
- Affichage sur la page produit — l'affichage de livraison standard par hook auquel s'applique cette protection