Быстро находить и редактировать карточки товаров жизненно важно для организации вашего магазина. Из коробки в админке OpenCart уже есть функции фильтрации и сортировки, но по умолчанию список выводится по id продукта. Кроме того, вы можете сортировать по названию продукта, модели, цене, количеству и статусу.
В этой статье мы продемонстрируем, как вы можете легко добавить новое поле в свой список товаров — дату создания и сортировку по дате. Это помогает быстро находить последние добавленные товары или, наоборот, самые «старые», которые требуют обновления.
Открываем свой любимый текстовый редактор (Блокнот, Sublime, Notepad++ и т. д.) Копируем и вставляем следующий код:
<modification>
<name>Добавляет сортировку товаров по дате в админке</name>
<version>1.0</version>
<code>sort–date–admin</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=““ data–toggle=“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”> </td>]]></add>
</operation>
</file>
</modification>
Сохраним файл с расширением
.ocmod.xml и загружаем его через установщик расширения ( Панель администратора> Модули/Расширения> Установка расширений ). Обновляем кеш модификаторов и протестируем эту функцию, перейдя в Каталог> Товары в панели администратора. Если изменения были применены правильно, вы должны получить результат.
Нажимая на поле « Дата» , ваши товары будут отсортированы.
Надеюсь, что это короткое и простое руководство в конечном итоге пригодится для вашего магазина OpenCart.
Вот тут можно скачать готовый файл — скачать