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

joy777    0

Уважаемые разработчики и участники форума, приветствую вас!

Очень наболел вопрос такого характера.

У меня на сайте выстроена номенклатура, которую не желательно менять из-за регулярного обновления информации и цен по товарам. Товаров более 10 000.

Вопрос в следующем, как в поиске закрыть отображение определенных из определенных категорий? Например, алкогольная и табачная продукция есть в номенклатуре, но ее временно нельзя продавать. Я категории закрыл, но через поиск и модуль"новые поступления" товары из этих категорий все-равно выпадают в просмотр.

Подскажите как закрыть от просмотра эти товары, желательно не каждый товар отдельно, а массово, так как товаров много, упмянал выше.

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


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

Есть функционал в getProducts - искать в категориях

		if (!empty($data['filter_category_id'])) {
			if (!empty($data['filter_sub_category'])) {
				$sql .= " FROM " . DB_PREFIX . "category_path cp LEFT JOIN " . DB_PREFIX . "product_to_category p2c ON (cp.category_id = p2c.category_id)";
			} else {
				$sql .= " FROM " . DB_PREFIX . "product_to_category p2c";
			}

			if (!empty($data['filter_filter'])) {
				$sql .= " LEFT JOIN " . DB_PREFIX . "product_filter pf ON (p2c.product_id = pf.product_id) LEFT JOIN " . DB_PREFIX . "product p ON (pf.product_id = p.product_id)";
			} else {
				$sql .= " LEFT JOIN " . DB_PREFIX . "product p ON (p2c.product_id = p.product_id)";
			}
		} else {
			$sql .= " FROM " . DB_PREFIX . "product p";
		}

Вам же нужно эти категории исключить из поиска

        if (!empty($data['filter_category_id'])) {
            if (!empty($data['filter_sub_category'])) {
                $sql .= " FROM " . DB_PREFIX . "category_path cp LEFT JOIN " . DB_PREFIX . "product_to_category p2c ON (cp.category_id = p2c.category_id)";
            } else {
                $sql .= " FROM " . DB_PREFIX . "product_to_category p2c";
            }

            if (!empty($data['filter_filter'])) {
                $sql .= " LEFT JOIN " . DB_PREFIX . "product_filter pf ON (p2c.product_id = pf.product_id) LEFT JOIN " . DB_PREFIX . "product p ON (pf.product_id = p.product_id)";
            } else {
                $sql .= " LEFT JOIN " . DB_PREFIX . "product p ON (p2c.product_id = p.product_id)";
            }
        } else {
            $sql .= " FROM " . DB_PREFIX . "product p";
        }

таким образом

        if (true || !empty($data['filter_category_id'])) {
            if (!empty($data['filter_sub_category'])) {
                $sql .= " FROM " . DB_PREFIX . "category_path cp LEFT JOIN " . DB_PREFIX . "product_to_category p2c ON (cp.category_id = p2c.category_id AND cp.category_id NOT IN (23, 24,26))";
            } else {
                $sql .= " FROM " . DB_PREFIX . "product_to_category p2c";
            }

            if (!empty($data['filter_filter'])) {
                $sql .= " LEFT JOIN " . DB_PREFIX . "product_filter pf ON (p2c.product_id = pf.product_id) LEFT JOIN " . DB_PREFIX . "product p ON (pf.product_id = p.product_id)";
            } else {
                $sql .= " LEFT JOIN " . DB_PREFIX . "product p ON (p2c.product_id = p.product_id)";
            }
        } else {
            $sql .= " FROM " . DB_PREFIX . "product p";
        }

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


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

Когда товаров, которые нужно спрятать, более 3000, не легче))

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


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

Есть функционал в getProducts - искать в категориях

if (!empty($data['filter_category_id'])) {
			if (!empty($data['filter_sub_category'])) {
				$sql .= " FROM " . DB_PREFIX . "category_path cp LEFT JOIN " . DB_PREFIX . "product_to_category p2c ON (cp.category_id = p2c.category_id)";
			} else {
				$sql .= " FROM " . DB_PREFIX . "product_to_category p2c";
			}

			if (!empty($data['filter_filter'])) {
				$sql .= " LEFT JOIN " . DB_PREFIX . "product_filter pf ON (p2c.product_id = pf.product_id) LEFT JOIN " . DB_PREFIX . "product p ON (pf.product_id = p.product_id)";
			} else {
				$sql .= " LEFT JOIN " . DB_PREFIX . "product p ON (p2c.product_id = p.product_id)";
			}
		} else {
			$sql .= " FROM " . DB_PREFIX . "product p";
		}
Вам же нужно эти категории исключить из поиска

        if (!empty($data['filter_category_id'])) {
            if (!empty($data['filter_sub_category'])) {
                $sql .= " FROM " . DB_PREFIX . "category_path cp LEFT JOIN " . DB_PREFIX . "product_to_category p2c ON (cp.category_id = p2c.category_id)";
            } else {
                $sql .= " FROM " . DB_PREFIX . "product_to_category p2c";
            }

            if (!empty($data['filter_filter'])) {
                $sql .= " LEFT JOIN " . DB_PREFIX . "product_filter pf ON (p2c.product_id = pf.product_id) LEFT JOIN " . DB_PREFIX . "product p ON (pf.product_id = p.product_id)";
            } else {
                $sql .= " LEFT JOIN " . DB_PREFIX . "product p ON (p2c.product_id = p.product_id)";
            }
        } else {
            $sql .= " FROM " . DB_PREFIX . "product p";
        }
таким образом

        if (true || !empty($data['filter_category_id'])) {
            if (!empty($data['filter_sub_category'])) {
                $sql .= " FROM " . DB_PREFIX . "category_path cp LEFT JOIN " . DB_PREFIX . "product_to_category p2c ON (cp.category_id = p2c.category_id AND cp.category_id NOT IN (23, 24,26))";
            } else {
                $sql .= " FROM " . DB_PREFIX . "product_to_category p2c";
            }

            if (!empty($data['filter_filter'])) {
                $sql .= " LEFT JOIN " . DB_PREFIX . "product_filter pf ON (p2c.product_id = pf.product_id) LEFT JOIN " . DB_PREFIX . "product p ON (pf.product_id = p.product_id)";
            } else {
                $sql .= " LEFT JOIN " . DB_PREFIX . "product p ON (p2c.product_id = p.product_id)";
            }
        } else {
            $sql .= " FROM " . DB_PREFIX . "product p";
        }

Подскажите пожалуйста где именно в категориях лежит файл для редактирования. Дерево расположения.

Изменено пользователем joy777

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


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

Делаю все по инструкции, не выходит. Фильтр не срабатывает.

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


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

Товары из этих категорий все-равно выпадают в поиск.

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


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

ах да

 

Код не совсем корректен

 

Этого мало

 

но важно то что нужно еще исключить

 

AND cp.category_id NOT IN (23, 24,26))

 

$sql .= " LEFT JOIN " . DB_PREFIX . "product p ON (p2c.product_id = p.product_id AND cp.category_id NOT IN (23, 24,26))";

 

 

Стандартный фильтр вы, возможно не будете использовать

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


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

При добавлении и этого кода, все-равно товары из выбранных категорий выпадают на сайте при запросе.

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


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

update product set status=0 where prodict_id in (select product_id from product_to_category where category_id in (23,24))

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


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

Я конечно не знаю, только в этой теме так или в других тоже, ребята пишут ответы, под видом помощи, НО все это чтобы потом доработать, якобы, за деньги.

 

Кто знает поделитесь, как на самом деле можно изменить код, чтобы тупо по ID категорий убрать из поиска товары. :-)

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


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

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

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

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

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

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

Войти

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

Войти


  • Похожий контент

    • От Anzor
      Привет! Никак не найду модуль, умеющий скрывать товары из определенной категории из поиска - то есть все товары, помещаемые в конкретно определенную категорию не должны отображаться на сайте и не должны находиться в поиске сайта. Нашел такой функционал для старых версий, для 2.3 на форуме нет.
    • От magzhan9292

      300 RUB
      View File


      Noticeup Livesearch
      Модуль для создание живого, красивого, быстрого, удобного поиска на сайте.
       
      Модуль Noticeup Livesearch позволяет моментально выводить результаты прямо в поисковой строке. Модуль создан с помощью тщательно проверенных плагина jquery что является плюсом, зашкаливает кросбраузерность, также имеется кэширование запросов что влияет на быстроту. Модуль использует модификаторы (лёгкая и безопасная установка), что исключает поломку или сбой системы после установки.
       
      Можно
      Выводить фото, наименования, модель, производителей, цен Указать с какого символа начнется поиск элементов Указать количество элементов в поиске Сгруппировывать по производителям Так же легко можно поменять дизайн выводимых элементов по своему вкусу (путь указан в дополнении)  
      Установка
      зайти в Панель управления -> Модули -> Установка расширений установить модуль перейти в Панель управления -> Модули -> Модификаторы обновить и активировать модификатор Активируйте модуль если того требует система Модуль совместим со всеми темами по-умолчанию (при возникновении трудностей с установкой напишите нам и мы обязательно поможем)
       
      Тестировался на версии
      Opencart 3.0.2.0 Opencart 2.3.0.2 Opencart 2.2.0.0 Opencart 2.1.0.1 Opencart 2.0.1.0 Ocstore 2.3.0.2  
      Демо версию можно увидеть через ссылку ниже
      http://livesearch.365day.kz/
       
      Администраторская 
      http://livesearch.365day.kz/admin/index.php?route=module/noticeuplivesearch
      demo
      demo
       
      Обсуждения проекта находиться здесь
       
      Submitter magzhan9292 Submitted 11/19/2017 Category Search Системные требования Сайт разработчика Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 3.0
      2.3
      2.2
      2.1
      2.0 ocStore 2.3
      2.2
      2.1 OpenCart.Pro, ocShop Не проверялось  
    • От magzhan9292
      Модуль для создание живого, красивого, быстрого, удобного поиска на сайте.
       
      Модуль Noticeup Livesearch позволяет моментально выводить результаты прямо в поисковой строке. Модуль создан с помощью тщательно проверенных плагина jquery что является плюсом, зашкаливает кросбраузерность, также имеется кэширование запросов что влияет на быстроту. Модуль использует модификаторы (лёгкая и безопасная установка), что исключает поломку или сбой системы после установки.
       
      Можно
      Выводить фото, наименования, модель, производителей, цен Указать с какого символа начнется поиск элементов Указать количество элементов в поиске Сгруппировывать по производителям Так же легко можно поменять дизайн выводимых элементов по своему вкусу (путь указан в дополнении)  
      Установка
      зайти в Панель управления -> Модули -> Установка расширений установить модуль перейти в Панель управления -> Модули -> Модификаторы обновить и активировать модификатор Активируйте модуль если того требует система Модуль совместим со всеми темами по-умолчанию (при возникновении трудностей с установкой напишите нам и мы обязательно поможем)
       
      Тестировался на версии
      Opencart 3.0.2.0 Opencart 2.3.0.2 Opencart 2.2.0.0 Opencart 2.1.0.1 Opencart 2.0.1.0 Ocstore 2.3.0.2  
      Демо версию можно увидеть через ссылку ниже
      http://livesearch.365day.kz/
       
      Администраторская 
      http://livesearch.365day.kz/admin/index.php?route=module/noticeuplivesearch
      demo
      demo
       
      Обсуждения проекта находиться здесь
       
    • От TemaPerets
      На сайте в названии товаров присутствует знак "\", например, Настенный кондиционер Green GRI\GRO - 07 HH1. При вбивании в строку поиска этой части GRI\GRO выдает сообщение "Нет товаров, которые соответствуют критериям поиска."  Поиск не изменял, доп. модулей для поиска не установлено, версия OpenCart Pro 2.1.0.2.2.
      P.S. Напишите, пожалуйста, хотя бы с чего начать)
    • От AlexDW

      350.00 руб
      Скачать/Купить дополнение


      Autocomplete Plus - улучшенный поиск товаров в админке
      Autocomplete Plus - улучшенный поиск товаров с автозаполнением в админке для Opencart 1.5.x
      Стандартный поиск товаров с автозаполнением в админке выводит лишь название товара и ищет только по названию с начальным совпадением.
       
      Autocomplete Plus значительно расширяет его возможности, позволяя искать товары по Model, SKU, UPC, EAN, JAN, ISBN, MPN или Location, с возможностью поиска по нескольким словам или их частям, делая поиск более удобным, информативным, охватывающим и гибким в настройке.
       
      Расширенное автозаполнение доступно:
      - в списке товаров
      - в карточке товара при выборе сопутствующих товаров *
      - в модуле Рекомендуемые (Featured) при выборе рекомендуемых товаров
      - при редактировании заказа (добавлении товаров в заказ)
      - при создании отзыва
      ===
      * для OCSHOP также поддерживается автозаполнение для рекомендуемых товаров
       
      DEMO
       
      Особенности:
      - показ изображения товара в результатах поиска
      - показ цены товара, в том числе акционной
      - показ дополнительного поля товара на выбор
             доступны поля Model, SKU, UPC, EAN, JAN, ISBN, MPN или Location ** - поиск по названию или части названия
             кроме названия доступен поиск товаров по Model, SKU, UPC, EAN, JAN, ISBN, MPN и Location ** - поиск по комбинации слов, пробел используется в качестве разделителя
             например on 3 выведет все товары, в названии или полях которых есть и on, и 3 - ссылки в списке для быстрого перехода к просмотру товара в магазине и его редактированию в админке *new
      - показ и поиск по имени производителя *new
      - показ количества товара *new
      - задание лимита результатов для вывода
      - совместим с ocStore / OCSHOP / Opencart версий 1.5.1.x - 1.5.6.x
       
      ===
      *new - новый функционал с версии 1.20
       
      ** поля EAN, JAN, ISBN и MPN появились только с версии 1.5.4.1
      модуль автоматически определит наличие доступных полей и скроет отсутствующие из настроек
       
       
      Системные требования:
      - VQMOD;
      - PHP 5.3 или выше;
      - CURL;
      - mbstring;
       
      проверить совместимость можно здесь
       
      Установка:
      1. Скопировать содержимое папки UPLOAD в каталог Opencart (стандартные файлы не меняются)
      2. Добавить права на module/autocompleteplus в Система > Пользователи > Группы пользователей
      3. Установить модуль Autocomplete Plus в Дополнения > Модули
      4. Настроить модуль, ввести ключ лицензии и сохранить настройки
       
      Обновление до версии 1.20:
      - убедитесь что ваш хостинг соответствует системным требованиям
      - отправьте запрос на получение ключа (см. Лицензия)
      - удалите предыдущую версию Autocomplete Plus в Дополнения > Модули
      - очистите кеш браузера и следуйте инструкции по установке
       
      Условия использования:
      Модуль распространяется по принципу 1 покупка = 1 домен и его поддомены
      Для использования модуля на другом домене нужно приобрести еще одну копию модуля
      Запрещается несанкционированное использование, копирование, перепродажа, передача модуля третьим лицам, а также иные способы распространения, в том числе в ознакомительных целях.
       
      В целях защиты дополнения от нелегального использования часть управляющих файлов модуля обфусцирована(закодирована), при этом контроллер, модель и шаблон имеют открытый код.
      Автор гарантирует отсутствие вредоносного кода, бекдоров и сбора какой-либо информации в закодированных частях модуля.

      Лицензия:
      Для работы модуля на внешнем сервере требуется код активации (лицензия)
      (не требует активации на локальном сервере при использовании ip 127.0.0.1)
      Для получения кода отправьте запрос автору в ЛС с использованием учетной записи на которую производилась покупка модуля, указав номер покупки и скопировав данные о сервере/хосте из настроек модуля.
      Лицензия выдается с привязкой к домену из расчета "одна покупка = один домен". Лицензия бессрочна, без ограничений по времени, действует на основной домен и его поддомены.
       
      Также предусмотрена возможность переноса лицензии на новый домен в случае переезда/смены доменного имени.
      При смене лицензии будет выслан новый ключ, старый ключ аннулируется (становится недействительным)
      Для смены лицензии отправьте запрос о переносе автору в ЛС с использованием учетной записи на которую производилась покупка модуля, указав номер покупки и скопировав данные о сервере/хосте из настроек модуля со старого домена и аналогичные данные нового домена, на который будет осуществлен перенос.
       
      Максимальное время получения ключа не превышает 36 часов с момента запроса
      обычно ключ выдается значительно раньше
       
      Версия модуля для движков 2.x доступна здесь
       
       
      Другие дополнения:
      ---------------------------
      AutoField - автозаполнение полей товаров
      CategoryManager - менеджер категорий в админке
      AutoSearch - поиск с автозаполнением в магазине
      ModalWindow - всплывающее окно с подтверждением или информацией
      Добавил AlexDW Добавлено 23.05.2016 Категория Поиск Системные требования PHP 5.3 или выше; CURL; mbstring; VQMOD Сайт разработчика Старая цена Метод активации По запросу в ЛС Ioncube Loader Нет OpenCart 1.5.6.4
      1.5.6.3
      1.5.6.2
      1.5.6.1
      1.5.6
      1.5.4.1
      1.5.3.1 ocStore 1.5.5.1.2
      1.5.5.1.1
      1.5.5.1
      1.5.4.1.2
      1.5.4.1.1
      1.5.4.1
      1.5.3.1
      1.5.2.1
      1.5.1.3 OpenCart.Pro, ocShop OcShop 1.5.6.4.х  
  • Последние посетители   0 пользователей онлайн

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