Перейти к содержанию
Официальный форум поддержки Simpla

Сортировка товаров в админке


Перейти к решению Решено question,

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

Подскажите, в какую сторону копать, где искать этот ORDER BY или SORT BY, чтобы в итоге в админке товары сортировались по

- дате создания

- цене

- наличию картинки

- наличию скидки

и т.д. и т.п.

P.S. Если что, у меня есть в s_variants поле sold типа Дата и стоит задача показывать те товары, которые были проданы недавно.

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

Если хотите в админке разные сортировки, то вопрос очень непростой, так как изначально в админке есть сортировка по умолчанию, и работает сортировка перетаскиванием. Простым способом совсем хорошо вряд ли выйдет, много переделывать надо. Либо вообще отказываться от сортировки по умолчанию и перетаскиваний...

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

А по-моему, ТС просто НЕ ПОНИМАЕТ, ЧТО такое сортировка)))

И чем Сортировка отличается от ФИЛЬТРАЦИИ...

Если принять этот факт - то все намного проще оказывается))

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

А по-моему, ТС просто НЕ ПОНИМАЕТ, ЧТО такое сортировка)))

И чем Сортировка отличается от ФИЛЬТРАЦИИ...

Если принять этот факт - то все намного проще оказывается))

 

Он просто в один вопрос включил и сортировку и фильтрацию.

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

Подскажите, в какую сторону копать, где искать этот ORDER BY или SORT BY, чтобы в итоге в админке товары сортировались по

- дате создания

- цене

- наличию картинки

- наличию скидки

и т.д. и т.п.

P.S. Если что, у меня есть в s_variants поле sold типа Дата и стоит задача показывать те товары, которые были проданы недавно.

 

вы просто определитесь что вам нужно? фильтрация или сортировка. Например по дате создания - это сортировка.

а вот по наличию картинки и наличию скидки это уже фильтрация. Как вы будете сортировать наличие скидки или картинку? это ведь либо есть либо нет. То есть тут конкретный признак.

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

вы просто определитесь что вам нужно? фильтрация или сортировка. Например по дате создания - это сортировка.

а вот по наличию картинки и наличию скидки это уже фильтрация. Как вы будете сортировать наличие скидки или картинку? это ведь либо есть либо нет. То есть тут конкретный признак.

Можно сделать сортировку по любому полю.
Ссылка на сообщение
Поделиться на другие сайты

Можно сделать сортировку по любому полю.

 

так то да, наверное это уже мои догадки)я бы сделал именно сортировку и фильтр как выше написал.

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

Он просто в один вопрос включил и сортировку и фильтрацию.

Меня интересует и группировка и сортировка - и то и то.

Где-то на форуме проскакивала тема с готовым решением, но там было что-то типа "показывать только хиты", "показывать сначала товары со скидкой" и т.д. Мне нужно понять, в каком файле формируется SQL запрос.

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

Как вы будете сортировать наличие скидки или картинку? это ведь либо есть либо нет. То есть тут конкретный признак.

Сначала с картинкой, затем - без неё. 

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

Сначала с картинкой, затем - без неё. 

:) да эт я тупанул, согласен что можно так сделать. Но я бы лучше фильтр сделал. Как в симпле по дефолту например товары в наличии. 

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

Меня интересует и группировка и сортировка - и то и то.

Где-то на форуме проскакивала тема с готовым решением, но там было что-то типа "показывать только хиты", "показывать сначала товары со скидкой" и т.д.

Что касайется фильтрации, то стандартно в товарах в админке есть фильтры Рекомендуемые, Со скидкой, Активные, Неактивные, Отсутствующие.

Аналогия полнейшая, действуйте...

Мне нужно понять, в каком файле формируется SQL запрос.

Разные запросы формируются в разных файлах. По Вашей задаче - скорее всего, в api/Products.php...
Ссылка на сообщение
Поделиться на другие сайты

Что касайется фильтрации, то стандартно в товарах в админке есть фильтры Рекомендуемые, Со скидкой, Активные, Неактивные, Отсутствующие.

Аналогия полнейшая, действуйте...Разные запросы формируются в разных файлах. По Вашей задаче - скорее всего, в api/Products.php...

Спасибо, буду ковырять.

Не могу ту самую тему о расширении функционала фильтрации (или сортировки) найти, может кто встречал?

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

Нашёл в products.php строчку

 

$order = 'p.visible DESC, p.position DESC'
 

И далее она применяется в коде так:

 

 ORDER BY $order
 

 

Ну хорошо, вот она и сортировка по умолчанию, достаточно будет заменить на

 

 

$order = 'pv.sold';
 

И получить искомую сортировку. Стоп. А где формируется переменная $order и где она передаётся методом get? Я этого места не нашёл. Да и вообще из админки она не передаётся. site.ru/simpla/?order=price не будет сортировать товары...

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

А где формируется переменная $order и где она передаётся методом get? Я этого места не нашёл. Да и вообще из админки она не передаётся. site.ru/simpla/?order=price не будет сортировать товары...

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

Ок, щас прочёл основы программирования. А в чём вопрос некорректен?

Переменная $order есть? Есть.

В одном месте вижу, ей присваевается строка, понимаю, в другом месте тоже, найти не могу.

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

А где формируется переменная $order и где она передаётся методом get? Я этого места не нашёл. Да и вообще из админки она не передаётся. site.ru/simpla/?order=price не будет сортировать товары...

Этот url не работает потому что в /simpla/ProductsAdmin.php изначально отсутствует строка

 

$filter['sort'] = $this->request->get('sort', 'string'); 
Изменено пользователем question
Ссылка на сообщение
Поделиться на другие сайты

 

$order = 'pv.sold';
 
...А где формируется переменная $order

 

Например, в указанной Вами строке формируется. А в CMS вообще такая переменная формируется еще в десятках мест...

 

...и где она передаётся методом get?

 

Прежде чем задавать такой вопрос, надо убедиться в том, что она вообще где-то передается. А до того вопрос некорректный.

Вот Вы сначала попробуйте обосновать то, что где-то передается - и не тяп-ляп кое-как, а доказательно...

 

 

 

Этот url не работает потому что в /simpla/ProductsAdmin.php изначально отсутствует строка

 

$filter['sort'] = $this->request->get('sort', 'string'); 

 

Еще одна бессмысленность...

Ссылка на сообщение
Поделиться на другие сайты
  • Решение

Добавил в Products.php строки

                case 'sold':
                $order = '(SELECT MAX(pv.sold) FROM __variants pv WHERE p.id = pv.product_id AND pv.position=        (SELECT MIN(position) FROM __variants WHERE product_id=p.id LIMIT 1)                   LIMIT 1) desc';
                break;
 

 

 
 
 

Заработало. 

Изменено пользователем question
Ссылка на сообщение
Поделиться на другие сайты
phukortsin, вам бы для начала основы программирования изучить. А то новичок больше вас знает.

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

В итоге сделал "админку для кладовщика" с урезанным функционалом, в которой можно только менять количество товара + сохранение через ajax + возможна сортировка по дате продажи.

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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...