Купить в один клик

Здравствуйте. Как сделать кнопку «Купить в один клик» для магазина на ShopModx? Чтобы добавлялся заказ в базу, отправлялись кому надо письма и т.д. Я еще не очень знаком с этой системой, не могу понять как это реализовать. Хоть в голове и крутятся некоторые мысли, я не уверен, что это будет работать так, как надо. Я видел несколько хороших примеров реализации такого на ShopModx, поэтому прошу у вас помощи, вдруг кто-то уже делал такую штуку.

Посмотрите как сделано это здесь (внизу ссылка на сайт). Чаще всего это просто форма обратной связи с передачей в нее данных указанного товара, то есть даже без формирования заказа в системе. Там вы увидите только внешние скрипты, внутренних не увидите, но не сложно использовать под это form-процессор.

Я думал сделать немного по-другому: — при нажатии на «Купить в 1 клик» инициируется нажатие кнопки «Купить», т.е. товар добавляется в корзину. — открывается форма, которая потом отправится на /order/accept.html (как при оформлении заказа через корзину). Попробовал — вроде работает, но есть некоторые ньюансы. Во-первых, по этой схеме товар добавляется в корзину, и сразу же оформляется заказ. Поэтому, если в корзину ранее были добавлены товары, то заказ будет сформирован вместе с ними. Во-вторых, вылезает уведомление о том, что товар добавлен в корзину. В-третьих, для оформления заказа необходимо заполнить E-mail и ФИО. Хотел бы узнать следующее:

  1. Как очистить корзину и как добавить товар в корзину с помощью Javascript (jquery или ajax)?
  2. Как сделать при оформлении заказа поле «E-mail» необязательным, а например «Телефон» — обязательным? Заранее спасибо!

Придет Николай и все объяснит. А пока его нет — можно здесь покапаться github.com/MODX-Club/ShopModxBox/blob/17791a616ccb43245dfdac5f6defb81a2c90b815/core/components/basket/processors/basket/web/orders/submit.class.php

С первым вопросом разобрался сам: отследил, какие запросы куда отправляются (при добавлении в корзину и при её очистке). Теперь выполняю их через $.ajax. Со вторым разобрался с вашей помощью: в submit.class.php немного изменил функции initialize, validateFields и getFields. Вроде всё работает, осталось только окно оформить и всё. Спасибо за помощь!

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