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

Как фильтровать товары из дочерних категорий?


pryby

Recommended Posts

Есть категория общая, в ней товаров нет, есть дочерние, как сделать что бы фильтры были постоянны, а не только если они привязаны в админке к категории? При переходе на общую категорию, фильтров нет, так как все товары в дочерних, как сделать что бы можно было фильтровать и желательно что бы фильтры всегда были?

Змінено користувачем pryby
Надіслати
Поділитися на інших сайтах


в файле catalog\controller\product\category.php

вот здесь

			$data['products'] = array();

			$filter_data = array(
				'filter_category_id' => $category_id,
				'filter_filter'      => $filter,
				'sort'               => $sort,
				'order'              => $order,
				'start'              => ($page - 1) * $limit,
				'limit'              => $limit
			);

можно добавить filter_sub_category

			$data['products'] = array();

			$filter_data = array(
				'filter_category_id' => $category_id,
				'filter_sub_category' => true,
				'filter_filter'      => $filter,
				'sort'               => $sort,
				'order'              => $order,
				'start'              => ($page - 1) * $limit,
				'limit'              => $limit
			);

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

Кстати, по-моему OcFilter это может, как вы хотите, посмотрите в его сторону

Змінено користувачем Prooksius
Надіслати
Поділитися на інших сайтах

55 минут назад, Prooksius сказал:

Кстати, по-моему OcFilter это может, как вы хотите, посмотрите в его сторону

 Может, но автор рекомендует это делать при не большом кол-ве подкатегорий.

Ну и никто не мешает добавить в родительскую категорию товары из дочек - ПС уже давно умеют разбираться с дублями, а в случае с OCStore этой прблемы нет совсем.

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


11 часов назад, Prooksius сказал:

в файле catalog\controller\product\category.php

вот здесь


			$data['products'] = array();

			$filter_data = array(
				'filter_category_id' => $category_id,
				'filter_filter'      => $filter,
				'sort'               => $sort,
				'order'              => $order,
				'start'              => ($page - 1) * $limit,
				'limit'              => $limit
			);

можно добавить filter_sub_category


			$data['products'] = array();

			$filter_data = array(
				'filter_category_id' => $category_id,
				'filter_sub_category' => true,
				'filter_filter'      => $filter,
				'sort'               => $sort,
				'order'              => $order,
				'start'              => ($page - 1) * $limit,
				'limit'              => $limit
			);

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

Кстати, по-моему OcFilter это может, как вы хотите, посмотрите в его сторону

это я уже сделал, мне нужен именно фильтр, не подскажите как вы его делали?

 

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


11 часов назад, Prooksius сказал:

в файле catalog\controller\product\category.php

вот здесь


			$data['products'] = array();

			$filter_data = array(
				'filter_category_id' => $category_id,
				'filter_filter'      => $filter,
				'sort'               => $sort,
				'order'              => $order,
				'start'              => ($page - 1) * $limit,
				'limit'              => $limit
			);

можно добавить filter_sub_category


			$data['products'] = array();

			$filter_data = array(
				'filter_category_id' => $category_id,
				'filter_sub_category' => true,
				'filter_filter'      => $filter,
				'sort'               => $sort,
				'order'              => $order,
				'start'              => ($page - 1) * $limit,
				'limit'              => $limit
			);

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

Кстати, по-моему OcFilter это может, как вы хотите, посмотрите в его сторону

может быть прописать на каждую кнопку фильтра роут и все? или это совсем плохое решение? нужно срочно сделать их рабочими, не могу придумать как

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


12 часов назад, pryby сказал:

Есть категория общая, в ней товаров нет, есть дочерние, как сделать что бы фильтры были постоянны, а не только если они привязаны в админке к категории? При переходе на общую категорию, фильтров нет, так как все товары в дочерних, как сделать что бы можно было фильтровать и желательно что бы фильтры всегда были?

 

это можно в FilterVier_SEO сделать -

 

1_admin_parent.thumb.png.08fe753df79213d61d28232b848bb9e9.png

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

1 минуту назад, vier сказал:

 

это можно в FilterVier_SEO сделать -

 

1_admin_parent.thumb.png.08fe753df79213d61d28232b848bb9e9.png

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

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


19 минут назад, pryby сказал:

может быть прописать на каждую кнопку фильтра роут и все? или это совсем плохое решение? нужно срочно сделать их рабочими, не могу придумать как

покажите сайт

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

так у вас был вопрос, как отобразить категорию, которая сейчас активна?
А где ваши категории показываются в фильтре? Или где они вообще?

 

Я вижу в фильтре только выбор параметров фильтрации.

Змінено користувачем Prooksius
Надіслати
Поділитися на інших сайтах

2 минуты назад, Prooksius сказал:

так у вас был вопрос, как отобразить категорию, которая сейчас активна?
А где ваши категории показываются в фильтре? Или где они вообще?

 

Я вижу в фильтре только выбор параметров фильтрации.

вот у меня категории в фильтрах, там я хочу их выводить постоянно, но не знаю как это сделать правильно. Сейчас они скрыты, так как не принадлежат категории этой. Вот тут видны, но не работают. https://blackprice.by/index.php?route=product/category&path=177 . А как лучше вывести категории что бы можно было их выбирать как фильтр? например бренд и цену с обьемом памяти?

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


4 минуты назад, Prooksius сказал:

так у вас был вопрос, как отобразить категорию, которая сейчас активна?
А где ваши категории показываются в фильтре? Или где они вообще?

 

Я вижу в фильтре только выбор параметров фильтрации.

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

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


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

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

1 минуту назад, Prooksius сказал:

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

Дело в том, что я с опенкартом слабо очень знаком, еще это покупной шаблон который 3 раз переделывается и до меня тут столько всего вырезали, что многое работает не так. Поэтому я не совсем понял что вы хотите, могу привести вам код что сейчас есть. Вот он.

<ul id="filter-group<?php echo $filter_group['filter_group_id']; ?>" class="catalogue__brands">
<?php foreach ($filter_group['filter'] as $i=> $filter) { ?>

   <?php if($filter['isactive']){?>

   <li class="catalogue__brands-item">
      <?php if (in_array($filter['filter_id'], $filter_category)) { ?>
      <input type="checkbox" id="filter-<?php echo $filter['filter_id']; ?>-<?php echo $i; ?>" value="<?php echo $filter['filter_id']; ?>" name="filter[]" checked="checked">
      <label for="filter-<?php echo $filter['filter_id']; ?>-<?php echo $i; ?>"><?php echo $filter['name']; ?></label>
      <?php } else { ?>
      <input type="checkbox" id="filter-<?php echo $filter['filter_id']; ?>-<?php echo $i; ?>" value="<?php echo $filter['filter_id']; ?>" name="filter[]" >
      <label for="filter-<?php echo $filter['filter_id']; ?>-<?php echo $i; ?>"><?php echo $filter['name']; ?></label>
      <?php } ?>
   </li>
   
   <?php } ?>
   
<?php } ?>

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

 

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


Еще раз. Чтобы вам помочь, нужно видеть, как оно работает на данный момент.
А на данный момент оно вообще не работает. Вы там кучу наменяли неизвестно чего и теперь просите, чтобы вам помогли, прочитали ваши мысли, а что же вы там наменяли, какие ошибки совершили...
Лично я за это не взялся бы, уж простите.

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

Только что, Prooksius сказал:

Еще раз. Чтобы вам помочь, нужно видеть, как оно работает на данный момент.
А на данный момент оно вообще не работает. Вы там кучу наменяли неизвестно чего и теперь просите, чтобы вам помогли, прочитали ваши мысли, а что же вы там наменяли, какие ошибки совершили...
Лично я за это не взялся бы, уж простите.

Дело в том, что менял не я. Я ж поэтому и прошу помочь. Я могу любой код вам дать тот что нужен, а выводится оно вот так в данный момент, по другому не было. Вот тут работают фильтры , но они есть там не все. https://blackprice.by/index.php?route=product/category&path=177_65

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


3 минуты назад, pryby сказал:

а выводится оно вот так в данный момент, по другому не было.

надо значит вернуть все отображение как было задумано разработчиком фильтра.
Вам вряд ли кто-то поможет в такой ситуации.

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

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

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

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

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

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

Вхід

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

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

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

Important Information

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