Posts Tagged ‘filtres’

Prestashop 1.7 : Ajouter une navigation à facettes dans les listings

La gestion des listings à complétement été réécrite sur Prestashop 1.7 , et la bonne nouvelle et qu’ils gèrent maintenant nativement la navigation à facettes ( Tout du moins la partie front 😉 )
Nous allons voir ensemble comment mettre en place une navigation à facette basique sur la page des nouveaux produits.

Sommaire :

  1. Fonctionnement général
  2. Affichage de facettes
  3. Tri et gestion des facettes

Cet article est plus dans une démarche d’explication du fonctionnement, que dans la réalisation d’un module purement fonctionnel, et la réalisation est assez chronophage, dans la majorité des cas il sera préférable de passer par un module qui fera cela.
( Le module de navigation à facette de Prestashop le permets uniquement sur les catégories )

Fonctionnement général

Le premier point essentiel à noter et qu’il n’est pas nécessaire de faire de surcharge, tout peut être géré via un module 🙂

Avant de voir ce qu’il faut coder, il est important de comprendre comment fonctionnent les pages de listing sur prestashop 1.7
Dans mon exemple on va utiliser le controller NewProductsController ( controllers/front/listing/NewProductsController.php ) qui gère les nouveaux produits.…

2 commentaires

Magento : Ajouter des filtres dans la grid des produits d’une catégorie

J’ai récemment fait face aux limites de la gestion des produits des catégories dans l’administration de Magento.

En effet, dans l’onglet « Produits de la catégories » l’ensemble des produits associés sont listés, et il n’est pas possible de filtrer ceux qui ne sont pas visibles en front office ( Produits désactivés, produits non visibles individuellement, ou uniquement dans la recherche )

Pour optimiser cela, nous allons donc rajouter les possibilités suivantes à la grid :

  • Filtrer par status ( Actif / Non actif )
  • Filtrer par visibilité ( Non visible individuellement, Catalogue … )

Pour faire cela nous allons réaliser un nouveau module.
Je ne détaille pas la création du module ni tout ce qui est générique car cet exemple est le même que pour le cas suivant : https://www.h-hennes.fr/blog/2015/06/29/magento-ajouter-un-attribut-personnalise-a-la-grid-des-produits-via-les-observers/

Le module qui réalise les 2 actions  est disponible sur github : https://github.com/nenes25/magento_productGridFilter)

Il serait possible de surcharger directement la grid Mage_Adminhtml_Block_Catalog_Category_Tab_Product  pour faire cela, mais magento permets de le faire plus proprement via des Observers.…

Pas de commentaires

Magento : Ajouter un attribut personnalisé à la grid des produits via les observers

Vous avez forcément sur votre boutique Magento, des attributs produits spécifiques à votre site.
Si vous souhaitez les afficher dans la grid des produits, et pouvoir filtrer les produits via cet attribut, voici comment procéder.

Le méthode la plus propre est de passer par les observers de Magento, ceci évitera de créer des surcharges pouvant entrainer des problèmes de compatibilités.
Je passe volontairement toute la partie liée à la création du module pour se concentrer uniquement sur la partie spécifique à l’affichage de l’attribut dans la grid.

Pour que notre modification fonctionne, le module va se greffer sur les événements suivants :

  • core_block_abstract_to_html_before : Pour afficher l’attribut dans la grid des produits
  • eav_collection_abstract_load_before : Pour charger les valeurs de l’attribut dans la collection des produits

Voici donc les données  à faire figurer dans le fichier de configuration config.xml de votre module :
Veuillez à bien remplacer le nom du modèle ( hhennes_productgridfilter ) par le nom de votre module

<adminhtml>
        <events>
            <core_block_abstract_to_html_before>
                <observers>
                   <product_filter_reference>
                        <class>hhennes_productgridfilter/observer</class>
                        <method>onBlockHtmlBefore</method>
                    </product_filter_reference>
                </observers>
            </core_block_abstract_to_html_before>
            <eav_collection_abstract_load_before>
                <observers>
                    <product_filter_reference_load>
                        <class>hhennes_productgridfilter/observer</class>
                        <method>onEavLoadBefore</method>
                    </product_filter_reference_load>
                </observers>
            </eav_collection_abstract_load_before>
        </events>
  </adminhtml>

Passons à présent à l’édition de l’observer du module qui sera situé dans modulename/Model/Observer.php
Dans mon cas j’ajoute un attribut « reference » qui existe déjà dans la boutique, mais il peut être remplacé par l’attribut produit existant de votre choix.…

Pas de commentaires


Compte Github