Prestashop : comment ajouter script dans le head ?

1. Impossible de localiser où placer le script dans PrestaShop
Beaucoup d’utilisateurs ne savent pas où ajouter un script dans le <head> car la structure de PrestaShop repose sur des fichiers Smarty répartis par blocs.
Dans un thème PrestaShop classique, le bon fichier est généralement themes/votre_theme/templates/_partials/head.tpl. En ajoutant votre script externe ou inline dans ce fichier, entre les balises <head>, vous assurez son chargement global sur toutes les pages du site.
2. Script ajouté mais non visible dans le code source PrestaShop
Après avoir inséré un script dans le head, il peut ne pas apparaître dans le code source, ce qui donne l’impression qu’il n’a pas été pris en compte.
Dans ce cas, videz le cache Smarty dans Paramètres avancés > Performances. Assurez-vous également que la compilation automatique est activée pour que vos modifications soient bien appliquées en front-office.
3. Conflit JavaScript après ajout d’un script dans le head PrestaShop
L’ajout d’un script externe peut entrer en conflit avec les scripts natifs de PrestaShop (jQuery, Bootstrap, etc.), provoquant des erreurs JS.
Pour éviter cela, placez vos scripts après les appels natifs, en fin de fichier head.tpl. Vérifiez la console du navigateur pour détecter les erreurs, et utilisez l’attribut defer si nécessaire pour retarder l’exécution.
4. Ajout de script supprimé à chaque mise à jour du thème PrestaShop
Si vous modifiez directement un fichier du thème, vos ajouts peuvent être écrasés lors d'une mise à jour du thème ou de PrestaShop.
Créez un thème enfant ou utilisez un module personnalisé pour centraliser vos ajouts de code. Cela garantit la pérennité de vos scripts sans avoir à les réintégrer après chaque mise à jour.
5. Mauvais encodage ou balise mal fermée dans le head PrestaShop
Une balise mal fermée ou une faute de frappe dans le script peut bloquer tout le contenu du head, empêchant les autres ressources de se charger.
Relisez votre code avec attention et validez-le avec un éditeur HTML/CSS fiable. Utilisez également l’outil de validation W3C pour repérer les erreurs dans la structure HTML globale.
6. Script inséré uniquement sur certaines pages PrestaShop
Parfois, vous souhaitez charger un script uniquement sur des pages spécifiques (ex. : panier, produit), mais il est chargé partout.
Utilisez les conditions Smarty dans le fichier head.tpl pour cibler des contrôleurs précis (ProductController, CartController, etc.). Cela permet une gestion ciblée des scripts pour optimiser les performances et éviter les chargements inutiles.
7. Script de suivi non fonctionnel dans PrestaShop
Des scripts de tracking (ex. Google Tag, Facebook Pixel) peuvent ne pas fonctionner s’ils sont mal placés ou partiellement bloqués par un module RGPD.
Assurez-vous d’insérer le script dans le fichier head.tpl uniquement si le consentement est obtenu. Certains modules RGPD offrent des hooks dédiés pour intégrer vos balises dans le respect de la réglementation européenne.
8. Script ne se charge pas à cause de restrictions de sécurité PrestaShop
Certaines configurations serveur empêchent le chargement de ressources externes si elles ne sont pas en HTTPS ou si des politiques de sécurité sont activées.
Vérifiez que vos scripts sont bien appelés en HTTPS, et que le serveur ne bloque pas les appels via des règles de type Content Security Policy (CSP). Adaptez vos en-têtes HTTP si besoin.
9. Problème d’intégration avec Google Tag Manager dans PrestaShop
L’intégration de Google Tag Manager nécessite souvent l’injection de deux balises : une dans le head et une dans le body, ce qui peut être mal géré dans PrestaShop.
Ajoutez la première balise dans head.tpl, et la seconde dans templates/layouts/layout-both-columns.tpl (juste après la balise <body>). Vérifiez ensuite le bon fonctionnement via Tag Assistant de Google.
10. Script désactivé par un module de sécurité ou de cache PrestaShop
Certains modules de sécurité ou systèmes de cache (comme Cloudflare) peuvent bloquer ou altérer les scripts ajoutés manuellement.
Désactivez temporairement ces extensions ou ajoutez une règle d’exception pour autoriser votre script. Vous pouvez aussi tester le comportement du site sans cache pour confirmer l'origine du blocage JavaScript.