Оригинальная инструкция от разработчика плагина: https://bodysite.ru/help/1039/instruktsiya-po-integratsii-plagina-seo-filtr/
Часть требуемых изменений, которая не конфликтует со штатным функционалом, уже имеется в теме "из коробки". Ниже будут описаны шаги, которые требуется выполнить самому. Нумерация пунктов из оригинальной статьи сохранена.
1. Установка заголовков и описаний
3) В теме предусмотрено 2 места для вывода описания(выбирается в настройках). Логично одно из них отдать под дополнительное описания плагина. Откройте шаблон category.html и найдите там строку:
{if $theme_settings.products_description_location eq "top" && $category.description && !waRequest::get('page',0)} <div class="layout-center"> <div class="catalog-pg__descr category-desc"> {$category.description} </div> </div> {/if}
Замените на:
<div class="layout-center"> <div class="catalog-pg__descr category-desc"> {if $category.description} {$category.description} {/if} </div> </div>
Это сломает опцию выбора места для описания. Теперь оно всегда будет перед списком товаров.
Далее найдите строки:
{if $theme_settings.products_description_location eq "bottom" && $category.description && !waRequest::get('page',0)} <div class="catalog-pg__seo-text category-desc"> {$category.description} </div> {/if}
Замените на:
<div class="catalog-pg__seo-text filter-additional-desc"> {if $category.additional_description|default:''} {$category.additional_description} {/if} </div>
2. Замена ссылок постраничной навигации
Откройте файл category.html, найдите код:
{wa_pagination total=$pages_count attrs=['class' => "pagination__list"]}
замените на:
{capture assign=pagination} {wa_pagination total=$pages_count attrs=['class' => "pagination__list"]} {/capture} {shopSeofilterViewHelper::paginationDecorate($pagination)}
3. Замена ссылок в сортировке
Откройте файл category.sorting.html найдите и замените код:
{$wa->shop->sortUrl($sort, $name, $active_sort)}
на:
{shopSeofilterViewHelper::sortUrl($sort, $name, $active_sort)}
4. Подстановка ссылок в фильтре
Откройте файл sidebar.filters.html
1. Найдите код:
{foreach $filter.values as $v_id => $v}
и чуть ниже замените код:
{$v}
на:
{$filter_url = shopSeofilterViewHelper::getFilterUrl($filter.id, $v_id, $filter.code)} {if $filter_url} <a class="filter-link" href="{$filter_url}">{$v}</a> {else} {$v} {/if}
2. Замените код:
<label> <span>[`Yes`]</span> <input type="radio" name="{$filter.code}" {if $wa->get($filter.code)} checked{/if} value="1"> </label>
на:
<label> {$radio_filter_url = shopSeofilterViewHelper::getFilterUrl($filter.id, "1", $filter.code)} {if $radio_filter_url} <span><a class="filter-link" href="{$radio_filter_url}">[`Yes`]</a></span> {else} <span>[`Yes`]</span> {/if} <input type="radio" name="{$filter.code}" {if $wa->get($filter.code)} checked{/if} value="1"> </label>
3. Замените код:
<label> <span>[`No`]</span> <input type="radio" name="{$filter.code}" {if $wa->get($filter.code) === '0'} checked{/if} value="1"> </label>
На:
<label> {$radio_filter_url = shopSeofilterViewHelper::getFilterUrl($filter.id, "0", $filter.code)} {if $radio_filter_url} <span><a class="filter-link" href="{$radio_filter_url}">[`No`]</a></span> {else} <span>[`No`]</span> {/if} <input type="radio" name="{$filter.code}" {if $wa->get($filter.code) === '0'} checked{/if} value="1"> </label>
5. Перелинковка характеристик в карточке товара
В шаблоне product.html найдите строку:
{foreach $product.features as $f_code => $f_value}
Замените на:
{foreach shopSeofilterViewHelper::wrapFeatureValues($product.features) as $f_code => $f_value}
После нововведения с привязкой характеристик к артикулу, а не к товару, 5 пункт потерял свою актуальность. Для владельцев версии 1.2.0 и выше, 5 пункт выглядит так:
1. Откройте шаблон product.html.
2. В конце адресной строки замените product.html на system.product.html.
3. Найдите строку:
замените на:
4. Нажмите "Сохранить" дважды. В первый раз сработает защита от перезаписи скрытых файлов. На второй раз она сдается.