antuan 12 апреля 2015 0 5
Здравствуйте.

Как сделать кнопку «Купить в один клик» для магазина на ShopModx?

Чтобы добавлялся заказ в базу, отправлялись кому надо письма и т.д.
Я еще не очень знаком с этой системой, не могу понять как это реализовать. Хоть в голове и крутятся некоторые мысли, я не уверен, что это будет работать так, как надо.

Я видел несколько хороших примеров реализации такого на ShopModx, поэтому прошу у вас помощи, вдруг кто-то уже делал такую штуку.
5 комментариев
Fi1osof1
Fi1osof 12 апреля 2015г в 21:24 #
Посмотрите как сделано это здесь (внизу ссылка на сайт). Чаще всего это просто форма обратной связи с передачей в нее данных указанного товара, то есть даже без формирования заказа в системе. Там вы увидите только внешние скрипты, внутренних не увидите, но не сложно использовать под это form-процессор.
a
antuan 12 апреля 2015г в 22:27 #
Я думал сделать немного по-другому:
— при нажатии на «Купить в 1 клик» инициируется нажатие кнопки «Купить», т.е. товар добавляется в корзину.
— открывается форма, которая потом отправится на /order/accept.html (как при оформлении заказа через корзину).

Попробовал — вроде работает, но есть некоторые ньюансы.

Во-первых, по этой схеме товар добавляется в корзину, и сразу же оформляется заказ. Поэтому, если в корзину ранее были добавлены товары, то заказ будет сформирован вместе с ними.

Во-вторых, вылезает уведомление о том, что товар добавлен в корзину.

В-третьих, для оформления заказа необходимо заполнить E-mail и ФИО.

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

Заранее спасибо!
M
MisterN 13 апреля 2015г в 09:18 #
Придет Николай и все объяснит. А пока его нет — можно здесь покапаться github.com/MODX-Club/ShopModxBox/blob/17791a616ccb43245dfdac5f6defb81a2c90b815/core/components/basket/processors/basket/web/orders/submit.class.php
a
antuan 13 апреля 2015г в 14:56 #
С первым вопросом разобрался сам: отследил, какие запросы куда отправляются (при добавлении в корзину и при её очистке). Теперь выполняю их через $.ajax.
Со вторым разобрался с вашей помощью: в submit.class.php немного изменил функции initialize, validateFields и getFields.
Вроде всё работает, осталось только окно оформить и всё.
Спасибо за помощь!
Fi1osof1
Fi1osof 13 апреля 2015г в 19:53 #
Ну, окно оформить — это уж совсем не проблема.
А по поводу Ajax-запросов, почитайте внимательно здесь. Как раз в последней сборке были добавлены механизмы для пользовательских запросов (см. «8. В метод ShopMODX.Request.run() добавлен четвертый параметр — url.»).
Сейчас можно передать свой собственный УРЛ, куда и будет выполнен запрос, например
ShopMODX.Request.run(some_action, some_data, null, '/ajax.html').
Авторизуйтесь или зарегистрируйтесь (можно через соцсети ), чтобы оставлять комментарии.