无法获取给定类别的产品集合

时间:2015-12-19 11:53:11

标签: magento magento-1.9

我已经编写了一个我从list.phtml文件中调用的方法。 逻辑应该只输出当前查看类别中的产品数量以及最高和最低价格。真的很直白。

由于我理解的原因,它总是返回当前类别不包含任何产品,我无法弄清楚原因,但我认为这是因为我没有正确地获取产品系列。

这是我方法的代码。

    public function writeCatInfo(){
       if(Mage::registry('current_category')){
            $_productCollection=$this->getLoadedProductCollection;
            $catname = Mage::registry('current_category')->getName();
            $priceArray = array();
            foreach ($_productCollection as $_product){
                $priceArray[] = $_product->getSpecialPrice();
            }
            $numItems = count($_productCollection);
            $highPrice = number_format(max($priceArray),2);
            $lowPrice = number_format(min($priceArray),2);
            $infostring =  ucwords($catname)." contains ".$numItems." products with prices ranging from £".$lowPrice." to £".$highPrice;
            echo $infostring;
        }   
    }

2 个答案:

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

答案 1 :(得分:0)

请参阅以下代码,按类别ID

获取产品系列

$ products = Mage :: getModel('catalog / category') - > load($ category_id)

- > getProductCollection()

- > addAttributeToSelect('*')//添加所有属性 - 可选

- > addAttributeToFilter('status',1)// enabled

- > addAttributeToFilter('visibility',4)//目录中的可见性,搜索

- > setOrder('price','ASC'); //按价格设置订单