Jump to content

Bug d'affichage des prix dans le comparateur PS 1.5.x


Recommended Posts

Bonjour,

 

j'ai trouvé un bug un peu gênant dans le comparateur interne de Prestashop. (Bouton Comparer dans les listes produits)

 

En effet, sur toutes les versions PS 1.5.x les prix qui s'affichent dans les résultats du comprateur sont les prix par défaut sans réduction.

 

Si on applique une réduction à l'ensemble des déclinaisons tout est ok, le nouveau prix se met bien à jour dans le comparateur. Mais si on applique des réductions différentes à chacune des déclinaisons le prix qui apparaissent dans le comparateur sont uniquement les prix forts des déclinaisons par défaut et les remises ne sont pas appliquées.

 

Comment afficher les prix des déclinaisons par défaut mais avec leur remise respectives ?

 

De plus, comment changer l'ordre des caractéristiques (features) dans ce comparateur pour qu'elles soient dans le même ordre que dans les fiches produits ?

 

Merci d'avance à tous,

 

Log's

 

PS : j'ai ouvert un ticket sur la forge au cas ou : http://forge.prestas...owse/PSCFV-6456

Link to comment
Share on other sites

  • 2 weeks later...

Bon je me répond à moi même pour ceux qui veulent la solution.

Les équipes PS ont répondu sur la forge et la réponse se trouve là bas (Merci à Rémi d'ailleurs) : https://github.com/P...d3a3b328513de54

 

Sinon pour le tri des caractéristique, il faut modifier la classe Feature.php en modifiant le ORDER BY de la fonction getFeaturesForComparison

 

public static function getFeaturesForComparison($list_ids_product, $id_lang)
 {
  if (!Feature::isFeatureActive())
return false;

  $ids = '';
  foreach ($list_ids_product as $id)
$ids .= (int)$id.',';

  $ids = rtrim($ids, ',');

  if (empty($ids))
return false;

  return Db::getInstance()->executeS('
SELECT * , COUNT(*) as nb
FROM `'._DB_PREFIX_.'feature` f
LEFT JOIN `'._DB_PREFIX_.'feature_product` fp
 ON f.`id_feature` = fp.`id_feature`
LEFT JOIN `'._DB_PREFIX_.'feature_lang` fl
 ON f.`id_feature` = fl.`id_feature`
WHERE fp.`id_product` IN ('.$ids.')
AND `id_lang` = '.(int)$id_lang.'
GROUP BY f.`id_feature`
ORDER BY f.`position` ASC
  ');
 }

 

A mettre en Résolu ;-)

@++

Edited by logs00 (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...