Domanda

Bene, Sto avendo una categoria riempita solo con prodotti raggruppati e voglio questi a essere filtrati dai loro associati (e semplici) gli attributi dei prodotti.

Fino ad ora ho usato una soluzione sporca: ho lasciato solo un semplice prodotto per essere visibili a catalogo, ma nascosto da html e CSS.
In questo modo gli attributi sono stati comparendo e li ho potuto usare per i prodotti raggruppati anche, ma ho notato che scompare di navigazione a strati se questo prodotto semplice nascoste non vengono visualizzate quando ho Filtra per prezzo.

Tutte le idee o soluzioni alternative?

Grazie.

È stato utile?

Soluzione

È necessario riscrivere come Mage_Catalog_Model_Layer costruisce la raccolta di attributo utilizzando i set di attributi della collezione corrente del prodotto:

protected function _getSetIds()
{
    $key = $this->getStateKey().'_SET_IDS';
    $setIds = $this->getAggregator()->getCacheData($key);

    if ($setIds === null) {
        $setIds = $this->getProductCollection()->getSetIds();
        $this->getAggregator()->saveCacheData($setIds, $key, $this->getStateTags());
    }

    return $setIds;
}

Per questo contesto, ti consigliamo di controllare la raccolta del prodotto per i prodotti raggruppati e restituire gli ID set di attributi di bambini raggruppati. Questi vengono poi valutati in getFilterableAttributes():

public function getFilterableAttributes()
{
    $setIds = $this->_getSetIds();
    if (!$setIds) {
        return array();
    }
    /** @var $collection Mage_Catalog_Model_Resource_Product_Attribute_Collection */
    $collection = Mage::getResourceModel('catalog/product_attribute_collection');
    $collection
        ->setItemObjectClass('catalog/resource_eav_attribute')
        ->setAttributeSetFilter($setIds)
        ->addStoreLabel(Mage::app()->getStore()->getId())
        ->setOrder('position', 'ASC');
    $collection = $this->_prepareAttributeCollection($collection);
    $collection->load();

    return $collection;
}

È probabile che sia necessario affrontare con la chiave di cache. Vorrei sviluppare con blocco di caching off e poi prova a lungo con su.

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