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

Сортировка товара в категории

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

Добрый день. Подскажите как настроить сортировку товара по умолчанию в категориях. Например когда наличее товара становится 0, что бы он опускался ниже, товара который есть в наличии. А лучше сортировать так. Сразу идут товары по времени добавления в базу, то есть более новые товары выше, а товары которых нет в наличии бросать в самый низ. Спасибо. Версия ocStore 1.5.3.1

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


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

Нужно добавить дополнительные условия в классе ControllerProductCategory.

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


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

Нужно добавить дополнительные условия в классе ControllerProductCategory.

Можно ли вкратце что куда добавлять? Спасибо!

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


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

Ну, если вкраце, то там строка

$results = $this->model_catalog_product->getProducts($data);
обращается к моделе и забирает из БД список товара. Можно открыть модель и внести правки прямо в метод getProducts. А можно в контроллере ControllerProductCategory внести правки. Например, список товаров $results перебирается в цикле foreach - вот туда можно дописать какое-нибудь условие. А ещё ж там есть условие sort, которое можно попробовать обмануть... только я не уверен как... гуру, подскажите как $this->request->get['sort'] присвоение сделать? Может set? А может напрямую:

$this->request->get['sort'] = 'p.price';
$this->request->get['order'] = 'ASC';
А может надо set вместо get... я не помню как в OC...

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


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

мда.... спасибо за ответ, но как оказалось "вкратце" мне ничего не дало... знаний явно не хватает у меня

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


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

А возможно ли сделать сортировку товаров соответствующую порядку подкатегорий? Например, если у меня есть родительская категория "Ручной инструмент", которая содержит подкатегории "ключи","отвертки", "насадки", как сделать что бы сначала отображались товары из подкатегории "ключи", затем "насадки", "отвертки".

Спасибо.

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


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

hotgomer, к запросу товаров необходимо присоеденить таблицы category[, category_description] и сортировать товар по её c.sort_order[, cd.name], кроме этого, категории для сортировки нужно выбирать по parent_id от текущей.

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


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

решение так и не найдено??? может модуль какой?

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


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

/catalog/model/catalog/product.php 130-138

if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {

if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') {

$sql .= " ORDER BY p.quantity=0, LCASE(" . $data['sort'] . ")";

} else {

$sql .= " ORDER BY p.quantity=0, " . $data['sort'];

}

} else {

$sql .= " ORDER BY p.quantity=0, p.sort_order";

}

  • +1 1

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


Ссылка на сообщение
Поделиться на другие сайты
/catalog/model/catalog/product.php 130-138 if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') { $sql .= " ORDER BY p.quantity=0, LCASE(" . $data['sort'] . ")"; } else { $sql .= " ORDER BY p.quantity=0, " . $data['sort']; } } else { $sql .= " ORDER BY p.quantity=0, p.sort_order"; }

не помогло... а может не сработать из-за filterpro? версия OcStore 1.5.2.1 кеш чистил

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


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

не помогло... а может не сработать из-за filterpro? версия OcStore 1.5.2.1 кеш чистил

в model/module/filterpro.php нужно проделать те же манипуляции

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


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

в model/module/filterpro.php нужно проделать те же манипуляции

после проведенных операций в слайдере цен значения стали 0 и 0. Цен не показывает

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


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

/catalog/model/catalog/product.php 130-138

if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {

if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') {

$sql .= " ORDER BY p.quantity=0, LCASE(" . $data['sort'] . ")";

} else {

$sql .= " ORDER BY p.quantity=0, " . $data['sort'];

}

} else {

$sql .= " ORDER BY p.quantity=0, p.sort_order";

}

всё работает спасибо

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

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

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