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

Сортировка товаров в порядке подкатегорий

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

Здравствуйте. Нашел много решений для сортировки по алфавиту, цене и т.д.

Но мне необходимо сделать сортировку товаров соответствующую порядку подкатегорий.

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

Спасибо.

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


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

Здравствуйте. Нашел много решений для сортировки по алфавиту, цене и т.д.

Но мне необходимо сделать сортировку товаров соответствующую порядку подкатегорий.

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

Спасибо.

А разве нет порядка сортировки в движке?

1201848f4e9e9d78afccbdc63666dc18.jpg

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


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

Это порядок категорий, а мне нужна сортировка товаров.

Сейчас так:

1ключ 1отвертка 1насадка

2ключ 2отвертка 2насадка

3ключ 3отвертка 3насадка

А нужно так:

1ключ 2ключ 3ключ

1отвертка 2отвертка 3отвертка

1насадка 2насадка 3насадка

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


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

Добавление к public function getProducts($data = array()) {

Не оптимизировал, т.к. используется в магазине с малым кол-вом товаров. Но при желании можно улучшить.

(SELECT sort_order FROM " . DB_PREFIX . "category WHERE category_id =
  (SELECT c.parent_id FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "product_to_category p2cc ON (c.category_id = p2cc.category_id) WHERE p2cc.product_id = p.product_id AND c.parent_id != '0' ORDER BY c.sort_order DESC)
) AS category

и сортировка

$sql .= " ORDER BY category, p.sort_order";

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


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

Добавление к public function getProducts($data = array()) {

Не оптимизировал, т.к. используется в магазине с малым кол-вом товаров. Но при желании можно улучшить.

(SELECT sort_order FROM " . DB_PREFIX . "category WHERE category_id =
  (SELECT c.parent_id FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "product_to_category p2cc ON (c.category_id = p2cc.category_id) WHERE p2cc.product_id = p.product_id AND c.parent_id != '0' ORDER BY c.sort_order DESC)
) AS category

и сортировка

$sql .= " ORDER BY category, p.sort_order";

А можно подробнее?

В каких файлах вызывается эта функция?

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


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

Вызывается во многих, хранится в catalog\model\catalog\product.php.

 $product_data = $this->cache->get('product.' . (int)$this->config->get('config_language_id') . '.' . $cache);

 if (!$product_data) {

  $sql = "SELECT p.product_id, p.image, pd.description, pd.name, p.sort_order,

Ну и там смотрите по коду.

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

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

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