оформления заказа Minishop2

Всем привет. Подскажите, как реализовать на MiniShop 2: Необходимо сделать минимальную сумму заказа, т.е. Оформление заказа должно совершаться если сумма заказов выше заданной (Например: 5000 р.)
Слава
11 июня 2015, 10:24
modx.pro
1
2 450
0

Комментарии: 2

Максим Кузнецов
12 июня 2015, 00:20
+1
Ну, как вариант — выставлять условия на плейсхолдер итоговой цены.

Для чанка корзины (tpl.msCart.outer):
[[+total_count:lt=`5000`:then=`
Для оформления заказа сумма должна превышать 5000 рублей.
`:else=`
(дефолтное содержание чанка корзины с кнопкой для оформления заказа)
`]]
Для чанка оформления заказа (tpl.msOrder.outer) использовать ту же логику, только плейсхолдером выступит [[+order_cost]]

+ перехватывать итоговую стоимость плагином на события msOnBeforeChangeOrderStatus и аналогичным, сравнивая стоимость с требуемой и, в зависимости от этого, редиректить или выводить необходимые алерты.

Единственное, если у вас, допустим, расширен класс корзины для ajax-обновления, то также придется повесить условия на javascript.
    Воеводский Михаил
    12 июня 2015, 01:27
    +2
    Плагин правильнее на событие msOnSubmitOrder. Разница в том, что блокировать оформление заказа необходимо еще до его создания. Указанное событие вызывается самым первым, еще до создания нового объекта и проверки введенных полей.
    А проверять на этом событии необходимо сумму в корзине.

    Если делать именно таким образом, то не должно возникнуть необходимости изменять стандартный JS.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    2