Pregunta

En Magento, el bloque de navegación en capas funciona muy bien en la página de la lista de productos.

¿Cómo puede este bloque puede copiar con éxito a una página personalizada, donde hay una lista personalizada de los productos?

Nota:. Simplemente añadiendo el bloque para el XML, y decir que es de getChildHtml('blockname') no hacer el truco

¿Fue útil?

Solución

Básicamente lo que tienes que hacer es extend/overwrite Mage_Catalog_Block_Product_List (List.php) y reescribir el método getProductCollection():

protected function _getProductCollection()
{
    if (is_null($this->_productCollection)) {
        // Build collection and set it
        $collection = "...";
        $this->setProductCollection($collection);
    }

    return $this->_productCollection;
}

Una vez hecho esto tuve tanto la clase Mage_Catalog_Model_Layer sobrescribe y el Mage_Catalog_Model_Category e introdujo una nueva variable:

protected $_customProductCollection;

he sobrescrito la getProductCollection() en ambas clases y añadí esto en el principio del método:

if(isset($this->_customProductCollection)){
    return $this->_customProductCollection;
}

También tengo un método que me permite establecer este "customProductCollection" dentro de estas dos clases. Una vez fijado Es, el resto de los datos de la navegación por capas / categoría se basa en esta colección.

Confirmar la pregunta inicial + respuesta aquí .

Buena suerte;)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top