目前我正在尝试在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;
}
此代码将我的自定义产品添加到集合中,但在搜索结果中找不到产品时会发出问题。如果在搜索产品中找到,则会添加我的自定义产品。
我想知道我在哪里弄错了?或任何缺失的步骤。任何帮助将不胜感激
谢谢
答案 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