Создаете хук для formit
подключаете в хуке библиотеку PhpSpreadsheet и дальше уже по примерам из библиотеки.
В этом же хуке указываете ссылку на созданный файл и добавляете её как поле в письмо. Есть примеры в документации для хуков по добавлению своих данных в письма. Где-то видел и как прикрепить файл в письме из хука
Что касается prepareSnippet — то он должен возвращать результат работы в следующем виде
Пример сниппета
И в итоге в чанке товара уже используется плейсхолдер [[+dt]] {$dt}
ilyaut.ru/reposts/console-2-0-4-beta-cyclic-queries-in-the-console-modx/
MIGX_id формируется просто +1 к максимальному значению
Либо посмотреть как это сделано в Jevix — он входит в пакет Tickets и там можно запретить обрабатывать modx теги.
Пример замены в jevix
подключаете в хуке библиотеку PhpSpreadsheet и дальше уже по примерам из библиотеки.
В этом же хуке указываете ссылку на созданный файл и добавляете её как поле в письмо. Есть примеры в документации для хуков по добавлению своих данных в письма. Где-то видел и как прикрепить файл в письме из хука
Например если не используете поле факс, то можно попробовать сортировать по нему
Приведите код, которым выводите производителей
2) вариант 2 компонентом msOptionsPrice2
Потом в коде просто вызывается либо {$my.results} либо {$_modx->getPlaceholder('my.results')}
modx.pro/help/5861
gist.github.com/alexsoin/8fae68f66fd786cf71b5159c10d06aee#gistcomment-2359044
Запускать в компоненте console или modalConsole