24
Avr

Problème prix HT et TTC navigation à facettes prestashop

Lors d’une intégration, je me suis rendu compte que la glissière de prix dans la navigation à facettes Prestashop, affichait uniquement les prix en HT. Cela n’est donc pas compréhensible pour le client, une glissière de prix qui affiche un prix minimum qui n’existe pas sur le site. Voici un petit tutoriel pour résoudre ce problème.

Détail du problème sur la navigation à facettes

Version de Prestashop : 1.6.1.11

L’option en back-office qui permet d’afficher les prix en TTC et non en HT ne fonctionne pas :
probleme-prix-ht-module-navigation-a-facettes-prestashop

Si votre produit le moins cher est à 12€ TTC, dans la recherche prix, il y aura un montant de 10€ (prix HT).

Afficher le prix TTC

Il faut ouvrir le fichier PHP du module, allez ici : /modules/blocklayered/blocklayered.php et on va modifier la fonction indexProductPrices.
Remplacez cela :

foreach ($currency_list as $currency)
         $values[] = '('.(int)$id_product.',
             '.(int)$currency['id_currency'].',
             '.$id_shop.',
             '.(int)$minPrice = (int)$min_price[$currency['id_currency']].',
             '.(int)Tools::ps_round($max_price[$currency['id_currency']] * (100 + $max_tax_rate) / 100, 0).')';

par

if( Configuration::get('PS_LAYERED_FILTER_PRICE_USETAX') )
                $minPrice = (int)Tools::ps_round($max_price[$currency['id_currency']] * (100 + $max_tax_rate) / 100, 0);
            else
                $minPrice = (int)$min_price[$currency['id_currency']] ;
            foreach ($currency_list as $currency)
                $values[] = '('.(int)$id_product.',
                    '.(int)$currency['id_currency'].',
                    '.$id_shop.',
                    '.(int)$minPrice.',
                    '.(int)Tools::ps_round($max_price[$currency['id_currency']] * (100 + $max_tax_rate) / 100, 0).')';

Si cela fonctionne pas, il faut vider le cache de votre site :)
Cela m’a beaucoup aidé sur une importante intégration Prestashop, je me suis rendu compte que ce « bug » est présent sur pas mal de version 1.6.

Source (après de longues recherches !!!) -> Forum Prestashop

Commentaires ( 0 )

    LAISSER UN COMMENTAIRE

    Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont marqués *