Une recherche à facettes demande généralement chaque clic au serveur : une requête lourde à chaque changement de
filtre, lente sur les gros catalogues et impossible à mettre en cache. Instant Filters change l’endroit où le
travail se fait. La boutique écrit un ensemble de fichiers JSON avec tout le catalogue et les filtres possibles, et
le navigateur du client les lit une fois puis filtre, compte, trie et pagine tout seul.
Ce que la boutique écrit
Pour chaque boutique, langue, devise et groupe de clients que vous préparez, le module tient un index.json avec un
enregistrement compact par produit (catégories, marque, caractéristiques, attributs, prix, remise, stock, date,
ventes et position) et les noms que chaque filtre affiche, ainsi que des fichiers cards-N.json avec les cartes
produit rendues par votre thème actif : la liste filtrée est identique à la liste normale. Les prix sont ceux que
ce visiteur paie, avec remises, réductions de groupe et taxes comme la boutique les affiche.
Comment ils restent à jour
Enregistrer ou supprimer un produit, changer son stock, ajouter une règle de prix, modifier une caractéristique, un
attribut, une catégorie, une marque, une devise ou un groupe met le changement dans une petite file. Le navigateur
du visiteur suivant demande à une adresse du module de le traiter une fois la page affichée : personne n’attend et
aucun cron n’est à configurer. Pour un gros import ou un déploiement, lancez
php modules/ecomaddonsinstantfilters/cli/rebuild.php ou appuyez sur le bouton de reconstruction.
Dans la boutique
Le panneau de filtres apparaît sur les pages catégorie, marque, fournisseur, nouveaux produits, meilleures ventes
et promotions : à côté des produits (la colonne de gauche du thème), en barre au-dessus ou en bouton flottant qui
ouvre un panneau latéral, au choix ; sur mobile, toujours un panneau latéral. Le serveur continue d’imprimer la liste normale :
les moteurs de recherche, et les visiteurs sans JavaScript, la voient comme avant.
À savoir
- Il est pensé pour des catalogues jusqu’à environ dix mille produits par ensemble de fichiers. Au-delà, les
fichiers deviennent trop lourds pour un mobile.
- Désactivez la recherche à facettes de PrestaShop (la page de réglages a un bouton) ou les clients verront deux
panneaux.
- Chaque groupe de clients ayant ses propres prix a besoin de ses fichiers : choisissez-les dans les réglages.
- Sur Apache, le module ajoute un
.htaccess dans img/ecomfilters/ qui ne laisse passer que les fichiers JSON ;
sur nginx, autorisez img/ecomfilters/*.json dans votre configuration.