2016-03-15 2 views
0

Это предназначено для использования на страницах категорий каталога. Метод getLoadedProductCollection по умолчанию не работает должным образом во всех случаях, поэтому мне нужно было это сделать.addCategoryFilter не работает с ценой сортировки

У меня возникли проблемы с добавлением сортировки цены ниже. Удаляя addCategoryFilter, продукты сортируются по цене. Удалив метод сортировки цен и сохраняя addCategoryFilter, категория показывает несортированные.

Я попробовал следующее, чтобы использовать соединение для фильтрации категорий, и это ничего не делало:
http://magento.stackexchange.com/questions/7094/filter-product-collection-by-multiple-categories

$layer = Mage::getSingleton('catalog/layer'); 
$category = $layer->getCurrentCategory(); 
$currentCatId= $category->getId(); 
$category_model = Mage::getModel('catalog/category')->load($currentCatId); 
$_productCollection = Mage::getModel('catalog/product') 
    ->getCollection() 
    ->addAttributeToSelect("*") 
    ->addAttributeToSort('price', Varien_Data_Collection::SORT_ORDER_DESC) 
    ->addStoreFilter(Mage::app()->getStore()->getId()) 
    ->addAttributeToFilter('status',1) 
    ->setVisibility(
     Mage::getSingleton('catalog/product_visibility')->getVisibleInCatalogIds()) 
    ->addCategoryFilter($category_model) 
    ->load(); 

Любая помощь будет принята с благодарностью. Я не совсем понимаю, почему это работает неправильно.

P.S. Вместо addAttributeToSort я также пробовал метод setOrder безрезультатно.

ответ

0

Вместо addAttributeToSort(), почему бы вам не попробовать setOrder()?

Что-то вроде этого:

$layer = Mage::getSingleton('catalog/layer'); 
$category = $layer->getCurrentCategory(); 
$currentCatId= $category->getId(); 
$category_model = Mage::getModel('catalog/category')->load($currentCatId); 
$_productCollection = Mage::getModel('catalog/product') 
    ->getCollection() 
    ->addAttributeToSelect("*") 
    ->addStoreFilter(Mage::app()->getStore()->getId()) 
    ->setOrder('price', Varien_Data_Collection::SORT_ORDER_DESC) 
    ->addAttributeToFilter('status',1) 
    ->setVisibility(
     Mage::getSingleton('catalog/product_visibility')->getVisibleInCatalogIds()) 
    ->addCategoryFilter($category_model) 
    ->load(); 

Надеется, что это помогает

+0

Ahh, сожалеет об этом. Я забыл добавить, что я тоже пытался это сделать. Редактирование сейчас. –

+0

Спасибо за ответ. :) –

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