Как сделать сортировку атрибутов по порядку сортировки в OpenCart

Потратил кучу времени на поиск решения, а в итоге оно оказалось до смешного простым.

В чём проблема

Вот мы создали группу атрибутов. Затем создали атрибуты, привязали к группе атрибутов, задали порядок сортировки. На сайте всё отображается нормально — согласно порядку сортировки. Но вот в админке сортировка идёт по названиям, и это очень сбивает.

Как исправить

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