Чтобы умный фильтр (bitrix:catalog.smart.filter) стал работать в корне каталога, без указания раздела надо провести следующие манипуляции.

Добавить в параметры фильтра «SHOW_ALL_WO_SECTION» => «Y».

В параметрах компонента bitrix:catalog ЧПУ фильтра выглядит, например, так

#SECTION_CODE#/filter/#SMART_FILTER_PATH#/apply/

Нам такой путь не подойдёт, поэтому сделаем, чтобы ЧПУ для корня каталога формировалось правильно, без раздела. В параметрах компонента добавим

"smart_filter_catalog" => "filter/#SMART_FILTER_PATH#/apply/"

а в файле sections.php компонента catalog в параметрах bitrix:catalog.smart.filter заменяем параметр «SEF_RULE».

"SEF_RULE" => "$arParams["SEF_FOLDER"].$arParams["SEF_URL_TEMPLATES"]["smart_filter_catalog"]"

Теперь url формируется правильно, но в фильтр выбранные свойств не видит.
Это происходит потому, что переменная $arResult[«VARIABLES»][«SMART_FILTER_PATH»] в корне каталога пустая.
Для решения этой проблемы создаем новое правило обработки адресов. Ставим его выше правила каталога.

Условие: #^/catalog/filter/([a-z0-9_\-\/]+)/apply/#
Файл: /catalog/index.php
Правило: SMART_FILTER_PATH=$1&

Осталось в файле sections.php в параметрах bitrix:catalog.smart.filter заменить

"SMART_FILTER_PATH" => $arResult["VARIABLES"]["SMART_FILTER_PATH"]

на

"SMART_FILTER_PATH" => $_REQUEST["SMART_FILTER_PATH"]

Теперь всё работает кроме обработки ЧПУ компонентом каталога. Для исправления нужно скопировать компонент в своё пространство имён (или в bitrix в директории local), и в файле component.php добавить условие примерно на 75 строке, там же где уже есть аналогичные условия

if ($componentPage === "smart_filter_catalog")
$componentPage = "sections";