Делаете таблицу с фильтрами, где хранятся общие настройки фильтра (название, привязка к категории товара например и т.д.). Далее таблицу с полями, которая привязывается к определенному фильтру и хранит в себе аттрибут по которому идет фильтрация, тип поля (input,select,checkbox,slider и т.д как фантазии хватит). Затем в контроллере получаете определенный фильтр и рендерите его. Во вьюшке фильтра сделайте свитч на разные типы полей.