我一直在1.9.2.1的默认RWD上使用自己的主题。

我想限制相关产品,只能显示8个产品,而不是我目前为单一产品的说明139。

此外,我想随意在所有相关产品中随机8挑选。

我知道我可以简单地在循环中添加一个休息,所以当它已经停止了8次它会停止,但这相信可以浪费资源。

我收集了下面的代码负责创建相关产品的集合。所以,我如何以正确的方式修改这一点来限制8个产品,随机选择?

    $product = Mage::registry('product');
        /* @var $product Mage_Catalog_Model_Product */

        $this->_itemCollection = $product->getRelatedProductCollection()
            ->addAttributeToSelect('required_options')
            ->setPositionOrder()
            ->addStoreFilter()
        ;

        if (Mage::helper('catalog')->isModuleEnabled('Mage_Checkout')) {
            Mage::getResourceSingleton('checkout/cart')->addExcludeProductFilter($this->_itemCollection,
                Mage::getSingleton('checkout/session')->getQuoteId()
            );
            $this->_addProductAttributesAndPrices($this->_itemCollection);
        }
//        Mage::getSingleton('catalog/product_status')->addSaleableFilterToCollection($this->_itemCollection);
        Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($this->_itemCollection);

        $this->_itemCollection->load();

        foreach ($this->_itemCollection as $product) {
            $product->setDoNotUseCategoryId(true);
        }

        return $this;
.

有帮助吗?

解决方案

在后面之似乎是一个很容易解决的问题:通过在intemcollection负载之上的_preparedata()函数中添加下面的两行。

然而,虽然我仍然是Magento世界的新手,但我知道你应该永远不应该编辑核心文件,而是应该扩展要更改的模块。但是,遗憾的是,如果有人可以纳入我的答案,那么这就是这样,所以它可以作为正确的方式是可靠的,然后我会很感激。

$this->_itemCollection->getSelect()->order('rand()');
$this->_itemCollection->setPage(1, 8);
.

许可以下: CC-BY-SA归因
scroll top