Domanda

Usando Magento CE 1.9.0.1.

Stiamo cercando di trovare un modo per ordinare i prodotti sul nostro sito in base a quale set di attributi sono stati creati. Vendiamo vestiti sul nostro sito in modo da avere un numero di set di attributi come cappelli, pantaloni, tee, accessori, ecc.

Ho i mezzi per ordinare per attributo :

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

Ma questo copre gli attributi all'interno di un set di attributi. C'è un modo per includere un campo "Attributo Set" nel modello del catalogo per l'ordinamento? Attualmente sto lavorando con app / design / frontend / mypackage / mitheme / template / catalogo / prodotto / lista.phtml.

Esempio: abbiamo una pagina "nuova" in cui i prodotti di tutte le varie categorie mostreranno. Vedrai un nuovo cappello, una nuova maglietta, nuovi pantaloni, ecc. Ma vorremmo che tutti i nuovi cappelli siano raggruppati insieme (che sarebbe stato fatto per ordinare il set di attributi), i pantaloni per stare insieme, le T-shirt, e così.

** Modifica: ** Ho trovato un modo per accedere al set di attributi dell'oggetto del prodotto ... https://stackoverflow.com/questions/2091375/how-do--get-attribute-set-name Ora devo solo sapere come ordinare per quel pezzo di dati.

È stato utile?

Soluzione

Avevo usato l'osservatore per questo nella tua customModule e in questo ecc

<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>
.

Anche in customModule / modello / obeserver.php sotto la cartella del modello Modules Aggiungi il codice seguente

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

Altri suggerimenti

Puoi provare l'ordinamento per 'attribute_set_id'.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top