Быстро находить и редактировать карточки товаров жизненно важно для организации вашего магазина. Из коробки в админке 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.
Вот тут можно скачать готовый файл — скачать