Trier les produits dans la vue du catalogue avant sur la base de laquelle l'attribut set ils appartiennent à

magento.stackexchange https://magento.stackexchange.com//questions/53976

Question

Utilisation de Magento CE 1.9.0.1.

Nous essayons de trouver un moyen de trier les produits sur notre site en fonction de l'attribut défini avec lequel ils ont été créés. Nous vendons des vêtements sur notre site, nous avons donc un certain nombre d'ensembles d'attributs tels que des chapeaux, des pantalons, des tees, des accessoires, etc.

J'ai les moyens de trier par attribut :

$_productCollection = Mage::getModel('catalog/product')->getCollection();
$_productCollection->addAttributeToSelect('*');
$_productCollection->addAttributeToSort('display_order', 'ASC');
$_helper = $this->helper('catalog/output'); 

Mais cela couvre les attributs dans un ensemble d'attributs. Existe-t-il un moyen d'inclure un champ "Set d'attributs" dans le modèle de catalogue pour le tri? Je travaille actuellement avec App / Design / Frontend / MyPackage / Mythe / Modèle / Catalogue / Produit / Liste.Phtml.

Exemple: Nous avons une "nouvelle" page où les produits de toutes les différentes catégories seront montrés. Vous verrez un nouveau chapeau, un nouveau t-shirt, un nouveau pantalon, etc. Mais nous aimerions que toutes les nouvelles chapeaux soient regroupées (ce qui serait fait par le tri des attributs), des pantalons à être ensemble, des t-shirts, et ainsi.

** Modifier: ** J'ai trouvé un moyen d'accéder à l'attribut d'objet du produit ... https://stackoverflow.com/questions/2091375/how-do--get-attribute-set-name Maintenant, je viens de savoir comment trier par cette pièce de données.

Était-ce utile?

La solution

J'avais utilisé Observateur pour cela dans votre coton, et, etc / config.xml sous <global> Tag utilisez:

<events>
    <catalog_product_collection_load_after>
        <observers>
            <product_load_before>
                <type>singleton</type>
                <class>Yourpackagename_Yourmodulename_Model_Observer</class>
                <method>load_productsby_attributesetid</method>
            </product_load_before>
        </observers>
    </catalog_product_collection_load_after>
</events>

Aussi Enemporditure / Modèle / Obeserver.php Dans votre dossier Modules Modules Ajoutez le code suivant

<?php
    class Yourpackagename_Yourmodulename_Model_Observer{
        public function load_productsby_attributesetid($observer){
            $collection = $observer->getCollection();
            $collection->addAttributeToSelect('*')->addAttributeToSort('attribute_set_id', 'asc');
            return $collection;
        }
    }
?>

Autres conseils

Vous pouvez essayer de trier par 'attribut_set_id'.

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top