FilterVier_SEO – автоматический и многофункциональный фильтр товаров на страницах сайта в КатегорияхПроизводителяАкцияхПоиска и Главной страницы с полным управлением под СЕО.

Фильтр автоматически формируется из параметров Товара по: ценеатрибутамопциямпроизводителямакциям и новинкам (указать, за какое количество дней, товар считается новинкой).

Особенности модуля FilterVier_SEO

  • Модуль независимый от Шаблона сайта.
  • Работа Модуля может осуществляться как на основании «живыми ссылками», так и на Ajax (применение фильтра после выбора параметров фильтра по Кнопке, имя которой присваивается в «Языковых данных»).
  • Управление автоматического перехода работы фильтра в Мобильных устройствах на Ajax.
  • Оперативно работает на сайте с количеством товара 100тыс.+
  • Независимо от последовательности выбранных параметров фильтра, адресная строка будет иметь всегда один вид.
  • Используется собственная модель кэширования (только статичных запросов к БД), что позволило оперативней обрабатывать код, уменьшать нагрузку на сайт, а так же исключать ошибки, которые иногда встречаются при стандартной модели кэширования в Opencart. + дополнительный кэш для динамических запросов в БД (используется для большого количества Атрибутов и Опций).
  • Расположение модуля в Схемах/Макетах, как вертикальное, так и горизонтальное.
  • Поддерживает работу с Мульти-магазинами.
  • Мульти-язычностьМульти-валютность.
  • При переключении языка на сайте, выбранные параметры фильтра сохраняются.
  • Работает с сортировкойpage и limit.
  • В админке модуля можно конструировать свой дизайн фильтра (даже не надо быть знатоком в css — всё происходит наглядно):
Основной дизайн

Создать собственные стили для: Мобильных устройствЧекбоксовКнопок (включая кнопку для Ajax), Слайдера, если таких нет в предложенных вариантах модуля. Например, дизайн Слайдера:

дизайн Слайдера

  • Canonical и robots – настраиваемые ограничения по количеству выбранных параметров.
  • canonical без prev/next (управление).
  • Настройка запрета на индексацию со второй страницы, при сортировке, при лимите.
  • Возможность использовать ссылки вида js (интегрировал для «назойливых» поисковиков).
  • Использовать второе Описания из Категорий для более уникального авто-текста, генерируемое фильтром.
  • Настройка — не выводить Описание со второй страницы сайта. (!!! Применение данных настроек можно использовать и для самих страниц: Категории, Производителя).
  • Параметры фильтра в «Хлебных крошках» – breadcrumbs
мета-теги
  • Автоматическая генерация Мета-тегов: title, description, keywords, Заголовка-H1 и Описания по шаблонам (настройка во вкладке «Мета-теги»).
авто-генерация Мета-тегов
Шаблоны для авто-Описания

Для мульти-магазинов добавлены маркеры Информации.

Маркеры Информации магазина
  • Ручное создание Посадочных страниц по: Мета-тегам, Заголовку-H1 и Описанию. (Для удобства создания Описания используется текстовый редактор. Количество Пос.страниц неограниченное, так как используется постраничная навигация). А для быстрого поиска Посадки можно использовать Фильтр по разным критериям.
Создание ручных ПосадокСоздание ручных Посадок"/>
  • Ссылки из Посадочных страниц могут записываться как в общий sitemap-сайта (работает с Google Sitemap и возможно с др. Sitemap) или использовать собственную/отдельную sitemap-Фильтра, которой по желанию можно назначит своё ЧПУ-имя.
    Есть возможность для собственной sitemap-Фильтра использовать в Урлах префиксы Языков, например как /en/sitemap_filter.xml
Sitemap
  • Данные по Языкам для блоков Фильтра, Кнопок и т.п., заполняются в админке модуля для всех установленных на сайте языков (не требуется никаких правок в языковых файлах)
Языковые данные
  • Использовать мульти-Значения Атрибутов через заданный разделитель.
  • Установить — сортировка Товаров, которых нет в наличии, — внизу списка.
  • Дополнительно выбрать сортировку Товаров по умолчанию.
  • Скрывать Параметры фильтра с их Нулевым количеством.
  • Возможность указывать допустимое Минимальное количество параметров в блоке Фильтра для их отображения.
  • Показывать Товары из Дочерних Категорий в Родительской Категории.
  • Сортировка блоков фильтра – порядок вывода блоков в Фильтре.
Сортировка блоков Фильтра
  • Адаптирован под мобильные устройства — предоставляется 2 стиля. Можно использовать собственные.
Варианты вида в мобильных устройствах
  • 6 вариантов отображения Атрибутов:
    ссылками (чекбоксами),
    кнопками,
    картинками (при работе в паре с модулем «Attribute Text Select»),
    переключателем (radio-кнопки),
    списком (select),
    слайдером (если эти значения имеют цифровой формат).
  • 5 вариантов отображения Опций: ссылками (чекбоксами), кнопками, картинками, переключателем (radio-кнопки), списком (select).
  • 5 вариантов отображения Производителей: ссылками (чекбоксами), кнопками, картинками, переключателем (radio-кнопки), списком (select).
  • 3 варианта отображения Цены: ссылками (чекбоксами) с указанными диапазонами, списком (select) и слайдером. (Формирование цены может происходит с учетом Акций, Скидки, Налогов).
Виды блока Цены
  • Для каждого параметра можно выбрать вид отображения. (Кнопки и image могут работать в дополнительном режиме, как переключатель/radio).
Вид отображения параметров
  • Фильтр по атрибутам также может работать без текстовых названий Атрибутов (которые не указаны в Карточке товара). Полезность данной возможности позволяет «заменять» созданные под-Категории Атрибутами, с сохранением их ЧПУ.
  • Подстройка/подборка Атрибутов для Категорий — возможность выбирать/отображать для Категорий нужные Атрибуты, или НЕ отображать их вообще. (Это не обязательная подстройка. В основном предназначена для большого количества Атрибутов на сайте).
Подстройка в Категориях
  • Есть 2 вида Блоков очистки фильтра по выбранным параметрам. (Могут работать, как одновременно, так и по отдельности. Название блока указывается в «Языковых данных» настроек модуля).
Блок Выбора - 2 варианта
  • ЧПУ параметров Фильтра может работать в паре с модулями: seo_url (дефолтный) или seo_pro (seopro).
    Быстро создать ЧПУ для Параметров фильтра — шаг 1 и шаг 2 (при этом, перед Записью в базу — шаг 2, их можно отредактировать).
создать ЧПУ
  • При потребности можно указать get-Фильтра и по желанию назначить для него ЧПУ (на ручных Посадках не выводятся).
get-Фильтра
  • Назначить свой Транслит.
редактирование Транслита
  • Можно менять порядок вывода параметров фильтра в адресной строке.
сортировка в УРЛ

В админке модуля есть контроль на дубли ЧПУ-ссылок во вкладках «SEO_URL» и «Пос.страницы».
Чтоб быть уверенным, что операция (после нажатия кнопок) в админке прошла успешно — модуль сообщит об этом «зелёным окошком».

Интеграция с модулями.

Интеграция с модулем «Ссылки фильтра как Теги для FilterVier_SEO«
Ссылки фильтра как Теги для FilterVier_SEO

Интеграция с модулем по Атрибутам — «Attribute Text Select» (ATS).
Интеграция с модулем ATS

Ещё данная интеграция позволяет создавать перелинковку из Карточки товара на Фильтр.

Перелинковка из Карточки Товара на FilterVier_SEO

Интеграция с модулем Поиска — «Поисковая система с морфологией и релевантностью PRO» (от sv2109) — «fix_search_engine«
Настройки для страницы Поиска

Интеграция с другими модулями в настройках Фильтра — «setting poles«
Дополнительные настройки

Активация модуля происходит по нажатию кнопки «Активировать». (Модуль проверит Вашу версию Фильтра и установит соответствующий ключ лицензии).

Активация модуля

Установка модуля FilterVier_SEO

1) Распаковать архив модуля для требуемой версии OpenCart и версии php.

2) через ЗАГРУЗЧИК РАСШИРЕНИЙ (Установщик дополнений OCMOD) — требуется, чтоб был установлен fix ocmod — localcopyꜛ (в папке /use_fix_ocmod/ находятся требуемы модификаторы)
  > загрузить файл filter_vier_SEO_v_xxx.ocmod.zip

Для загрузки модуля предыдущих версий по FTP (ФТП) :
! Устанавливать модуль с подключением по FTP (режим передачи/обмена: Двоичный/Binary (см. скрин внизу)).

2) войти в папку требуемой версии php (к примеру, php7.1-7.4)
   > войти в папку `upload` и скопировать содержимое (папки) из папки `upload` в корень вашего сайта (*корень – это где находятся папки сайта: admin, catalog, image).

3) в Админке в Модулях установить/активировать модуль FilterVier_SEO_v.х.x

> войти в него (если запросит лицензионный ключ, то нажать «Активировать». При этом Модуль проверит Вашу версию Фильтра и установит соответствующий ключ лицензии).

Активация модуля

Для быстрого старта можно выбрать/установить только основные настройки (остальные настройки можно потом настроить/подключить):

  • Статус Фильтра (общий) и Статусы блоков, а так же если используете Атрибуты и Опции, то их Параметры. (Сохранить настройки).
Основные настройки - Статусы

ВАЖНО! – если используете Атрибуты, то их Значения надо будет сгруппировать – Зеленая кнопка – “Генерация text_id“ (см. пояснение ниже)
 

  • заполнить данные по Языкам на свой «вкус» во вкладке «Языковые данные»
Языковые данные для Фильтра
  • Подключите (или создайте свой) Дизайн (вкладка «Дизайн» модуля и в нём под-Вкладки: «Основной дизайн» (по умолчанию минимизирован стилями), для «Мобильных устройств», «Кнопок», «Чекбокса», «Слайдера»).
    (Если будете использовать блок Цены как Слайдер, то обязательно выберите для него стиль или создайте собственный).
Дизайн слайдера

4) Подключение модуля в Схемах/Макетах:

в Opencart → ДИЗАЙН → МАКЕТЫ/СХЕМЫ подключить данный модуль к Макетам.
Для вывода модуля на странице Категорий используется путь — product/category
На странице Производителя — product/manufacturer/info
На странице Акций — product/special
На странице Поиска — product/search
На Главной странице — common/home
(!!! у некоторых Шаблонах используются свои дополнительные Схемы/Макеты подключения).

После этого Вы можете уже видеть свой Фильтр на сайте, но работать он не будет до следующей установки.

5) в МОДИФИКАТОРЫ (Список модификаторов) обновить расширения.

Для загрузки модуля предыдущих версий по FTP (ФТП) :
5) через ЗАГРУЗЧИК РАСШИРЕНИЙ (Установщик дополнений OCMOD) загрузить файл-модификатор:

для opencart 2 — filter_vier_seo.ocmod.xml
для Opencart 3 — filter_vier_seo_3.ocmod.zip

6) в МОДИФИКАТОРЫ (Список модификаторов) обновить расширения.

Всё.

В папке /use_fix_ocmod/ находятся Дополнительные (необязательные) Модификаторы. Их предназначение расписано в файле readme.txt

Некоторые пояснения.

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

!!!ВНИМАНИЕ: — если используется КЕШ на сайте (в модулях, шаблоне, на Хосте), то перед настройкой дизайна Фильтра, временно их отключите и очистите его. (КЕШ в Фильтре не применяется для собственных стилей — там нечего кешировать).
Для Opencart 3 еще возможно надо будет очистить/отключить кеш в Настройках разработчика (см. скрин ниже). Так же не забывайте, что еще есть кеш самого браузера!!!

!!!ВНИМАНИЕ: — если Вы использовали на своем сайте другой Фильтр товаров (включая и Стандартный), то обязательно его отключите в админке, и удалите/отключите его модификатор (если он есть).
Так же проверьте папку /system/ — модификатор для фильтра может в ней располагаться. (Обычно в его названии присутствует часть текста filter) – Удалите данный файл или переименуйте его расширение, например, расширение .xml переименовать в ._xml Потом не забудьте заново обновить модификаторы в админке.
У некоторых Шаблонах (которые используют собственный Фильтр), в самом модификаторе Шаблона может присутствовать код для своего Фильтра. – По возможности его тоже желательно очистить (чтоб «не путался под ногами»).

ВАЖНО!!! Если стили Фильтра не сохраняются (не появляется зелёное окошко «об успешном Сохранении» в админке модуля), то возможно (всё зависит от настроек Вашего сервера) для папки, где находятся стили Фильтра — /catalog/view/theme/default/ stylesheet/filter_vier/ и вложенных в неё папкам и файлам, понадобиться установить на Вашем Хосте Права Пользователя (доступа), к примеру, 755. (Бывали случаи, что и другим, подключающимся в модуле стилевым и js файлам, надо было дать Права доступа).

Перед Генерацией text_id, выберите Атрибуты, которые будут использоваться на сайте в Фильтре.
Если в Атрибутах присутствуют мульти-значения (к примеру, Цвет: Черный, Белый, Красный), то установите Делитель, который у Вас разделяет эти множественные Значения.
(! Если у Вас в Значениях есть дробные числа и в них присутствует запятая «,», то в Делитель нельзя устанавливать запятую, иначе модуль разобьет, к примеру, число 5,12 на 5 и 12).
Если в Значениях Атрибутов присутствуют html-тэги, то установите галку на htmlTags, чтоб очистить их для Фильтра.
(! на «Генерацию text_id» не влияют другие настройки, кроме тех, которые указанны выше: АтрибутыДелитель, htmlTags)

Генерация text_id для атрибутов

И для справки по «Генерации text_id»

Так «исторически» сложилось, что в OpenCart текстовый атрибут – то, что в Карточке Товара (КТ) прописывается, не имеет своего индекса – идентификатора (как, например, в Опциях), и приходится группировать их (как только меняются или добавляются текстовые атрибуты в КТ). И потом уже использовать этот индекс (глупо же и не безопасно оперировать текстовыми словами в обработке информации). Можно генерировать не каждый раз после одного изменения в КТ, а после их массовых изменений.
Это еще позволяет менять язык на странице сайта без сброса фильтра.
Всю эту «черновую работу» берет на себя админка модуля, а не сам фильтр на сайте.
Важно!!! — если используете ЧПУ(SEO_URL) в параметрах фильтра, то обязательно проверить соответствие этих ЧПУ с названием параметра, так как ЧПУ-значений привязываются к id-значений, а они динамические при «Генерации text_id» и могут изменятся.
(При использовании модуля «Attribute Text Select» id-значений будут статичными и соответственно меняться не будут).

Касательно обновлений модуля.
!!! При обновлении модуля, всегда очищайте кэш браузера (по Ctrl+F5) и остальной кеш, который возможно есть у Вас на сайте в Шаблоне, в др.модулях, на Сервере/Хосте.
А для Opencart 3 еще возможно надо будет Очистить или временно Выключить кеш в настройках разработчика – Главная → Панель состояния → *
(страница Админки Opencart 3)

А также при обновлениях переСохраняйте все вкладки в модуле.
Пошаговая инструкция по обновлению Фильтра в архиве модуля — readme_update.txt

Рекомендация
по редактированию файла robots.txt

Если Вы используете ЧПУ фильтра, то дабы предотвратить человечески фактор (забыли сгенерировать ЧПУ и т.п.), добавить в robots.txt правила, закрывающие от индексации страницы результатов фильтра:
Disallow: /*attrb[
Disallow: /*manufs[
Disallow: /*prs[
Disallow: /*psp[
Disallow: /*optv[
Disallow: /*qnts[
Disallow: /*nows[

# если используете дополнительный (не обязательный) get-Фильтра, то и его пропишите:
Disallow: /*filter_vier=1
# при этом, если используете ЧПУ get-Фильтра, то и его пропишите (если это fvs):
Disallow: /*/fvs/

# если используете отдельный sitemap для FilterVier_SEO, то укажите данную карту со своим сайтом и своим ЧПУ карты (если это sitemap_fv.xml):
Sitemap: https://your_site/sitemap_fv.xml

Рекомендация
по созданию/редактированию собственных стилей и шаблона Фильтра.

Дефолтные стили и шаблон Фильтра перезаписываться при обновлении модуля!
Если Вы решили изменить вид Фильтра, с редактированием дефолтных файлов по стилю (filter_vier.css) и шаблону (filter_vier.tpl или filter_vier.twig) Фильтра, то используйте для этого новые файлы.
Для изменения рекомендую создать собственные стили и шаблон, методом копирования в ту же папку – /filter_vier/ с новым именем – new_name. Главное, чтоб имя css-файла и tpl-файла было одинаковым (к примеру, к имени добавить _my), и потом подключить новую Тему фильтра. Аналогично и для файлов Главной страницы. (! Если файл стилей для Главной страницы имеет другое название, чем у «Темы фильтра», которая указана во вкладке «Дизайн», то используются только стили, созданные в данном стилевом файле).
Их раположение:
/catalog/view/theme/default/ stylesheet/filter_vier/new_name.css
/catalog/view/theme/default/ template/module/ filter_vier/new_name.tpl
для Opencart 3:
/catalog/view/theme/default/ template/extension/ module/filter_vier/new_name.twig

!!!Если изменяются только стили, а шаблон останется тот же, то новый шаблон можно и не создавать — будет привязка к шаблону по дефолту — filter_vier (я не рекомендую создавать новый файл-шаблон, а особенно править дефолный, — старайтесь обойтись только правкой стилевого файла).
Также можно создать собственные чекбоксы по аналогии.
Их расположение:
для image-чекбоксов – /catalog/view/theme/default/ image/filter_vier/ new_name.png
для css-чекбоксов – /catalog/view/theme/default/ stylesheet/filter_vier/ select_checks/new_name.css

Для Слайдера:
/catalog/view/theme/default/ stylesheet/filter_vier/ skin_slider/new_ name.css

Для Кнопок:
/catalog/view/theme/default/ stylesheet/filter_vier/ button/new_name.css

Стиль для мобильной версии, который так же можно создать собственный, расположен по адресу –
/catalog/view/theme/default/ stylesheet/filter_vier/ mobil_versi/new_name_mobil.css
Так же можно для некоторых стилей при надобности добавлять еще и свой шаблон для кнопки, с тем же именем, который расположен по адресу –
/catalog/view/theme/default/ stylesheet/filter_vier/ html/new_name_mobil.html


!!! Не редактируйте файл user_style.css, который расположен в папке /user_style/ – это автоматически-генерируемый файл при каждом сохранении настроек модуля, в который временно записываются все стили для Фильтра со всех стилей: из подключаемого файла «Темы фильтра» в «Дизайне» модуля (по умолчанию это файл filter_vier.css) и по: Кнопкам, Слайдеру, Чекбоксам и Мобильной версии.

Все новые правила стилей можно прописать в блоке «Добавить CSS код«

Добавить CSS код

FTP-клиент — FileZilla 
Настройка Режима передачи данных — Двоичный (Binary)

FTP-клиент - FileZilla

Создаём (кастомизируем) свои запросы в Фильтре

Чтоб вывести Товар на страницу сайта в особом виде/порядке (скрыть, отсортировать, интеграция с другим модулем/шаблоном), предусмотрен механизм внедрения собственных Запросов в Фильтр.
Например. — «Нужно отсортировать Товар так, что когда у него цена 0 (ноль), то перемещать его в конец списка«.
Для этого нужно вставить (лучше модификатором) в массив параметров $filter_data своё условие.
Пример для контроллера категории:

//стандартный массив параметров контроллера Категории
$filter_data = array(
    ‘filter_category_id’ => $category_id,
    ‘filter_filter’      => $filter,
    ‘sort’               => $sort,
    ‘order’              => $order,
    ‘start’              => ($page — 1) * $limit,
    ‘limit’              => $limit
);

/*ВАШ код*/
$filter_data[‘query_order_by’] = «IF(p.`price` = ‘0’, 1, 0)»;
//или можно добавить собственное условие, например, когда будет сортировка по Цене
if($sort == ‘p.price’) {
    $filter_data[‘query_order_by’] = «IF(p.`price` = ‘0’, 1, 0)»;
}
/*end ВАШ код*/
//запросы к БД — стандартный код Opencart
$product_total = $this->model_catalog_product-> getTotalProducts($filter_data);
$results = $this->model_catalog_product-> getProducts($filter_data);

Пример кода модификатора:

<?xml version=»1.0″ encoding=»utf-8″?>
<modification>
    <name>FIX Price if 0 end in FilterVier_SEO</name>
    <code>fix_price_fv</code>
    <version>1.0</version>
    <author>Vier</author>
    <link></link>
    <file path=»catalog/controller/product/category.php»>
        <operation>
            <search><![CDATA[$results = $this->model_catalog_product-> getProducts($filter_data);]]></search>
            <add position=»before»><![CDATA[
            /*fix_price_fv*/
            if($sort == ‘p.price’) {$filter_data[‘query_order_by’] = «IF(p.`price` = ‘0’, 1, 0)»;}
            /*end fix_price_fv*/
            ]]></add>
        </operation>
    </file>
</modification>

Пояснение по дополнительным ключам переменной $filter_data для запросов к Фильтру (значения ключей — это примеры):

//для getTotalProducts
$filter_data[‘query_total_pole‘] = » COUNT(DISTINCT IF(‘ВАШЕ_условие’)) AS `total` «; // условие по Полю, и должно возвращать одно поле `total`
$filter_data[‘query_total_join‘] = » LEFT JOIN `».DB_PREFIX.»ВАША_таблица` AS tabl2 ON (p.`product_id` = tabl2.`product_id`)»; // JOIN-запрос для подсоединения дополнительной таблицы
$filter_data[‘query_total_where‘] = » tabl2.`pole` > 5 AND p.`pole` = tabl2.`pole` «; // условие в WHERE (вначале без WHERE и AND)
$filter_data[‘query_total_group_by‘] = » GROUP BY tabl2.`pole` «; // Группировка (вначале с GROUP BY)

//для getProducts
$filter_data[‘query_pole‘] = » tabl2.`pole`, tabl2.`pole2` AS `colum` «; // добавить поле (можно несколько через запятую)
$filter_data[‘query_join‘] = » LEFT JOIN `».DB_PREFIX.»ВАША_таблица` AS tabl2 ON (p.`product_id` = tabl2.`product_id`)»; // JOIN-запрос для подсоединения дополнительной таблицы
$filter_data[‘query_where‘] = » tabl2.`pole` > 5 AND p.`pole` = tabl2.`pole` «; // условие в WHERE (вначале без WHERE и AND)
$filter_data[‘query_group_by‘] = » GROUP BY tabl2.`pole` «; // Группировка (вначале с GROUP BY)
$filter_data[‘query_order_by‘] = » tabl2.`pole` DESC, `colum` «; // Сортировка (вначале без ORDER BY — можно несколько через запятую)

От Антон Баринов

Я Антон, php программист, люблю и специализируюсь на OpenCart с 2009г. Разрабатываю интернет-магазины и улучшаю их SEO. Обращайтесь https://t.me/barinovshop

Добавить комментарий

Нужна разработка, создание или доработка интернет-магазина OpenCart(Опенкарт)? Пишите!

Время работы: в будни 7:00 - 17:00 (По Московскому времени)

Email: contact@opencart-cms.ru