Я пытаюсь найти продукты, которые находятся в двух категориях. Я нашел пример для получения продуктов категории 1 или категории2. http://www.alphadigital.cl/blog/lang/en-us/magento-filter-by-multiple-categories.html Мне нужны продукты, которые относятся к категории1 И категории2.Фильтр коллекции товаров по двум категориям в Magento
Пример в блоге:
class ModuleName_Catalog_Model_Resource_Eav_Mysql4_Product_Collection
extends Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection{
public function addCategoriesFilter($categories){
$alias = 'cat_index';
$categoryCondition = $this->getConnection()->quoteInto(
$alias.'.product_id=e.entity_id AND '.$alias.'.store_id=? AND ',
$this->getStoreId()
);
$categoryCondition.= $alias.'.category_id IN ('.$categories.')';
$this->getSelect()->joinInner(
array($alias => $this->getTable('catalog/category_product_index')),
$categoryCondition,
array('position'=>'position')
);
$this->_categoryIndexJoined = true;
$this->_joinFields['position'] = array('table'=>$alias, 'field'=>'position');
return $this;
}
}
Когда я использую этот фильтр в одиночку это выполнить или запрос на несколько категорий. Когда я совмещаю этот фильтр с prepareProductCollection of Mage_Catalog_Model_Layer , он каким-то образом удаляет эффект фильтра.
Как я могу сменить фильтр на AND и объединить его с prepareProductCollection?
Благодаря
Благодарности
Отличное решение и объяснение, спасибо. – gregdev