Ну, окно оформить — это уж совсем не проблема. А по поводу Ajax-запросов, почитайте внимательно здесь. Как раз в последней сборке были добавлены механизмы для пользовательских запросов (см. «8. В метод ShopMODX.Request.run() добавлен четвертый параметр — url.»).
Сейчас можно передать свой собственный УРЛ, куда и будет выполнен запрос, например ShopMODX.Request.run(some_action, some_data, null, '/ajax.html').