Опишу в общих чертах, потому что иначе надо воспроизводить весь проект:
1) Обозвите будущий input для автокомплита какой-то айдишкой, нп.
<input id="first-level-category-autocomplete" type="text">
2) Вешаете на нее jQuery UI autocomplete (в примере для инпута #users cудя по всему тоже он), пример вменяемой js-ки
тут, там ajax делается в фоне за вас, нужно только этот код правильно в smarty шаблон добавить и респонс от бекенда правильный слать
3) на обработчике, который указали для автокомплита, пишете свой метод getAutocomplete для категорий (select *** where category like '$term%' ***), формируете на php ответ строкой по формату
[{label:"label1", value: "value1"},{label:"labelN", value: "valueN"}]
.
4) Проверяете, что все ок с выводом значений для автокомплита на фронтенде (console.log и alert в помощь)
5) в событии
select автокомплита описываете, что хотите делать после того, как юзер выбрал категорию из предлагаемых и она подставилась в инпут. Скорее всего здесь захотите ajax-ом подгрузить дочерние категории. Пишете внутри события select обычный ajax запрос на урл, в котором будете находить дочерние категории, формировать html и отдавать его на фронт, получать на фронте в обработчике success и делать append к нужному элементу верстки.