Jump to content

Ordre des ’meilleures ventes’ sur best-sales.php


Recommended Posts

Bonjour,

intrigué par l'ordre des 'meilleures ventes' sur le FO j'ai loggué la requête effectuée dans class/ProductSales.php -> getBestSales et il se trouve que par défaut $orderBy passé en paramètre n'est pas vide mais vaut 'position'.

J'ai donc modifié la ligne 46 par

if ($orderBy == 'position') $orderBy = 'sales';


et l'affichage par défaut affiche d'abord les meilleurs ventes.

Je ne sais pas si je dois poster un bug ou si c'est 'by design'.

Merci :)

Link to comment
Share on other sites

Merci pour cette info.
Chez moi aussi le tri est vraiment etrange et non identifié.
Mais meme en remplaçant la ligne 46, aucun changement.

N'y a t'il pas également une possibilité de limiter a 10 ou 15 par exemple le nombre de produits dans best-sales ?

Merci d'avance

Link to comment
Share on other sites

  • 1 month later...
  • 4 months later...
  • 5 months later...
  • 2 weeks later...

Bonjour,
Idem même problème pour les produit phrares :/ il ma mit 8 produit ms les premier articles rentrée sur le site et c tj les même... il toucne pas je ne comprend pas pourquoi...
comme mon site et nouveau faut t'il attendre un peu ?

Link to comment
Share on other sites

  • 3 months later...
¡oy!

J'ai de mon côté tenté un ajout dans product-sort.php (racine du site) :

if($page_name == 'best-sales'){
$orderBy = 'sales';
}



Ca change des choses, mais pas comme je le le souhaiterai.

Merci !



Ok!
Perso de mon côté, cette manip ne change rien...

Bon, tant pis, je crois que je vais laisser tomber.
Dites-le si qqn trouve ;)

Merci!
Link to comment
Share on other sites

  • 2 weeks later...

en fait, l'ordre dépend des réglages dans le panneau d'admin -> préférences -> produits
le souci est que si l'on indique 'ordre croissant' ce qui est souvent le cas si on veut que les produits s'affiche du moins onéreux au plus cher dans les catégories, ce même paramètre de tri est utilisé pour les meilleures et on se retrouve à avoir les moins bonnes ventes en premier...

quelqu'un a une solution pour régler ce "problème" qui persiste sur la version 1.3.2 ? il faudrait que l'ordre des meilleures ventes soit indépendant du réglage fait dans le panneau d'admin?

merci

Link to comment
Share on other sites

  • 1 year later...
  • 10 months later...

en fait, l'ordre dépend des réglages dans le panneau d'admin -> préférences -> produits

le souci est que si l'on indique 'ordre croissant' ce qui est souvent le cas si on veut que les produits s'affiche du moins onéreux au plus cher dans les catégories, ce même paramètre de tri est utilisé pour les meilleures et on se retrouve à avoir les moins bonnes ventes en premier...

 

quelqu'un a une solution pour régler ce "problème" qui persiste sur la version 1.3.2 ? il faudrait que l'ordre des meilleures ventes soit indépendant du réglage fait dans le panneau d'admin?

 

merci

 

 

Tout à fait juste !!! Cela n'a pas été corrigé sur la version 1.4.8.3

 

Je cherche également a faire cette modification

 

De l'aide SVP !

Edited by link80 (see edit history)
Link to comment
Share on other sites

  • 4 weeks later...

ok, j'ai trouvé la solution, ça fonctionne parfaitement chez moi sur une ancienne version 1.2.5.0 mais également sur une plus récente : 1.4.8.3 !

 

allez dans :

classes/ProductSale.php

 

aux environ de la ligne 70 :

trouvez la fonction :

static public function getBestSales

 

Juste en dessous vous avez :

if (empty($orderWay)) $orderWay = 'DESC';

 

remplacez par :

$orderWay = 'DESC';

 

et l'ordre des meilleures vente sera classé LOGIQUEMENT par les produits les plus vendus en premier...

 

J'éspère que ça rendra service aux personnes qui comme moi ne trouvaient vraiment pas logique le classement par défaut des meilleures ventes...

 

Salutations

Link to comment
Share on other sites

  • 3 months later...
  • 4 weeks later...
Guest cedric-ago

Bonjour.

J'ai moi rien ne change (version presta 1.4.8.2)

 

J'ai bien les lignes suivantes de code:

 

public static function getBestSales($id_lang, $pageNumber = 0, $nbProducts = 10, $orderBy=NULL, $orderWay=NULL)

{

if ($pageNumber < 0) $pageNumber = 0;

if ($nbProducts < 1) $nbProducts = 10;

if (empty($orderBy) || $orderBy == 'position') $orderBy = 'sales';

if (empty($orderWay)) $orderWay = 'DESC';

 

Je remplace comme indiqué if (empty($orderWay)) $orderWay = 'DESC'; par $orderWay = 'DESC'; mais rien ne se passe. Voici le code modifié:

 

public static function getBestSales($id_lang, $pageNumber = 0, $nbProducts = 10, $orderBy=NULL, $orderWay=NULL)

{

if ($pageNumber < 0) $pageNumber = 0;

if ($nbProducts < 1) $nbProducts = 10;

if (empty($orderBy) || $orderBy == 'position') $orderBy = 'sales';

$orderWay = 'DESC';

 

Est-ce que j'ai bon avec ce code normalement ?

Link to comment
Share on other sites

  • 2 months later...
  • 1 year later...

Bonjour,

 

Je déterre ce vieux sujet, car j'aimerais intégrer dans mon thème (sur prestashop 1.5) une page meilleures ventes dans mon menu.

Ça je sais faire, le hic c'est que cette page est triée en fonction du paramètre choisi dans le back office/préférences/produits/pagination/tri par défaut. En l’occurrence date d'ajout.

 

Ma page best-sales.php est donc trier en fonction de la date d'ajout et non pas par les meilleures ventes. Comment faire pour que la page meilleures ventes ne prenne pas en compte l'ordre de tri, mais bien les meilleures ventes ?

 

Je pense que cela se passe dans classes/productsale.php, mais le php dépasse mes compétences. :(

 

Merci

Edited by Nérim (see edit history)
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...