Добавляем сортировку товаров по дате в админке Opencart 2.x

Быстро находить и редактировать карточки товаров жизненно важно для организации вашего магазина. Из коробки в админке OpenCart уже есть функции фильтрации и сортировки, но по умолчанию список выводится по id продукта. Кроме того, вы можете сортировать по названию продукта, модели, цене, количеству и статусу.

В этой статье мы продемонстрируем, как вы можете легко добавить новое поле в свой список товаров — дату создания и сортировку по дате. Это помогает быстро находить последние добавленные товары или, наоборот, самые «старые», которые требуют обновления.

Открываем свой любимый текстовый редактор (Блокнот, Sublime, Notepad++ и т. д.) Копируем и вставляем следующий код:

<modification>
    <name>Добавляет сортировку товаров по дате в админке</name>
    <version>1.0</version>
    <code>sortdateadmin</code>
    <file path=«admin/controller/catalog/product.php»>
        <operation>
            <search><![CDATA[protected function getList() {]]></search>
            <add position=«after»><![CDATA[if (isset($this->request->get[‘filter_date_added’])) {
                  $filter_date = $this->request->get[‘filter_date_added’];
                      } else {
                            $filter_date = null;
                      }
             ]]></add>
        </operation>
        <operation>
            <search><![CDATA[‘filter_status’   => $filter_status,]]></search>
            <add position=«after»><![CDATA[‘filter_date’     => $filter_date,
           ]]></add>
        </operation>
        <operation>
            <search><![CDATA[
              ‘status’     => $result[‘status’] ? $this->language->get(‘text_enabled’) : $this->language->get(‘text_disabled’),
              ]]></search>
            <add position=«after»><![CDATA[
                  ‘date_added’ => $result[‘date_added’],
             ]]></add>
        </operation>
        <operation>
            <search><![CDATA[ $data[‘breadcrumbs’] = array();]]></search>
            <add position=«before» index=«1»><![CDATA[                        
                    if (isset($this->request->get[‘filter_date_added’])) {
                        $url .= ‘&filter_date_added=’ . $this->request->get[‘filter_date_added’];
                    }
                ]]></add>
        </operation>
    </file>    
    <file path=«admin/model/catalog/product.php»>
        <operation>
            <search><![CDATA[$sql = «SELECT * FROM « . DB_PREFIX . «product p LEFT JOIN « . DB_PREFIX . «product_description pd ON (p.product_id = pd.product_id)»;]]></search>
            <add position=«after»><![CDATA[if (isset($data[‘filter_date_added’]) && !is_null($data[‘filter_date_added’])) {
                      $sql .= » ORDER BY p.date_added ‘» . (int)$data[‘filter_date_added’] . «‘»;
                     }
               ]]></add>
        </operation>
        <operation>
            <search><![CDATA[‘p.sort_order’]]></search>
            <add position=«before»><![CDATA[
                ‘p.date_added’,
             ]]></add>
        </operation>
    </file>
    <file path=«admin/view/template/catalog/product_list.tpl»>
        <operation>
            <search><![CDATA[<td class=«text-right»></td>]]></search>
            <add position=«before»><![CDATA[
                <td class=«text-left»>
                    <a href=««>Дата </a>
                </td>
            ]]></add>
        </operation>
        <operation>
            <search><![CDATA[<td class=«text-right»><a href=«« datatoggle=«tooltip» title=«« class=«btn btn-primary»><i class=«fa fa-pencil»></i></a></td>]]></search>
            <add position=«before»><![CDATA[
                    <td class=«text-left»></td>
              ]]></add>
        </operation>
        <operation>
            <search><![CDATA[<button type=«button» id=«button-filter» class=«btn btn-primary pull-right»><i class=«fa fa-search»></i> </button>]]></search>
            <add position=«before»><![CDATA[<td class=«center»>&nbsp</td>]]></add>
        </operation>
    </file>
</modification>
Сохраним файл с расширением .ocmod.xml и загружаем его через установщик расширения ( Панель администратора> Модули/Расширения> Установка расширений ). Обновляем кеш модификаторов и протестируем эту функцию, перейдя в Каталог> Товары в панели администратора. Если изменения были применены правильно, вы должны получить результат.

Нажимая на поле « Дата» , ваши товары будут отсортированы.

Надеюсь, что это короткое и простое руководство в конечном итоге пригодится для вашего магазина OpenCart.

Вот тут можно скачать готовый файл — скачать