Я правильно понимаю, при таком подходе, кнопки импортировать данные с возможностью загрузки, там нет (как в "Универсальный обмен данными в формате XML")? Т.о. со стороны сайта достаточно будет реализовать выгрузку в CommerceML (если я правильно понял), но со стороны 1С загрузить этот файл не получится, без написания внешней обработки?
Куда вставлять - дело ваше. Я бы сделал специализированный сервис, которому на вход передается xml. Затем его вызывал бы где нужно: в консольной команде или в контроллере.
$em - общепринятое сокращение, это объект Doctrine\ORM\EntityManagerInterface. В данном случае это может быть и Doctrine\ODM\MongoDB\DocumentManager.
Весь код так или иначе в классе :) Вы про какой класс говорите? Класс сущности, класс контроллера, класс сервиса?
Хорошая документация, не вижу проблем.