uraaa
@uraaa
Web-разработчик, системный администратор

Как в Opencart сделать сортировку по артикулу (sku)?

В базе поле SKU имеет тип varchar, поэтому сортировка по артикулу работает неправильно:
1,10,11,2,20,21
Как сортировать артикул как число?
1,2,10,11,20,21
Какой запрос в /catalog/model/catalog/product.php менять?
  • Вопрос задан
  • 807 просмотров
Решения вопроса 1
uraaa
@uraaa Автор вопроса
Web-разработчик, системный администратор
Разобрался, кому интересно:
На 1.5.3.1
Файл /catalog/model/catalog/product.php

В это условие:
if (isset($data['sort']) && in_array($data['sort'], $sort_data))


Добавить:
elseif ($data['sort'] == 'p.sku') {
         $sql .= " ORDER BY CAST(" . $data['sort'] . " as unsigned)";
				}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
MaxDukov
@MaxDukov
впишусь в проект как SRE/DevOps.
вместо ORDER BY xxx
ORDER BY CAST(xxx AS SIGNED)
или ORDER BY xxx+0
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы