Magento - 特定类别的产品列表

时间:2012-09-13 18:54:15

标签: magento grid block

  

可能重复:
  How to get products from a particular category in magento ecommerce

我想构建一个模板(.phtml文件),显示Magento 1.7的产品网格(名称,描述价格,带链接的小图片),类似于默认的“新产品”块。这是我到目前为止所拥有的......

<?php

 $category=Mage::getModel('catalog/category')->load(4);  
 $category=$category->getProductCollection();
 foreach($category->getAllIds() as $id)
{
    $product=Mage::getModel('catalog/product')->load($id);
    echo $product->getName()."<br/>";
    echo $product->getUrl()."<br/>";
    echo $product->getImageUrl()."<br/>";
    echo $product->getImageDescription()."<br/><br/>";
}

1 个答案:

答案 0 :(得分:0)

你的代码中有一些错误,让我强调一下:

  1. $category=$category->getProductCollection(); - 这是一种非常糟糕的做法。您将产品集合分配给以前属于该类别的变量。在这样的代码中很容易迷失方向。请记住为变量使用有意义的命名约定。这应该是$productCollection=$category->getProductCollection();

  2. 不是循环你已经拥有的集合,而是获取id数组,并循环遍历它们,在每个循环中加载对象。这将导致内存泄漏和代码执行的大量时间。 foreach语句应如下所示:foreach ($productCollection as $product)

  3. 您实际上并未在此处提出问题。您已经说过要制作网格并发布代码,但问题出在哪里?

  4. 如果您想创建产品网格,请查看在Magento核心目录模块中的工作方式:阻止Mage_Catalog_Block_Product_List和模板目录/ product / list.phtml