Categoria specifica Layered Navigation Changes (Disattivazione filtri Attributo) [chiusa]

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

  •  16-10-2019
  •  | 
  •  

Domanda

Sto cercando di disabilitare un particolare filtro attributo di navigazione a strati per una categoria specifica. Il filtro di attributo desidero disable è il produttore in questo caso.

sto provando quanto segue nella 'Layout Custom Design' per la categoria in questione: -

<block type="catalog/layer_view" name="catalog.leftnav" after="currency" template="catalog/layer/view.phtml">
    <action method="unsetChild"><alias>manufacturer_filter</alias></action>
</block>

Questa è la metà di lavoro, si nasconde il filtro produttore nella navigazione a strati, ma nasconde anche tutto il resto sotto questo catalog.leftnav.

Qualsiasi idea di come le esigenze di cui sopra modifica per evitare che ciò accada?

Per spiegare cosa intendo, qui ci sono le immagini.

Prima dell'aggiornamento XML

entrare descrizione dell'immagine qui

Dopo l'aggiornamento XML

entrare descrizione dell'immagine qui

È stato utile?

Soluzione

È possibile raggiungere questo obiettivo se si riscrive il metodo Mage_Catalog_Model_Layer::getFilterableAttributes.
Per una categoria specifica è possibile aggiungere un nuovo filtro.

Qualcosa di simile (non testato)

public function getFilterableAttributes()
{
    $setIds = $this->_getSetIds();
    if (!$setIds) {
        return array();
    }
    $collection = Mage::getResourceModel('catalog/product_attribute_collection');
    $collection
        ->setItemObjectClass('catalog/resource_eav_attribute')
        ->setAttributeSetFilter($setIds)
        ->addStoreLabel(Mage::app()->getStore()->getId())
        ->setOrder('position', 'ASC');
    if ($this->getCurrentCategory()->getId() == 7) {
         //if in that specific category...You can even make this a category setting or a config setting so you won't hard code it.  
         $collection->addFieldToFilter('attribute_code', array('neq'=>'manufacturer'));
    }

    $collection = $this->_prepareAttributeCollection($collection);
    $collection->load();

    return $collection;
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top