Ну как вариант, после того как пользователь кликнет "Купить", вывести окошко для с диалогом прикрепления файла, после того как файл загрузится передать его ссылку Add2Basket.
Я делаю на уровне шаблона catalog.section. Вот пример функции которая группирует http://dev.1c-bitrix.ru/community/forums/messages/forum7/topic16574/message91824/#message91824
Можно эти 5 потом при показе сжать в 1. Там уже сделать возможность выбора нужных размеров. После выбора пользователь закажет уже конкретный товар с выбранными характеристиками. Как раз работаю над похожей задачей.
Помогите разобраться с привязкой к элементам (вывести св-во привязанного элемента из другого инфо блока), Помогите разобраться с привязкой к элементам (вывести св-во привязанного элемента из другого инфо блока)
У инфоблока1(объекты) есть массив ID привязанных к нему инфоблоков. Передаешь ID GetIBlockElement, получаешь инфу по привязанному инфоблоку2 и выводишь где угодно :)