1. Просто в страницах, если там не уникальная верстка.
Если нужно что-бы контент менеджер не сломал верстку, то один инфоблок со свойствами.
2. Если свойства нужны в нескольких инфоблоках, то создаю хайлоад-блоки на каждое свойство и к ним привязываю
3. Делаю это в пхп скрипте, который добавляет в корзину, если конечно это не sku.
4. Там же указывается уровень вложенности. Все работает в стандартном комплексном компоненте.