0

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

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

4

1 回答 1

0

我怀疑 Prasanth 是否会回到这个问题上,但我也一直在尝试在不使用可能并不总是可用的块的情况下获取简单的产品列表。最终我发现你需要这个:

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

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

$viewedProductIds = $viewedCollection->getColumnValues('product_id');
于 2012-12-08T19:35:51.573 回答