Ошибка при смене статуса заказа
Появляется ошибка ms2_err_status_fixed «Установлен фиксирующий статус. Вы не можете сменить его на более ранний.»
При повторном клике — Невозможно оформить пустой заказ.
Но статус заказа меняется.
Плагин на событие msOnCreateOrder — создание заказа
Версия minishop 4.1.5-pl
В файле /core/components/minishop2/model/minishop2/minishop2.class.php
Впечатление, что после смены статуса на Оплачен, заказ получает статус Новый.
Смена события на msOnSaveOrder — сохранение заказа — приводит к такому же результату.
При повторном клике — Невозможно оформить пустой заказ.
Но статус заказа меняется.
Плагин на событие msOnCreateOrder — создание заказа
<?php
switch ($modx->event->name) {
case 'msOnCreateOrder':
if($msOrder->get('payment') == 1) {
$miniShop2 = $modx->getService('miniShop2');
//смена статуса на Оплачен
$status_paid = $modx->getOption('ms2_status_paid', null, 2);
$miniShop2->changeOrderStatus($msOrder->get('id'), $status_paid);
}
break;
}В файле msmyorderhandler.class.php обработчике смена статуса заказа тоже висит на событии msOnCreateOrder.Версия minishop 4.1.5-pl
В файле /core/components/minishop2/model/minishop2/minishop2.class.php
if ($old_status->get('fixed')) {
if ($status->get('rank') <= $old_status->get('rank')) {
$error = 'ms2_err_status_fixed';
return $this->modx->lexicon($error);
}
}Если снимаю статус фиксирующего заказа у Оплачен, то приходит просто Новый.Впечатление, что после смены статуса на Оплачен, заказ получает статус Новый.
Смена события на msOnSaveOrder — сохранение заказа — приводит к такому же результату.
Комментарии: 7
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Еще по идее есть задача не подключать к таким заказам платежную систему.
Это пока решено в виде способа оплаты «Без оплаты». Может, есть более изящный вариант?
А для заказов с нулевой ценой лучше написать плагин на событие msOnCreateOrder, в котором вы будете проверять стоимость заказа и, если она равна 0, то устанавливать способ оплаты «Без оплаты», чтобы избавить пользователя от этой задачи.