Jump to content

Problème de pagination sous la page promotion


Recommended Posts

Bonjour à tous,

je rencontre un problème sous PrestaShop au niveau de la page promotion (priceDrop). La pagination me renvoie le nombre total de produits (94 pages -> 937 produits) alors que je ne présente qu'une promotion (reduction_price = 10).

J'ai migré les produits d'un osCommerce vers la dernière version de PrestaShop.

J'ai bien retrouvé la requête SQL getPricesDrop dans la classe Product mais celle-ci n'est pas associée aux résultats de la pagination et je ne sais pas ou chercher pour trouver la requête SQL qui génère le nombre de page (il n'y a pas de classe Pagination, à priori, ou elle porte un autre nom).

Je suppose que le soucis vient de l'export. Un champs qui devait être NULL contient la valeur 0, ou autre...

D'avance, merci de votre aide.

Link to comment
Share on other sites

  • 2 months later...

Si vous avez une ancienne version :

J’ai effectué cette correction qui fonctionne chez moi

Fichier Classes/Product.php

ligne 996 environ

J’ai remplacé ceci :

if ($count)
       {
           $result = Db::getInstance()->getRow('
           SELECT COUNT(`id_product`) AS nb
           FROM `'._DB_PREFIX_.'product`
           WHERE `reduction_price` > 0
           OR `reduction_percent` > 0
           AND `active` = 1');
           return intval($result['nb']);
       }
       $currentDate = date('Y-m-d');


par ceci :

if ($count)
       {
           $result = Db::getInstance()->getRow('
           SELECT COUNT(`id_product`) AS nb
           FROM `'._DB_PREFIX_.'product`
           WHERE (`reduction_price` > 0 OR `reduction_percent` > 0)
       '.((!$beginning AND !$ending) ?
           'AND (`reduction_from` = `reduction_to` OR (`reduction_from` <= \''.$currentDate.'\' AND `reduction_to` >= \''.$currentDate.'\'))'
       :
           ($beginning ? 'AND `reduction_from` <= \''.$beginning.'\'' : '').($ending ? 'AND `reduction_to` >= \''.$ending.'\'' : '')).'
           AND `active` = 1
           ');
           return intval($result['nb']);
       }
       $currentDate = date('Y-m-d');



Et je n’ai plus le problème de pagination

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