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

Вопрос по модулю Bestseller (Хиты продаж)

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

Добрый день, подскажите, пожалуйста, как вывести на странице этого модуля товары, у которых количество продаж больше 100, например? По умолчанию выводит все товары, которые хотя бы раз купили.

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


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

в файле catalog\model\catalog\product.php в getBestSellerProducts

в запросе, после

WHERE o.order_status_id > '0' AND p.status = '1'

 

добавить

AND total > 100

  • +1 2

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


Ссылка на сообщение
Поделиться на другие сайты
38 минут назад, AlexDW сказал:

в файле catalog\model\catalog\product.php в getBestSellerProducts

в запросе, после

WHERE o.order_status_id > '0' AND p.status = '1'

 

добавить

AND total > 100

 

Спасибо, при сортировке по умолчанию все работает, но стоит изменить сортировку (на любую, хоть по цене, хоть по коду товара) сразу начинают лезть товары у которых количество заказов меньше 30. Кэш чистил.

Изменено пользователем dm97

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


Ссылка на сообщение
Поделиться на другие сайты
12 минут назад, dm97 сказал:

при сортировке по умолчанию все работает, но стоит изменить сортировку (на любую, хоть по цене, хоть по коду товара) сразу начинают лезть товары у которых количество заказов меньше

 

тот случай, когда в самом вопросе содержится 99% ответа

ищите причину в сортировке

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


Ссылка на сообщение
Поделиться на другие сайты
3 минуты назад, AlexDW сказал:

 

тот случай, когда в самом вопросе содержится 99% ответа

ищите причину в сортировке

 

Короче удалил вообще сортировку. Спасибо большое за помощь)

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


Ссылка на сообщение
Поделиться на другие сайты
2 часа назад, AlexDW сказал:

тот случай, когда в самом вопросе содержится 99% ответа

ищите причину в сортировке

 

Еще вопрос. В шаблоне bestseller.tpl сортировка равняется 'total'. Соответственно делаю вывод что total надо поменять на price (мне по умолчанию по цене надо сделать сортировку).

Соответственно total я заменил в запросе на price, но сортировка не поменялась.

 

Было:

$query = $this->db->query("SELECT op.product_id, SUM(op.quantity) 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 total > 30 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);

Стало:

$query = $this->db->query("SELECT op.product_id, SUM(op.quantity) AS price 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 total > 30 AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "' GROUP BY op.product_id ORDER BY price ASC LIMIT " . (int)$limit);

 

Не помогло(((

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


Ссылка на сообщение
Поделиться на другие сайты
2 часа назад, AlexDW сказал:

ищите причину в сортировке

 

И еще интересную вещь заметил, когда в bestseller.php меняю сортировку DESC на ASC то все сбивается (показывает товары меньше чем total > 30).

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


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

Хочу переделать логику вывода товаров в этом модуле.

 

Хочу выводить товары с рейтингом выше 4 например. Но не могу найти в таблицах, где система хранит данные о рейтинге товара.

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


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

Это вычисляемое значение

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


Ссылка на сообщение
Поделиться на другие сайты
8 минут назад, chukcha сказал:

Это вычисляемое значение

Я так понимаю нужно мне просто условие добавить в этот запрос, который формирует массив хитов:

 

$query = $this->db->query("SELECT op.product_id, SUM(op.quantity) 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);

 

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


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

Условие?
Если HAVING считать условием (я предпочитаю его называть фильтром)

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

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

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