• Архив

    «   Октябрь 2018   »
    Пн Вт Ср Чт Пт Сб Вс
    1 2 3 4 5 6 7
    8 9 10 11 12 13 14
    15 16 17 18 19 20 21
    22 23 24 25 26 27 28
    29 30 31        

ЧПУ для фильтра: опыт разработки

Наверное, каждому разработчику и владельцу интернет-магазинов, приходилось не раз слышать от SEOшника: «нужно сделать ЧПУ для фильтра, как на розетке, как на розетке, как на розетке...». Не знаю уж, почему именно пресловутая розетка так нравится SEO-специалистам, но спрос породил предложение. Прежде, чем рассказать о нашем опыте реализации ЧПУ для фильтра и о нашем новом модуле под маркетплейс (который сейчас на стадии бета-тестирования), я хотела бы немного рассказать о самой сути задачи.

В чем особенность фильтра «какнарозетке»?
http://rozetka.com.ua/memory-cards/a-...0044/v242/
  1. Имитация статичности динамических страниц, сформированных фильтром. У страниц каталога, к которым применен фильтр — красивые человекопонятные URL-адреса.;
  2. Перелинковка за счет использования ссылок в качестве лейблов чекбоксов фильтра;
  3. Возможность указания отдельного заголовка, мета-описания и ключевых слов для каждой фильтрованной страницы каталога.
Поисковым системам очень нравится такая организация каталога. В индекс попадает бешеное количество (число страниц потенциально равно количеству сочетаний значений свойств раздела без перестановок) перелинкованных друг с другом страниц с уникальным описанием и уникальными метатегами и, как следствие, высокорелевантных низкочастотным поисковым запросам.

Проанализировав работу фильтра на сайте http://rozetka.com.ua/ мы поняли, что, используя мощь движка 1С-Битрикс, мы можем сделать и точно так, и даже красивее (а именно: на розетке количество свойств раздела, для фильтрации по которым организуется ЧПУ — ограниченно небольшим числом, и ЧПУ — не мнемонично — человекопонятным его можно назвать лишь с натяжкой. Мы же нашли решение для неограниченного числа свойств, а так же предусмотрели вариант автоматической генерации метатегов на тот случай, когда контент-менеджер не успевает их придумывать).

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

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

http://kfk.ru/podborki/sat-50m-koaksi...nyj-kabel/
Сняв же галочку фильтра на такой посадочной странице или выбрав другой фильтр, пользователь должен был попадать обратно — на динамическую страницу каталога.

http://kfk.ru/catalog/kabel-koaksialn...0m-rg_59u/

В интернет-магазинах http://uptosport.ru/ и http://uptodream.ru/ нам пришлось дать контент-менеджерам инструмент для присвоения свойствам и их значениям символьных кодов (они не велись ранее), а так же контролировать их уникальность.

В итоге получились вот такие красивые ЧПУ-ссылки на фильтрованные разделы:

http://uptosport.ru/catalog/dlya_zhen...ue/size=L/

http://uptodream.ru/catalog/dlya_zhen...or=purple/

В некоторых интернет-магазинах задача осложнялась так же тем, что контент-менеджеры работали только на стороне 1С Предприятия, и хотели вбивать символьные коды свойств и значений свойств только там.

Мы придумали, как расширить выгрузку из 1С УТ для того, чтобы можно было передавать символьные коды свойств и их значений, не нарушая формата CML2 и не ломая налаженный на проектах обмен с 1С. Дополнили выгрузку XML следующим образом:

<Свойство>
<Ид>83875106-f414-11e0-83db-0023ae2ed3a2</Ид>
<Наименование>Цвет</Наименование>
<ТипЗначений>Справочник</ТипЗначений>
<СимвольныйКод>color</СимвольныйКод>
<ВариантыЗначений>
<Справочник>
<ИдЗначения>83875108-f414-11e0-83db-0023ae2ed3a2</ИдЗначения>
<Значение>Красный</Значение>
<СимвольныйКод>red</СимвольныйКод>
</Справочник>
</ВариантыЗначений>
</Свойство>

И, естественно, мы добавили поддержку выгрузки символьного кода свойств и значений свойств в свой модуль интеграцииhttp://marketplace.1c-bitrix.ru/solut...tegraciya/ (выйдет на днях в составе фундаментального обновления 3.0.0).

После этого мы подумали (и измерили), что если хранить символьные коды значений всех свойств в одном highload инфоблоке, это позволяет организовать фильтр с ЧПУ чрезвычайно эффективно, и мы добавили в свой модуль интеграции опцию, позволяющую создавать и заполнять для нашего ЧПУ фильтра highload инфоблок прямо в процессе импорта из 1С Предприятия.

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

Об обновлении нашего модуля интеграции 3.0.0 я напишу в отдельном посте.