我正在尝试使用以下代码访问上次查看的项目列表:
$attributes = Mage::getSingleton('catalog/config')->getProductAttributes();
$model = Mage::getModel('reports/product_index_viewed');
//
$_collection = $model->getCollection()->addAttributeToSelect($attributes)
->excludeProductIds($model->getExcludeProductIds())
->addUrlRewrite()
->setPageSize($columnCount)
->setCurPage(1);
//
$_collection->addPriceData();
$_collection->addIndexFilter();
$_collection->setAddedAtOrder();
//
Mage::getSingleton('catalog/product_visibility')->addVisibleInSiteFilterToCollection($_collection);
我从Mage_Reports_Block_Product_Abstract中复制了这个,但这是按照创建顺序提供产品。
答案 0 :(得分:0)
我怀疑Prasanth会不会再回到这一点,但我一直试图获得一个没有using a block的简单产品列表,而这些产品可能并不总是可用。最终我发现你需要这个:
$viewedCollection = Mage::getModel('reports/product_index_viewed')
->getCollection()
->addIndexFilter();
秘密在addIndexFilter()
,它使用当前客户,或者 - 如果没有登录 - 则使用当前访客。从这里你可以像任何其他集合一样循环或提取单个数组:
$viewedProductIds = $viewedCollection->getColumnValues('product_id');