Magento Home CMS中显示的新产品数量

时间:2012-02-28 16:00:20

标签: php magento e-commerce

我正在使用

{
    {
        block type="catalog/product_new" 
        name="home.catalog.product.new" alias="product_homepage"
        template="catalog/product/new.phtml"
    }
} 

在cms页面中显示新产品。现在它只显示一种产品。

有没有办法改变它以显示指定数量的产品?例如:16种产品

2 个答案:

答案 0 :(得分:2)

这就是我所拥有的:

{{block type="catalog/product_list_random" num_products="9" category_id="231" template="catalog/product/list_no_toolbar.phtml" columnCount="3"}}

num_products是您在该页面上显示的产品数量的参数。

在app / code / local中创建Mage / Catalog / Block / Product / List 在新的List目录中,创建名为Random.php的以下文件

<?php
class Mage_Catalog_Block_Product_List_Random extends Mage_Catalog_Block_Product_List
{
    protected function _getProductCollection()
    {
        if (is_null($this->_productCollection)) {
            $categoryID = $this->getCategoryId();
            if($categoryID)
            {
              $category = new Mage_Catalog_Model_Category();
              $category->load($categoryID); // this is category id
              $collection = $category->getProductCollection();
            } else
            {
              $collection = Mage::getResourceModel('catalog/product_collection');
            }
            Mage::getModel('catalog/layer')->prepareProductCollection($collection);
            $collection->getSelect()->order('rand()');
            $collection->addStoreFilter();
            $numProducts = $this->getNumProducts() ? $this->getNumProducts() : 3;
            $collection->setPage(1, $numProducts)->load();

            $this->_productCollection = $collection;
        }
        return $this->_productCollection;
    }
}

$ collection-&gt; getSelect() - &gt; order('rand()'); 是随机设置的行,您可以将其注释掉。

答案 1 :(得分:0)

您的代码在我的网站中正常运行。打开/app/code/core/Mage/Catalog/Block/Product/New.php

在第38行附近你应该看到这样的东西:

const DEFAULT_PRODUCTS_COUNT = 5;

有可能将该数字设置为“1”。如果没有,请查看/app/code/local/Mage/Catalog/Block/Product/New.php以确保有人没有创建核心文件的本地覆盖。

如果数字为“1”,那么您应该创建一个模块来更改扩展Mage_Catalog_Block_Product_New的值。