Magento的 - 所有产品,获取产品集合(Magento - get product colle

2019-08-17 04:54发布

我需要的所有产品定制产品集合。 目前有包含店铺的所有产品(因为有8000级的产品,我们不能在一个额外的类别添加的话)没有类别。

我需要的是一个特定的CMS页面显示所有产品的产品集合上。 到目前为止,我有与块CMS页面:

{{block type="catalog/product_list" template="catalog/product/list.phtml"}}

我已经创建了一个模块来重写“Mage_Catalog_Block_Product_List”

我相信我需要编辑功能将是'保护功能_getProductCollection()

正如我们可以在块调用那里有没有看到类别中指定。 我需要的是在overidden _getProductCollection功能是所有产品在店内返回。

有没有这种可以实现什么办法?

Answer 1:

有几种方法,你可以从商店得到的产品清单。 试试这个方法:

<?php
$_productCollection = Mage::getModel('catalog/product')
                        ->getCollection()
                        ->addAttributeToSort('created_at', 'DESC')
                        ->addAttributeToSelect('*')
                        ->load();
foreach ($_productCollection as $_product){
   echo $_product->getId().'</br>';
   echo $_product->getName().'</br>';
   echo $_product->getProductUrl().'</br>';
   echo $_product->getPrice().'</br>';
}
?>


Answer 2:

不要覆盖列表块,这将对真正的产品列表页面的效果。

最简单的方法来将文件复制到本地命名空间并重新命名为:

从:

app/code/core/Mage/Catalog/Block/Product/List.php

至:

app/code/local/Mage/Catalog/Block/Product/Fulllist.php

然后,您可以使用新的块,而无需进行完整的模块,这将意味着你的列表框将工作相同,您的商店不破坏任何东西。

您可以根据需要,然后安全地修改:

/**
 * Retrieve loaded category collection
 *
 * @return Mage_Eav_Model_Entity_Collection_Abstract
 */
protected function _getProductCollection()
{
    $collection = Mage::getModel('catalog/product')->getCollection();

    // this now has all products in a collection, you can add filters as needed.

    //$collection
    //    ->addAttributeToSelect('*')
    //    ->addAttributeToFilter('attribute_name', array('eq' => 'value'))
    //    ->addAttributeToFilter('another_name', array('in' => array(1,3,4)))
    //;

    // Optionally filter as above..

    return $collection;
}

然后,您可以使用新的块,像这样:

{{block type="catalog/product_fulllist" template="catalog/product/list.phtml"}}


文章来源: Magento - get product collection of all products