如何获得Magento上次浏览过的产品列表?

时间:2012-07-12 11:30:22

标签: magento

我正在尝试使用以下代码访问上次查看的项目列表:

 $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中复制了这个,但这是按照创建顺序提供产品。

1 个答案:

答案 0 :(得分:0)

我怀疑Prasanth会不会再回到这一点,但我一直试图获得一个没有using a block的简单产品列表,而这些产品可能并不总是可用。最终我发现你需要这个:

$viewedCollection = Mage::getModel('reports/product_index_viewed')
                    ->getCollection()
                    ->addIndexFilter();

秘密在addIndexFilter(),它使用当前客户,或者 - 如果没有登录 - 则使用当前访客。从这里你可以像任何其他集合一样循环或提取单个数组:

$viewedProductIds = $viewedCollection->getColumnValues('product_id');