Rose debug info
---------------

OpenCart: как добавить фильтр по артикулу в админке

В стандартном фильтре в админке нельзя «фильтровать» товары по артикулу. Когда у вас тысячи товаров, такой фильтр в разы ускоряет поиск конкретного товара.

Что делать

  1. Открываем сайт/admin/controller/catalog/product.php
  1. Находим код (~227 строка):
protected function getList() {
  1. После фигурной скобки вставляем:
if (isset($this->request->get['filter_sku'])) {
	$filter_sku = $this->request->get['filter_sku'];
} else {
	$filter_sku = '';
}
$data['filter_sku'] = $filter_sku;
  1. В том же файле находим (~276 строка):
$url = ''
  1. После вставляем:
if (isset($this->request->get['filter_sku'])) {
	$url .= '&filter_sku=' . $this->request->get['filter_sku'];
}
  1. В том же файле находим (~324 строка):
$filter_data = array(
  1. После скобки вставляем:
'filter_sku' => isset($filter_sku) ? $filter_sku : '',
  1. Сохраняем, обновляеем кэш.
  1. Открываем сайт/admin/model/catalog/product.php
  1. Находим код (~361 строка):
if (!empty($data['filter_name'])) {
	$sql .= " AND pd.name LIKE '" . $this->db->escape($data['filter_name']) . "%'";
}
  1. После него вставляем:
if (isset($this->request->get['filter_sku']) && !empty($data['filter_sku'])) {
	$sql .= " AND p.sku = '" . $this->db->escape($data['filter_sku']) . "'";
}
  1. Сохраняем, обновляем кэш.
  1. Открываем сайт/admin/view/template/catalog/product_list.twig
  1. Находим код (~68 строка):
<div class="form-group">
	<label class="control-label" for="input-quantity">{{ entry_quantity }}</label>
	<input type="text" name="filter_quantity" value="{{ filter_quantity }}" id="input-quantity" class="form-control" />
</div>
  1. После него вставляем:
<div class="form-group">
	<label class="control-label" for="input-sku">Артикул</label>
	<input type="text" name="filter_sku" value="{{ filter_sku }}" id="input-sku" class="form-control" />
</div>
  1. В том же файле находим (~227 строка):
var filter_status = $('select[name=\'filter_status\']').val();
  1. После него вставляем:
var filter_sku = $('input[name=\'filter_sku\']').val();

if (filter_sku) {
	url += '&filter_sku=' + encodeURIComponent(filter_sku);
}
  1. Сохраняем, обновляем кэш.
  1. Готово.
Поделиться
Отправить
 1190   2020   OpenCart 3   работа