Для решения задачи нужно кастомизировать компонент и шаблон компонента каталога. Сделать выпадающие списки, которые будут содержать значения свойств товара.
Выбранные пользователем значения передавать в метод добавления товара в корзину как свойства товара в корзине. Для добавления товара в корзину нужно использовать метод CSaleBasket::Add()
Стоит заметить, что добавлять товары в корзину нужно без стандартных функций обратного вызова(в документации они описаны), иначе переданные свойства не будут сохранены.