Jump to content

Erreur d'affichage des pris après une Règle de prix catalogue


Recommended Posts

Bonjour

 

Je suis sur Prestashop 1.6 depuis 1 mois.

J'ai voulu faire 10% sur toute ma boutique, j'ai donc utilisé la règle de prix catalogue.

 

Mais une fois la période de cette promo terminée, cela m'a pertrubé près de 50% de mes prix. Un problème d'arrondi avec le ht. Mon ttc n'a pas changé mais mon ht, si.

Du coup, j'ai des articles qui apparaissent avec une remise de 0% dans le panier d'achat...pas grave en soi mais pas très sérieux..

Je dois alors tester et rechanger manuellement près de 5000 prix d'article...

 

Je ne vais plus oser faire de promotions sur tout le site ainsi si je dois passer plusieurs semaines ensuite à tout remettre à plat mes tarifs.

 

A noter que dans les préférences, j'ai choisi la Règle d'arrondi recommandée, c'est à dire "Arrondir vers l'infini quand valeur à mi-chemin"

 

Est ce que quelq'un a eu ce problème également et comment l'éviter?

merci pour votre aide

 

Anne-Sophie

post-985480-0-68727800-1428747183_thumb.png

Link to comment
Share on other sites

Bonjour,

 

Pour les arrondis, préférez l'arrondi bancaire, vous aurez moins de surprises^^

 

Votre souci ressemble à un problème de cache (qui aurait stocké l'existence d'une règle mais ne la trouve pas). Avez-vous vidé vos caches ? N'avez-vous pas un cache système installé genre APC ou memcached  voir un CDN ? Tous ces caches conservent des données d'affichage.

Link to comment
Share on other sites

Merci pour votre aide

Je vais déjà changer pour l'arrondi bancaire, cela ne va en rien modifier mes prix actuels? (j'avoue que cela m'a refroidi et je ne me vois pas tout refaire ce que j'ai commencé à faire pedant 2 semaines..)

 

pour le cache, là c'est trop complèxe pour moi mais je vais envoyer votre message à la personne qui m'a installée ma boutique, merci

Link to comment
Share on other sites

sur la fiche article il est nickel, il faut l'ajouter au panier et c'est lorsque vous allez visionner votre panier (ne survolez pas le panier en haut, c'est nickel aussi), sur la page récape que l'on voit l'anomalie.

C'est ce que vous avez fait ou vous n'avez regardé que la fiche article ? ;)

Mon cache est vidé, je l'ai encore fait ce soir mais rien n'y fait, ce n'est pas mon navigateur, je ne pense pas

Pouvez vous essayer de l'ajouter à votre panier et voir ensuite la page avant de finaliser la commande?

 

http://www.creactivites.com/commande-rapide

 

tout est toujours normal?

ceci dit si cela pouvait être mes navigateurs (car j'ai essayé avec plusieurs) je préfèrerai...car ça ne fait pas très sérieux auprès des clients

post-985480-0-47814600-1429041860_thumb.png

Edited by Anne-So (see edit history)
Link to comment
Share on other sites

Ok, vu.

 

Bon, après analyse rapide du système d'affichage, ce champ ne doit apparaitre que si 

{if isset($product.is_discounted) && $product.is_discounted}

is_discounted étant défini dans ParentOrderController.php que si:

$product['price_without_specific_price'] != $product['price']

ou

$product['price_without_specific_price'] != $product['price_wt']

ce qui voudrait dire que vos 2 prix (prix d'origine et prix spécifique) ne sont pas identiques AVANT l'arrondi. La différence doit être minime et à 3 ou 4 chiffres après la virgule, ce qui fait qu'une fois converti les 2 apparaissent identiques alors qu'en base de données il ne le sont pas.

Il faudrait donc arrondir les éléments de requête pour comparer ce qui est comparable.

Donc, remplacez le bloc, ligne 331 env. de controllers/front/ParentOrderController.php:

			if (Product::getTaxCalculationMethod())
				$product['is_discounted'] = $product['price_without_specific_price'] != $product['price'];
			else
				$product['is_discounted'] = $product['price_without_specific_price'] != $product['price_wt'];

par: 

if (Product::getTaxCalculationMethod())
	$product['is_discounted'] = Tools::ps_round($product['price_without_specific_price'], _PS_PRICE_COMPUTE_PRECISION_) != Tools::ps_round($product['price'], _PS_PRICE_COMPUTE_PRECISION_);
else
	$product['is_discounted'] = Tools::ps_round($product['price_without_specific_price'], _PS_PRICE_COMPUTE_PRECISION_) != Tools::ps_round($product['price_wt'], _PS_PRICE_COMPUTE_PRECISION_);

et tout devrait rentrer dans l'ordre. C'est un bug Presta et non du module. L'erreur étant qu'au moment de la suppression de la réduction, Prestashop recalcule à l'envers le prix initial au lieu de recopier celui existant en bdd^^

Link to comment
Share on other sites

  • 2 months later...

J arrive un peu tard dans le sujet, mais j ai poste, et j attends une reponse sur un autre post en vain.. Donc me voici avec mon gros probleme.

 

Je m explique,

 

J ai voulu essayer de faire des promos, donc je suis allés dans promotion >> regles de prix catalogue...
J ai créé 5 % sur tout le catalogue pour test..! ca a marché..
Par contre impossible de les supprimer maintenant..!
J ai bien supprimé la regle de prix catalogue.. en vain..

Vider le cache, en vain aussi...

 

Je suis désesperer car 1000 prod en boutique, la shop en production... et des reductions partout.

Bref, j ai essayé de passer par phpmyadmin, pour voir et tout est la dedans... il y a encore les specific_price.. on peut, peut etre faire une requete SQL (mais laquelle) pour supprimer ce BUG sur la BDD.... Car c'est apparemment un BUG de presta..

 

Je suis sous 1.6.0.8

 

Merci de votre attention.

 

Brice

Link to comment
Share on other sites

Oui, la table est vide

`ps_specific_price_rule`   vide

`ps_specific_price_rule_condition`  vide

`ps_specific_price_rule_condition_group`  vide

 

Mais

`ps_specific_price_priority`   1106

`ps_specific_price`    744

 

Hier, j ai essayer d en supprimer une ligne, pour voir si ca enlever les prix, en promo mais en vain aussi..

 

Voici mon site, pour voir le carnage. :

zembo.fr

 

Merci de ta réponse rapide..
Toujours aussi rapide et serviable Eolia.. Chapeau.

 

Brice

Link to comment
Share on other sites

Est ce que je peux vider ces tables sans danger ?

 

`ps_specific_price_priority`   1106

`ps_specific_price`    744 

 

Peut etre que ca rentrerait dans l ordre.. Bien que j ai essayé en supprimer une ligne dans chacune d elle (le meme ID product) et que ca n a rien fait.!

 

Brice

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