php – 根据product_id获取magento产品的查看次数

我想在Magento的类别列表页面上显示查看次数.这些数据看起来像以前可以通过reports / product_collection访问,但我找不到正确访问它的方法.

我基本上想提供一个产品ID并将所述产品的查看次数归还给我.

您可以通过Mage_Reports_Model_Resource_Product_Collection模型获取视图计数.
// set $to and $from to an empty string to disable time range filtering
$from = '2012-01-01';
$to = now();
$productIds = array(9,35); // your product ids,(works as an int,too) 

$reports = Mage::getResourceModel('reports/product_collection')
    ->addViewsCount($from,$to)
    ->addFieldToFilter('entity_id',$productIds);

集合中的每个项目都是具有views属性集的目录/产品实例,因此您可以使用$product-> getViews()来获取计数.

如果您不想加载整个产品模型并且只需要查看计数,则可以这样:

$resource = Mage::getResourceModel('reports/event');
$select = $resource->getReadConnection()->select()
    ->from(array('ev' => $resource->getMainTable()),array(
        'product_id' => 'object_id','view_count' => new Zend_Db_Expr('COUNT(*)')
    ))
    // join for the event type id of catalog_product_view
    ->join(
        array('et' => $resource->getTable('reports/event_type')),"ev.event_type_id=et.event_type_id AND et.event_name='catalog_product_view'",''
    )
    ->group('ev.object_id')

    // add required filters
    ->where('ev.object_id IN(?)',productIds)
    ->where('ev.logged_at >= ?',$from)
    ->where('ev.logged_at <= ?',$to);

$result = $resource->getReadConnection()->fetchPairs($select);

这为您提供了一个数组,键是产品ID,值是视图计数.

相关文章

Hessian开源的远程通讯,采用二进制 RPC的协议,基于 HTTP 传输。可以实现PHP调用Java,Python,C#等多语...
初识Mongodb的一些总结,在Mac Os X下真实搭建mongodb环境,以及分享个Mongodb管理工具,学习期间一些总结...
边看边操作,这样才能记得牢,实践是检验真理的唯一标准.光看不练假把式,光练不看傻把式,边看边练真把式....
在php中,结果输出一共有两种方式:echo和print,下面将对两种方式做一个比较。 echo与print的区别: (...
在安装好wampServer后,一直没有使用phpMyAdmin,今天用了一下,phpMyAdmin显示错误:The mbstring exte...
变量是用于存储数据的容器,与代数相似,可以给变量赋予某个确定的值(例如:$x=3)或者是赋予其它的变...