Basicamente o que você tem a fazer é extend/overwrite
partir Mage_Catalog_Block_Product_List (List.php)
e reescrever o getProductCollection()
método:
protected function _getProductCollection()
{
if (is_null($this->_productCollection)) {
// Build collection and set it
$collection = "...";
$this->setProductCollection($collection);
}
return $this->_productCollection;
}
Quando isso foi feito, eu substituí a Mage_Catalog_Model_Layer
classe e a Mage_Catalog_Model_Category
e introduzi uma nova variável:
protected $_customProductCollection;
Substituí o getProductCollection()
em ambas as classes e adicionei isso no início do método:
if(isset($this->_customProductCollection)){
return $this->_customProductCollection;
}
Eu também tenho um método que me permite definir isso "customProductCollection"
dentro dessas duas classes. Depois de definido, o restante dos dados da categoria / navegação em camadas é baseado nessa coleção.
Confira a pergunta inicial + resposta aqui .
Boa sorte ;)