Corriger le suivi du commerce électronique Analytics sous Prestashop 1.5.x

23 mars 2015  |   Pense-bête   |     |   4 Comments

Grâce au module Google Analytics (/modules/ganalytics) fourni nativement avec Prestashop, votre boutique en ligne est censée remonter les informations relatives aux transactions de vos clients directement dans la section « suivi du commerce électronique » de votre console Google Analytics.

En effet, dans les versions courantes de Prestashop, ce module intègre toute une section de code répondant aux spécifications fournies par Google, identifiable par la présence de lignes telles que « ga(‘ecommerce:addTransaction’ », comme peut nous l’apprendre ce très bon article de nos confrères suisses de chez Webbax.

Il suffit donc de greffer ce module sur le hook displayOrderConfirmation (ce qui est normalement fait automatiquement à l’installation du module) pour que les données des commandes soient remontées à Google Analytics dès qu’un client atteint la page de confirmation de commande sur votre boutique.

screenshot-www kalytea com 2015-03-23 12-05-20
image-484

Cependant, certains d’entre vous n’auront pas manqué de constater que la mise à jour ou l’utilisation de ce module dans ses versions 1.5 et 1.6 (la version 1.5 étant la dernière mise à jour proposée par Prestashop 1.5.6.0) ne permet pas de remonter les données de chiffre d’affaire dans le suivi e-commerce de Google Analytics : les commandes et leur détail sont bien prises en compte, mais le chiffre d’affaire affiche une courbe désespérément plate à 0 €, alors que le transport remonte normalement.

screenshot-www google com 2015-03-23 13-08-17
image-485

Certains forums proposeront d’effectuer une mise à jour manuelle vers la version 1.8 ou ultérieure. Or, avec la sortie de Prestashop 1.6.x, Prestashop propose aujourd’hui sur sa marketplace une version 2.0.8 du module Google Analytics, a priori compatible avec les versions de Prestashop 1.4.0.1 à 1.6.0.14.

Méfiance tout du moins, si le module dans sa version 2.0.8 est effectivement compatible avec Prestashop 1.5.x – et qu’il corrige en effet le problème de remontée du CA dans Google Analytics – il pourrait en revanche présenter des incompatibilités avec vos autres modules installés, comme par exemple Chronopost, Expeditor Inet, … Dans ce cas, retour à la case départ !

Une autre solution consisterait donc à fouiller dans le repository de Prestashop à la recherche de la version 1.5.x qui potentiellement intégrerait ce module en version 1.8. Sans aucune certitude sur ce point, reste l’ultime solution : retrousser ses manches et se plonger dans le code… pour se rendre compte en réalité que le problème est ultra-simple à résoudre !

Il provient en effet d’une erreur dans le libellé des données de transaction remontées à Google Analytics : les spécifications Google indiquent que le champ censé remonter le total de la transaction se nomme ‘revenue’. Or, le code dans le fichier /modules/ganalytics/header.tpl indique un champ nommé ‘total’.

screenshot-developers google com 2015-03-23 12-38-34
image-486

Il suffit donc de remplacer la section suivante du fichier header.tpl (ligne 18 pour le module en version 1.5) :

{if $isOrder eq true}
ga('ecommerce:addTransaction', {
'id': '{$trans.id}',
'store': '{$trans.store}',
'total': '{$trans.total}', // total de la transaction
'tax': '{$trans.tax}',
'shipping': '{$trans.shipping}',
'city': '{$trans.city}',
'state':'{$trans.state}',
'country': '{$trans.country}',
'currency': 'EUR'
});

Par :

{if $isOrder eq true}
ga('ecommerce:addTransaction', {
'id': '{$trans.id}',
'store': '{$trans.store}',
'revenue': '{$trans.total}',
'tax': '{$trans.tax}',
'shipping': '{$trans.shipping}',
'city': '{$trans.city}',
'state':'{$trans.state}',
'country': '{$trans.country}',
'currency': 'EUR'
});

Et quelques heures plus tard, les données de chiffre d’affaires remontent enfin !

screenshot-www google com 2015-03-23 12-36-12
image-487

4 Comments for this entry

    Isac
    3 novembre 2016 on 22 h 33 min

    Bonjour,

    Merci pour votre article.
    J’ai une boutique sous Prestashop 1.5.4.0 avec la version 1.5 du module Google Analytics.
    J’avais apporté les modifications que vous indiquiez au code ce qui avait résolu mon problème de remontée de CA mais depuis une semaine, mon CA ne remonte plus alors qu’aucune modification n’a été apportée au code. Savez-vous si le code suivi a récemment changé ou avez-vous une idée d’où le problème pourrait venir?

    Voici l’extrait de code du fichier header.tpl de mon site :

    {if $isOrder eq true}
    ga(‘ecommerce:addTransaction’, {
    ‘id’: ‘{$trans.id}’,
    ‘store’: ‘{$trans.store}’,
    ‘revenue’: ‘{$trans.total}’,
    ‘tax’: ‘{$trans.tax}’,
    ‘shipping’: ‘{$trans.shipping}’,
    ‘city’: ‘{$trans.city}’,
    ‘state’:'{$trans.state}’,
    ‘country’: ‘{$trans.country}’,
    ‘currency’: ‘EUR’
    });

    {foreach from=$items item=item}
    ga(‘ecommerce:addItem’, {
    ‘id’: ‘{$item.OrderId}’,
    ‘sku’: ‘{$item.SKU}’,
    ‘name’: ‘{$item.Product}’,
    ‘category’: ‘{$item.Category}’,
    ‘price’: ‘{$item.Price}’,
    ‘quantity’: ‘{$item.Quantity}’
    });
    {/foreach}
    ga(‘ecommerce:send’);
    {/if}

    Isac
    3 novembre 2016 on 23 h 24 min

    Re-bonjour,
    Je viens de repasser une commande test et en regardant le code, je vois que la ligne s’appelle toujours ‘total’ bien que je l’ai remplacé par ‘revenue’ dans le fichier header.tpl.
    Est-ce que le module doit être réintialisé pour que le fichier header.tpl soit réactualisé ou voyez-vous autre chose que je puisse faire?
    Merci

    el
    10 novembre 2016 on 10 h 49 min

    tu m’as sauvé la vie !

    Marc L.
    10 novembre 2016 on 12 h 09 min

    Avez-vous fait une mise à jour des modules ? Mon conseil serait d’overrider le TPL dans le dossier /modules/ de votre thème pour éviter tout écrasement de vos modifications.