如何在目录搜索集合上添加自定义产品?

时间:2014-07-08 17:23:08

标签: magento search collections catalog

目前我正在尝试在CatalogSearch产品系列上添加自定义产品。目前我正在Mage_CatalogSearch_Model_Layer工作。我知道它的核心部分,但在正确使用我的代码后,我使用覆盖CatalogSearch_Model进行管理。

目前我正在研究这种方法

 public function prepareProductCollection($collection)
    {
        $collection
            ->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes())
            ->addSearchFilter(Mage::helper('catalogsearch')->getQuery()->getQueryText())
            ->setStore(Mage::app()->getStore())
            ->addMinimalPrice()
            ->addFinalPrice()
            ->addTaxPercents()
            ->addStoreFilter()
            ->addUrlRewrite();

        Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($collection);
        Mage::getSingleton('catalog/product_visibility')->addVisibleInSearchFilterToCollection($collection);

// my custom code start

$collection2 = Mage::getModel('catalog/product')->getCollection()->addFieldToFilter('entity_id', array(1,2));

$collectiondata=$collection2->getData();

foreach($collectiondata as $customdata)
{
$collection->addItem($customdata);
}

        return $this;
    }

此代码将我的自定义产品添加到集合中,但在搜索结果中找不到产品时会发出问题。如果在搜索产品中找到,则会添加我的自定义产品。

我想知道我在哪里弄错了?或任何缺失的步骤。任何帮助将不胜感激

谢谢

1 个答案:

答案 0 :(得分:0)

这里的问题是:

$collection2 = Mage::getModel('catalog/product')->getCollection()->addFieldToFilter('entity_id', array(1,2));
foreach($collection2 as $customdata)
{
$collection->addItem($customdata);
}

$ collection2->的getData();为$ customdata提供不合适的对象。

$ customdata提供适当的object of Mage_Catalog_Model_Product