Долго меняется заказ в minishop2

Добрый день.

Задача: находим заказ текущего пользователя с определенным статусом и способом оплаты. Затем меняем статус заказа на другой. Проблема в том, что отрабатывает сниппет очень долго.

Есть сниппет msPayConfirmSberbank:
<?php
/**
 * @var $modx modX
 * @var $miniShop2 miniShop2
 * @var $payment_id int ID оплаты (в нашем случае указать Сбербанк)
 * @var $user_id int ID текущего пользователя
 * @var $order_id int ID заказа
 * @var $status_id int ID статуса заказа, нужно отображать только новые заказы!
 * @var $new_status_id int ID статуса заказа, нужно отображать только новые заказы!
 */

$user_id = $modx->getUser()->get('id');
if (empty($order_id)) {$order_id = $_GET['msorder']; }
$q = $modx->newQuery('msOrder');
$q->select(array(
    'msOrder.*'
));
$q->where(array(
    'id' => $order_id,
    'user_id' => $user_id,
    'payment' => $payment_id,
    'status' => $status_id
));
$order = $modx->getObject('modResource',$q);
if ($order) {
    $miniShop2 = $modx->getService('minishop2','miniShop2',$modx->getOption('minishop2.core_path',null,$modx->getOption('core_path').'components/minishop2/').'model/minishop2/', array());
    $miniShop2->changeOrderStatus($order->get('id'), $new_status_id);
    return true;
}
return false;
Вызывается вот так:
[[!msPayConfirmSberbank? &payment_id=`4` &status_id=`1` &new_status_id=`7`]]
Всё работает, но очень долго. Уходит на это около 60 секунд, что совсем не норма. Дело не в сервере.
Sadykh Sadykhov
30 ноября 2014, 09:31
modx.pro
1 254
0

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

Василий Наумкин
30 ноября 2014, 15:45
0
При смене статуса отправляются письма покупателю и админу. Скорее всего 59 секунд уходит именно на это.
    Sadykh Sadykhov
    30 ноября 2014, 20:13
    0
    А как можно убедиться в том, что дело именно в отправке сообщений? Если что, отправка идет через smtp сервер.
      Василий Наумкин
      30 ноября 2014, 22:13
      0
      Может, убрать отправку оповещений для этого статуса в настройках miniShop2?
        Sadykh Sadykhov
        02 декабря 2014, 08:15
        0
        Да, дело в отправке сообщений. Будем решать этот вопрос. Вопрос исчерпан. Спасибо, Василий!
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    4