Перейти к содержанию
Официальный форум поддержки Simpla

Рекомендуемые сообщения

Задача определить самых постоянных покупателей, подсчет суммы заказов из статуса "выполнено"

Кто нибудь задумывался об этом? Как это лучше организовать? 

Ссылка на сообщение
Поделиться на другие сайты

выбираете количество заказов со статусом 2, групируя их по user_id, дальше связываете этот user_id с пользователем. можно в том же запросе, получаете количество выполненных заказов для каждого покупателя.

 

SELECT count(o.user_id) as order_count, SUM(o.total_price) as total_price, o.user_id, u.name
FROM `s_orders` o
LEFT JOIN `s_users` u ON o.user_id = u.id
WHERE status=7 
GROUP BY o.user_id
ORDER BY order_count DESC

 

на выходе получаете имя, айди покупателя, общую сумму покупок за заказы и количество самих заказов, отсортированное по убыванию

Ссылка на сообщение
Поделиться на другие сайты

С Stats.php начинать это делать надо? Как то так?

<?php

require_once('../../../api/Simpla.php');

class StatAjax extends Simpla
{	
	public function fetch()
	{
		$query = $this->db->placehold('SELECT count(o.user_id) as order_count, SUM(o.total_price) as total_price, o.user_id, u.name FROM `s_orders` o LEFT JOIN `s_users` u ON o.user_id = u.id WHERE status=2 GROUP BY o.user_id ORDER BY order_count DESC');
		$this->db->query($query);
		$data = $this->db->results();

		$results = array();
 		foreach($data as $d)
 		{
 			$result['sum'] = $d->sum;
 			$result['o.user_id'] = $d->user_id;
 			
 			
 			$results[] = $result;
		}
		return $results;
	}
	
}

$stat_ajax = new StatAjax();
header("Content-type: application/json; charset=utf-8");
header("Cache-Control: must-revalidate");
header("Pragma: no-cache");
header("Expires: -1");		
$json = json_encode($stat_ajax->fetch());
print $json;
Ссылка на сообщение
Поделиться на другие сайты

Это нужно делать отдельно от статистики по продажам, это файл аякс статистики, а не контролер, создайте новый класс по примеру других контролеров админки, можно прицепить к юзерам это, выводить можно много где, как и выбирать это все. Например сделать выборку в той же статистике но в файле simpla/statsadmin.php (вроде так пишется, я с планшета, не помню) и передавать отдельным массивом

Ссылка на сообщение
Поделиться на другие сайты

Подобные разработки:

http://simpla-tuning.com/otchet-o-prodazhah-po-tovaram

http://simpla-tuning.com/otchet-o-prodazhah-v-razreze-tovarov-i-tsen

Возможно изменение под Ваши потребности...

Ссылка на сообщение
Поделиться на другие сайты

Это нужно делать отдельно от статистики по продажам, это файл аякс статистики, а не контролер, создайте новый класс по примеру других контролеров админки, можно прицепить к юзерам это, выводить можно много где, как и выбирать это все. Например сделать выборку в той же статистике но в файле simpla/statsadmin.php (вроде так пишется, я с планшета, не помню) и передавать отдельным массивом

<?PHP

require_once('api/Simpla.php');


############################################
# Class goodCategories displays a list of products categories
############################################
class StatsAdmin extends Simpla
{
 
  public function fetch()
  {
	  
	  
	  
$result = mysql_query ("SELECT count(o.user_id) as order_count, SUM(o.total_price) as total_price, o.user_id, u.name
FROM `s_orders` o
LEFT JOIN `s_users` u ON o.user_id = u.id
WHERE status=2 
GROUP BY o.user_id
ORDER BY order_count DESC");
$myres = mysql_fetch_array ($result);

while ($myres = mysql_fetch_array($result));  
	  
	  
	  
	  
 	return $this->design->fetch('stats.tpl');
  }
}

 

В нужную сторону двигаюсь? 

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...