Básicamente, lo que tienes que hacer es extend/overwrite
desde Mage_Catalog_Block_Product_List (List.php)
y reescribir el getProductCollection()
método:
protected function _getProductCollection()
{
if (is_null($this->_productCollection)) {
// Build collection and set it
$collection = "...";
$this->setProductCollection($collection);
}
return $this->_productCollection;
}
Cuando se hizo eso, sobrescribí tanto la Mage_Catalog_Model_Layer
clase como la clase Mage_Catalog_Model_Category
e introduje una nueva variable:
protected $_customProductCollection;
He sobrescrito el getProductCollection()
en ambas clases y agregué esto al comienzo del método:
if(isset($this->_customProductCollection)){
return $this->_customProductCollection;
}
También tengo un método que me permite configurar esto "customProductCollection"
dentro de estas dos clases. Una vez que se establece, el resto de los datos de la navegación / categoría en capas se basa en esta colección.
Mira la pregunta inicial + respuesta aquí .
Buena suerte ;)