Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/Live/Model.php')
-rw-r--r--plugins/Live/Model.php48
1 files changed, 46 insertions, 2 deletions
diff --git a/plugins/Live/Model.php b/plugins/Live/Model.php
index 60d0a2d0cc..7d9101f599 100644
--- a/plugins/Live/Model.php
+++ b/plugins/Live/Model.php
@@ -117,8 +117,8 @@ class Model
{
$sql = "SELECT
case idgoal when " . GoalManager::IDGOAL_CART
- . " then '" . Piwik::LABEL_ID_GOAL_IS_ECOMMERCE_CART
- . "' else '" . Piwik::LABEL_ID_GOAL_IS_ECOMMERCE_ORDER . "' end as type,
+ . " then '" . Piwik::LABEL_ID_GOAL_IS_ECOMMERCE_CART
+ . "' else '" . Piwik::LABEL_ID_GOAL_IS_ECOMMERCE_ORDER . "' end as type,
idorder as orderId,
" . LogAggregator::getSqlRevenue('revenue') . " as revenue,
" . LogAggregator::getSqlRevenue('revenue_subtotal') . " as revenueSubTotal,
@@ -137,6 +137,29 @@ class Model
return $ecommerceDetails;
}
+ /**
+ * @param $idSite
+ * @param $idVisit
+ * @return array
+ * @throws \Exception
+ */
+ public function queryEcommerceConversionsVisitorLifeTimeMetricsForVisitor($idSite, $idVisitor)
+ {
+ $sql = $this->getSqlEcommerceConversionsLifeTimeMetricsForIdGoal(GoalManager::IDGOAL_ORDER);
+ $ecommerceOrders = Db::fetchRow($sql, array($idSite, @Common::hex2bin($idVisitor)));
+
+ $sql = $this->getSqlEcommerceConversionsLifeTimeMetricsForIdGoal(GoalManager::IDGOAL_CART);
+ $abandonedCarts = Db::fetchRow($sql, array($idSite, @Common::hex2bin($idVisitor)));
+
+ return array(
+ 'totalEcommerceRevenue' => $ecommerceOrders['lifeTimeRevenue'],
+ 'totalEcommerceConversions' => $ecommerceOrders['lifeTimeConversions'],
+ 'totalEcommerceItems' => $ecommerceOrders['lifeTimeEcommerceItems'],
+ 'totalAbandonedCartsRevenue' => $abandonedCarts['lifeTimeRevenue'],
+ 'totalAbandonedCarts' => $abandonedCarts['lifeTimeConversions'],
+ 'totalAbandonedCartsItems' => $abandonedCarts['lifeTimeEcommerceItems']
+ );
+ }
/**
* @param $idVisit
@@ -509,4 +532,25 @@ class Model
}
return array($whereBind, $where);
}
+
+ /**
+ * @param $ecommerceIdGoal
+ * @return string
+ */
+ private function getSqlEcommerceConversionsLifeTimeMetricsForIdGoal($ecommerceIdGoal)
+ {
+ $sql = "SELECT
+ COALESCE(SUM(" . LogAggregator::getSqlRevenue('revenue') . "), 0) as lifeTimeRevenue,
+ COUNT(*) as lifeTimeConversions,
+ COALESCE(SUM(" . LogAggregator::getSqlRevenue('items') . "), 0) as lifeTimeEcommerceItems
+ FROM " . Common::prefixTable('log_visit') . " AS log_visit
+ LEFT JOIN " . Common::prefixTable('log_conversion') . " AS log_conversion
+ ON log_visit.idvisit = log_conversion.idvisit
+ WHERE
+ log_visit.idsite = ?
+ AND log_visit.idvisitor = ?
+ AND log_conversion.idgoal = " . $ecommerceIdGoal . "
+ ";
+ return $sql;
+ }
}