Регистрация
Вход через соцсети
Восстановление пароля

Сортировка товара по цене в интернет магазине

Новый топик
26.08.2015, 10:51
Ответить | Цитировать
Гость
Гость

По умолчанию сортировка товара идет по алфавиту, необходимо сделать по цене.

В системных настройках компонента товара магазина:
$sortBy = $nc_core->input->fetch_get('sortBy');
$sortDesc = (int) $nc_core->input->fetch_get('sortDesc');
$sorting_methods = array(
'' => array('field'=>'Name', 'title'=>'По алфавиту'),
'price' => array('field'=>'Price', 'title'=>'По цене'),
);
if (isset($sorting_methods[$sortBy])) {
$query_order = '`' . $sorting_methods[$sortBy]['field'] . '`' . ($sortDesc ? ' DESC' : '');
}



В префиксе:
<? $sortBy = (string)$nc_core->input->fetch_get('sortBy') ?>
<?= $sorting_methods[$sortBy]['title'] ?>


По умолчанию сортируется алфавиту, необходимо сделать по цене.
26.08.2015, 12:17
Ответить | Цитировать
Nexwich
Панасин Александр
Nexwich

Зарегистрирован:
2011-04-05
Сообщений: 943

Загляните в это поле
https://s.mail.ru/32bnoz58Siva/img-2015-08-26-12-16-46.png
Укажите в нем "Price"

Модуль "Почтовые уведомления" – настройка уведомлений на вашем сайте без программирования. Цена отзыв. Мне очень важно ваше мнение.
26.08.2015, 12:36
Ответить | Цитировать
Гость
Гость

Мне нужно в самом дизайне поменять местами тексты ссылок, что бы по умолчанию стояло По цене, а по Алфавиту была бы скрытой.

Простым способом переставления строк это не получается сделать
'price' => array('field'=>'Price', 'title'=>'По цене'),
'' => array('field'=>'Name', 'title'=>'По алфавиту'),

Вот сам сайт kanca.ru/katalog/orgtehnika-i-komplektuushie/
26.08.2015, 13:26
Ответить | Цитировать
Nexwich
Панасин Александр
Nexwich

Зарегистрирован:
2011-04-05
Сообщений: 943

Тогда вам в префикс списка найдите и поменяйте. А вообще зависит от реализации. Может там списки применяются.

Модуль "Почтовые уведомления" – настройка уведомлений на вашем сайте без программирования. Цена отзыв. Мне очень важно ваше мнение.
06.09.2016, 23:14
Ответить | Цитировать
Евгений
KOMPIK

Зарегистрирован:
2015-07-15
Сообщений: 6

Код:
// Сортировка результатов
$sort_by = (string)$nc_core->input->fetch_get('sortBy');
$sort_dir = $nc_core->input->fetch_get('sortDesc')? 'DESC' : 'ASC';

$price_column = "Price";
$sorting_methods = array(

'' => array('query_order' => "`__PriceRange` $sort_dir",
'title' => 'Цена',
'query_select' => "(IF(`Price` = 0 OR `$price_column` IS NULL," .
"(SELECT MIN(`$price_column`) FROM `Message$classID` AS pr WHERE pr.`Parent_Message_ID` = a.`Message_ID`), " .
"`Price`)) AS `__PriceRange`"),
'name' => array('query_order' => "`Name` $sort_dir",
'title' => 'По алфавиту',
'query_select' => ''),
);

if (isset($sorting_methods[$sort_by])) {
$query_order = $sorting_methods[$sort_by]['query_order'];
$query_select .= $sorting_methods[$sort_by]['query_select'];
}

Поменяйте ваш код на этот и будет сортировка вначале По цене

kompik.in.ua
24.09.2016, 17:14
Ответить | Цитировать
fazlihon
Фазлихон Масеев

Зарегистрирован:
2011-02-27
Сообщений: 22

Спасибо большое! тоже искал это решение.

fazli
198 196 2016-09-24 17:14:59 14265
Описание проекта