OpenCart: как сделать сортировку атрибутов по порядку сортировки
Потратил кучу времени на поиски решения, а оно оказалось до смешного простым.
В чём проблема
Вот мы создали группу атрибутов. Затем создали атрибуты, привязали к группе атрибутов, задали порядок сортировки. На сайте всё отображается нормально — согласно порядку сортировки. В админке же — всё сортируется по названиям, и это очень сбивает.
Что делать
- Открываем сайт/admin/model/catalog/attribute.php.
- Находим код (~53 строка):
if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
$sql .= " ORDER BY " . $data['sort'];
} else {
$sql .= " ORDER BY attribute_group, ad.name";
}
- Изменяем последнюю строку:
$sql .= " ORDER BY attribute_group, a.sort_order, ad.name";
- То есть, по умолчанию, в карточке товара в админке, стоит сортировка по названию. Мы же сделали по порядку сортировки, а затем по названию.
- Сохраняем, обновляем кэш.
- Готово.