Jump to content

remise ou réduction par catégorie ne fonctionne pas


BrunoJWest

Recommended Posts

[RESOLU] mais amélioration peut-être judicieuse (voir en fin de sujet)

 

 

Bonjour,

 

prestashop 1.4.0.17

 

 

Dans la rubrique "groupe" de l'onglet "clients", j'ai la possibilité d'attribuer à un groupe une remise globale sur toute la boutique, et/ou des réductions en pourcentage par catégorie

 

- si je mets une remise globale : la remise est appliquée et les prix affichés en tiennent compte

- si je mets une remise globale et des remises par catégories : seule la remise globale est appliquée et les prix affichés en tiennent compte, que ce soit dans le site, le panier ou la commande

- si je ne mets pas de remise globale mais je mets des remises par catégorie : aucune remise ne s'applique au groupe, ni dans l'affichage, ni dans le panier ni à la commande dans aucune catégorie.

 

comment faire marcher cette fonctionnalité très utile ?

Qu'ai-je pu oublier ?

 

Merci d'avance

 

Bruno

Link to comment
Share on other sites

  • 4 weeks later...

non, je ne l'ai pas fait car pas l'habitude .. je vais essayer de le reporter.

C'est clair que ça m'arrangerait bien que ça fonctionne, et je suppose ne pas être le seul. :mellow:

 

quelques minutes après ...

>>>> là il y a la barrière de la langue, je vais essayer mais ça va pas être évident. :o

 

cela dit j'aurais aimé savoir si d'autres int eu le problème. cela me semble tellement évident que je suis surpris de ne pas avoir de retour .. :blink:

 

Bruno

Link to comment
Share on other sites

pas encore fait, par contre un autre bug bien plus gênant. Toutes les factures éditées pour les clients qui font partie de groupes à réduction sont fausses. Et je me sers des factures d'autant que le client les télécharge en ligne.

 

- pour l'une d'entre elle : la remise obtenue à l'écran (10%, affichage des prix en TTC), se fait une seconde fois juste pour la facture. Le paiement un bon, mais la facture enlève encore les 10% !!!!

- pour une autre (remise 5% sur toute la boutique), la c'est carrément space, le montant de la facture est inférieur mais ne correspond à rien en remise, ni sur le HT , sur le TTC, pas de frais de ports, et ni même sur la "promo" faite sur ce produit

- 3 autres factures sont concernées et encore des erreurs ......

 

là le souci c'est que dans tous les cas la facture est inférieure au paiement, et à la commande, et que je peux très bien tomber sur un client qui réclame la différence. sans compter que ça ne fait pas sérieux du tout, et que l'image de la boutique en prend un coup ...

 

là je fais une alerte à la PRESTATEAM : c'est urgent de reprendre et corriger ce module de réduction / groupe ...

 

je pense que je vais ouvrir un second sujet sur ce point précis, mais pour moi le module de réduction / groupe ou catégorie est en cause ...

 

Prestashop 1.4.0.17

site : http://www.pieces-auto-competition.com

SSL geotrust

hebergement 1and1

Link to comment
Share on other sites

  • 2 weeks later...

Pour l'instant j'ai fait autrement mais c'est un pis aller.

 

je créée des coupons de réductions en %age par catégories de produits que j'affecte aux groupes. et dans le goupe je laisse 0%. les prix apparaissent prix public mais ça c'est presque mieux, et quand le membre du groupe à reduction fait son panier il applique ses remises. C'est un peu tiré par les cheveux mais c'est plus clair à a lecture, et ça fonctionne. La facture est presque juste au contraire de l'autre méthode (voir l'autre topic), je dis presque car le recap de taxes à al fin ne tient pas compte des reducs ...

Link to comment
Share on other sites

bon en attendant : j'ai bricolé une solution* pour les factures et détail des commandes erronés des clients à réduction (la fameuse réduction appliquée deux fois ... dont une avant l'application de la promo produit. du coup j'ai remis une remise générale groupe et pour les remises particulières j'ai fait un coupon en attendant que remises par catégories fonctionne.

 

je pressens un petit problème à la ligne 1838 du fichier classes/Product.php ::

 

voici le code à partir de 1836 :

 

if ($use_reduc)
	$price -= $reduc;
// Group reduction
if ($reductionFromCategory = (float)(GroupReduction::getValueForProduct($id_product, $id_group)))
	$price -= $price * $reductionFromCategory;
else // apply group reduction if there is no group reduction for this category
	$price *= ((100 - Group::getReductionByIdGroup($id_group)) / 100);

 

d'après axi les accolades manquent ici :

 

if ($use_reduc){
	$price -= $reduc;
// Group reduction
if ($reductionFromCategory = (float)(GroupReduction::getValueForProduct($id_product, $id_group)))
	$price -= $price * $reductionFromCategory;
else // apply group reduction if there is no group reduction for this category
	$price *= ((100 - Group::getReductionByIdGroup($id_group)) / 100);
}

 

mais je pense que notre bug est tout bêtement dans la valeur de $reductionFromCategory .... si ça peut donner une piste ..

 

 

 

(*) quant au pb des réductions appliquées deux fois : je viens de découvrir que la remise par groupe était déjà appliquée une première fois dans classes/Order.php.

 

donc dans l'ordre : le système applique la remise de groupe depuis Order.php

puis applique la réduction éventuelle (promo) dans Product.php

puis le cas échéant applique une nouvelle fois la remise de groupe dans product.php

 

ce qui a deux effets que j'ai vérifié sur mes cas de figure qui ne fonctionaient pas bien.

1) la promo est appliquée après la première reduc de groupe (si c'est un montant ça cause le pb de l'ordre)

2) une seconde remise de groupe est appliquée.

 

solution : supprimer la première remise de groupe faite dans Order.php qui fait doublon.

 

et là tout fonctionne.

Par contre pour les factures passées je suis obligé d'aller modifier la table de la base de données.

Pour les nouvelles c'est bon</p>

 

j'ai juste provisoirement mis en commentaire les lignes 769 et 768 du Order.php<

 

	  if ($row['group_reduction'])<br />
			  $price -= $price * ($row['group_reduction'] * 0.01);

 

ce qui devient :

 

	   // if ($row['group_reduction'])<br />
			  // $price -= $price * ($row['group_reduction'] * 0.01);

 

 

A noter quand même que le pb se posera peut-être aussi sur d'autres trucs en doublon entre les deux fichiers.

 

J'espère avoir un avis de la prestateam ..

 

Bruno

Link to comment
Share on other sites

  • 1 month later...

Bon de retour, car jusqu'ici ça ne "marchait pas" .. je m'entends .... MAIS

 

en fait lorsqu'on créée un groupe avec des remises.

1ère zone on indique la remise par défait globale sur toute la boutique

2ème zone on indique les remises différentes catégorie par catégorie

dans la première zone il y a un bouton "enregistrer", dan sla seconde un bouton "ajouter"

 

Quand on ajoute une remise dans une catégorie, la remise vient se mettre dans la première zone sous la remise globale, avec la possibilité de supprimer cette remise spécifique.

 

IL NE FAUT SURTOUT PAS CLIQUER SUR LE "ENREGISTRER" de la première zone une fois qu'on ajoute une remise par catégorie dans la seconde zone. Sinon la remise globale ECRASE les remises spécifiques (curieusement sauf la dernière apparemment). Elle les écrase mais elle les affiche toujours, ce qui laisse croire qu'elles y sont.

 

si on doit modifier la remise globale, il faudra donc recréer les remises spécifiques une par une car le fait de sauver la nouvelle remise globale va écraser les spécifiques précédemment indiquées.

 

Je ne sais pas si j'ai été clair.

 

donc problème résolu mais peut-être une amélioration à mettre en place pour pas tomber dans le même problème.

Je remets ce message dans la forge ..

 

Bonne nuit à tous :D

 

Bruno

Link to comment
Share on other sites

Salut Bruno,

 

Effectivement il y a eut des problèmes sur les réductions de groupes.

Pour moi ce problème a été résolu sur la 1.4.5.1 (cf le rapport de bug corrigé par Brice: http://forge.prestashop.com/browse/PSCFI-2922).

As tu réussi à reproduire le problème sur une version récente? Sur la démo par exemple?

 

Merci d'avance!

Link to comment
Share on other sites

  • 1 month later...
  • 2 months later...

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...