Jump to content

Recommended Posts

Bonjour à tous,

 

J'ai un bug sur la glissière prix de la navigation à facettes sur ma boutique.

 

Par exemple sur ce lien : https://www.wineandbee.com/19-vin-en-ligne#/price-7.4-24.2

On filtre un produit entre 7,40€ et 24,20€, non ?

Et bien, le module me ressort sans vergogne des produits à 29, 30e.....

 

J'ai fais toutes les investigations possibles, en réinitialisant même le module mais rien n'y fait...

 

 

Est-ce quelqu'un à eu les mes mêmes soucis sur sa boutique ?

 

Par avance un grand merci !
Sébastien, sommelier de Wine & Bee.

 

Share this post


Link to post
Share on other sites

'lo

 

Je n'ai pas pris le temps de m'y pencher mais à voir si il n'y a pas une histoire de HT/TTC et ou frais annexes (frais de manutention ou autre) ou le cache du module à facettes

  • Like 1

Share this post


Link to post
Share on other sites

'lo

 

Je n'ai pas pris le temps de m'y pencher mais à voir si il n'y a pas une histoire de HT/TTC et ou frais annexes (frais de manutention ou autre) ou le cache du module à facettes

 

 

Bonjour Eolia,

 

Cela fait plaisir de vous (re)lire :)

J'espère que vous allez bien depuis la dernière fois.

Vous verrez, le site continue à bien évoluer.

 

Merci en tout cas pour votre réponse sur la navigation à facettes

 

Sur le cache, je ne pense pas, ayant ré-initialisé le module + ré-indexé tous les prix, modules, url, etc.

Je ne pense pas avoir de frais annexes/manutention.

En revanche, voici mes principaux paramètres :

 

Profondeur du filtre des catégories = 1

Appliquer les filtres sur les prix TTC et non HT = Oui

Inclure les arrondis dans le filtre par prix = Non

 

Qu'en pensez-vous ?

 

Merci par avance

 
 

 

 

 

Share this post


Link to post
Share on other sites

Si le module devait chercher les prix pour chaque produit (en fonction du groupe de client, de la devise...), le module serait inutilisable car trop lent. C'est pour ça qu'une fourchette de prix pour chaque produit est stocké dans ps_layered_price_index (champs price_min et price_max). Du coup ça peut quelque fois afficher un produit au dessus de la fourchette car price_min est bien dans la fourchette.

  • Like 1

Share this post


Link to post
Share on other sites

Merci Coes.pro pour cette explication que je ne connaissais pas du tout.

Savez-vous si nous avons la possibilité de réduire cette fourchette de prix, c'est à dire l'écart entre price_min  et price_max ?

Share this post


Link to post
Share on other sites

tu peux déjà aller dans la configuration du module pour réindexer les prix, éventuellement sélectionner l'option "Appliquer les filtres sur les prix TTC et non HT" et l'option "Inclure les arrondis dans le filtre par prix"

 

Sinon tu peux modifier manuellement les valeurs dans la bdd, mais ces modifications seront supprimées lors de la réindexation

Share this post


Link to post
Share on other sites

Merci Coeos.pro, j'ai déjà joué sur tous ces paramètres : ré-indexation, HT-TTC, arrondis, etc...

Mais rien n'y fait, la fourchette reste toujours aussi large entre un max à 24,20€ et la prise en compte d'un produit à 29,50€, soit de 5€ supérieur à la borne max.

 

Effectivement pas jouable de modifier la bdd si suppression à chaque ré-indexation.

 

Du coup, je pense qu'il n'y a plus qu'à espérer une mise à jour ce module.

 

Merci d'avoir pris le temps de m'écrire...

Share this post


Link to post
Share on other sites

regarde les valeurs dans ps_layered_price_index pour ton produit, pour voir si ce n'est pas un problème de cache, dans parametres avancés > performance, tout en bas il ne faut pas utiliser le cache.

Share this post


Link to post
Share on other sites

Le cache était effectivement activé à cet endroit. je viens de le desactiver.

Cela n'a pas d'incidence (hélas) sur la navigation à facette mais je le laisse désactivé, je pense que ca peux pas faire de mal sur la boutique au global

Share this post


Link to post
Share on other sites

J'ai eu le même soucis, visiblement c'est un bug. Voici une solution pour le corriger.

 

Dans le fichier /modules/blocklayered/blocklayered.php dans la fonction indexProductPrices il faut changer le code

    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).')';

puis reconstruire les index dans le module blocklayered.

 

Voilà

  • Like 1

Share this post


Link to post
Share on other sites

J'ai eu le même soucis, visiblement c'est un bug. Voici une solution pour le corriger.

 

Dans le fichier /modules/blocklayered/blocklayered.php dans la fonction indexProductPrices il faut changer le code

    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).')';

puis reconstruire les index dans le module blocklayered.

 

Voilà

 

Bravo et Merci,

you made my day  :)

Share this post


Link to post
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

×

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More