Например так, с перезагрузкой страницы:
1. Создать у иблока отзывов два свойства - плюсы и минусы, по дефолту нули.
2. Добавить в темплейт вывода комментария к товару показ этих свойств со ссылкой на ту же страницу с дополнительными переменными в гете (тип оценки и ID комментария).
3. Дописать в компонент иф для обработки переменной этого гета, которая изменяет нужное свойство через Update, с учетом пользователя (чтобы исключить двукратную оценку одним и тем же пользователем).
Без перезагрузки страницы: Вместо перехода по ссылкам обрабатывать onclick и делать асинхронный запрос на какую-нибудь микространицу сайта с гетом, содержащим ID коммента и типом оценки, которая проверяет сессию, связь юзера с комментом и выдает ответ (новое количество отзывов), который затем обрабатывается яваскриптом и вставляется через innerHTML в то место, где написано количество отзывов. Здесь можно обойтись без сложностей с XML и jquery, так как требуется просто вставить новое число.
Сложности начинаются в самой системе контроля уникальности оценок по критерию (ID коммента, ID юзера).
Если такая система нужна, придется реализовать одним из трех способов:
1. Заводить таблицу или иблок для хранения связи (ID коммента, ID юзера) для проставленныъх оценок. Перед обновлением проверять наличие связи простым запросом с фильтром, если она нашлась (отзыв уже был) - не производить оценку, если не нашлась - производить и дописывать новую связь.
2. Завести свойство коммента "айдишники юзеров, оставивших сюда отзыв" и дописывать туда через запятую ID юзера при выставлении оценки. При добавлении дергать его, разбивать explode-ом, проверять in_array
Также на ум может прийти еще одно решение через агрегатные запросы, то есть при оценке мы просто добавляем в некую таблицу или иблок запись вида (юзер, коммент), а потом при выводе комментов считаем количество записей, связанных с этим комментом. Но думаю, так в перспективе начнутся тормоза.