[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"theme-db":3,"$fMECqn63xc6Hs93onloxD5tLAeq4QQn5KOySBLWtLj9U":22,"$fKnz2vuX4bZz1LbUTiuFsvSZ3e07l5_5fqNYp4Tzdhi8":60,"megamenu":141,"header-db":197,"$fe2ULJNBkMaAbAqC5ANVMFoEu-W5zcGZYml6CWZ6bfXY":210,"footer-db":224},{"theme":4},{"colors":5,"typography":13,"ui":17,"defaultColorMode":21},{"primary":6,"secondary":7,"background":8,"foreground":9,"muted":10,"headerBg":11,"footerBg":12,"topBarBg":9,"topBarText":11},"#4F46E5","#0D9488","#F9FAFB","#111827","#6B7280","#ffffff","#020617",{"fontFamily":14,"fontUrl":15,"baseFontSize":16},"Inter, system-ui, sans-serif","https:\u002F\u002Ffonts.googleapis.com\u002Fcss2?family=Inter:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,700;0,800;0,900;1,400;1,700&display=swap","16px",{"borderRadius":18,"contentWidth":19,"shadow":20},"lg","7xl",true,"light",{"title":23,"slug":24,"metaDescription":25,"category":26,"tags":27,"difficulty":33,"psVersions":34,"content":38,"faq":39,"tldr":55,"readingTime":56,"generatedAt":57,"publishDate":57,"relatedArticles":58,"sourceCategory":59},"Navigation à facettes absente de la recherche PrestaShop : solutions","navigation-facettes-absente-page-recherche-prestashop","La navigation à facettes ne s'affiche pas sur la page de recherche PrestaShop ? Découvrez les causes et solutions pour activer les filtres sur vos résultats.","configuration",[28,29,30,31,32],"navigation à facettes","recherche PrestaShop","filtres produits","hook displayLeftColumn","module faceted search","intermediaire",[35,36,37],"1.6","1.7","8.x","\u003Ch2>Pourquoi la navigation à facettes n'apparaît pas sur la page de recherche\u003C\u002Fh2>\n\u003Cp>La navigation à facettes (filtres par prix, marque, attributs…) est l'un des éléments les plus importants pour l'expérience utilisateur d'une boutique e-commerce. Pourtant, un problème récurrent sur PrestaShop est son absence totale sur la page des résultats de recherche, alors qu'elle fonctionne parfaitement sur les pages catégories.\u003C\u002Fp>\n\u003Cp>Ce comportement n'est pas un bug : c'est une \u003Cstrong>limitation architecturale volontaire\u003C\u002Fstrong>. Le module de navigation à facettes (anciennement \u003Ccode>blocklayered\u003C\u002Fcode>, puis \u003Ccode>ps_facetedsearch\u003C\u002Fcode>) a été conçu pour fonctionner exclusivement sur les pages de listing catégorie. La page de recherche utilise un contrôleur différent (\u003Ccode>SearchController\u003C\u002Fcode>) qui n'est pas pris en charge nativement par le module.\u003C\u002Fp>\n\u003Ch2>Diagnostic : vérifier les prérequis\u003C\u002Fh2>\n\u003Cp>Avant de chercher des solutions avancées, trois vérifications simples s'imposent.\u003C\u002Fp>\n\u003Ch3>1. La colonne gauche est-elle affichée par le thème ?\u003C\u002Fh3>\n\u003Cp>Certains thèmes masquent la colonne latérale sur la page de recherche, soit par CSS, soit en ne déclarant pas la zone de hook dans le template. Vérifiez dans votre thème le fichier correspondant à la page de recherche :\u003C\u002Fp>\n\u003Cul>\n\u003Cli>**PrestaShop 1.6 :** `themes\u002Fvotre-theme\u002Fsearch.tpl`\u003C\u002Fli>\n\u003Cli>**PrestaShop 1.7+ \u002F 8.x :** `themes\u002Fvotre-theme\u002Ftemplates\u002Fcatalog\u002Flisting\u002Fsearch.tpl`\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Recherchez la présence du hook de colonne gauche :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-smarty\">\n{hook h=\"displayLeftColumn\"}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Si cette ligne est absente, le thème ne rend tout simplement pas la colonne latérale sur cette page. Ajoutez-la dans la structure de votre template, à l'intérieur d'un conteneur approprié :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-smarty\">\n&lt;div id=\"left-column\" class=\"col-xs-12 col-sm-4 col-md-3\"&gt;\n  {hook h=\"displayLeftColumn\"}\n&lt;\u002Fdiv&gt;\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>2. Le module est-il greffé sur le bon hook ?\u003C\u002Fh3>\n\u003Cp>Dans le back-office, rendez-vous dans \u003Cstrong>Design > Positions\u003C\u002Fstrong> (ou \u003Cstrong>Modules > Positions\u003C\u002Fstrong> selon votre version) et vérifiez que le module \u003Ccode>ps_facetedsearch\u003C\u002Fcode> (ou \u003Ccode>blocklayered\u003C\u002Fcode> sur les anciennes versions) est bien greffé sur le hook \u003Ccode>displayLeftColumn\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Ch3>3. Le layout de la page de recherche inclut-il les colonnes ?\u003C\u002Fh3>\n\u003Cp>Sur PrestaShop 1.7+ et 8.x, le système de layout détermine quelles colonnes sont actives par page. Allez dans \u003Cstrong>Design > Thème et logo > Pages de configuration\u003C\u002Fstrong> et vérifiez que la page \"Recherche\" utilise un layout incluant la colonne gauche (par exemple \u003Ccode>layout-left-column\u003C\u002Fcode>).\u003C\u002Fp>\n\u003Ch2>Solution 1 : forcer l'affichage du hook dans le template de recherche\u003C\u002Fh2>\n\u003Cp>La solution la plus directe consiste à s'assurer que le template de recherche appelle bien le hook \u003Ccode>displayLeftColumn\u003C\u002Fcode>. Si votre thème utilise un layout sans colonne pour la recherche, vous pouvez soit changer le layout dans le back-office, soit modifier le template.\u003C\u002Fp>\n\u003Cp>Pour \u003Cstrong>PrestaShop 8.x\u003C\u002Fstrong>, créez un override de template dans votre thème enfant :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-smarty\">\n{* themes\u002Fvotre-theme\u002Ftemplates\u002Fcatalog\u002Flisting\u002Fsearch.tpl *}\n{extends file='catalog\u002Flisting\u002Fproduct-list.tpl'}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Assurez-vous que \u003Ccode>product-list.tpl\u003C\u002Fcode> hérite d'un layout avec colonne gauche, ou forcez-le :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-smarty\">\n{assign var='layout' value='layouts\u002Flayout-left-column.tpl'}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2>Solution 2 : développer un module complémentaire\u003C\u002Fh2>\n\u003Cp>Le module natif de navigation à facettes n'a pas été conçu pour la page de recherche. Pour une intégration propre et maintenable, la meilleure approche est de développer un \u003Cstrong>module spécifique\u003C\u002Fstrong> qui étend les capacités de filtrage au contrôleur de recherche.\u003C\u002Fp>\n\u003Cp>Ce module doit :\u003C\u002Fp>\n\u003Col>\n\u003Cli>Se greffer sur le hook `displayLeftColumn` avec une condition sur le contrôleur actif\u003C\u002Fli>\n\u003Cli>Récupérer les résultats de recherche et en extraire les attributs filtrables\u003C\u002Fli>\n\u003Cli>Générer une interface de filtres compatible avec la liste de produits\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cpre>\u003Ccode class=\"language-php\">\n&lt;?php\n\u002F\u002F Exemple de hook dans un module PrestaShop 8.x\npublic function hookDisplayLeftColumn($params)\n{\n    \u002F\u002F Ne s'exécuter que sur la page de recherche\n    if ($this-&gt;context-&gt;controller instanceof SearchController) {\n        $searchQuery = Tools::getValue('s');\n        \u002F\u002F Logique de construction des filtres\n        \u002F\u002F basée sur les résultats de recherche\n        $this-&gt;context-&gt;smarty-&gt;assign([\n            'filters' =&gt; $this-&gt;buildSearchFilters($searchQuery),\n        ]);\n        return $this-&gt;display(__FILE__, 'views\u002Ftemplates\u002Fhook\u002Fsearch-filters.tpl');\n    }\n    return '';\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2>Solution 3 : utiliser le module ps_facetedsearch avec un override\u003C\u002Fh2>\n\u003Cp>Sur PrestaShop 8.x, le module \u003Ccode>ps_facetedsearch\u003C\u002Fcode> est nettement plus flexible que son ancêtre. Il est possible de créer un override pour étendre son comportement à la page de recherche.\u003C\u002Fp>\n\u003Cp>Créez le fichier \u003Ccode>override\u002Fmodules\u002Fps_facetedsearch\u002Fps_facetedsearch.php\u003C\u002Fcode> :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-php\">\n&lt;?php\nclass Ps_FacetedsearchOverride extends Ps_Facetedsearch\n{\n    public function hookDisplayLeftColumn($params)\n    {\n        \u002F\u002F Permettre l'affichage sur la page de recherche\n        $controller = $this-&gt;context-&gt;controller;\n        if ($controller instanceof SearchController) {\n            \u002F\u002F Adapter le contexte pour simuler une catégorie\n            \u002F\u002F afin que le module puisse générer ses filtres\n            $this-&gt;context-&gt;controller-&gt;php_self = 'category';\n        }\n        return parent::hookDisplayLeftColumn($params);\n    }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cblockquote>\u003Cp>\u003Cstrong>Attention :\u003C\u002Fstrong> Cette approche est un contournement. Elle peut nécessiter des ajustements selon votre version exacte et votre configuration de filtres. Testez systématiquement en environnement de développement.\u003C\u002Fp>\u003C\u002Fblockquote>\n\u003Ch2>Bonnes pratiques pour la recherche à facettes\u003C\u002Fh2>\n\u003Ch3>Performances\u003C\u002Fh3>\n\u003Cp>La navigation à facettes sur la recherche peut être coûteuse en ressources car elle doit analyser un ensemble de produits non borné par une catégorie. Pensez à :\u003C\u002Fp>\n\u003Cul>\n\u003Cli>**Limiter le nombre de filtres** affichés sur la page de recherche\u003C\u002Fli>\n\u003Cli>**Mettre en cache** les résultats de filtrage\u003C\u002Fli>\n\u003Cli>**Indexer correctement** vos attributs et caractéristiques dans la base de données\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>UX et SEO\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Utilisez des URLs canoniques pour éviter le contenu dupliqué généré par les combinaisons de filtres\u003C\u002Fli>\n\u003Cli>Ajoutez `rel=\"nofollow\"` sur les liens de filtre pour éviter le crawl budget inutile\u003C\u002Fli>\n\u003Cli>Sur PrestaShop 8.x, configurez les filtres via le back-office dans **Modules > Navigation à facettes > Configuration** pour définir précisément quels attributs sont filtrables\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Alternative moderne : recherche AJAX\u003C\u002Fh3>\n\u003Cp>Sur PrestaShop 8.x, une approche plus moderne consiste à implémenter une recherche entièrement en AJAX avec filtres dynamiques. Le module \u003Ccode>ps_facetedsearch\u003C\u002Fcode> utilise déjà ce mécanisme sur les pages catégories. En adaptant les appels AJAX pour qu'ils fonctionnent également depuis le contexte de recherche, vous obtenez une expérience fluide et performante.\u003C\u002Fp>",[40,43,46,49,52],{"q":41,"a":42},"Pourquoi les filtres à facettes ne s'affichent pas sur ma page de recherche PrestaShop ?","Le module de navigation à facettes (ps_facetedsearch) est conçu pour fonctionner uniquement sur les pages catégories. La page de recherche utilise un contrôleur différent (SearchController) qui n'est pas pris en charge nativement. Pour afficher les filtres sur la recherche, il faut vérifier que le thème affiche bien la colonne gauche, puis soit modifier le template, soit développer un module complémentaire.",{"q":44,"a":45},"Comment ajouter la colonne gauche sur la page de recherche PrestaShop 8 ?","Allez dans Design > Thème et logo > Pages de configuration, puis changez le layout de la page Recherche pour utiliser 'layout-left-column'. Si cette option n'est pas disponible, ajoutez manuellement {hook h=\"displayLeftColumn\"} dans le template search.tpl de votre thème, à l'intérieur d'un conteneur avec les classes Bootstrap appropriées.",{"q":47,"a":48},"Le hook displayLeftColumn est-il suffisant pour afficher les facettes sur la recherche ?","Non, appeler le hook displayLeftColumn est une condition nécessaire mais pas suffisante. Le module ps_facetedsearch vérifie le contexte du contrôleur et ne génère ses filtres que sur les pages catégories. Il faut en plus soit créer un override du module pour accepter le contrôleur de recherche, soit développer un module dédié qui gère les filtres dans ce contexte spécifique.",{"q":50,"a":51},"Peut-on utiliser la navigation à facettes sans colonne latérale sur PrestaShop ?","Oui, sur PrestaShop 8.x il est possible d'afficher les filtres en haut de la liste produits (affichage horizontal) en greffant le module sur le hook displayProductListHeader ou en utilisant un hook personnalisé dans votre thème. Cette approche est de plus en plus populaire pour les designs modernes sans sidebar.",{"q":53,"a":54},"Quelles sont les alternatives au module natif de navigation à facettes PrestaShop ?","Plusieurs alternatives existent : des modules tiers sur la marketplace Addons qui étendent les facettes à la recherche, des solutions de recherche externes comme Algolia ou Elasticsearch avec leurs propres systèmes de filtrage, ou le développement d'un module sur mesure adapté exactement aux besoins de votre catalogue et de votre thème.","La navigation à facettes est absente de la page de recherche PrestaShop car le module natif ne supporte que les pages catégories. La solution passe par la vérification du layout du thème (colonne gauche + hook displayLeftColumn), puis éventuellement un override du module ou un développement spécifique pour étendre le filtrage au contrôleur de recherche.",5,"2026-03-21T15:37:04.000Z",[],"PrestaShop pour les développeurs",{"columns":61},[62,78,108,129],{"title":63,"links":64},"Plateforme",[65,69,72,75],{"label":66,"href":67,"external":68},"Offre Starter (2 500 €)","\u002Foffre-starter",false,{"label":70,"href":71,"external":68},"Devenir Ambassadeur","\u002Fambassadeur",{"label":73,"href":74,"external":68},"Modules PrestaShop","\u002Fmodules",{"label":76,"href":77,"external":20},"CodeMyShop.com","https:\u002F\u002Fcodemyshop.com",{"title":79,"links":80},"Le Synedre",[81,84,87,90,93,96,99,102,105],{"label":82,"href":83,"external":68},"L'histoire","\u002Fsynedre",{"label":85,"href":86,"external":68},"Constitution","\u002Fsynedre\u002Fconstitution",{"label":88,"href":89,"external":68},"L'équipe","\u002Fequipe",{"label":91,"href":92,"external":68},"Le réacteur en direct","\u002Freacteur",{"label":94,"href":95,"external":68},"Le Drill (entraînement)","\u002Fdrill",{"label":97,"href":98,"external":68},"Protocole de réunion","\u002Fsynedre\u002Freunion",{"label":100,"href":101,"external":68},"Les agents IA","\u002Fagents-ia",{"label":103,"href":104,"external":68},"La Conduite","\u002Fsynedre\u002Fconduite",{"label":106,"href":107,"external":68},"Charte plateforme","\u002Fsynedre\u002Fcharte",{"title":109,"links":110},"Ressources",[111,114,117,120,123,126],{"label":112,"href":113,"external":68},"Blog","\u002Fblog",{"label":115,"href":116,"external":68},"Academy","\u002Facademy",{"label":118,"href":119,"external":68},"Dictionnaire","\u002Fdictionnaire",{"label":121,"href":122,"external":68},"Expertise PrestaShop","\u002Fexpertise",{"label":124,"href":125,"external":68},"Flywheel","\u002Fflywheel",{"label":127,"href":128,"external":68},"Manifeste","\u002Fmanifeste",{"title":130,"links":131},"À propos",[132,135,138],{"label":133,"href":134,"external":68},"Alexandre Carette","\u002Fa-propos",{"label":136,"href":137,"external":68},"Dossier de presse","\u002Fpresse",{"label":139,"href":140,"external":68},"Contact","\u002Fcontact",{"items":142},[143,152,158,164,172,180,185,191],{"id":144,"type":145,"label":146,"href":122,"icon":148,"description":148,"badge":148,"groupTitle":148,"style":148,"gridColumns":148,"cssClass":148,"psCategoryId":148,"showPsChildren":68,"position":149,"children":150,"psChildren":151},41,"link",{"fr":147},"Expertise",null,0,[],[],{"id":153,"type":145,"label":154,"href":113,"icon":148,"description":148,"badge":148,"groupTitle":148,"style":148,"gridColumns":148,"cssClass":148,"psCategoryId":148,"showPsChildren":68,"position":155,"children":156,"psChildren":157},42,{"fr":112},1,[],[],{"id":159,"type":145,"label":160,"href":74,"icon":148,"description":148,"badge":148,"groupTitle":148,"style":148,"gridColumns":148,"cssClass":148,"psCategoryId":148,"showPsChildren":68,"position":161,"children":162,"psChildren":163},43,{"fr":73},2,[],[],{"id":165,"type":145,"label":166,"href":168,"icon":148,"description":148,"badge":148,"groupTitle":148,"style":148,"gridColumns":148,"cssClass":148,"psCategoryId":148,"showPsChildren":68,"position":169,"children":170,"psChildren":171},44,{"fr":167},"Outils IA","\u002Foutils-ia",3,[],[],{"id":173,"type":145,"label":174,"href":67,"icon":148,"description":148,"badge":148,"groupTitle":148,"style":176,"gridColumns":148,"cssClass":148,"psCategoryId":148,"showPsChildren":68,"position":177,"children":178,"psChildren":179},45,{"fr":175},"Offre Starter ✨",{"highlight":20},4,[],[],{"id":181,"type":145,"label":182,"href":116,"icon":148,"description":148,"badge":148,"groupTitle":148,"style":148,"gridColumns":148,"cssClass":148,"psCategoryId":148,"showPsChildren":68,"position":56,"children":183,"psChildren":184},46,{"fr":115},[],[],{"id":186,"type":145,"label":187,"href":134,"icon":148,"description":148,"badge":148,"groupTitle":148,"style":148,"gridColumns":148,"cssClass":148,"psCategoryId":148,"showPsChildren":68,"position":188,"children":189,"psChildren":190},47,{"fr":130},6,[],[],{"id":192,"type":145,"label":193,"href":140,"icon":148,"description":148,"badge":148,"groupTitle":148,"style":148,"gridColumns":148,"cssClass":148,"psCategoryId":148,"showPsChildren":68,"position":194,"children":195,"psChildren":196},48,{"fr":139},7,[],[],{"header":198},{"logo":199,"topBar":204,"contactEmail":207,"features":208,"navBar":148},{"src":200,"alt":201,"text":133,"href":202,"class":203},"\u002Flogo-ac.svg","Alexandre Carette — Architecte E-commerce Souverain","\u002F","h-10 w-10",{"message":148,"showLanguages":68,"align":205,"languages":206},"left",[],"contact@alexandrecarette.fr",{"showSearch":68,"showWishlist":68,"showLogin":20,"showContact":68,"showCart":68,"stickyHeader":20,"headerLayout":209},"inline",{"academy":211,"blog":212,"expertise":223},[],[213,217,220],{"title":214,"url":215,"score":155,"type":216},"PrestaShop headless avec Nuxt 3 : pourquoi séparer back et front","\u002Fblog\u002Fprestashop\u002Farchitecture\u002Fprestashop-headless-nuxt-separation-front-back","blog",{"title":218,"url":219,"score":155,"type":216},"PrestaShop headless : Nuxt 3, pas Next.js — le choix souverain","\u002Fblog\u002Fprestashop\u002Farchitecture\u002Fprestashop-headless-nuxt-nextjs-souverainete",{"title":221,"url":222,"score":155,"type":216},"Sylius rachète PrestaShop : ce que ça change pour vous","\u002Fblog\u002Fprestashop\u002Farchitecture\u002Fsylius-rachat-prestashop-headless-souverainete",[],{"footer":225},{"theme":226,"description":148,"hours":148,"logo":227,"contact":228,"social":229,"bottomBar":239},"dark",{"src":200,"href":202,"alt":133},{"email":148,"phone":148,"address":148,"cta":148},[230,233,236],{"platform":231,"href":232,"label":231},"linkedin","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Falexandre-carette\u002F",{"platform":234,"href":235,"label":234},"malt","https:\u002F\u002Fwww.malt.fr\u002Fprofile\u002Falexandrecarette",{"platform":237,"href":238,"label":237},"github","https:\u002F\u002Fgithub.com\u002Fprest4cafe",{"copyright":148}]