bitrix:catalog по из коробки на главной показывать разделы. если нужно вывести все товары можно или через АПИ
CIBlockElement::GetList(
array arOrder = Array("SORT"=>"ASC"),
array arFilter = Array(),
mixed arGroupBy = false,
mixed arNavStartParams = false,
array arSelectFields = Array()
);
или через bitrix:catalog.section без указание раздела. потом через arFiler можешь передавать значения и фильтровать запросы.