2015-03-18 3 views
0

Я имею другой вопрос с тем, что я пытаюсь достичь здесь:Magento - Получить все товары в текущей категории

Magento If product has attribute, get it's ID

В основном то, что должно происходить в том, для текущей категории, если есть продукт с атрибутом с одним из трех значений, то он должен отображаться в верхней части страницы, ниже описания.

Что происходит, но это то, что происходит только через продукты на текущей странице. Я думаю, что проблема заключается в этом, в файле list.phtml:

foreach ($_productCollection as $_product); 

Так ли кто-нибудь знает, как я могу получить и перебрать все продукты в текущей категории, на всех страницах?

ответ

0

Подумал сам.

$category_id = Mage::getModel('catalog/layer')->getCurrentCategory()->getId(); 
$category = Mage::getModel('catalog/category')->load($category_id); 
$products = Mage::getModel('catalog/product') 
    ->getCollection() 
    ->addAttributeToSelect('*') 
    ->addCategoryFilter($category) 
    ->setOrder('price', 'ASC') 
    ->load(); 
1

Как ваш ответ вам нужно вывести продукт, который вы получаете в следующих коллекции

$category_id = Mage::getModel('catalog/layer')->getCurrentCategory()->getId(); 
$category = Mage::getModel('catalog/category')->load($category_id); 
$products = Mage::getModel('catalog/product') 
->getCollection() 
->addAttributeToSelect('*') 
->addCategoryFilter($category) 
->setOrder('price', 'ASC') 
->load(); 

Тогда вам нужно получить сбор продукта второй раз в соответствии с требованием, чтобы получить остальную часть продукции:

$_testproductCollection = Mage::getResourceModel('catalog/product_collection') 
    ->joinField('category_id','catalog/category_product','category_id','product_id=entity_id',null,'left') 
->addAttributeToFilter('category_id', array('nin' => $category_id)) 
->addAttributeToSelect('*'); 
$_testproductCollection->load(); 
+0

Это замечательно для получения остальной части продуктов, спасибо. – Edward144

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