В основному те, що вам потрібно зробити, це зробити extend/overwriteз Mage_Catalog_Block_Product_List (List.php) і переписати getProductCollection()метод:
protected function _getProductCollection()
{
if (is_null($this->_productCollection)) {
// Build collection and set it
$collection = "...";
$this->setProductCollection($collection);
}
return $this->_productCollection;
}
Коли це було зроблено, я перезаписав і Mage_Catalog_Model_Layerклас, і клас Mage_Catalog_Model_Categoryі ввів нову змінну:
protected $_customProductCollection;
Я перезаписав getProductCollection()обидва класи, і я додав це на початку методу:
if(isset($this->_customProductCollection)){
return $this->_customProductCollection;
}
У мене також є метод, який дозволяє мені встановити це "customProductCollection"всередині обох цих класів. Після встановлення, решта даних багатошарової навігації / категорії базується на цій колекції.
Ознайомтеся з початковим запитанням + відповідь тут .
Удачі ;)