Помощь Сортировка товаров в категории по Хитам продаж и Акции

SuperRomario

Постоялец
Регистрация
1 Дек 2013
Сообщения
56
Реакции
4
Всем привет.
Суть вопроса собственно в заголовке темы. Со вторым пунктом, сортировке по Акции я разобрался (нашел на форуме OpenCart), а вот как быть с сортировкой по Хитам продаж пока загвоздка
Решение сортировки по Акции ниже
1. В файле \catalog\model\catalog\product.php
в запросе который в функции public function getProducts($data = array()) {
добавим после AS discount,
Код:
(SELECT ((p.price - ps.price) / (p.price / 100)) FROM " . DB_PREFIX . "product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '" . (int)$this->config->get('config_customer_group_id') . "' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special_percent,
В итоге теперь запрос нам выдаст доп колонку с процентом скидки

2. Ниже по коду после 'p.date_added',
добавим 'special_percent',

3. После кода
Код:
$this->data['sorts'][] = array(
                'text'  => $this->language->get('text_model_desc'),
                'value' => 'p.model-DESC',
                'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.model&order=DESC' . $url)
            );
Вставим
Код:
$this->data['sorts'][] = array(
                'text'  => $this->language->get('text_percent_desc'),
                'value' => 'special_percent-DESC',
                'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=special_percent&order=DESC' . $url)
            );
4. В языковом файле catalog\language\russian\product\category.php вставим
Код:
$_['text_percent_desc']   = 'Акция';
На этом все!

Насколько я понимаю, чтобы сделать сортировку по Хитам продаж нужно добавить информацию в запрос и вот тут у меня беда, пока ничего не могу придумать как выдернуть из БД данные о количестве продаж, пробовал копать в стороне модуля bestseller, но запутался окончательно.

Вот и прошу помощи.
 
попробуй посмотреть в модуле автоматические стикеры, они там автоматом ставятся на хиты продаж, оттуда можно и переменную для вывода посмотреть
 
запрос который считает количество продаж
для конкретного product_id

SELECT sum(op.quantity) as quantity 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 AND op.product_id = '" . (int)$product_id ."')"
 
Назад
Сверху