Fonctionnalités

  • Des fichiers JSON statiques par variante de liste (boutique, langue, devise et groupe de clients) : chaque produit avec ses catégories, sa marque, ses caractéristiques, ses attributs, son prix, son stock et ses ventes, et les cartes produit déjà rendues par votre thème
  • Des filtres pour tout ce que contient le catalogue : catégories, marques, chaque caractéristique, chaque attribut (pastilles de couleur comprises), fourchette de prix, en stock, en promotion, nouveautés et état, trouvés tout seuls, sans les configurer un par un
  • Des compteurs qui suivent les autres filtres : un groupe compte comme s’il n’était pas choisi, le client n’arrive donc jamais sur un résultat vide
  • Aucune requête à la boutique pendant que le client filtre : le navigateur ne lit que des fichiers statiques, qui peuvent être sur un CDN, et la base de données est laissée tranquille
  • Les fichiers se régénèrent seuls grâce aux hooks de PrestaShop quand un produit, son stock, une règle de prix, une caractéristique, un attribut, une catégorie, une marque, une devise ou un groupe change ; pas de tâche cron
  • Compatible avec tout thème, car les cartes viennent du modèle du thème lui-même ; la liste imprimée par le serveur reste intacte pour les moteurs de recherche et les visiteurs sans JavaScript
  • Trois dispositions (à côté des produits, une barre au-dessus, un bouton flottant avec panneau latéral ; toujours un panneau latéral sur mobile), filtrage immédiat ou avec un bouton « Voir les produits », numéros de page, bouton « Charger plus » ou défilement infini, filtres actifs en boutons et une URL qu’on peut partager ou recharger
  • Conçu pour être accessible : il se manie au clavier et au lecteur d’écran, les filtres annoncent le nombre de résultats, le panneau latéral garde le focus jusqu’à sa fermeture et chaque zone tactile est assez grande pour un doigt
  • Une page de back-office en quatre onglets : ordonnez les filtres en les faisant glisser, nommez-les dans chaque langue, choisissez leur apparence (liste, boutons, pastilles de couleur, liste déroulante, curseur de prix), fusionnez plusieurs attributs ou caractéristiques en un filtre, choisissez les groupes de clients et reconstruisez les fichiers avec une barre de progression qui montre chaque fichier ; un script en ligne de commande pour les gros catalogues

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.

Historique des versions

  1. Chargement…

Avis

Chargement…