Bien gérer des règles de paniers est essentiel pour une boutique e-commerce. PrestaShop le fait grâce aux règles de paniers. Cependant, quand on possède un catalogue important avec de multiples règles, on peut décider de n'en rendre aucune cumulable. Et par défaut, ça coince...

La solution e-commerce PrestaShop offre la possibilité de déterminer des règles de panier. Cette fonctionnalité permet entre autres de créer des codes de réduction qui offrent des avantages aux clients ou encore l’ajout de produits cadeaux automatiques dans le panier. Très largement utilisée par les e-commerçants, PrestaShop propose également de rendre cumulables ou non, des règles de panier. Puis-je utiliser le code promo NEW16 et profiter du produit cadeau ? Autre point intéressant, il est également possible de prioriser les règles. Ainsi, celle de priorité 1 sera exécutée avant celle de priorité 2. Cependant, lorsque l’on crée une nouvelle règle de panier, cette dernière est par défaut cumulable avec l’ensemble des autres règles de paniers définies précédemment. Ce fonctionnement n’est pas paramétrable et peut poser certains problèmes à des e-commerçants possédant des gros stocks de règles et souhaitant contrôler le cumul des règles entre elles.

Si vous souhaitez pour votre boutique, que les règles de panier ne soient plus cumulables, vous pouvez utiliser la solution ci-dessous. Attention, celle-ci requiert des compétences techniques et l’accès aux fichiers sources de votre boutique.

Il faut effectuer deux modifications : dans la classe CartRule.php et dans le fichier du thème discount.tpl.

Dans le fichier CartRule.php, vous devez commenter ou supprimer l’ensemble de la condition suivante :

if ($this->cart_rule_restriction && $otherCartRule['cart_rule_restriction'] && $otherCartRule['id_cart_rule'] != $this->id) {
	...
}

Puis ajouter la portion de code suivante à la suite :

if ($otherCartRule['id_cart_rule'] != $this->id) { 
	$cart_rule = new CartRule((int)$otherCartRule['id_cart_rule'], $context->cart->id_lang);
	if ($cart_rule->priority <= $this->priority) {
		return (!$display_error) ? false : Tools::displayError('This voucher is not combinable with an other voucher already in your cart:').' '.$cart_rule->name;
	}  else {
		$context->cart->removeCartRule($cart_rule->id);
	}
}

Dans le fichier discount.tpl de votre thème actif, vous devez corriger les lignes suivantes :

<td class="discount_cumulative">
	{if $discountDetail.cumulable == 1}
		<i class="icon-ok icon"></i> {l s='Yes'}
	{else}
		<i class="icon-remove icon"></i> {l s='No'}
	{/if}
  </td>

par

<td class="discount_cumulative">
	<i class="icon-remove icon"></i> {l s='No'}
  </td>

Au final, lorsqu’un client ajoutera un deuxième code promotion à son panier, cela créera l’erreur suivante : Ce bon de réduction n’est pas cumulable avec un autre bon de réduction déjà présent dans votre panier. Si le client veut changer de code promotion, il faudra alors qu’il commence par supprimer celui déjà ajouté.

En ce qui concerne les contrôleurs et les classes propres de PrestaShop, il est conseillé de passer par un override. Si vous souhaitez utiliser un override pour votre boutique, n’oubliez pas de vérifier dans les Paramètres avancés (puis Performances) de votre boutique que vous autorisez ces surcharges. Vous devez avoir la même configuration que ci-dessous.

prestashop-autoriser-override

Vous pouvez également télécharger le fichier modifié CartRule.php avec la solution décrite ci-dessus. Il est à placer dans le dossier /override/classes/. Pour éviter toute source d’erreurs pensez à vider votre cache.

Cette solution a été testée et fonctionne avec la version 1.6.1.0 de PrestaShop.

Quelles sont les autres astuces pour améliorer son panier ? 

Vous le savez aussi bien que nous, le panier est le dernier point qui va permettre de transformer un prospect en client. Malheureusement, de nombreux paniers sont abandonnés, sans que vous ayez forcément une explication. Nous allons donc vous donner quelques conseils, afin de vous permettre d’améliorer votre taux de conversion. 

  1. Travaillez la cohérence de votre charte graphique : Avec ce CMS, il est relativement simple de faire l’installation d’un module Prestashop. Mais parfois, vous pouvez vous retrouver avec des couleurs de bouton ou des polices d’écriture différentes, en fonction des modules qui s’exécutent. Il est alors nécessaire de modifier les fichiers CSS des modules ou de confier l’installation de ce dernier à une agence ou un développeur. Vous pourrez ainsi garder la même charte graphique, du début à la fin.
  2. Mettez en place de l’A/B testing : ça peut vous sembler anodin, mais un bouton plus gros plus à droite ou qui change de couleur, lorsque tous les champs sont remplis, cela peut également améliorer le taux de conversion. Là aussi, il existe des modules pour faire ce type de test, mais il ne faut pas oublier que vous devez également analyser ces changements et prendre des décisions en conséquence. C’est donc pour cette raison que nous vous conseillons (une nouvelle fois) de faire appel à une agence qui mettra en place le module à votre place, mais également les codes de tracking.
  3. Luttez contre la peur du formulaire : une partie de vos visiteurs n’a pas forcément envie de passer de longues minutes à remplir un formulaire d’inscription pour commander vos produits. Nous vous conseillons donc d’offrir la possibilité à vos prospects de commander en tant qu’invité. Bien entendu, il existe des modules qui vont vous permettre cette option. Il est même possible d’utiliser le profil Facebook ou Google, pour créer un profil en quelques clics seulement.