- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Тренды маркетинга в 2024 году: мобильные продажи, углубленная аналитика и ИИ
Экспертная оценка Адмитад
Оксана Мамчуева

В 2023 году 36,9% всех DDoS-атак пришлось на сферу финансов
А 24,9% – на сегмент электронной коммерции
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Здравствуйте ! Столкнулся с проблемой. На сайте свыше 300 категорий и нужно не показывать категории, в которых нет товара.
Вся проблема в том, что Opencart 3, и нет решений, обрыл все.
Может кто знает решение ?
Заранее спасибо.
Или может кто подскажет как удалить категории в которых нет товаров ?
Покопаться в коде надо:
https://forum.opencart.com/viewtopic.php?t=139068
---------- Добавлено 25.01.2019 в 12:20 ----------
Ну и модуль за двацатку продают:
https://www.opencart.com/index.php?route=marketplace/extension/info&extension_id=24339&filter_download_id=35&page=2
Купил этот https://shop.opencart-russia.ru/udalenie-pustyih-proizvoditeley-kategoriy а он отказывается работать как надо. Понял что надо другим путём, он работает как запрос:
$categories = $this->model_catalog_category->getCategories(0);
foreach ($categories AS $category) {
$product = $this->db->query("SELECT product_id FROM " . DB_PREFIX . "product_to_category WHERE category_id = '" . (int)$category['category_id'] . "'");
if ($product->num_rows == 0) {
$this->model_catalog_category->deleteCategory($category['category_id']);
}
}
Но его проблем в том, что он удаляет также родительские категории, т.е. если в подкатегории есть товар, а в родительской нету, то сносит и родительскую.
Помогите пожалуйста оптимизировать запрос, извращался по разному, знания не позволяют добиться нужного...
Сделайте
print_r($category);
exit;
надо посмотреть, если ли дочерняя категория у текущей категории.
т.е. надо проработать логику, чтобы работало только с дочерними категорями.
У вас же явно нет главных категорий в которых нет товаров.
LEOnidUKG, большое спасибо за постоянную помощь !
exit;
Это в исполняемый файл вставить ?
Это сразу после:
foreach ($categories AS $category) {
---------- Добавлено 25.01.2019 в 13:50 ----------
Нам просто структуру надо посмотреть, что там есть.
Это сразу после:
foreach ($categories AS $category) {
---------- Добавлено 25.01.2019 в 13:50 ----------
Нам просто структуру надо посмотреть, что там есть.
Спасибо ! Выдало вот это:
А сами категории у меня так:
т.е. если есть в категории Гигиена и уход за ребенком > Детская стирка товар, а в Гигиена и уход за ребенком нет, то оно сносит и родительскую Гигиена и уход за ребенком
foreach ($categories AS $category) {
if (!$category['parent_id']) {continue;} //Если категория родительская ничего не делаем
LEOnidUKG, огромное спасибо за ответы, достал уже Вас конкретною Но так скрипт вообще ничего не удаляет (((
Вот так сделал:
$this->load->model('catalog/category');
$categories = $this->model_catalog_category->getCategories(0);
foreach ($categories AS $category) {
if (!$category['parent_id']) {continue;}
$product = $this->db->query("SELECT product_id FROM " . DB_PREFIX . "product_to_category WHERE category_id = '" . (int)$category['category_id'] . "'");
if ($product->num_rows == 0) {
$this->model_catalog_category->deleteCategory($category['category_id']);
}
}
?>
Ёмаё, да он же вообще просто берёт только главные категории.