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

标签 php 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);

集合中的每个项目都是一个 catalog/product 实例,并设置了 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,值是观看次数。

关于php - 根据 product_id 获取 magento 产品的查看次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9172755/

相关文章:

php - 连接到SQL的PHP​​脚本错误

php - 根据 URL 字符串隐藏内容 (PHP)

php - Symfony 3.0.1 CSRF token 存在但无效

php - ftp_login 期望参数 1 是资源

mysql - Magento 重新索引目录搜索索引锁定等待超时超时

magento - 更新到 1.7 后无法在 Magento 中编辑类别

apache - Magento2 安装后的 ERR_TOO_MANY_REDIRECTS 问题,可能是 Ubuntu 虚拟主机问题

mysql - 移动到其他文件夹后 Magento 存储损坏

php - 敏感接收器作为 php 漏洞?

javascript - 将 JS 变量传递给新的 PHP 文件