Jump to content
Sign in to follow this  
dm82

[Решено] двойная сортировка в заказах админ

Recommended Posts

Не могу въехать, почему не работает двойная сортировка в админ панели, в каталоге, в товарах такой принцип работает, а тут нет, пожалуйста подскажите, что не так делаю.

 

Мне надо, чтобы в заказах была двойная сортировка - сначала по статусу, потом по дате изменения. Статус у меня уже стоит по умолчанию, потому нужно добавить только по дате изменения, потому делаю следующее:

 

в

\admin\model\sale\order.php 
 
		if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
			$sql .= " ORDER BY " . $data['sort'];
		} else {
			$sql .= " ORDER BY o.order_id";
		}

меняю на

		if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
			$sql .= " ORDER BY " . $data['sort'] . ", o.date_modified";
		} else {
			$sql .= " ORDER BY o.order_id";
		}

после этого сортируется только по дате.. Почему так, что делаю не так??

 

Спасибо за помощь!!!

 

 

Share this post


Link to post
Share on other sites

То есть после Ваших изменений, Вы выбираете например Статус: Ожидание и Дату, а у Вас выводятся все заказы(не взирая на выбранный статус) за указанную дату? Я правильно понял?

Share this post


Link to post
Share on other sites

нет. речь не про фильтр, а про сортировку (по умолчанию и двойную).

 

заказы сортируются по статусу у меня только, а надо, чтобы было сначала по статусу, а потом по дате.

По какому принципу они выводятся вообще понять не могу - ни по дате ни по номеру заказа... хрен поймешь.  

 

Т.е. у меня большой список завершенных заказов, но они все перемешаны непонятным образом, хотелось таким образом их упорядочить сортировкой по дате.

Share this post


Link to post
Share on other sites


if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {

            $sql .= " ORDER BY o.date_modified, " . $data['sort'];

        } else {

            $sql .= " ORDER BY o.order_id";

}

Share this post


Link to post
Share on other sites

спасибо, но так тоже пробовал - результат тот же - сортируется только по дате, какую сортировку не выбираю - в результате только по дате :(

 

а у вас сортируется?? (может тогда это в моей версии косяк)

Edited by dm82

Share this post


Link to post
Share on other sites

По статусу так сортировать не будет, Вы бы var_dump запроса сделали который идет к БД, как сейчас написано сортирует по order_id и по date_modified, надо дописать...

Share this post


Link to post
Share on other sites

сорри, в этом не спец.. как правильно надо?

это сложно сделать? можете помочь?

Share this post


Link to post
Share on other sites

В модели перед return сделайте var_dump($sql), затем обновите страницу с заказами и Вы на экране увидите запрос, который идет к БД при открытии страницы заказов...

Share this post


Link to post
Share on other sites

спасибо, но ничего не понял..

и эти запросы при каждом открытии страницы заказов будут?

Share this post


Link to post
Share on other sites

Я Вам это сказал, чтобы Вы увидели, что по умолчанию по статусу вообще сортировка не происходит, только по id заказа и в нашем случае теперь еще и по дате изменения, чтобы сортировалось еще и по статусу необходимо поправить сам запрос

Share this post


Link to post
Share on other sites

у меня по умолчанию как раз только по статусу и происходит..

сам 

$data['sort']

выставлен по статусу в контроллере

 

\admin\controller\sale\order.php

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

и как вы поняли к этой, по умолчанию, сортировке надо прикрутить еще по дате. любым возможным способом,

Share this post


Link to post
Share on other sites

и как поправить этот запрос? это сложно? или двумя строчками решается?

Share this post


Link to post
Share on other sites

Вы можете в моделе в строке 526 разместить var_dump($sql); и написать выведенный результат сюда...?

Share this post


Link to post
Share on other sites

не уверен, что в 526й... у меня там стоит

 

public function getOrderVouchers($order_id) {
 
вот мой файл:
 
 

order.zip

Share this post


Link to post
Share on other sites

У Вас получается после 495й поставьте var_dump($sql);

Share this post


Link to post
Share on other sites

в верху страницы заказов, над шапкой вылезло такое:

 

string(350) "SELECT o.order_id, CONCAT(o.firstname, ' ', o.lastname) AS customer, o.telephone, (SELECT os.name FROM order_status os WHERE os.order_status_id = o.order_status_id AND os.language_id = '1') AS status, o.total, o.currency_code, o.currency_value, o.date_added, o.date_modified FROM `order` o WHERE o.order_status_id > '0' ORDER BY status ASC LIMIT 0,20"

Share this post


Link to post
Share on other sites

Убирайте наш var_dump и попробуйте так...

$sql .= " ORDER BY " . $data['sort'] . ", date_format(o.date_modified, '%Y-%m-%d')";

Share this post


Link to post
Share on other sites

все равно только по дате ;(

Share this post


Link to post
Share on other sites

РЕШЕНО!!!

 

спасибо за решение, devrvk

 

простое и красивое обуздание sql с ее бардаком вывода данных в заказах:

 
\admin\model\sale\order.php 
 

после

		if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
			$sql .= " ORDER BY " . $data['sort'];
		} else {
			$sql .= " ORDER BY o.order_id";
		}

		if (isset($data['order']) && ($data['order'] == 'DESC')) {
			$sql .= " DESC";
		} else {
			$sql .= " ASC";
		}

добавить

		$sql .= ", date_format(o.date_modified, '%Y-%m-%d') DESC";

Share this post


Link to post
Share on other sites

v.2

 

еще лучше просто добавить

		$sql .= ", o.date_modified DESC";

тогда будет сортировать не только по дням, но и по времени (в секундах)

(спасибо devrvk)

 

А вообще, думаю, как минимум это:

		$sql .= ", o.order_id DESC";

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

должно быть в стандартной сборке.

Криейторам на заметку)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Similar Content

    • By OtezVikentiy
      400.00 руб
      Скачать/Купить дополнение


      Фокус на популярные товары - сортировка

      Фокус на популярные товары - сортировка
       
      Практически в любом аудите интернет-магазина есть пункт о том, что сортировка должна не просто существовать по дефолту и не работать на каких-то рандомных алгоритмах, а должна в топе всегда показывать наиболее востребованные, покупаемые и просматриваемые товары. Этот модуль помогает Вам настроить в своём магазине подобную дефолтную сортировку в соответствии с требованиями Аудита. На выбор в админке есть несколько простых настроек с приоритетами: "Наибольшее число продаж", "Наивысшие оценки" и "Наибольшее количество просмотров", а так же дополнительные настройки.
       
      Основные функции, возможности и настройки:
      - Возможность настроить дефолтную сортирвоку товаров на свой вкус или в соответствии с требованиями аудита
      - Возможность выбора одного или всех параметров сортировки
      - Возможность выборочно конкретные товары выдвигать в ТОП
      - Возможность убирать в низ списка товары, которые отсутствуют на складе независимо от того насколько они популярны или продаваемы
      - Поддержка нескольких магазинов
      - Поддержка нескольких языков
      - Не перезаписываются и не заменяются основные файлы
      - Возможность включить или отключить модуль в любое время
      - Простая и легкая установка
       
      Требования:
      - php 5.6+
      - ionCube
       
      Языки:
      - Русский
      - Английский
       
      Инструкция по установке:
      - Модуль устанавливается стандартным образом.
       
      Дополнительные инструкции после установки:
      - отсутствуют
       
      Техподдержка:
      email - [email protected]
      telegram - @OtezVikentiy
       
      Лицензирование:
      - лицензия выдаётся на 1 домен + любое количество поддоменов.
      Прочее:
      - Работоспособность модуля проверяется на только что установленной системе без участия других модулей
      - Конфликты с другими модулями не являются критической ошибкой в самом модуле и требуют дополнительной кастомизации (отладки), что обычно ложится на плечи разработчика магазина.
      - Претензии по ошибкам, возникшим в результате конфликта с другими модулями/шаблонами в бесплатную поддержку модуля не входят.
      Что зашифровано в модуле:
      - Контроллер админки модуля
       
      Покупая и устанавливая данный программный продукт вы безоговорочно и полностью соглашаетесь со всеми пунктами изложенными в следующих документах:
      Политика поддержки
      Лицензионное соглашение Добавил OtezVikentiy Добавлено 14.09.2020 Категория Модули Системные требования php 5.6+, ionCube Метод активации По запросу в ЛС
      По запросу на почту
      По емейлу Ioncube Loader Требуется OpenCart 3.0
      2.3
      2.2
      2.1 ocStore 3.0
      2.3
      2.2
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1 Обращение к серверу разработчика Нет Старая цена 500  
    • By OtezVikentiy
      Фокус на популярные товары - сортировка
       
      Практически в любом аудите интернет-магазина есть пункт о том, что сортировка должна не просто существовать по дефолту и не работать на каких-то рандомных алгоритмах, а должна в топе всегда показывать наиболее востребованные, покупаемые и просматриваемые товары. Этот модуль помогает Вам настроить в своём магазине подобную дефолтную сортировку в соответствии с требованиями Аудита. На выбор в админке есть несколько простых настроек с приоритетами: "Наибольшее число продаж", "Наивысшие оценки" и "Наибольшее количество просмотров", а так же дополнительные настройки.
       
      Основные функции, возможности и настройки:
      - Возможность настроить дефолтную сортирвоку товаров на свой вкус или в соответствии с требованиями аудита
      - Возможность выбора одного или всех параметров сортировки
      - Возможность выборочно конкретные товары выдвигать в ТОП
      - Возможность убирать в низ списка товары, которые отсутствуют на складе независимо от того насколько они популярны или продаваемы
      - Поддержка нескольких магазинов
      - Поддержка нескольких языков
      - Не перезаписываются и не заменяются основные файлы
      - Возможность включить или отключить модуль в любое время
      - Простая и легкая установка
       
      Требования:
      - php 5.6+
      - ionCube
       
      Языки:
      - Русский
      - Английский
       
      Инструкция по установке:
      - Модуль устанавливается стандартным образом.
       
      Дополнительные инструкции после установки:
      - отсутствуют
       
      Техподдержка:
      email - [email protected]
      telegram - @OtezVikentiy
       
      Лицензирование:
      - лицензия выдаётся на 1 домен + любое количество поддоменов.
      Прочее:
      - Работоспособность модуля проверяется на только что установленной системе без участия других модулей
      - Конфликты с другими модулями не являются критической ошибкой в самом модуле и требуют дополнительной кастомизации (отладки), что обычно ложится на плечи разработчика магазина.
      - Претензии по ошибкам, возникшим в результате конфликта с другими модулями/шаблонами в бесплатную поддержку модуля не входят.
      Что зашифровано в модуле:
      - Контроллер админки модуля
       
      Покупая и устанавливая данный программный продукт вы безоговорочно и полностью соглашаетесь со всеми пунктами изложенными в следующих документах:
      Политика поддержки
      Лицензионное соглашение
    • By Sunser
      Content manager – модуль учета контента.

      Расширение подходит и тестировалось на версиях Opencart 2.0, 2.1, 2.2, 2.3 и 3.0
      Расширение подходит и тестировалось на версиях ocStore 2.1, 2.3 и 3.0
      Данные версии CMS брались с официальных сайтов OpenCart и ocStore.
       
      -- Установка расширения:
      1) Зайдите в свой установщик модификаторов, в админ панели, выберите модуль нужной версии, после чего установите;
      2) После установки зайдите в модификаторы и обновите свои модификаторы;
      3) Потом перейдите в Система > Группа пользователей, там выберите свой профиль, обычно это Администратор или какой вам надо где нужен что бы модуль отображался. И в выбранном вами профиле дайте права на просмотр и изменение модуля, он там будет в списке. Или же просто нажмете выбрать все, после чего сохраните настройки. 
      Если этого не сделать, модуль не появится в меню и вы не сможете его редактировать.
      После чего модуль появится в разделе > Учеты > «Учета контента».
      Модуль не заменяет никаких файлов.
       
      -- Что может модуль:
      1) Модуль ведет учет контента. То есть следит за изменением раздела:
      •    Категории
      •    Товары
      •    Производители
      •    Отзывы
      •    Статьи
      •    Опции
      •    Атрибуты
      •    Группа атрибутов
      •    Загрузки
      2) Модуль записывает и отображает изменения когда вы редактируете, добавляете или удаляете контент в пунктах, перечисленных высше;
      3) В модуле можно включать и выключать запись учета. Когда хотите модуль пишет изменения, когда нет, он не отслеживает изменения
      3) В модуле отображается что менялось, категории, товар, т.д, название и ID;
      4) Модуль следит кто вносит изменения и его ID;
      5) Модуль показывает что именно делали, изменяли, удаляли или редактировали и так же дату и время когда это делалось;
      6) В модуле есть удобный фильтр, модуль может фильтровать по:
      •    По названию
      •    По имени и Фамилии
      •    По ID учета
      •    По ID того что вы редактировали
      •    По дате
      •    По Действию
      •    По типу редактирования, это разделы что вы редактировали
      7) В модуле есть сортировка по полям таблицы;
      8) В модуле есть экспорт в эксель, то есть вы можете экспортировать как весь список, так и отфильтрованный вами список;
      9) В модуле можно удалять записи на выбор;
      10) В модуле можно одним нажатии очищать все записи сразу. То есть он полностью очищает всю таблицу content_manager.
       
      Что не может модуль:
      БУДЬТЕ ВНИМАТЕЛЬНЫ К ЭТОМУ ПУНКТУ-------------------
      Модуль не работает, если вы используете другие менеджеры для редактирования своего контента. То есть если вы используете Bash editor или другие похожие. То модуль отслеживать действие не будет, так как модуль работает через стандартное редактирование.
       
      Зачем нужен этот модуль и как он работает?
      Иногда бывает что на сайте у вас много менеджеров или контентщиков которые правят ваш сайт. И вам надо отследить что они делает или даже вести по них учет для оплаты или других целей, то данный модуль вам поможет в этом и упростит в разы вам жизнь.
      Так же иногда может случится, если на сайте будет какая та ошибка в редактированном контенте и вам нужно найти причину или кто это сделал, то данный модуль поможет в поиске. 
      Или же просто следите за изменением вашего контента.
      Модуль не нуждается в настройках, просто установите модуль, обновите модификаторы и можете пользоваться.
      Не забывайте, что бы модуль начал записывать, нужно включить запись на странице «Учета контента», там сверху, справа сверху будет первая кнопка слева «Запустить запись»
       
      Проблемы и исправление модуля:
      1)    Вы установили модуль, обновили модификаторы, но он нигде не появился, в таком случае вам нужно в разделе «группа пользователей» дать разрешение на просмотр или изменение модуля;
      2)    При скачивании exel, выдает ошибку. В таком случае может быть ошибка с правами или лучше написать автору модуля, после чего ошибку быстро исправит.
      3)    При ошибке или баге пишите автору модуля, после чего в ближайшие время ошибку или баг будет поправлено.
      4)    Вы установили модуль, запустили запись, но ничего не записывает, скорее всего вы что-то меняли в структуре файлов или кода и модуль не находит указанного пути через ваши изменения, в данном случае это быстро исправляется путем указания правильных путей в модификаторе, но это работа с кодом. Если вы не можете это сделать, обратитесь к разработчику модуля или к своему админку или программисту, который ведет ваш сайт.
       
      Если вы заметите какие-то неполадки или у вас будет предложение по улучшению самого модуля или вам нужно доработать модуль для личных целей, пишите в личное сообщение данного сервиса, после чего я вам обязательно отвечу.
    • By Sunser
      450.00 руб
      Скачать/Купить дополнение


      Content manager – модуль учета контента.
      Content manager – модуль учета контента.

      Расширение подходит и тестировалось на версиях Opencart 2.0, 2.1, 2.2, 2.3 и 3.0
      Расширение подходит и тестировалось на версиях ocStore 2.1, 2.3 и 3.0
      Данные версии CMS брались с официальных сайтов OpenCart и ocStore.
       
      -- Установка расширения:
      1) Зайдите в свой установщик модификаторов, в админ панели, выберите модуль нужной версии, после чего установите;
      2) После установки зайдите в модификаторы и обновите свои модификаторы;
      3) Потом перейдите в Система > Группа пользователей, там выберите свой профиль, обычно это Администратор или какой вам надо где нужен что бы модуль отображался. И в выбранном вами профиле дайте права на просмотр и изменение модуля, он там будет в списке. Или же просто нажмете выбрать все, после чего сохраните настройки. 
      Если этого не сделать, модуль не появится в меню и вы не сможете его редактировать.
      После чего модуль появится в разделе > Учеты > «Учета контента».
      Модуль не заменяет никаких файлов.
       
      -- Что может модуль:
      1) Модуль ведет учет контента. То есть следит за изменением раздела:
      •    Категории
      •    Товары
      •    Производители
      •    Отзывы
      •    Статьи
      •    Опции
      •    Атрибуты
      •    Группа атрибутов
      •    Загрузки
      2) Модуль записывает и отображает изменения когда вы редактируете, добавляете или удаляете контент в пунктах, перечисленных высше;
      3) В модуле можно включать и выключать запись учета. Когда хотите модуль пишет изменения, когда нет, он не отслеживает изменения
      3) В модуле отображается что менялось, категории, товар, т.д, название и ID;
      4) Модуль следит кто вносит изменения и его ID;
      5) Модуль показывает что именно делали, изменяли, удаляли или редактировали и так же дату и время когда это делалось;
      6) В модуле есть удобный фильтр, модуль может фильтровать по:
      •    По названию
      •    По имени и Фамилии
      •    По ID учета
      •    По ID того что вы редактировали
      •    По дате
      •    По Действию
      •    По типу редактирования, это разделы что вы редактировали
      7) В модуле есть сортировка по полям таблицы;
      8) В модуле есть экспорт в эксель, то есть вы можете экспортировать как весь список, так и отфильтрованный вами список;
      9) В модуле можно удалять записи на выбор;
      10) В модуле можно одним нажатии очищать все записи сразу. То есть он полностью очищает всю таблицу content_manager.
       
      Что не может модуль:
      БУДЬТЕ ВНИМАТЕЛЬНЫ К ЭТОМУ ПУНКТУ-------------------
      Модуль не работает, если вы используете другие менеджеры для редактирования своего контента. То есть если вы используете Bash editor или другие похожие. То модуль отслеживать действие не будет, так как модуль работает через стандартное редактирование.
       
      Зачем нужен этот модуль и как он работает?
      Иногда бывает что на сайте у вас много менеджеров или контентщиков которые правят ваш сайт. И вам надо отследить что они делает или даже вести по них учет для оплаты или других целей, то данный модуль вам поможет в этом и упростит в разы вам жизнь.
      Так же иногда может случится, если на сайте будет какая та ошибка в редактированном контенте и вам нужно найти причину или кто это сделал, то данный модуль поможет в поиске. 
      Или же просто следите за изменением вашего контента.
      Модуль не нуждается в настройках, просто установите модуль, обновите модификаторы и можете пользоваться.
      Не забывайте, что бы модуль начал записывать, нужно включить запись на странице «Учета контента», там сверху, справа сверху будет первая кнопка слева «Запустить запись»
       
      Проблемы и исправление модуля:
      1)    Вы установили модуль, обновили модификаторы, но он нигде не появился, в таком случае вам нужно в разделе «группа пользователей» дать разрешение на просмотр или изменение модуля;
      2)    При скачивании exel, выдает ошибку. В таком случае может быть ошибка с правами или лучше написать автору модуля, после чего ошибку быстро исправит.
      3)    При ошибке или баге пишите автору модуля, после чего в ближайшие время ошибку или баг будет поправлено.
      4)    Вы установили модуль, запустили запись, но ничего не записывает, скорее всего вы что-то меняли в структуре файлов или кода и модуль не находит указанного пути через ваши изменения, в данном случае это быстро исправляется путем указания правильных путей в модификаторе, но это работа с кодом. Если вы не можете это сделать, обратитесь к разработчику модуля или к своему админку или программисту, который ведет ваш сайт.
       
      Если вы заметите какие-то неполадки или у вас будет предложение по улучшению самого модуля или вам нужно доработать модуль для личных целей, пишите в личное сообщение данного сервиса, после чего я вам обязательно отвечу.
      Добавил Sunser Добавлено 22.04.2020 Категория Отчеты Системные требования Метод активации Без активации Ioncube Loader Нет OpenCart 3.0
      2.3
      2.2
      2.1
      2.0 ocStore 3.0
      2.3
      2.1 OpenCart.Pro, ocShop Обращение к серверу разработчика Нет Старая цена 0  
    • By Otvet
      Модуль позволяет настраивать сортировку товаров в категориях/производителях/поиске/акциях, а так же добавляет новые варианты сортировки товаров.
      Так же имеется возможность управлять кол-вом товара на страницу и скрывать товары не в наличии или убирать в конец списка
       
      Opencart 3.0 поддерживает с версии модуля 4.0
       
       
      Доступна версии 5.1 beta с поддержкой в т.ч. и Opencart 3.0 (по запросу)   ссылка
       
       
      Функции:
      настройка вывода пунктов сортировки в магазине выбор сортировки по умолчанию добавление сортировки по Новизне и Остатку (+ По популярности в v4) возможность выводить сначала товары в наличии выбор вариантов сортировки по наличию (статус или нулевой остаток) возможность скрыть товары не в наличии настроить список чисел вывода кол-ва товара  
       
       
      Установка 2.3:
       
      Установка 2.0-2.1:
      Зайдите в Дополнения - Установка Выберите файл *.ocmod.zip (распаковывать не нужно) После установка перейдите в Дополнения - Модификации и обновите кеш Перейдите в Дополнения - Модули и активируйте модуль SORTS+ Выберите нужные настройки и Сохраните При возникновении проблем, установите это http://www.opencart.com/index.php?route=extension/extension/info&extension_id=18892  
      Установка 1.5:
      Распакуйте архив в корень сайта Очистите папку vqcache Перейдите в Дополнения - Модули и активируйте модуль SORTS+ Выберите нужные настройки и Сохраните  
      Установка 3.0-3.1:
      Получить дистрибутив Зайдите в Дополнения - Установка Выберите файл *.ocmod.zip (распаковывать не нужно) После установка перейдите в Дополнения - Модификации и обновите кеш Перейдите в Дополнения - Модули и активируйте модуль SORTS+ Выберите нужные настройки и Сохраните
  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.