Перейти к содержанию
slimvm

Формула расчета модуля "Хиты продаж"

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

Здравствуйте!

Подскажите, как реализовать вывод в модуле Хиты продаж не по количеству проданных товаров, а по общей цене проданных товаров. Например, при покупке двух позиций по 300 рублей, и одной позиции по 1000 рублей сначала в модуле отобразиться позиция за 1000 р. а ниже позиция за 300 р.

Принцип такого отображения есть в админке: Админка - Отчеты - Купленные товары. Теперь как-то надо реализовать такой же вывод токо в модуле Хиты продаж.

Поделиться сообщением


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

В файле catalog/model/catalog/product.php, метод getBestSellerProducts()

ищеш строку которая начинается

$query = $this->db->query("SELECT op.product_id, SUM(op.quantity) AS total, p.status FROM ...
В этой строке меняеш SUM(op.quantity) на SUM(op.total)
  • +1 2

Поделиться сообщением


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

спасибо, а то мне показывает мелочевку, которую купили 4 раза по 4 штуки, а я понять не могу, почему она на первом месте в хитах продаж :)

Поделиться сообщением


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

Yesvik

Спасибо большое, выручил =)

Поделиться сообщением


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

Сделал подобную замену, однако эффекта никакого... :-( В чем может быть еще причина? Код после замены выглядит так:

$query = $this->db->query("SELECT op.product_id, SUM(op.total) AS total FROM " . DB_PREFIX . "order_product op LEFT JOIN `" . DB_PREFIX . "order` o ON (op.order_id = o.order_id) WHERE o.order_status_id > '0' GROUP BY op.product_id ORDER BY total DESC LIMIT " . (int)$limit);

Поделиться сообщением


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

Отбой :-) Видать, время надо чтоб пересчиталось все. Все ОК

Поделиться сообщением


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

А как подобное провернуть с 1.5.1.3

логику данного SQL запроса не пойму...

$query = $this->db->query("SELECT op.product_id, COUNT(*) AS total FROM " . DB_PREFIX . "order_product op LEFT JOIN `" . DB_PREFIX . "order` o ON (op.order_id = o.order_id) LEFT JOIN `" . DB_PREFIX . "product` p ON (op.product_id = p.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE o.order_status_id > '0' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "' GROUP BY op.product_id ORDER BY total DESC LIMIT " . (int)$limit);

Поделиться сообщением


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

А как подобное провернуть с 1.5.1.3

логику данного SQL запроса не пойму...

$query = $this->db->query("SELECT op.product_id, COUNT(*) AS total FROM " . DB_PREFIX . "order_product op LEFT JOIN `" . DB_PREFIX . "order` o ON (op.order_id = o.order_id) LEFT JOIN `" . DB_PREFIX . "product` p ON (op.product_id = p.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE o.order_status_id > '0' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "' GROUP BY op.product_id ORDER BY total DESC LIMIT " . (int)$limit);

точно так же, COUNT(*) заменить на SUM(op.total)

  • +1 1

Поделиться сообщением


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

А какую переменную нужно поставить, если интересует сортировка по колиеству просмотров?

SUM(op.viewed) не работает ((

Поделиться сообщением


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

вопрос не понял, если честно..

Поделиться сообщением


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

вопрос не понял, если честно..

Мне нужно показывать товар не по количеству покупок, а по количеству просмотров этого товара.

Поделиться сообщением


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

p.viewed

но сам запрос будет выглядеть иначе

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.