MiniShop2. Оформление заказа

Два вопроса, добавил страницу корзина, туда снипеты msCart, msOrder. Заполняю поля — нажимаю оформить — страница перезагружается, и сново выводит корзину только без формы, для оформления заказа. Что я забыл сделать? И можно ли в зависимости от выбранного города менять email организации (чтобы заказ из самары шел на самарский email, питерский на питерский ?)
Андрей
08 марта 2013, 20:34
modx.pro
5 546
0

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

Василий Наумкин
09 марта 2013, 06:17
0
1. Смотри ошибки javascript. При незаполненной форме не должно отправляться, а при заполненной — должна быть перезагрузка с параметром msorder=номерзаказа.

2. Нет, так сделать нельзя, на стандартном классе оформления заказа. Можно сделать плагин на событие msOnCreateOrder, который будет смотреть на город и слать дополнительное письмо.
    Andrey
    17 мая 2013, 15:48
    0
    Василий, подскажи плиз, как получить id заказа в плагине на событие msOnCreateOrder?
Андрей
09 марта 2013, 15:34
0
понятно, а как вывести кол-во товаров напротив корзины?
    Bond Nataly
    08 июля 2013, 19:48
    0
    Здравствуйте. У меня такая же ситуация, ошибок яваскрипт нету. Страница перезагружается, добавляя в адресной строке ?msorder=15, заказ отправляется, все как надо, только, похоже, не выдает tpl.msOrder.success и не очищается корзина. В какую строну глянуть? Спасибо.
      Василий Наумкин
      09 июля 2013, 05:59
      0
      Версия последняя, из нашего репозитория?

      Если так — создавай отдельную тему, будем разбираться.
        Bond Nataly
        09 июля 2013, 07:57
        0
        Нашла причину ошибки, но не могу понять почему так происходит:
        В файле 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) и соответственно вообще не отправлялся заказ.
        Вот только так работает, как закомментено в коде.
        Версия последняя. Василий, отправила доступ вам на почту.
          Василий Наумкин
          09 июля 2013, 09:46
          0
          Дело, как обычно в нашем любимом php-apc.
          Если включить вывод всех ошибок, то будет видно при оформлении заказа в консоли
          Argument 1 passed to xPDOObject::load() must be an instance of xPDO

          Вылечил прописыванием в /index.php
          ini_set('apc.cache_by_default', 0);
            Bond Nataly
            09 июля 2013, 09:52
            0
            Василий, спасибо вам огромное!!! Можно еще маленький вопросик, как включить вывод всех ошибок?
            Олег
            24 августа 2013, 12:36
            0
            То, что надо! Спасибо!
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      14