MiniShop2. Оформление заказа
Два вопроса, добавил страницу корзина, туда снипеты msCart, msOrder. Заполняю поля — нажимаю оформить — страница перезагружается, и сново выводит корзину только без формы, для оформления заказа. Что я забыл сделать? И можно ли в зависимости от выбранного города менять email организации (чтобы заказ из самары шел на самарский email, питерский на питерский ?)
Комментарии: 14
1. Смотри ошибки javascript. При незаполненной форме не должно отправляться, а при заполненной — должна быть перезагрузка с параметром msorder=номерзаказа.
2. Нет, так сделать нельзя, на стандартном классе оформления заказа. Можно сделать плагин на событие msOnCreateOrder, который будет смотреть на город и слать дополнительное письмо.
2. Нет, так сделать нельзя, на стандартном классе оформления заказа. Можно сделать плагин на событие msOnCreateOrder, который будет смотреть на город и слать дополнительное письмо.
Василий, подскажи плиз, как получить id заказа в плагине на событие msOnCreateOrder?
$order->get('id');
понятно, а как вывести кол-во товаров напротив корзины?
Здравствуйте. У меня такая же ситуация, ошибок яваскрипт нету. Страница перезагружается, добавляя в адресной строке ?msorder=15, заказ отправляется, все как надо, только, похоже, не выдает tpl.msOrder.success и не очищается корзина. В какую строну глянуть? Спасибо.
Нашла причину ошибки, но не могу понять почему так происходит:
В файле msorderhandler.class.php, в функции submit закоментировала строчки про способ оплаты:
Пробовала удалять способ оплаты Наличными из способов оплаты (в настройках магазина) или делать его неактивным, там вообще ошибку 500 выдавал в консоли браузера (Failed to load resource: the server responded with a status of 500 (Internal Server Error) http:/ /site.ru/assets/components/minishop2/action.php) и соответственно вообще не отправлялся заказ.
Вот только так работает, как закомментено в коде.
Версия последняя. Василий, отправила доступ вам на почту.
В файле msorderhandler.class.php, в функции submit закоментировала строчки про способ оплаты:
/* @var msPayment $payment*/
// if ($payment = $this->modx->getObject('msPayment', array('id' => $order->get('payment'), 'active' => 1))) {
// $response = $payment->send($order);
// exit(is_array($response) ? $this->modx->toJSON($response) : $response);
// } else {
return $this->success('', array('msorder' => $order->get('id')));
// }
Способ оплаты у меня стоит один «Наличные». Пробовала вообще убирать этот кусочек с оплатой из чанка tpl.msOrder.outer, ничего не изменилось.Пробовала удалять способ оплаты Наличными из способов оплаты (в настройках магазина) или делать его неактивным, там вообще ошибку 500 выдавал в консоли браузера (Failed to load resource: the server responded with a status of 500 (Internal Server Error) http:/ /site.ru/assets/components/minishop2/action.php) и соответственно вообще не отправлялся заказ.
Вот только так работает, как закомментено в коде.
Версия последняя. Василий, отправила доступ вам на почту.
Дело, как обычно в нашем любимом php-apc.
Если включить вывод всех ошибок, то будет видно при оформлении заказа в консоли
Вылечил прописыванием в /index.php
Если включить вывод всех ошибок, то будет видно при оформлении заказа в консоли
Argument 1 passed to xPDOObject::load() must be an instance of xPDO
Вылечил прописыванием в /index.php
ini_set('apc.cache_by_default', 0);
Василий, спасибо вам огромное!!! Можно еще маленький вопросик, как включить вывод всех ошибок?
ini_set('display_errors', 1);
ini_set('error_reporting', -1);
в index.php?
Да.
Спасибо!
То, что надо! Спасибо!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.