[*] BO : Connected the first KPIs to real data
This commit is contained in:
@@ -39,18 +39,6 @@
|
||||
<span class="title">Net Profit per visitor <br/><small>30 days</small></span>
|
||||
<span class="value">$2.12</span>
|
||||
</div>
|
||||
|
||||
<div id="box-income" class="col-lg-3 box-stats color3">
|
||||
<i class="icon-money"></i>
|
||||
<span class="title">Average order value <br/><small>30 days</small></span>
|
||||
<span class="value">$78.36</span>
|
||||
</div>
|
||||
|
||||
<div id="box-messages" class="col-lg-3 box-stats color2">
|
||||
<i class="icon-shopping-cart"></i>
|
||||
<span class="title">Carts abandoned <br/><small>Today</small></span>
|
||||
<span class="value">14</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
{*
|
||||
* 2007-2013 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2013 PrestaShop SA
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
<div id="{$id|escape}" class="col-lg-3 box-stats {$color|escape}" >
|
||||
<i class="{$icon|escape}"></i>
|
||||
<span class="title">{$title|escape}<br /><small>{$subtitle|escape}</small></span>
|
||||
<span class="value">{$value|escape}</span>
|
||||
</div>
|
||||
{if $source != ''}
|
||||
<script>
|
||||
$.ajax({
|
||||
url: '{$source|addslashes}' + '&rand=' + new Date().getTime(),
|
||||
dataType: 'json',
|
||||
type: 'GET',
|
||||
cache: false,
|
||||
headers: { 'cache-control': 'no-cache' },
|
||||
success: function(jsonData){
|
||||
if (!jsonData.has_errors)
|
||||
$('#{$id|addslashes} .value').html(jsonData.value);
|
||||
}
|
||||
});
|
||||
</script>
|
||||
{/if}
|
||||
@@ -0,0 +1,31 @@
|
||||
{*
|
||||
* 2007-2013 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2013 PrestaShop SA
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
<div class="panel">
|
||||
<div class="row">
|
||||
{foreach $kpis as $kpi}
|
||||
{$kpi}
|
||||
{/foreach}
|
||||
</div>
|
||||
</div>
|
||||
Vendored
+4
@@ -362,6 +362,10 @@
|
||||
'HelperFormCore' => 'classes/helper/HelperForm.php',
|
||||
'HelperHelpAccess' => '',
|
||||
'HelperHelpAccessCore' => 'classes/helper/HelperHelpAccess.php',
|
||||
'HelperKpi' => '',
|
||||
'HelperKpiCore' => 'classes/helper/HelperKpi.php',
|
||||
'HelperKpiRow' => '',
|
||||
'HelperKpiRowCore' => 'classes/helper/HelperKpiRow.php',
|
||||
'HelperList' => '',
|
||||
'HelperListCore' => 'classes/helper/HelperList.php',
|
||||
'HelperOptions' => '',
|
||||
|
||||
@@ -1522,6 +1522,7 @@ class AdminControllerCore extends Controller
|
||||
elseif (!$this->ajax)
|
||||
{
|
||||
$this->content .= $this->renderModulesList();
|
||||
$this->content .= $this->renderKpis();
|
||||
$this->content .= $this->renderList();
|
||||
$this->content .= $this->renderOptions();
|
||||
|
||||
@@ -1729,6 +1730,10 @@ class AdminControllerCore extends Controller
|
||||
return $form;
|
||||
}
|
||||
}
|
||||
|
||||
public function renderKpis()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Function used to render the options for this controller
|
||||
@@ -1810,7 +1815,6 @@ class AdminControllerCore extends Controller
|
||||
|
||||
public function setMedia()
|
||||
{
|
||||
|
||||
$admin_webpath = str_ireplace(_PS_ROOT_DIR_, '', _PS_ADMIN_DIR_);
|
||||
$admin_webpath = preg_replace('/^'.preg_quote(DIRECTORY_SEPARATOR, '/').'/', '', $admin_webpath);
|
||||
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
<?php
|
||||
/*
|
||||
* 2007-2013 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Open Software License (OSL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/osl-3.0.php
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2013 PrestaShop SA
|
||||
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*/
|
||||
|
||||
class HelperKpiCore extends Helper
|
||||
{
|
||||
public $base_folder = 'helpers/kpi/';
|
||||
public $base_tpl = 'kpi.tpl';
|
||||
|
||||
public $id;
|
||||
public $icon;
|
||||
public $color;
|
||||
public $title;
|
||||
public $subtitle;
|
||||
public $value;
|
||||
public $source;
|
||||
|
||||
public function generate()
|
||||
{
|
||||
$this->tpl = $this->createTemplate($this->base_tpl);
|
||||
|
||||
$this->tpl->assign(array(
|
||||
'id' => $this->id,
|
||||
'icon' => $this->icon,
|
||||
'color' => $this->color,
|
||||
'title' => $this->title,
|
||||
'subtitle' => $this->subtitle,
|
||||
'value' => $this->value,
|
||||
'source' => $this->source
|
||||
));
|
||||
return $this->tpl->fetch();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
/*
|
||||
* 2007-2013 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Open Software License (OSL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/osl-3.0.php
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2013 PrestaShop SA
|
||||
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*/
|
||||
|
||||
class HelperKpiRowCore extends Helper
|
||||
{
|
||||
public $base_folder = 'helpers/kpi/';
|
||||
public $base_tpl = 'row.tpl';
|
||||
|
||||
public $kpis = array();
|
||||
|
||||
public function generate()
|
||||
{
|
||||
$this->tpl = $this->createTemplate($this->base_tpl);
|
||||
|
||||
$this->tpl->assign('kpis', $this->kpis);
|
||||
return $this->tpl->fetch();
|
||||
}
|
||||
}
|
||||
@@ -1238,6 +1238,40 @@ class AdminOrdersControllerCore extends AdminController
|
||||
|
||||
parent::postProcess();
|
||||
}
|
||||
|
||||
public function renderKpis()
|
||||
{
|
||||
$time = time();
|
||||
$kpis = array();
|
||||
|
||||
$helper = new HelperKpi();
|
||||
$helper->id = 'box-carts';
|
||||
$helper->icon = 'icon-shopping-cart';
|
||||
$helper->color = 'color2';
|
||||
$helper->title = $this->l('Abandoned Carts');
|
||||
$helper->subtitle = $this->l('Today');
|
||||
if (Configuration::get('PS_KPI_ABANDONED_CARTS') !== false)
|
||||
$helper->value = Configuration::get('PS_KPI_ABANDONED_CARTS');
|
||||
if (Configuration::get('PS_KPI_ABANDONED_CARTS_EXPIRE') < $time)
|
||||
$helper->source = $this->context->link->getAdminLink('AdminStats').'&ajax=1&action=getKpi&kpi=abandoned_cart';
|
||||
$kpis[] = $helper->generate();
|
||||
|
||||
$helper = new HelperKpi();
|
||||
$helper->id = 'box-average-order';
|
||||
$helper->icon = 'icon-money';
|
||||
$helper->color = 'color3';
|
||||
$helper->title = $this->l('Average Order Value');
|
||||
$helper->subtitle = $this->l('30 days');
|
||||
if (Configuration::get('PS_KPI_AVG_ORDER_VALUE') !== false)
|
||||
$helper->value = Configuration::get('PS_KPI_AVERAGE_ORDER_VALUE');
|
||||
if (Configuration::get('PS_KPI_AVG_ORDER_VALUE_EXPIRE') < $time)
|
||||
$helper->source = $this->context->link->getAdminLink('AdminStats').'&ajax=1&action=getKpi&kpi=average_order_value';
|
||||
$kpis[] = $helper->generate();
|
||||
|
||||
$helper = new HelperKpiRow();
|
||||
$helper->kpis = $kpis;
|
||||
return $helper->generate();
|
||||
}
|
||||
|
||||
public function renderView()
|
||||
{
|
||||
|
||||
@@ -26,4 +26,38 @@
|
||||
|
||||
class AdminStatsControllerCore extends AdminStatsTabController
|
||||
{
|
||||
public function displayAjaxGetKpi()
|
||||
{
|
||||
$currency = new Currency(Configuration::get('PS_CURRENCY_DEFAULT'));
|
||||
switch (Tools::getValue('kpi'))
|
||||
{
|
||||
case 'abandoned_cart':
|
||||
$value = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('
|
||||
SELECT COUNT(*)
|
||||
FROM `'._DB_PREFIX_.'cart`
|
||||
WHERE `date_add` BETWEEN "'.pSQL(date('Y-m-d')).' 00:00:00" AND "'.pSQL(date('Y-m-d')).' 23:59:59"
|
||||
AND id_cart NOT IN (SELECT id_cart FROM `'._DB_PREFIX_.'orders`)
|
||||
'.Shop::addSqlRestriction(Shop::SHARE_ORDER));
|
||||
Configuration::updateValue('PS_KPI_ABANDONED_CARTS', $value);
|
||||
Configuration::updateValue('PS_KPI_ABANDONED_CARTS_EXPIRE', strtotime('+10 min'));
|
||||
break;
|
||||
case 'average_order_value':
|
||||
$row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow('
|
||||
SELECT
|
||||
COUNT(`id_order`) as orders,
|
||||
SUM(`total_paid_tax_excl` / `conversion_rate`) as total_paid_tax_excl
|
||||
FROM `'._DB_PREFIX_.'orders`
|
||||
WHERE `invoice_date` BETWEEN "'.pSQL(date('Y-m-d', strtotime('-31 day'))).' 00:00:00" AND "'.pSQL(date('Y-m-d', strtotime('-1 day'))).' 23:59:59"
|
||||
'.Shop::addSqlRestriction(Shop::SHARE_ORDER));
|
||||
$value = Tools::displayPrice($row['orders'] ? $row['total_paid_tax_excl'] / $row['orders'] : 0, $currency);
|
||||
Configuration::updateValue('PS_KPI_AVG_ORDER_VALUE', $value);
|
||||
Configuration::updateValue('PS_KPI_AVG_ORDER_VALUE_EXPIRE', strtotime(date('Y-m-d 00:00:00', strtotime('+1 day'))));
|
||||
break;
|
||||
default:
|
||||
$value = false;
|
||||
}
|
||||
if ($value !== false)
|
||||
die(Tools::jsonEncode(array('value' => $value)));
|
||||
die(Tools::jsonEncode(array('has_errors' => true)));
|
||||
}
|
||||
}
|
||||
@@ -36,6 +36,9 @@ abstract class AdminStatsTabControllerCore extends AdminPreferencesControllerCor
|
||||
|
||||
public function initContent()
|
||||
{
|
||||
if ($this->ajax)
|
||||
return;
|
||||
|
||||
$this->initTabModuleList();
|
||||
$this->addToolBarModulesListButton();
|
||||
$this->toolbar_title = $this->l('Stats', 'AdminStatsTab');
|
||||
|
||||
Reference in New Issue
Block a user