Sur Prestashop il peut vous arriver une erreur 500 “error 500” suite à l’ajout de votre code de tracking Google analytics.

Si vous suivez les recommandations de Google Analytics sur les informations de suivi :

Code de suivi et erreur 500 sur Prestashop

Global Site Tag (gtag.js) … Copiez-le afin de l’insérer en tant que premier élément dans la section <HEAD> de chacune des pages Web dont vous souhaitez effectuer le suivi.

Cependant lorsque vous allez dans votre fichier header.tpl du thème actif de votre boutique Prestashop.

RACINE/THEMES/votre_thème/header.tpl

Vous collez votre GTAG entre la balise <HEAD> et </HEAD>

!! VOTRE_UA !! c’est votre id de suivi généralement UA-xxxxxxxxxx-x les x son votre id unique à trouvé dans votre comptes

<!– Global site tag (gtag.js) – Google Analytics –>
<script async src=”https://www.googletagmanager.com/gtag/js?id=VOTRE_UA”></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag(‘js’, new Date());

gtag(‘config’, ‘VOTRE_UA’);
</script>

Vous sauvez votre fichier header.tpl, et là pof! une belle erreur 500 lorsque vous relancez votre boutique en front access.

Comment corriger l’erreur 500 suite à ajout GTAG ?

C’est simple vous devez indiquer à votre template prestashop que le code javascript du GTAG doit être lû de manière littéral. En faite le javascript est bizarrement mal lu et on obtient une erreur 500.

Donc il faut mettre {literal} votre code {/literal} ce qui donne :

{/literal}
<!– Global site tag (gtag.js) – Google Analytics –>
<script async src=”https://www.googletagmanager.com/gtag/js?id=VOTRE_UA”></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag(‘js’, new Date());

gtag(‘config’, ‘VOTRE_UA’);
</script>

{/literal}

Toujours dans le head de header.tpl

sauver, uploader, rafraîchisser la page du site et l’erreur 500 n’est plus. Vous aurez régler le problème, votre site internet sera de nouveau fonctionnel

Pourquoi utilisé {literal} dans le header.tpl ?

Les balises {literal} font que votre code insérer soit interpréter tel quel. Smarty (c’est le moteur de votre template prestashop) ne pourra pas l’interprété. Si vous utilisé du javascript et que des accolades se trouvent dans dans votre code, Smarty peut les interpréter et donc votre code javascript sera faussé. Voir même, cela générera une erreur 500 ! Ce n’est pas très cool pour vous et vos visiteurs.