0

可能重复:
如何在 magento 电子商务中从特定类别中获取产品

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

<?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/>";
}
4

1 回答 1

0

您的代码中有几个错误,让我强调一下:

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

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

  3. 你实际上没有在这里问过问题。你说你要制作网格,并发布你的代码,但问题出在哪里?

  4. 如果你想创建产品网格,请查看它是如何在 Magento 核心目录模块中完成的:块Mage_Catalog_Block_Product_List和模板 catalog/product/list.phtml

于 2012-09-13T19:26:25.973 回答