示例#1
0
 /**
  * Returns a datatable of Items SKU/name or categories and their metrics
  * If $abandonedCarts set to 1, will return items abandoned in carts. If set to 0, will return items ordered
  */
 protected function getItems($recordName, $idSite, $period, $date, $abandonedCarts, $segment)
 {
     Piwik::checkUserHasViewAccess($idSite);
     $recordNameFinal = $recordName;
     if ($abandonedCarts) {
         $recordNameFinal = Archiver::getItemRecordNameAbandonedCart($recordName);
     }
     $archive = Archive::build($idSite, $period, $date, $segment);
     $dataTable = $archive->getDataTable($recordNameFinal);
     $dataTable->filter('Sort', array(Metrics::INDEX_ECOMMERCE_ITEM_REVENUE));
     $this->enrichItemsTableWithViewMetrics($dataTable, $recordName, $idSite, $period, $date, $segment);
     // First rename the avg_price_viewed column
     $renameColumn = array(self::AVG_PRICE_VIEWED => 'avg_price');
     $dataTable->queueFilter('ReplaceColumnNames', array($renameColumn));
     $dataTable->queueFilter('ReplaceColumnNames');
     $dataTable->queueFilter('ReplaceSummaryRowLabel');
     $ordersColumn = 'orders';
     if ($abandonedCarts) {
         $ordersColumn = 'abandoned_carts';
         $dataTable->renameColumn(Metrics::INDEX_ECOMMERCE_ORDERS, $ordersColumn);
     }
     // Average price = sum product revenue / quantity
     $dataTable->queueFilter('ColumnCallbackAddColumnQuotient', array('avg_price', 'price', $ordersColumn, GoalManager::REVENUE_PRECISION));
     // Average quantity = sum product quantity / abandoned carts
     $dataTable->queueFilter('ColumnCallbackAddColumnQuotient', array('avg_quantity', 'quantity', $ordersColumn, $precision = 1));
     $dataTable->queueFilter('ColumnDelete', array('price'));
     // Product conversion rate = orders / visits
     $dataTable->queueFilter('ColumnCallbackAddColumnPercentage', array('conversion_rate', $ordersColumn, 'nb_visits', GoalManager::REVENUE_PRECISION));
     return $dataTable;
 }
示例#2
0
 /**
  * Returns a datatable of Items SKU/name or categories and their metrics
  * If $abandonedCarts set to 1, will return items abandoned in carts. If set to 0, will return items ordered
  */
 protected function getItems($recordName, $idSite, $period, $date, $abandonedCarts, $segment)
 {
     Piwik::checkUserHasViewAccess($idSite);
     $recordNameFinal = $recordName;
     if ($abandonedCarts) {
         $recordNameFinal = Archiver::getItemRecordNameAbandonedCart($recordName);
     }
     $archive = Archive::build($idSite, $period, $date, $segment);
     $dataTable = $archive->getDataTable($recordNameFinal);
     $this->enrichItemsTableWithViewMetrics($dataTable, $recordName, $idSite, $period, $date, $segment);
     // First rename the avg_price_viewed column
     $renameColumn = array(self::AVG_PRICE_VIEWED => 'avg_price');
     $dataTable->filter('ReplaceColumnNames', array($renameColumn));
     $dataTable->queueFilter('ReplaceColumnNames');
     $dataTable->queueFilter('ReplaceSummaryRowLabel');
     if ($abandonedCarts) {
         $ordersColumn = 'abandoned_carts';
         $dataTable->renameColumn(Metrics::INDEX_ECOMMERCE_ORDERS, $ordersColumn);
     }
     $dataTable->queueFilter('ColumnDelete', array('price'));
     return $dataTable;
 }