supmener

Как найти и скрыть или удалить подкатегории без товаров?

Рекомендуемые сообщения

supmener    12

Так получается, что некоторые категории из заранее созданного списка останутся без товаров. Как их найти все автоматически, чтобы не пролистывать вручную множество страниц оглавления и скрыть или удалить быстро?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Fedka    102

Если скрыть при выводе на фронте, можно поставить проверку на количество товаров в категории, и если 0, то не выводить категорию, если больше 0, то выводить...и не забыть это действие сделать не только в меню, но и на странице вывода категории, для подкатегорий

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
supmener    12

Это интересует именно для подкатегорий. А как такая проверка на количество товаров настраивается?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Fedka    102

Для админки это нужно сделать или для фронта?

Если речь идет про фронт, то в месте где идет формирование массива категории, для примера опишу модуль "Категории". У меня OpenCart 2.1.x

Массив формируется с 34-62 строчку

Необходимо, добавить проверку на наличие товара

Из:

$children_data[] = array(
	'category_id' => $child['category_id'],
	'name' => $child['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''),
	'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id'])
);

Сделать:

if ($this->model_catalog_product->getTotalProducts($filter_data) > 0) {
	$children_data[] = array(
		'category_id' => $child['category_id'],
		'name' => $child['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''),
		'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id'])
	);
}

И из:

$data['categories'][] = array(
	'category_id' => $category['category_id'],
	'name'        => $category['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''),
	'children'    => $children_data,
	'href'        => $this->url->link('product/category', 'path=' . $category['category_id'])
);

Сделать:

if ($this->model_catalog_product->getTotalProducts($filter_data) > 0) {
	$data['categories'][] = array(
		'category_id' => $category['category_id'],
		'name'        => $category['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''),
		'children'    => $children_data,
		'href'        => $this->url->link('product/category', 'path=' . $category['category_id'])
	);
}

В таком случае, на фронте в модуле меню, не будут выводится категории где нет товаров.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу