// Added KPIs in products and categories

This commit is contained in:
Damien Metzger
2013-09-18 13:49:29 +02:00
parent c48f4f5e1b
commit 8a4b24f45e
3 changed files with 113 additions and 0 deletions
@@ -96,6 +96,51 @@ class AdminStatsControllerCore extends AdminStatsTabController
Configuration::updateValue('PS_KPI_ABANDONED_CARTS_EXPIRE', strtotime('+10 min'));
break;
case 'products_stock':
$row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow('
SELECT SUM(IF(IFNULL(stock.quantity, 0) > 0, 1, 0)) as stock, COUNT(*) as total
FROM `'._DB_PREFIX_.'product` p
'.Shop::addSqlAssociation('product', 'p').'
'.Product::sqlStock('p'));
$value = round($row['total'] ? $row['stock'] / $row['total'] : 0, 2).'%';
Configuration::updateValue('PS_KPI_PRODUCTS_STOCK', $value);
Configuration::updateValue('PS_KPI_PRODUCTS_STOCK_EXPIRE', strtotime('+10 min'));
break;
case 'avg_gross_margin':
$value = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('
SELECT AVG((product_shop.price - product_shop.wholesale_price) / product_shop.price)
FROM `'._DB_PREFIX_.'product` p
'.Shop::addSqlAssociation('product', 'p'));
$value = round(100 * $value, 2).'%';
Configuration::updateValue('PS_KPI_AVG_GROSS_MARGIN', $value);
Configuration::updateValue('PS_KPI_AVG_GROSS_MARGIN_EXPIRE', strtotime('+6 hour'));
break;
case 'disabled_categories':
$value = (int)Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('
SELECT COUNT(*)
FROM `'._DB_PREFIX_.'category` c
'.Shop::addSqlAssociation('category', 'c').'
WHERE c.active = 0');
Configuration::updateValue('PS_KPI_DISABLED_CATS', $value);
Configuration::updateValue('PS_KPI_DISABLED_CATS_EXPIRE', strtotime('+2 hour'));
break;
case 'empty_categories':
$total = (int)Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('
SELECT COUNT(*)
FROM `'._DB_PREFIX_.'category` c
'.Shop::addSqlAssociation('category', 'c'));
$used = (int)Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('
SELECT COUNT(DISTINCT cp.id_category)
FROM `'._DB_PREFIX_.'category_product` cp
'.Shop::addSqlAssociation('category', 'cp'));
$value = intval($total - $used);
Configuration::updateValue('PS_KPI_EMPTY_CATS', $value);
Configuration::updateValue('PS_KPI_EMPTY_CATS_EXPIRE', strtotime('+2 hour'));
break;
case 'average_order_value':
$row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow('
SELECT