Site icon Freelance Expert PrestaShop – WordPress – WooCommerce : Arnaud Merigeau

Comment segmenter vos clients via des groupes dans PrestaShop 1.7 ?

Tous vos clients n’ont pas les mêmes goûts et les mêmes attentes. C’est pour cela qu’il faut segmenter vos clients ! Voyons donc comment segmenter vos clients avec des groupes dans PrestaShop 1.7.

Comment créer et gérer les groupes clients dans PrestaShop 1.7 ?

PrestaShop 1.7 comme les anciennes versions du logiciel e-commerce garde la fonction « groupes clients » ce qui peut être très pratiques dans certaines situations comme celles-ci :

Voici comment créer un groupe client et comment l’administrer dans PrestaShop 1.7, tout se passe dans le back office > Paramètres de la boutique > Clients > onglet « Groupes ».

utilisez les groupes clients pour mieux cibler les attentes clients !

 

Offrez simplement un avantage à vos meilleurs clients !

 

Utilisez à fond PrestaShop pour une satisfaction client accrue !

 

Comment choisir l’accès d’une catégorie pour un groupe client ?

Comment gérer l’accès d’une catégorie pour un ou plusieurs groupes clients dans PrestaShop 1.7 ?
C’est assez simple puisque c’est une fonction de base de PrestaShop. Rendez-vous dans le back office > Catalogue > Catégories > choisissez une catégorie> éditez les groupes ayant l’accès.

créez une boutique privée en quelques clics !

 

Comment afficher un élément spécifique pour un groupe client ?

Après avoir survolé les fonctions de base de PrestaShop 1.7, on va se pencher sur un cas précis : afficher un élément pour un groupe client.

Quand je parle d’élément, ça peut être un onglet de menu, un message, le bloc message cadeau, le numéro de téléphone, etc. Vous avez compris l’idée !

Pour cela, il faut d’abord récupérer les groupes clients du visiteur / client concerné.

Créez le fichier override/classes/controller/FrontController.php en modifiant la fonction process() comme ceci :

public function process()
{
//On assigne la variable $cookie
global $cookie;
//On teste si le visiteur est client
if($cookie->id_customer != 0){
//On récupère la méthode pour trouver les groupes d'un client
$Cgroups = Customer::getGroupsStatic($cookie->id_customer);
//On teste chaque résultat du tableau
foreach($Cgroups as $Cgroup){
//Si le client appartient au groupe désiré (ici le groupe 4)
if ($Cgroup == 4){
//On créé la variable smarty qui servira de test
$this->context->smarty->assign(array(
'groupe_teste' => '1',
));
//On stoppe la boucle, plus besoin de continuer
break;
}
}
}
}

Pensez à bien vider le cache et supprimer le fichier var/cache/prod/class_index.php ou var/cache/dev/class_index.php.
Vous pouvez à présent utiliser la condition suivante pour afficher ou non un élément dans un template de votre thème ou de vos modules :

{if $groupe_teste}
<p>Élément affiché si le client appartient au groupe client.</p>
{/if}

Dans cet exemple, seuls les clients appartenant au groupe client ID = 4 peuvent voir le paragraphe.

Comment améliorer les performances de PrestaShop avec les groupes clients ?

C’est plutôt l’inverse en fait.
Si malgré tout vous n’utilisez pas les groupes clients : désactivez-les !
La fonction groupes clients demande de la ressource et une option simple et rapide s’offre à vous.
Rendez-vous dans le back office > Paramètres avancés > Performances > décochez l’option « Groupes de clients ».

Améliorer la vitesse de PrestaShop en 1 clic !

 

Comment afficher le groupe dans son compte client avec PrestaShop ?

Voici un tutoriel assez rapide pour ajouter le nom du groupe client par défaut dans le compte client.

Le tuto pour afficher la variable se décompose en 2 étapes.

Étape 1 : créez le fichier override/controllers/front/MyAccountController.php en modifiant la fonction initContent() comme ceci pour récupérer le nom du groupe client par défaut :

class MyAccountController extends MyAccountControllerCore
{
public function initContent()
{
global $cookie;
if($cookie->id_customer > 0){
$customerIdDefaultGroup = Customer::getDefaultGroupId((int)$cookie->id_customer);
$customerDefaultGroup = new Group((int)$customerIdDefaultGroup);
$this->context->smarty->assign(array(
'customerDefaultGroupName' => $customerDefaultGroup->name[$cookie->id_lang],
));
}
parent::initContent();
}
}

Étape 2 : modifiez le fichier /themes/votre-theme/templates/customer/my-account.tpl pour afficher la variable dans la page du compte client :

{extends file='customer/page.tpl'}

{block name='pageWrapperClass'}{/block}
{block name='pageHeaderClass'}{/block}
{block name='pageContentClass'}{/block}
{block name='pageFooterClass'}{/block}

{block name='page_title'}
{l s='Your account' d='Shop.Theme.Customeraccount'}
{/block}

{block name='page_content'}
<div class="row">
<div class="col-xs-12">
<p>{l s='Vous faites partie du groupe client :' d='Shop.Theme.Customeraccount'} {$customerDefaultGroupName}</p>
</div>
</div>
<div class="row account-links">

<a class="col-lg-4 col-md-6 col-sm-6 col-12" id="identity-link" href="{$urls.pages.identity}">
<span class="link-item">
<i class="material-icons"></i>
{l s='Information' d='Shop.Theme.Customeraccount'}
</span>
</a>

{if $customer.addresses|count}
<a class="col-lg-4 col-md-6 col-sm-6 col-12" id="addresses-link" href="{$urls.pages.addresses}">
<span class="link-item">
<i class="material-icons"></i>
{l s='Addresses' d='Shop.Theme.Customeraccount'}
</span>
</a>
{else}
<a class="col-lg-4 col-md-6 col-sm-6 col-12" id="address-link" href="{$urls.pages.address}">
<span class="link-item">
<i class="material-icons"></i>
{l s='Add first address' d='Shop.Theme.Customeraccount'}
</span>
</a>
{/if}

{if !$configuration.is_catalog}
<a class="col-lg-4 col-md-6 col-sm-6 col-12" id="history-link" href="{$urls.pages.history}">
<span class="link-item">
<i class="material-icons"></i>
{l s='Order history and details' d='Shop.Theme.Customeraccount'}
</span>
</a>
{/if}

{if !$configuration.is_catalog}
<a class="col-lg-4 col-md-6 col-sm-6 col-12" id="order-slips-link" href="{$urls.pages.order_slip}">
<span class="link-item">
<i class="material-icons"></i>
{l s='Credit slips' d='Shop.Theme.Customeraccount'}
</span>
</a>
{/if}

{if $configuration.voucher_enabled && !$configuration.is_catalog}
<a class="col-lg-4 col-md-6 col-sm-6 col-12" id="discounts-link" href="{$urls.pages.discount}">
<span class="link-item">
<i class="material-icons"></i>
{l s='Vouchers' d='Shop.Theme.Customeraccount'}
</span>
</a>
{/if}

{if $configuration.return_enabled && !$configuration.is_catalog}
<a class="col-lg-4 col-md-6 col-sm-6 col-12" id="returns-link" href="{$urls.pages.order_follow}">
<span class="link-item">
<i class="material-icons"></i>
{l s='Merchandise returns' d='Shop.Theme.Customeraccount'}
</span>
</a>
{/if}

{block name='display_customer_account'}
{hook h='displayCustomerAccount'}
{/block}

</div>
{/block}


{block name='page_footer'}
{block name='my_account_links'}
<div class="text-sm-center">
<a href="{$logout_url}" >
{l s='Sign out' d='Shop.Theme.Actions'}
</a>
</div>
{/block}
{/block}

Vous notez la variable smarty {$customerDefaultGroupName} ajouté dans le début du fichier 😉

Et voilà c’est terminé et vous avez aussi accès à toutes les informations du groupe client par défaut concerné.

Comment segmenter mes clients dans les anciennes versions de PrestaShop ?

J’ai rédigé un article concernant les groupes clients dans PrestaShop 1.4 ce qui vous permet d’assurer le support de boutiques vieillissantes : Segmentez vos clients avec un override groupe client prestashop


Quitter la version mobile