Comment dois je configurer mon module ?

 

Comment dois je configurer mon module ?

Configuration de l'onglet "PREREQUIS"

Détection de modification des templates du thème pour une amélioration du balisage du code Analytics :

NOTE IMPORTANTE: La section que nous traitons ci-dessous peut vous paraitre trop technique, dans ce cas-là, nous vous conseillons fortement de vous rapprocher de votre contact technique et de lui faire lire les recommandations ci-dessous afin de prendre la meilleure décision possible.

Cette détection se fait au niveau de 3 templates : product-list.tpl / products-comparison.tpl / product.tpl

Tout d'abord, laissez-nous vous expliquer comment PrestaShop fonctionne avec les pages qui affichent une liste de produits.

Que cela soit PS 1.5 ou 1.6, les pages visibles de votre boutique présentant une liste de produits doivent exécuter le template product-list.tpl, et souvent ce dernier est inclus dans un autre template, hormis pour les pages catégories.

En utilisant ce template, PS assigne une variable smarty "products" accessible sur l'ensemble des hooks exécutés par la page courante. Ce qui permet à notre module, avec le hook "footer" de pouvoir identifier si des produits ont bien été assignés dans smarty, ce faisant la modification du template product-list.tpl n'est plus autant indispensable.

Si vous avez un doute, ce que nous venons d'expliquer permet tout simplerment de remonter dans GA les actions de click sur les boutons permettant de voir le "détail du produit". Et pour le vérifier simplement lorsque vous avez une liste de produits, vous pouvez regarder le code source de la page et en faisant une recherche voir si vous voyez des fonctions JavaScript nommées BTGA.productClick(). Si c'est le cas, c'est que nous avons bien récupéré les produits assignés par PrestaShop.

Maintenant si pour une raison ou pour une autre (changements du thème significatifs ou du CORE ou d'ajouts d'overrides) et que votre doute persiste, nous vous conseillons de suivre la section ci-dessous :

Le répertoire du thème est :

repertoire_racine_boutique/themes/nom_du_theme/product-list.tpl

"Templates PS 1.5"

"Templates PS 1.6"

"Templates PS 1.7" => Vous n'avez pas besoin de les modifier car le thème par défaut inclut le tag "data-product-id" dans le répertoire suivant "themes/classic/templates/catalog/_partials/miniatures/" et dans le fichier product.tpl

 

Voici comment modifier les 3 templates pour PS 1.5 : 

NOTE IMPORTANTE: l'attribut "data-product-id" est utilisé à partir de la version 1.0.3 du module, donc pour les versions antérieures merci de suivre la procédure ci-dessous en gardant la notation "data-id-product" pour la procédure ci-dessous.

1/ Le template : product-list.tpl

Le template original du thème standard de PS 1.5

{if isset($products)} 
<!-- Products list -->
<ul id="product_list" class="clear">
{foreach from=$products item=product name=products}
<li class="ajax_block_product
{if $smarty.foreach.products.first}first_item{elseif $smarty.foreach.products.last}last_item{/if}
{if $smarty.foreach.products.index % 2}alternate_item{else}item{/if} clearfix">

Et voici comment ajouter l'attribut "data-product-id" :

{if isset($products)} 
<!-- Products list -->
<ul id="product_list" class="clear">
{foreach from=$products item=product name=products}
<li class="ajax_block_product
{if $smarty.foreach.products.first}first_item{elseif $smarty.foreach.products.last}last_item{/if}
{if $smarty.foreach.products.index % 2}alternate_item{else}item{/if} clearfix" data-product-id="{$product.id_product|intval}">

 

2/ Le template : product.tpl

Le template original du thème standard de PS 1.5

<div class="block_content">
<ul>
{foreach from=$accessories item=accessory name=accessories_list}
{if ($accessory.allow_oosp || $accessory.quantity_all_versions > 0 || $accessory.quantity > 0) AND $accessory.available_for_order
AND !isset($restricted_country_mode)}
{assign var='accessoryLink' value=$link->getProductLink($accessory.id_product, $accessory.link_rewrite, $accessory.category)}
<li class="ajax_block_product{if $smarty.foreach.accessories_list.first} first_item{elseif $smarty.foreach.accessories_list.last} last_item
{else} item{/if} product_accessories_description">

Et voici comment ajouter l'attribut "data-product-id" :

<div class="block_content">
<ul>
{foreach from=$accessories item=accessory name=accessories_list}
{if ($accessory.allow_oosp || $accessory.quantity_all_versions > 0 || $accessory.quantity > 0) AND $accessory.available_for_order
AND !isset($restricted_country_mode)}
{assign var='accessoryLink' value=$link->getProductLink($accessory.id_product, $accessory.link_rewrite, $accessory.category)}
<li class="ajax_block_product{if $smarty.foreach.accessories_list.first} first_item
{elseif $smarty.foreach.accessories_list.last} last_item{else} item{/if} product_accessories_description" data-product-id="{$accessory.id_product|intval}">

 

3/ Le template : products-comparison.tpl

Le template original du thème standard de PS 1.5

{foreach from=$products item=product name=for_products}
{assign var='replace_id' value=$product->id|cat:'|'} <td width="{$width}%" class="ajax_block_product comparison_infos">

Et voici comment ajouter l'attribut "data-product-id" :

{foreach from=$products item=product name=for_products}
{assign var='replace_id' value=$product->id|cat:'|'} <td width="{$width}%" class="ajax_block_product comparison_infos" data-product-id="{$product->id|intval}">

 

Voici comment modifier les 3 templates pour PS 1.6 : 

1/ Le template : product-list.tpl

Le template original du thème standard de PS 1.6

 <!-- Products list --> 
<ul{if isset($id) && $id} id="{$id}"{/if} class="product_list grid row{if isset($class) && $class} {$class}{/if}">
{foreach from=$products item=product name=products} {math equation="(total%perLine)" total=$smarty.foreach.products.total perLine=$nbItemsPerLine assign=totModulo}
{math equation="(total%perLineT)" total=$smarty.foreach.products.total perLineT=$nbItemsPerLineTablet assign=totModuloTablet}
{math equation="(total%perLineT)" total=$smarty.foreach.products.total perLineT=$nbItemsPerLineMobile assign=totModuloMobile}
{if $totModulo == 0}{assign var='totModulo' value=$nbItemsPerLine}{/if}
{if $totModuloTablet == 0}{assign var='totModuloTablet' value=$nbItemsPerLineTablet}{/if}
{if $totModuloMobile == 0}{assign var='totModuloMobile' value=$nbItemsPerLineMobile}{/if}
<li class="ajax_block_product{if $page_name == 'index' || $page_name == 'product'} col-xs-12 col-sm-4 col-md-3{else} col-xs-12 col-sm-6 col-md-4{/if}
{if $smarty.foreach.products.iteration%$nbItemsPerLine == 0} last-in-line{elseif $smarty.foreach.products.iteration%$nbItemsPerLine == 1} first-in-line{/if}
{if $smarty.foreach.products.iteration > ($smarty.foreach.products.total - $totModulo)} last-line{/if}
{if $smarty.foreach.products.iteration%$nbItemsPerLineTablet == 0} last-item-of-tablet-line
{elseif $smarty.foreach.products.iteration%$nbItemsPerLineTablet == 1} first-item-of-tablet-line{/if}
{if $smarty.foreach.products.iteration%$nbItemsPerLineMobile == 0} last-item-of-mobile-line
{elseif $smarty.foreach.products.iteration%$nbItemsPerLineMobile == 1} first-item-of-mobile-line{/if}
{if $smarty.foreach.products.iteration > ($smarty.foreach.products.total - $totModuloMobile)} last-mobile-line{/if}">

Et voici comment ajouter l'attribut "data-product-id" :

<!-- Products list --> 
<ul{if isset($id) && $id} id="{$id}"{/if} class="product_list grid row{if isset($class) && $class} {$class}{/if}">
{foreach from=$products item=product name=products}
{math equation="(total%perLine)" total=$smarty.foreach.products.total perLine=$nbItemsPerLine assign=totModulo}
{math equation="(total%perLineT)" total=$smarty.foreach.products.total perLineT=$nbItemsPerLineTablet assign=totModuloTablet}
{math equation="(total%perLineT)" total=$smarty.foreach.products.total perLineT=$nbItemsPerLineMobile assign=totModuloMobile}
{if $totModulo == 0}{assign var='totModulo' value=$nbItemsPerLine}{/if}
{if $totModuloTablet == 0}{assign var='totModuloTablet' value=$nbItemsPerLineTablet}{/if}
{if $totModuloMobile == 0}{assign var='totModuloMobile' value=$nbItemsPerLineMobile}{/if}
<li class="ajax_block_product{if $page_name == 'index' || $page_name == 'product'} col-xs-12 col-sm-4 col-md-3{else} col-xs-12 col-sm-6 col-md-4{/if}
{if $smarty.foreach.products.iteration%$nbItemsPerLine == 0} last-in-line{elseif $smarty.foreach.products.iteration%$nbItemsPerLine == 1} first-in-line{/if}
{if $smarty.foreach.products.iteration > ($smarty.foreach.products.total - $totModulo)} last-line{/if}
{if $smarty.foreach.products.iteration%$nbItemsPerLineTablet == 0} last-item-of-tablet-line
{elseif $smarty.foreach.products.iteration%$nbItemsPerLineTablet == 1} first-item-of-tablet-line{/if}
{if $smarty.foreach.products.iteration%$nbItemsPerLineMobile == 0} last-item-of-mobile-line
{elseif $smarty.foreach.products.iteration%$nbItemsPerLineMobile == 1} first-item-of-mobile-line{/if}
{if $smarty.foreach.products.iteration > ($smarty.foreach.products.total - $totModuloMobile)} last-mobile-line{/if}" data-product-id="{$product.id_product|intval}">

 

2/ Le template : product.tpl

Le template original du thème standard de PS 1.6

<div class="block_content">
<ul id="bxslider" class="bxslider clearfix">
{foreach from=$accessories item=accessory name=accessories_list}
{if ($accessory.allow_oosp || $accessory.quantity_all_versions > 0 || $accessory.quantity > 0) && $accessory.available_for_order
&& !isset($restricted_country_mode)}
{assign var='accessoryLink' value=$link->getProductLink($accessory.id_product, $accessory.link_rewrite, $accessory.category)}
<li class="item product-box ajax_block_product{if $smarty.foreach.accessories_list.first} first_item
{elseif $smarty.foreach.accessories_list.last} last_item{else} item{/if} product_accessories_description">

Et voici comment ajouter l'attribut "data-product-id" :

<div class="block_content">
<ul id="bxslider" class="bxslider clearfix">
{foreach from=$accessories item=accessory name=accessories_list}
{if ($accessory.allow_oosp || $accessory.quantity_all_versions > 0 || $accessory.quantity > 0) && $accessory.available_for_order
&& !isset($restricted_country_mode)}
{assign var='accessoryLink' value=$link->getProductLink($accessory.id_product, $accessory.link_rewrite, $accessory.category)}
<li class="item product-box ajax_block_product{if $smarty.foreach.accessories_list.first} first_item
{elseif $smarty.foreach.accessories_list.last} last_item{else} item{/if} product_accessories_description" data-product-id="{$accessory.id_product|intval}">

 

3/ Le template : products-comparison.tpl

Le template original du thème standard de PS 1.6

{foreach from=$products item=product name=for_products}
{assign var='replace_id' value=$product->id|cat:'|'}
<td class="ajax_block_product comparison_infos product-block product-{$product->id}">

Et voici comment ajouter l'attribut "data-product-id" :

{foreach from=$products item=product name=for_products}
{assign var='replace_id' value=$product->id|cat:'|'}
<td class="ajax_block_product comparison_infos product-block product-{$product->id}" data-product-id="{$product->id|intval}">

 

 

Configuration de l'onglet "Paramètres de base"

Dans un premier temps vous devez créer votre compte Google analytics et le configurer comme expliqué dans notre FAQ :  http://faq.businesstech.fr/faq.php?id=121

Ceci vous permettra d'avoir le code UA qui doit être renseigné dans le module comme montré ci-dessous :

Ensuite pour les options avancées vous pouvez suivre notre seconde FAQ :  http://faq.businesstech.fr/faq.php?id=120 . Les options concernées sont celles de l'image ci-dessus 

Configuration de l'onglet "Paramètres avancés"

Dans cet onglet vous pouvez sélectionner les status de commandes considérées comme "Remboursées".

Par défaut le module cochera les bons status natifs de Prestashop, mais si vous avez d'autres cas issus d'autres modules qui font que la commande est remboursée, il faudra cocher les valeurs dans le module.

Si vous oubliez certains status les données de remboursements ne seront pas comptabilisées dans GA

 

 

 

 

Autres FAQ dans la même catégorie