Добавляем сортировку товаров по дате в админке 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.

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