Стандартно, умный фильтр формирует плохо читаемые URL. Переводим формирование значений с русского на латиницу.
Как в умном фильтре битрикса сформировать нормальные ссылки для свойств
Почему эту возможность не внесли стандартно на момент написания статьи, не понятно. Давайте дописывать.
Пример такой ссылки:
tip_lampy-is-67a6c5e6-f6bf-11e7-1487-005056bf06e1
67a6c5e6-f6bf-11e7-1487-005056bf06e1 – как видно из кода, перед нами XML_ID, который, как правило, выгружается с 1С. Для того чтобы поменять формирование, вам необходимо изменить class.php.
Меняем нужную строчку на:
$url_id = CUtil::translit(toLower($enum["VALUE"]), "ru");
Первая часть задачи сделана. Теперь необходимо скопировать компонент в собственное пространство имён, и переписать в каталоге подключение компонента. После этого всё будет работать правильно, ваши ссылки станут читаемые:
/filter/brand-is-apisan-or-bosh/apply/
/filter/brand-is-bosh/apply/
А что по поводу обновлений? Не слетят ли доработки? Картина следующая – “наш новый компонент” утратил все возможные обновления, кроме ручного копирования файлов и замены нужной строки. Но, обновления не собьют доработку, разве что обновление готового шаблона, может стереть строчку подключения нового компонента.
Если у магазина товаров до 50 тысяч, а общее количество свойств не превышает 500, можно смело использовать умный фильтр битрикса. Он справится. Если товаров или свойств в разы больше, придется делать собственную разработку.
Встречал пару таких проектов, там даже администрирование информационного блока открывалось очень долго. Как потом оказалось, они просто парсили в свою базу чуть ли не всё подряд 🙂 И в тот момент никто не думал про дальнейшую оптимизацию и масштабирование каталога, а зря