Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

Snoop3000
 Поделиться

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

Здравствуйте, не могу понять что я делаю не так. В файле /catalog/controller/product/category.php указана сортировка по умолчанию:

if (isset($this->request->get['sort'])) {
			$sort = $this->request->get['sort'];
		} else {
			$sort = 'p.sort_order';
		}

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

Выходит что сортируется по моим данным, но сначала сортирует по остаткам.

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


2 минуты назад, Snoop3000 сказал:

Здравствуйте, не могу понять что я делаю не так. В файле /catalog/controller/product/category.php указана сортировка по умолчанию:


if (isset($this->request->get['sort'])) {
			$sort = $this->request->get['sort'];
		} else {
			$sort = 'p.sort_order';
		}

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

Выходит что сортируется по моим данным, но сначала сортирует по остаткам.

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

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

Вот этот метод модели собирает товары на вывод

$this->model_catalog_product->getProducts

Вот в его метод внутри и загляните что и как он собирает на вывод

Изменено пользователем Venter
Ссылка на комментарий
Поделиться на других сайтах

if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
			if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') {
				$sql .= " ORDER BY p.quantity DESC, LCASE(" . $data['sort'] . ")";
			} elseif ($data['sort'] == 'p.price') {
				$sql .= " ORDER BY p.quantity DESC, (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)";
			} else {
				$sql .= " ORDER BY p.quantity DESC," . $data['sort'];
			}
		} else {
			$sql .= " ORDER BY p.quantity DESC, p.sort_order";
		}

Если я правильно понял, то ocFilter добавил вывод сначала по количеству, а потом по моему номеру, верно? В правильно месте я нашел?

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


Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

×
×
  • Создать...

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

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