12 апр. 2015 г., 17:03

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

Здравствуйте.
Как сделать кнопку «Купить в один клик» для магазина на 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').

Добавить комментарий