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

Как сделать сортировку продуктов по id ? opencart 1.5.6.1

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

Столкнулся с проблемой сортировки. Когда товар все время перемешивается и на последующих страницах повторяются товары. Это не удобно для покупателей. Особенно если много товаров. Например если мне понравилась вещь на 12 странице и если уйти с этой странице и вновь туда зайти не факт что товар будет в этой странице. 

Читал про сортировку по id подскажите как ее реализовать ее ? на опенкарте 1.5.6.1 и есть ли минусы такой сортировки спасибо

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


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

в catalog\model\catalog\product.php найти участок 

} else {
	$sql .= " ORDER BY p.sort_order";	
}

и поменять на:

} else {
	$sql .= " ORDER BY p.product_id  ASC";	
}

теоретически - должно зацепить.

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


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

в catalog\model\catalog\product.php найти участок 

} else {
	$sql .= " ORDER BY p.sort_order";	
}

и поменять на:

} else {
	$sql .= " ORDER BY p.product_id  ASC";	
}

теоретически - должно зацепить.

Это прокатит для 1.5.6.1?

в phpmyadmin ({DB_PREFIX} - ваш префикс)

UPDATE `{DB_PREFIX}product` SET `sort_order` = `product_id` WHERE `product_id` > '0'

 

[=== admin/model/catalog/product.php ===]

public function addProduct($data) {

...

$product_id = $this->db->getLastId();

// auto sort_order = product_id

$this->db->query("UPDATE " . DB_PREFIX . "product SET sort_order = '" . (int)$product_id . "' WHERE product_id = '" . (int)$product_id . "'");

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


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

в catalog\model\catalog\product.php найти участок 

} else {
	$sql .= " ORDER BY p.sort_order";	
}

и поменять на:

} else {
	$sql .= " ORDER BY p.product_id  ASC";	
}

теоретически - должно зацепить.

Не цепляет. Товар в перемешку

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


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

Применил это решение 

// auto sort_order = product_id

$this->db->query("UPDATE " . DB_PREFIX . "product SET sort_order = '" . (int)$product_id . "' WHERE product_id = '" . (int)$product_id . "'");

 

Теперь автоматом выставляется номер сортировки товары из его id.  Не нужно самому вбивать номера сортировки. Удобно

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

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

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