Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

OCFilter - Модуль фільтру товарів [Поддержка]


SooR
 Поделиться

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

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

 

Тоже интересует этот вопрос. Ответьте, пожалуйста! Можно ли сделать фильтр в Производителе?

Есть бош, он делает и дрели, и посудомойку, как будем фильтровать?:)

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


1 час назад, n3bo сказал:

Есть бош, он делает и дрели, и посудомойку, как будем фильтровать?:)

 

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

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


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

 

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

 

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

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


кто подскажет, как решить проблему с подвязкой страниц к странице окфильтра?

не удается создать посадочные страницы

покопался по интернету и понял, что это скорее всего из-за того, что нельзя подвязать категорию к странице.

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

+ ко всему - в строке СЕО текст нет форматирования текста.

Подскажите, как можно решить эту проблему?

 

Опенкарт 2,3 русская сборка

Окфильтр 4.19

https://alexshop.com.ua

скрин настройки:

1.png

2.png

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


Подскажите можно ли как-то это решить?

 

Например есть категория - Стулья.

Есть фильтр: Цвет - коричневый и Цвет - красный

Для обоих фильтров сделала посадочная страница: Стулья красные, Стулья коричневые.

 

Если фильтровать Стулья - красные, то попадаем на страницу. site.ru/stulya/krasnye/

Но если с этой страницы попробовать добавить еще галочку на "красные" (фильтровать красные+коричневые), то происходит редирект на site.ru/stulya/krasnye/

 

Тоесть с адреса site.ru/stulya/cvet/krasnye/korichnevye/ происходит редирект на site.ru/stulya/krasnye/

 

Хотя должна генерироваться страница Стулья красные + коричневы (для которой не настроена СЕО страница)

 

 

Итог: не получается фильтровать 2 посадочные страницы, происходит редирект на ту, которая ближе адресу, то есть с site.ru/stulya/cvet/krasnye/korichnevye/ или site.ru/stulya/cvet/krasnye/zheltye/ на site.ru/stulya/krasnye/

Изменено пользователем dreanei23
Ссылка на комментарий
Поделиться на других сайтах

3 часа назад, dreanei23 сказал:

Подскажите можно ли как-то это решить?

 

Например есть категория - Стулья.

Есть фильтр: Цвет - коричневый и Цвет - красный

Для обоих фильтров сделала посадочная страница: Стулья красные, Стулья коричневые.

 

Если фильтровать Стулья - красные, то попадаем на страницу. site.ru/stulya/krasnye/

Но если с этой страницы попробовать добавить еще галочку на "красные" (фильтровать красные+коричневые), то происходит редирект на site.ru/stulya/krasnye/

 

Тоесть с адреса site.ru/stulya/cvet/krasnye/korichnevye/ происходит редирект на site.ru/stulya/krasnye/

 

Хотя должна генерироваться страница Стулья красные + коричневы (для которой не настроена СЕО страница)

 

 

Итог: не получается фильтровать 2 посадочные страницы, происходит редирект на ту, которая ближе адресу, то есть с site.ru/stulya/cvet/krasnye/korichnevye/ или site.ru/stulya/cvet/krasnye/zheltye/ на site.ru/stulya/krasnye/

 

 

В общем сам разобрался, это из-за того, что URL значения cvet/krasnye совпадал с URL СЕО страницы stulya/krasnye

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

Здравствуйте.

 

Пользуюсь фильтром уже давно на Опенкарт 1.5 - всё работает прекрасно. Спасибо разработчику за супер дополнение.

 

Тестирую сейчас версию OcStore 2.3. Установил последнюю версию фильтра. Возможно что то изменилось в структуре. Не могу разобраться как нужно точно им пользоваться. Не хочу нагружать разработчика - у него и так времени очень мало на всех. Помогите разобраться. Возможно я не так что то делаю или модуль криво стал???

 

Проблема в том, что не появляются атрибуты в характеристиках на стр товара если выбирать атрибуты в вкладке "Опции фильтра" (на действующем старом магазине - выбираю атрибуты в этой вкладке и всё работает). Если атрибуты заполнять в вкладке "Атрибуты" - тогда всё появляется. Но так намного дольше проходит оформление, что очень не удобно.

 

Надеюсь понятно изложил вопрос. Спасибо.

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


НА последней закладке есть чекбоксы копировать атрибуты, копировать опции, а чуть ниже кнопка Копировать.

Кстати, ее же надо нажимать, если вы выбираете очистку фильтров.

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


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

НА последней закладке есть чекбоксы копировать атрибуты, копировать опции, а чуть ниже кнопка Копировать.

Кстати, ее же надо нажимать, если вы выбираете очистку фильтров.

 

Пробовал - не помогает.

В действующем магазине так делаю только тогда - когда впервые оформляю атрибуты. Потом дописываю или редактирую значения этих атрибутов в опциях в фильтре. А в самом товаре - в вкладке "Опции фильтра" - просто выбираю нужные значения и сохраняю товар. Всё работает без дополнительных манипуляций. Щас на новом двиге так не получается.

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


В 04.06.2017 в 09:15, Sergeyy84 сказал:

Подскажите, некоторые атрибуты не нужны (бесполезны) в фильтре (15-20 атрибутов). В настройках фильтра их можно отключить. Но при очистке и копировании атрибутов они снова появляются. И так каждый раз приходится отключать 20-30 атрибутов. Это занятие поднадоело. Реально ли как-то их полностью отключить раз и навсегда?

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

1) в таблице attribute создаем новое поле в конце oc_filter, по умолчанию null
2) attribute_form.tpl перед </form>

		    <div class="form-group">
            <label class="col-sm-2 control-label" for="input-sort-order">Display in oc_filter</label>
            <div class="col-sm-10">
			  
			      <div class="checkbox">
                    <label>
                      <?php if ($oc_filter) { ?>
                      <input type="checkbox" name="oc_filter" value="1" checked="checked" id="input-oc_filter" />
                      <?php } else { ?>
                      <input type="checkbox" name="oc_filter" value="1" id="input-oc_filter" />
                      <?php } ?>
                      &nbsp; </label>
                  </div>
			  
            </div>
          </div>

3) контроллер attribute.php в функции protected function getForm(), после

		if (isset($this->request->post['sort_order'])) {
			$data['sort_order'] = $this->request->post['sort_order'];
		} elseif (!empty($attribute_info)) {
			$data['sort_order'] = $attribute_info['sort_order'];
		} else {
			$data['sort_order'] = '';
		}

вставляем
 

		if (isset($this->request->post['oc_filter'])) {
			$data['oc_filter'] = $this->request->post['oc_filter'];
		} elseif (!empty($attribute_info)) {
			$data['oc_filter'] = $attribute_info['oc_filter'];
		} else {
			$data['oc_filter'] = 0;
		}

4) модель attribute.php
меняем функцию

	public function editAttribute($attribute_id, $data) {
		$this->db->query("UPDATE " . DB_PREFIX . "attribute SET attribute_group_id = '" . (int)$data['attribute_group_id'] . "', sort_order = '" . (int)$data['sort_order'] . "', oc_filter = '" . (int)$data['oc_filter'] . "' WHERE attribute_id = '" . (int)$attribute_id . "'");

		$this->db->query("DELETE FROM " . DB_PREFIX . "attribute_description WHERE attribute_id = '" . (int)$attribute_id . "'");

		foreach ($data['attribute_description'] as $language_id => $value) {
			$this->db->query("INSERT INTO " . DB_PREFIX . "attribute_description SET attribute_id = '" . (int)$attribute_id . "', language_id = '" . (int)$language_id . "', name = '" . $this->db->escape($value['name']) . "'");
		}
	}

 

5) в модели фильтра ocfilter.php
меняем кусок

if (!empty($data['copy_attribute'])) {

..........

 на

    if (!empty($data['copy_attribute'])) {
      $this->db->query("UPDATE " . DB_PREFIX . "product_attribute SET text = TRIM(text)");

      $last_option_id *= 3;
      $last_value_id *= 3;

	  //ocfilter_option+
      $this->db->query("INSERT IGNORE INTO " . DB_PREFIX . "ocfilter_option (option_id, status, type, sort_order)      SELECT (attribute_id + '" . (int)$last_option_id . "'), '1' AS status, '" . $this->db->escape($data['copy_type']) . "' AS type, sort_order FROM " . DB_PREFIX . "attribute where oc_filter ='1'");
	  
	  //ocfilter_option_description+
      $this->db->query("INSERT IGNORE INTO " . DB_PREFIX . "ocfilter_option_description (option_id, language_id, name) SELECT (ad.attribute_id + '" . (int)$last_option_id . "'), ad.language_id, ad.name FROM " . DB_PREFIX . "attribute_description ad LEFT JOIN " . DB_PREFIX . "attribute att ON (att.attribute_id = ad.attribute_id) where att.oc_filter ='1'");

	  //ocfilter_option_value+
  		$this->db->query("INSERT IGNORE INTO " . DB_PREFIX . "ocfilter_option_value (option_id, value_id)                                SELECT (pa.attribute_id + '" . (int)$last_option_id . "'), CRC32(CONCAT(pa.attribute_id, CONCAT(UCASE(LEFT(TRIM(pa.text), 1)), LCASE(SUBSTRING(TRIM(pa.text), 2)))))                          FROM " . DB_PREFIX . "product_attribute pa 
		LEFT JOIN " . DB_PREFIX . "attribute att ON (att.attribute_id = pa.attribute_id)
		WHERE att.oc_filter ='1' and pa.language_id = '" . (int)$this->config->get('config_language_id') . "' GROUP BY pa.attribute_id, CONCAT(UCASE(LEFT(TRIM(pa.text), 1)), LCASE(SUBSTRING(TRIM(pa.text), 2)))");
		
		//ocfilter_option_value_description+
  		$this->db->query("INSERT IGNORE INTO " . DB_PREFIX . "ocfilter_option_value_description (option_id, value_id, language_id, name) SELECT (pa.attribute_id + '" . (int)$last_option_id . "'), CRC32(CONCAT(pa.attribute_id, CONCAT(UCASE(LEFT(TRIM(pa.text), 1)), LCASE(SUBSTRING(TRIM(pa.text), 2))))), pa.language_id, TRIM(pa.text) FROM " . DB_PREFIX . "product_attribute pa 
		LEFT JOIN " . DB_PREFIX . "attribute att ON (att.attribute_id = pa.attribute_id)
		WHERE att.oc_filter ='1' and pa.language_id = '" . (int)$this->config->get('config_language_id') . "' GROUP BY pa.attribute_id, CONCAT(UCASE(LEFT(TRIM(pa.text), 1)), LCASE(SUBSTRING(TRIM(pa.text), 2)))");

      $this->load->model('localisation/language');

      $languages = $this->model_localisation_language->getLanguages();

     
//ocfilter_option_value_description+
	 foreach ($languages as $language) {
        if ($language['language_id'] != $this->config->get('config_language_id')) {
      		$this->db->query("INSERT IGNORE INTO " . DB_PREFIX . "ocfilter_option_value_description (option_id, value_id, language_id, name)

          SELECT
            (pa.attribute_id + '" . (int)$last_option_id . "'),
            (SELECT
              CRC32(CONCAT(pa2.attribute_id, CONCAT(UCASE(LEFT(TRIM(pa2.text), 1)), LCASE(SUBSTRING(TRIM(pa2.text), 2))))) FROM " . DB_PREFIX . "product_attribute pa2
              WHERE pa2.language_id = '" . (int)$this->config->get('config_language_id') . "'
              AND pa2.product_id = pa.product_id
              AND pa2.attribute_id = pa.attribute_id LIMIT 1
            ) AS value_id, '" . (int)$language['language_id'] . "', CONCAT(UCASE(LEFT(TRIM(pa.text), 1)), LCASE(SUBSTRING(TRIM(pa.text), 2)))
          FROM " . DB_PREFIX . "product_attribute pa 
		  LEFT JOIN " . DB_PREFIX . "attribute att ON (att.attribute_id = pa.attribute_id)
		  WHERE att.oc_filter ='1' and  pa.language_id = '" . (int)$language['language_id'] . "' GROUP BY pa.attribute_id, CONCAT(UCASE(LEFT(TRIM(pa.text), 1)), LCASE(SUBSTRING(TRIM(pa.text), 2)))");
        }
      }

      
	  //ocfilter_option_value_to_product
	  $this->db->query("INSERT IGNORE INTO " . DB_PREFIX . "ocfilter_option_value_to_product (product_id, option_id, value_id) SELECT pa.product_id, (pa.attribute_id + '" . (int)$last_option_id . "'), CRC32(CONCAT(pa.attribute_id, CONCAT(UCASE(LEFT(TRIM(pa.text), 1)), LCASE(SUBSTRING(TRIM(pa.text), 2))))) AS value_id FROM " . DB_PREFIX . "product_attribute pa 
	  LEFT JOIN " . DB_PREFIX . "attribute att ON (att.attribute_id = pa.attribute_id)
	  WHERE att.oc_filter ='1' and  pa.language_id = '" . (int)$this->config->get('config_language_id') . "'");

      // Separate
      if (!empty($data['ocfilter_attribute_separator'])) {
      	$separator = (string)$data['ocfilter_attribute_separator'];

        $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "ocfilter_option_value_description WHERE language_id = '" . (int)$this->config->get('config_language_id') . "' AND TRIM(name) LIKE '%" . $this->db->escape($separator) . "%'");

        foreach ($query->rows as $result) {
        	$values = explode($separator, $result['name']);

          foreach ($values as $value) {
            $value = $this->utf8_ucfirst(trim($value));

            if (!$value) {
              continue;
            }

            $value_query = $this->db->query("SELECT value_id FROM " . DB_PREFIX . "ocfilter_option_value_description WHERE language_id = '" . (int)$this->config->get('config_language_id') . "' AND option_id = '" . (int)$result['option_id'] . "' AND LCASE(TRIM(name)) = '" . $this->db->escape(utf8_strtolower($value)) . "'");

            if ($value_query->num_rows) {
              $value_id = $value_query->row['value_id'];
            } else {
        		  $this->db->query("INSERT INTO " . DB_PREFIX . "ocfilter_option_value (option_id) VALUES ('" . (int)$result['option_id'] . "')");

              $value_id = $this->db->getLastId();

              $this->db->query("INSERT INTO " . DB_PREFIX . "ocfilter_option_value_description (option_id, value_id, language_id, name) VALUES ('" . (int)$result['option_id'] . "', '" . $this->db->escape($value_id) . "', '" . (int)$this->config->get('config_language_id') . "', '" . $this->db->escape($value) . "')");
            }

            $this->db->query("INSERT INTO " . DB_PREFIX . "ocfilter_option_value_to_product (product_id, option_id, value_id) SELECT oov2p.product_id, '" . (int)$result['option_id'] . "', '" . $this->db->escape($value_id) . "' FROM " . DB_PREFIX . "ocfilter_option_value_to_product oov2p WHERE oov2p.option_id = '" . (int)$result['option_id'] . "' AND oov2p.value_id = '" . $this->db->escape($result['value_id']) . "'");
          }

          if ($values) {
            $this->db->query("DELETE FROM `" . DB_PREFIX . "ocfilter_option_value` WHERE value_id = '" . $this->db->escape($result['value_id']) . "'");
            $this->db->query("DELETE FROM `" . DB_PREFIX . "ocfilter_option_value_description` WHERE language_id = '" . (int)$this->config->get('config_language_id') . "' AND value_id = '" . $this->db->escape($result['value_id']) . "'");
            $this->db->query("DELETE FROM `" . DB_PREFIX . "ocfilter_option_value_to_product` WHERE option_id = '" . (int)$result['option_id'] . "' AND value_id = '" . $this->db->escape($result['value_id']) . "'");
          }
        }
      }
    }

6) поставить нужные чеки в редактировании аттрибутов

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах


13 часов назад, Stendal сказал:

здравствуйте! Кто может уделить 10 минут по скайпу  - не получается коечто по окфильтру.

Товарищи, ну помогите, не можете 10, уделите 7-8 .

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


В 26.07.2017 в 11:51, jaffagold сказал:

Описали бы проблему в теме, давно бы получили ответы.

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

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


Это Характеристики ( атрибуты) товаров.

Вот и создавайте

Группу характеристик

Тип принтера

В этой группе

Струйный, Лазерный монохромный, Лазерный цветной.

В товарах обязательно выбирайте нужный атрибут( характеристику)

Потом эти атрибуты подтянете одним кликом в фильтр.

У вас появится группа фильтров Тип принтера

Попробуйте вручную завести 5-7 товаров пробных и увидите что выйдет

Другой варинат, есть товар, у которого есть несколько вариантов исполнения( например, цветов)

Чернила струйного принтера HP. Их можно заводить как отдельные товары. А можно как один, но опциями ( например ЦВЕТ чернил).

Тогда создаете Опции, тип- Переключатель ( radiobutton), Значения: Черный, Желтый, Голубой, Пурпурный ( можно картинки им подкинуть)

Обязательно отмечаете: обязательная опция.

Тогда в настройках фильтра выбираете копировать опции и у вас появится группа фильтров Цвет. 

Изменено пользователем jaffagold
  • +1 1
Ссылка на комментарий
Поделиться на других сайтах


А лучше не слушайте предыдущего человека, а сделайте группу, например "Основные", в ней Атрибут "Тип принтера", а в товаре значение этого атрибута.

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах


Можно ли для посадочных страниц добавить чекбокс с выбором индексировать посадочную страницу или нет.

Дело в том, что некоторые посадочные нужны для сеошников, а некоторые - просто для удобства сортировки и индексировать последний тип посадочных страниц нет смысла.

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


Добрый день

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

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


Доброго времени суток!

Через поддержку автор пока не ответил, поэтому спрошу, может кто сталкивался (в теме видел эти вопросы, но как решали неизвестно)

1. Вывод хлебных крошек на карточке товара. Кто реализовывал?

2. Добавление товара в карту сайта не работает, не в стандартную, не в любую другую.

 

Версия ос 1.5

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


Подскажите пожалуйста в url  в данном фильтре вместо / возможно использовать другие символы ?  К примеру  тире, или двоеточие ?

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


  • SooR изменил заголовок на OCFilter - Модуль фильтра товаров [Обсуждение]

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.