2

タイトルが示すように、Magento で特定の製品のビュー / クリック / インプレッション数を取得するにはどうすればよいですか。どんな助けでも大歓迎です。

4

2 に答える 2

6

この簡単な例では、指定した日付とその閲覧回数の間に閲覧された製品のリストが表示されます。

$fromDate = '2010-01-01';
$toDate   = now();

$viewedProducts = Mage::getResourceModel('reports/product_collection')
                ->addViewsCount($fromDate, $toDate);

foreach($viewedProducts as $product) {
    echo "ID: " . $product->getData('entity_id') . " - View Count: " . $product->getData('views') . "<br/>";
}
于 2012-06-08T08:27:11.810 に答える
0

1つの製品だけのビューを取得するのに役立ちました。

$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(
          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')
     ->where('ev.object_id IN(?)', [$entity_id])
     ->where('ev.logged_at >= ?', $from)
     ->where('ev.logged_at <= ?', $to);
$views = $resource->getReadConnection()->fetchPairs($select);
$views = !empty($views[$entity_id]) ? $views[$entity_id] : 0;
于 2017-08-01T19:52:52.550 に答える