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

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


SooR

Recommended Posts

В 02.04.2018 в 20:01, kiselovkiselev123 сказал:

Как это сделать?

Скачать новую версию там где покупали и обновить по инструкции.

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

@tunok777 , здравствуйте. Естественно.

 

Открываем catalog/controller/[extension]/module/ocfilter.php

 

Находим $option_data = array(

 

Перед этой строкой добавляем

 

if ($values && $option['option_id'] != 'm' && $option['option_id'] != 's') {
  $sort_order = array();

  foreach ($values as $key => $value) {
    $sort_order[$key] = $value['count'];
  }

  array_multisort($sort_order, SORT_DESC, $values);
}

Сохраняем, проверяем.

 

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

6 часов назад, SooR сказал:

Сохраните файлы, очистите и обновите модификаторы, проверьте.

Пример (см. под пагинацией).

 

Спасибо за ответ, но к сожалению не подходит такой вариант, потому что:

1. У меня почти 4000 сео-страниц и когда они все выводятся на 1 странице, это явно перебор. Нельзя ли выводить как-то ссылки на связанные страницы. То есть если смотрю страницу фильтра БМВ, то и ссылки выводятся только на страницы, которые также связаны с БМВ.

2. Ссылки ведут не на сео-страницы с новыми URL, которые я присваивал, а на старые где просто идет комбинация фильтр/значение/фильтр/значение.

 

Может можно усовершенствовать предложенный вариант?

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


@SooRПоднимем вопрос в четвертый раз: почему фильтр может не появляться во кладке "Опции фильтра" при редактировании некоторых товаров. У меня такая ситуация на 30% ассортимента наблюдается! Вопрос не решен и стоит остро.

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


@Fantozzzio , выводятся страницы текущей категории, а не все скопом. Других вариантов пока нет. Хотите усовершенствовать - делайте.

 

@Ngreen , нужно смотреть детальней, скиньте доступ в личку.

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

1. если в категории Alfa Romeo применить фильтр "объём двигателя 2" http://prntscr.com/j181qo, то значения в фильтре сбрасываются, а в результатах поиска появляется "Mazda 2", и так во всех категориях, если выбрать объём двигателя 2 или 3, то всегда сбрасываются параметры  и открывается Мазда 2 или Мазда 3, соответственно (объём двигателя - атрибут, модель автомобиля - категория). В чём дело, как это исправить?

 

2. как удалить фильтр по цене http://prntscr.com/j184hl

 

3. как удалить пересчёт количества http://prntscr.com/j184uv (если это положительно скажется на скорости)

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


@alexaw

 

1) Добавьте в конце значения "2" пробел, либо "л.", чтобы изменить его псевдоним, т.к. он совпадает с "2" модели Mazda. Либо измените псевдоним категории-модели 2

2) Отключите его в настройках модуля

3) Отключите показ количества в настройках модуля. На быстродействие не влияет.

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

@alexaw

 

1) Добавьте в конце значения "2" пробел, либо "л.", чтобы изменить его псевдоним, т.к. он совпадает с "2" модели Mazda. Либо измените псевдоним категории-модели 2

2) Отключите его в настройках модуля

3) Отключите показ количества в настройках модуля. На быстродействие не влияет.

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

21 час назад, SooR сказал:

@Fantozzzio , выводятся страницы текущей категории, и не все скопом. Других вариантов пока нет. Хотите усовершенствовать - делайте.

 

@Ngreen , нужно смотреть детальней, скиньте доступ в личку.

 

Здравствуйте! Доступ давал в личку. Вы смотрели в чем может быть причина бага с выводами фильтров?

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


@SooR

Добрый день, есть ли какой-то способ (или модуль) для массового редактирования фильтров у товаров? (Копирование от фильтров\опций\атрибутов не считается)

Есть 35к товаров, надо как-то им настроить\отредактировать параметры фильтрации.

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


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

@SooR

Добрый день, есть ли какой-то способ (или модуль) для массового редактирования фильтров у товаров? (Копирование от фильтров\опций\атрибутов не считается)

Есть 35к товаров, надо как-то им настроить\отредактировать параметры фильтрации.

 

 

Обалденная штука..  как я раньше без него жил не понимаю) не реклама

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


Модуль генерит повторяющиеся sql-запросы. 

Запросы генерятся тут Controller/extension/module/ocfilter.php function rewrite

@SooR как насчёт кэширование этих запросов?

 

Повторяющиеся запросы для загрузки одной страницы, воссоздал по демоданным http://localhost/desktops/apple/radio/small

...

SELECT keyword FROM url_alias WHERE `query` = 'manufacturer_id=8';
 -- 2018-04-07 22:00:49
SELECT keyword FROM ocfilter_option WHERE option_id = '1';
 -- 2018-04-07 22:00:49
SELECT keyword FROM ocfilter_option_value WHERE value_id = '32';
 -- 2018-04-07 22:00:49
SELECT * FROM ocfilter_page op LEFT JOIN ocfilter_page_description opd ON (op.ocfilter_page_id = opd.ocfilter_page_id) WHERE op.status = '1' AND op.category_id = '20' AND opd.language_id = '1' AND op.params = 'apple/radio/small' LIMIT 1;
 -- 2018-04-07 22:00:49
SELECT keyword FROM url_alias WHERE `query` = 'manufacturer_id=8';
 -- 2018-04-07 22:00:49
SELECT keyword FROM ocfilter_option WHERE option_id = '1';
 -- 2018-04-07 22:00:49
SELECT keyword FROM ocfilter_option_value WHERE value_id = '32';
 -- 2018-04-07 22:00:49
SELECT * FROM ocfilter_page op LEFT JOIN ocfilter_page_description opd ON (op.ocfilter_page_id = opd.ocfilter_page_id) WHERE op.status = '1' AND op.category_id = '20' AND opd.language_id = '1' AND op.params = 'apple/radio/small' LIMIT 1;

....

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


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

Модуль генерит повторяющиеся sql-запросы. 

Запросы генерятся тут Controller/extension/module/ocfilter.php function rewrite

@SooR как насчёт кэширование этих запросов?

 

Повторяющиеся запросы для загрузки одной страницы, воссоздал по демоданным http://localhost/desktops/apple/radio/small

...

SELECT keyword FROM url_alias WHERE `query` = 'manufacturer_id=8';
 -- 2018-04-07 22:00:49
SELECT keyword FROM ocfilter_option WHERE option_id = '1';
 -- 2018-04-07 22:00:49
SELECT keyword FROM ocfilter_option_value WHERE value_id = '32';
 -- 2018-04-07 22:00:49
SELECT * FROM ocfilter_page op LEFT JOIN ocfilter_page_description opd ON (op.ocfilter_page_id = opd.ocfilter_page_id) WHERE op.status = '1' AND op.category_id = '20' AND opd.language_id = '1' AND op.params = 'apple/radio/small' LIMIT 1;
 -- 2018-04-07 22:00:49
SELECT keyword FROM url_alias WHERE `query` = 'manufacturer_id=8';
 -- 2018-04-07 22:00:49
SELECT keyword FROM ocfilter_option WHERE option_id = '1';
 -- 2018-04-07 22:00:49
SELECT keyword FROM ocfilter_option_value WHERE value_id = '32';
 -- 2018-04-07 22:00:49
SELECT * FROM ocfilter_page op LEFT JOIN ocfilter_page_description opd ON (op.ocfilter_page_id = opd.ocfilter_page_id) WHERE op.status = '1' AND op.category_id = '20' AND opd.language_id = '1' AND op.params = 'apple/radio/small' LIMIT 1;

....

 

Почитайте мануал по mysql, ничего что она сама по себе кеширует подобные запросы?
И ничего что если кешировать подобные запросы на достаточно большом объеме, файлы в папке с кешем убьют в хлам производительность всей системы?

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


@devig , кэширование этих запросов нецелесообразно.

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

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

 

Почитайте мануал по mysql, ничего что она сама по себе кеширует подобные запросы?
И ничего что если кешировать подобные запросы на достаточно большом объеме, файлы в папке с кешем убьют в хлам производительность всей системы?

кэшировать в файл перестал ещё в 19-ом веке.

Можно кэшировать в свойство класса

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


@devig , над кэшированием ведутся работы, но конкретно в этом случае мы не выигрываем ничего, а 

Цитата

Fatal error: Allowed memory size of ...

из-за таких вот кэшей в св-ва и массивы в стиле seo_pro получить нефиг делать.

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

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

8 часов назад, devig сказал:

кэшировать в файл перестал ещё в 19-ом веке.

Можно кэшировать в свойство класса


Да что вы говорите.

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

И еще не все же такие талантливые, и не все могут настроить тот же мемкеш. Так вот в рамках одной иницализации кешрование с свойства класа подобных данных нецелесообразно, а кешировать массу атомарного хлама в системный кеш движка - это на зло папе отморозить уши.

 

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


Уважаемый @SooR !

Модуль отличный, но хотелось бы в следующих версиях несколько изменений, а именно:

 

1) Выбор количества фильтров внутри одной группы (Цвет: красный + синий + зелёный) или из разных групп (Цвет: красный; Размер: большой), после которого странице будет добавляться noindex, nofollow в head. Т.е. чтобы изначально страницы фильтра индексировались, а вот когда выбираем установленное в админке количество (например, больше 3 внутри одной группы и больше 2 из разных групп) - тогда уже будет добавляться noindex,nofollow. Всё-таки у каждого подход к SEO индивидуальный, уж предоставьте пользователю свободу от необходимости лезть настраивать это через условия в контроллере.

 

2) Кнопочку "скопировать атрибуты\опции\фильтры в OCFilter" внутри каждого товара, допустим внутри той же закладки "Опции фильтра". Есть такая ситуация - на сайте 35к товаров, добавлены в несколько партий. У всех товаров уже расписаны атрибуты, но фильтр был запущен когда товаров было меньше 10к, запустили его тогда при помощи копирования атрибутов у предварительно правильно подготовленных товаров. Теперь же воспользоваться опцией копирования нельзя, т.к. остальные 25к товаров ещё не подготовлены по атрибутам к общей системе и лишь испортят фильтр, и получается новым товарам, добавляющимся массово через экспорт\импорт единственный выход добавить фильтр - это вручную настраивать у каждого товара в админке. Потому было бы классно, если бы можно было изолировано для отдельных товаров нажать "скопировать атрибуты (или опции, или фильтры)" в фильтр.

 

3) При добавлении фильтров проверять их ЧПУ на пересечение с уже имеющимися URLами в системе.

Например, есть два фильтра со значениями:

"Ткань" - "хлопок", "бязь", "шёлк"

и

"Материал товара" - "хлопок", "шёлк"

 

В итоге получатся дубли

/categoriya/tkan/hlopok/

/categoriya/material-tovara/hlopok/

и

/categoriya/tkan/shelk/

/categoriya/material-tovara/shelk/

из-за чего одна из страниц-дублей (скорее всего, та, что была добавлена позже) будет отдавать 404.

Было бы очень классно, если бы перед добавлением значения фильтра проводилась бы проверка и, в случае выявления дубля предполагаемого URL нового фильтра, автоматически добавлять что-нибудь к нему, чтобы примеры выше стали, допустим

/categoriya/tkan/hlopok/

/categoriya/material-tovara/hlopok-f/

и

/categoriya/tkan/shelk/

/categoriya/material-tovara/shelk-f/

Было бы ещё +100 очков Гриффиндору если бы в админке была бы дополнительная настройка вот этой добавляющейся частицы :)

 

Даже без этих мелочей - очень отличный фильтр, ещё раз спасибо автору. На все проекты ставлю его.

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


В демо версии УРЛ страницы формируется изо всех атрибутов фильтра

На странице ноутбуки = фильтр по производителю и т.п. ...dell/klass/multimedijnyj/chastota/2.5-2.8/poverhnost-ekrana/matovaja/

Можно отключать лишние значения, оставив только:  категория/категория-бренд в Урле ?

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


@VladG , исключите ненужные фильтры и все.

@tunok777 , добрый день. Это где? Не понял вопрос.

@ndvr , спасибо, многое уже решалось программно, но в разбросанном виде, готовится на большое обновление. По поводу копирования - больная тема, условий там больше, всего 5 таблиц, а заполняют их разными способами из разных источников, используют многострочные атрибуты как часть описания товара, стикеры и т.д., а еще хотят использовать их как фильтры, то есть одну сущность под *дцать задач, как всегда :)

 

 

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

Можно отключать лишние Фильтры, оставив только:  категория/категория-бренд в Урле ?

 

НЕ вижу на тестовом сайте место для галочки = отключить фильтр (есть только включить ВСЕ)

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


  • SooR changed the title to OCFilter - Модуль фильтра товаров [Обсуждение]

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

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

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

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

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

Вхід

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

Вхід зараз
×
×
  • Створити...

Important Information

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