addCategoryFilter不适用于价格排序

时间:2016-03-15 08:31:31

标签: magento categories

这适用于目录类别页面。默认的getLoadedProductCollection方法在所有情况下都无法正常工作,所以我需要这样做。

我在添加下面的价格排序时遇到了麻烦。通过删除addCategoryFilter,产品按价格正确排序。通过删除价格排序方法并保留addCategoryFilter,该类别显示未排序。

我尝试了以下操作来使用join来过滤类别,但这没有做任何事情:
http://magento.stackexchange.com/questions/7094/filter-product-collection-by-multiple - 类别

$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。我还尝试使用setOrder方法,而不是addAttributeToSort。

1 个答案:

答案 0 :(得分: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();

希望有所帮助