2014-01-31 2 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.stackexchange :

내 젠토 버전은 1.6.2

+0

이 질문은이 젠토에 대한 구체적인 및 HTTP에 따라서 더 적합하기 때문에 오프 주제 것으로 보인다 시도이다. 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 ($ 제품으로 $ 제품) {....} – Adrian