2014-01-31 3 views
1

У меня есть проблема с фильтрационными категориями в Magento. Метод фильтра, который я использовал, отображает только одну категорию, но мне нужно отобразить еще несколько. Вот мой код:Фильтрация продуктов по нескольким категориям в Magento

$products = Mage::getModel('catalog/product')->getCollection(); 
$products->joinField(
    'qty', 
    'cataloginventory/stock_item', 
    'qty', 
    'product_id=entity_id', 
    '{{table}}.stock_id=1', 
    'left' 
); 
$products->addAttributeToFilter('qty', array('neq' => 0)); 
$products->addAttributeToFilter('type_id','simple'); 
$products->addAttributeToFilter('status', 1); 
$products->addAttributeToFilter('visibility', 4); 
$products->addAttributeToSelect('sku'); 
$products->addAttributeToSelect('name'); 
$products->addAttributeToSelect('description'); 
$products->addAttributeToSelect('short_description'); 
$products->addAttributeToSelect('url'); 
$products->addAttributeToSelect('image'); 
$products->addAttributeToFilter('price', array('gt' => 250)); 
$products->addAttributeToSelect('special_price'); 
$products->addAttributeToSelect('manufacturer'); 

$products->addCategoryFilter(Mage::getModel('catalog/category')->load(array('32,5')),true); 

Код отображение только изделия из id=32. Продукты категории id=5 не отображаются.

Спасибо за любую помощь.

Моя Magento версия 1.6.2

+0

Этот вопрос, как представляется, не по теме, потому что это конкретно о Magento и, таким образом, больше подходит по адресу: //magento.stackexchange. com – Rikesh

+0

К сожалению, я передам этот вопрос в magento раздел – Adrian

ответ

3

Попробуйте

$products = Mage::getModel('catalog/product')->getCollection(); 
$products->joinField(
    'qty', 
    'cataloginventory/stock_item', 
    'qty', 
    'product_id=entity_id', 
    '{{table}}.stock_id=1', 
    'left' 
); 
$products->addAttributeToFilter('qty', array('neq' => 0)); 
$products->addAttributeToFilter('type_id','simple'); 
$products->addAttributeToFilter('status', 1); 
$products->addAttributeToFilter('visibility', 4); 
$products->addAttributeToSelect('sku'); 
$products->addAttributeToSelect('name'); 
$products->addAttributeToSelect('description'); 
$products->addAttributeToSelect('short_description'); 
$products->addAttributeToSelect('url'); 
$products->addAttributeToSelect('image'); 
$products->addAttributeToFilter('price', array('gt' => 250)); 
$products->addAttributeToSelect('special_price'); 
$products->addAttributeToSelect('manufacturer'); 
$products->joinField('category_id', 
    'catalog/category_product', 
    'category_id', 
    'product_id=entity_id', 
    null, 
    'left' 
); 
$products->addAttributeToFilter('category_id', array('in' => array(32,5))); 
foreach ($products as $product) { 

} 
+0

Этот продукт только от id = 5 – Adrian

+0

Ответа на этот вопрос. –

+0

К сожалению, не работает - у меня есть пустая страница. Причина - foreach после кода foreach ($ products as $ product) {....} – Adrian

Смежные вопросы