Jump to content

Pourcentage de remise et Promotion


Recommended Posts

Bonjour,

J'utilise Prestashop 1.6.0.9.

J'ai plusieurs groupes de clients et notamment un groupe "Professionnels" bénéficiant de 20% de remise sur toute ma boutique. Cependant, je souhaiterais que cette remise de 20% ne s'applique pas sur les produits en promotion. Je souhaite donc que le groupe client "Professionnels" bénéficie de la promotion et non de sa remise de 20%. Les 2 réduction ne devant pas se cumuler. Y a-t-il un paramétrage qui m'aurait échappé ou une solution à coder ?

Merci d'avance pour les réponses qui me seront apportées.

Link to comment
Share on other sites

Pas de solution toute faite.

 

Donc il faudrait détecter que le panier contient au moins un produit en promo (prix spécifique) et désactiver la réduction pour ce client le temps de son passage de commande.

tous les prix sont calculés avec la fonction Product::getPriceStatic()

celle-ci a un argument qui est toujours vrai par défaut: $use_group_reduction et qui donc ajoute la réduction du groupe client dans le calcul.

L'idée serait donc de traiter le contenu du panier au début de cette fonction et de passer ce paramètre à false si au moins un produit est en promo^^

Link to comment
Share on other sites

Le 28/09/2018 à 6:51 PM, Eolia a dit :

Pas de solution toute faite.

 

Donc il faudrait détecter que le panier contient au moins un produit en promo (prix spécifique) et désactiver la réduction pour ce client le temps de son passage de commande.

tous les prix sont calculés avec la fonction Product::getPriceStatic()

celle-ci a un argument qui est toujours vrai par défaut: $use_group_reduction et qui donc ajoute la réduction du groupe client dans le calcul.

L'idée serait donc de traiter le contenu du panier au début de cette fonction et de passer ce paramètre à false si au moins un produit est en promo^^

Bonjour,

Le souci, c'est qu'il faudrait aussi que dans la boutique, lorsque je suis connectée avec un profil client "Professionnel", les prix des produits en promo s'affichent sans la remise attribuée au groupe de clients "Professionnels", mais seulement avec leur remise promo et que les produits qui ne sont pas en promos se voient afficher leur prix avec remise attribuée au groupe de clients "Professionnels". Tout cela, doit en effet se faire dans le fichier product.php, dans les fonction Product::getPriceStatic() et/ou Product::priceCalculation(), mais pour le moment, je n'ai pas trouvé la solution et je sèche un peu. En gros, je voudrais pouvoir dire que si le produit est déjà en promo, $use_group_reduction=false, mais je bute sur le paramètre qui correspondrait au produit en promo.

Merci d'avance pour le petit coup de pouce qui me sera apporté.

Link to comment
Share on other sites

si le produit est en promo, soit il a le drapeau on_sale, soit il a une ligne (valide) dans la table specific_price.

Ensuite, attention au cache de certains modules qui ne prennent pas en compte l'id_group et/ou l'id_shop...

Link to comment
Share on other sites

Il y a 6 heures, Eolia a dit :

si le produit est en promo, soit il a le drapeau on_sale, soit il a une ligne (valide) dans la table specific_price.

Ensuite, attention au cache de certains modules qui ne prennent pas en compte l'id_group et/ou l'id_shop...

Bonsoir,
Pas une mince affaire pour trouver la solution sans tout chambouler, bien qu'à appliquer fut très rapide. En effet, dans le fichier Product.php, il a finalement juste fallu rajouter dans la partie //Group reduction une condition au 1er if et donc passer de  if ($use_group_reduction) à if ($use_group_reduction && $specific_price_reduction == 0) afin que la réduction d'un groupe de client ne s'applique que s'il n'y a pas déjà une promo appliquée sur le produit.

Merci pour vos pistes.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...