Не менять статус заказа при оплате заказа (repay)


#1

Какую задачу или проблему я пытаюсь решить: Оформлен заказ но еще не оплачен. Есть к примеру статус заказа “Ожидает оплаты” для которого отмечено “Снова оплатить заказ”. Менеджер после проверки наличия и согласования с клиентом ставит этот статус чтобы покупатель смог оплатить заказ онлайн. Покупатель у себя в профиле заходит в заказ, выбирает способ оплаты и нажимает “Оплатить”. После чего переходит к примеру на сайт платежной системы. Но сам заказ меняет статус на “Новый” и клиенту на почту отправляется оповещение “Спасибо за заказ” которое он уже получал ранее так как заказ был оформлен ранее и у него уже был статус “Новый”! Зачем менять статус на “Новый”? Ведь и настроить нельзя, чтобы менял к примеру на “Ожидает оплаты”

Каким я представляю решение проблемы: В файле app/controllers/frontend/orders.php $_SERVER[‘REQUEST_METHOD’] == ‘POST’ и $mode == ‘repay’ заменить $change_order_status = STATUSES_ORDER; на $change_order_status = $order_info[‘status’];


#2

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

Строчка 100 особенно доставляет))))


#3

Поддержку. Но сомневаюсь, что что-то поменяется в этом плане в ядре


#4

Лучше так
//$change_order_status = STATUSES_ORDER; - комментируем. Ниже добавляем
$change_order_status = $order_info[‘status’];
или
$change_order_status = ‘’;

Потому что далее идет функция fn_change_order_status где используется переменная $change_order_status


#5

Я не умею код читать, увы, и что мой способ ломает мне не известно, но так работает уже 2 с лишним года все, и даже с учётом того что я уже на 4.12+++

Можете подсказать, что в моем случае ломается исходя из следующей функции? Может я не замечал ещё)


#6

Покажите скрин начиная со строчки 100 и до 126


#7


#8

см строчка 116 - там при вызове функции передается переменная которая не объявлена ранее $change_order_status. Ошибка - Undefined variable ‘$change_order_status’


#9

О какой платёжной системе идет речь? В настройках Робокассы, например, можно указать, на какой статус менять заказ после успешной оплаты. Соответственно, проблемы и нет.


#10

Речь об оплате после подтверждения(“Повторная оплата”), клик на кнопку Оплатить в кабинете клиента производит смену статуса на Открыт и потом идет переадресация на платежный шлюз или куда там уже

Еще веселее это работало(не работало) с модулем RetailFactory Оплата после подтверждения, там вообще вот такое веселье было - Заказ падает в статусе Ожидает подтверждения, и пошло поехахло, еще и кнопка оплаты пропадала)) давно было уж, деталей не помню


#11

Да, действительно, заказ снова получает статус “O”. Считаю это ненужным (заказ не должен менять статус в этой ситуации) и ставлю лайк вашей теме. Будет здорово, если вы еще в первом сообщении добавите опрос - может так быстрее разработчики заметят проблему.