Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


Recommended Posts

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

Надіслати
Поділитися на інших сайтах


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

  • +1 1
Надіслати
Поділитися на інших сайтах

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

Если речь идет про фронт, то в месте где идет формирование массива категории, для примера опишу модуль "Категории". У меня 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'])
	);
}

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

  • +1 1
Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.