Dans le cas d'une boutique en ligne avec de nombreux produits, catégories, voire caractéristiques, il est essentiel de permettre au visiteur de restreindre l'affichage, et ceci selon les crtères qui lui sont les plus naturels possible, au premier rang desquels figure le prix.
La mise en place de sélections repose sur la fonction « Filtres » uniquement disponible dans la version Business de Hikashop.
Points forts :
Points faibles (2 petits) :
Deux étapes et un préalable sont à distinguer :
Le nom d'un filtre est très important notamment lors de sa création.
En effet il pourra toujours être modifié mais son nom de départ restera stocké.
Le nom courant est bien sûr celui qui sera apparent dans les paramétrages et les listes.
Le nom de départ sera celui apparent dans le module.
Ce fonctionnement est un peu déroutant, mieux vaut bien penser ses noms de filtres lors de leur création.
Ci-dessous un exemple avec Phpmyadmin (table xxxxx_hikashop_filter):
Conclusion : bien penser les noms des filtres dès le départ.
On retrouve le nom des filtres "filter_name" dans la liste ci-dessous :
A noter : l'ordre paramétré ici sera toujours le même lors de l'affichage en front-end.
La zone "Type" est intuitive, pour les non anglicistes :
Singledropdown = liste simple
Checkbox= bouton radio
Quelques explications sur les "Informations complémentaires" sont nécessaires :
"Soumettre après un clic" : si OUI, il n'est pas nécessaire à l'utilisateur de cliquer sur un bouton pour valider sa sélection, l'affichage se rafraîchit automatiquement. A l'inverse, si NON, l'utilisateur devra cliquer sur un bouton pour rafraîchir. Je conseille OUI, car plus pratique et entré dans les habitudes web.
"Hauteur" : crée un paramètre css "min-height" dans une classe contenant le name_filter. Le 0px signifie non paramétré : tester l'affichage à 0 en premier lieu.
"Filtre supprimable" : permet à l'utilisateur de cllquer sur une X pour supprimer ce filtre, et de ne garder que les filtres/sélections qu'il souhaite.
"Affichage dynamique" : très utile car il permet de n'afficher que les filtres possibles en corrélation avec le filtre déjà sélectionné. Exemple: je sélectionne un prix à plus de 100€ et il se trouve que dans ma base de données je n'ai que des vins blancs et rouges à plus de 100€, l'affichage dynamique ne me proposera comme flitre complémentaire que "blanc" et "rouge" et pas "rosé".
Le paramétrage des options est assez intuitif.
Pour le filtre par prix, voici un exemple de parmétrage de "fourchettes", ainsi que le résultat en front-end, de type "liste simple":
Quelques remarques sur les paramétrages:
"Show filter button" : le bouton "Filtrer" n'est pas utile puisque l'affichage est dynamique.
"Number of columns" : souvent 1 car les filtres sont souvent affichés en sidebar, mais on peut aussi les afficher aussi en milieu et en haut (x colonnes.
"Filters height" : utile uniquement si les filtres sont de même type, dans le cas contraire le design viendra de vos css.
"Filters": le plus important, on choisit les filtres à afficher dans le module (Shift ou CTRL + clic droit pour en sélectionner plusieurs dans la liste).
On remarquera que seul le "Nom de départ" évoqué plus haut est affiché, d'où l'importance de cette notion.
Pour rappel: le module peut être dupliqué pour sélectionner d'auttes combibnaisons de filtres et une assignation à d'autres pages.
La version 2.3.4 ne permet pas de tri par prix en standard.
Le tri est possible sur la zone « Prix constaté » qui correspond au prix recommandé par le fabricant. Cette information permet au vendeur (s'il est différent du fabricant) d'afficher une transparence sur les prix.
Dès lors que cette information est renseignée dans la fiche produit, elle s'affiche avec comme libellé « Prix constaté ».
Pour changer ce libellé, il suffit d'aller en Gestion des langues/Substitutions, et de créer un override pour la chaîne « PRODUCT_MSRP_BEFORE ».
Résultat :
Pour mettre en place le tri par prix constaté, il faut indiquer dans la vue « Menu » ou « Module », au niveau des paramètres pour les produits, dans la zone « Classement sur le champ » la valeur « product_msrp ».
Si vous voulez que les produits se trient par prix constaté, mais ne pas afficher en front-end sur la fiche produit le prix constaté, il faut modifier la vue Product/Listing_price et ajouter tout en haut du fichier, en-dessous de < ?php la ligne
$this->row->product_msrp = 0;