我已经编写了一个我从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;
}
}
答案 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'); //按价格设置订单