UMIhelp

Разработка дополнительного функционала => Разработка модулей => Тема начата: kafaya от 31 Января 2017, 10:49:45

Название: Оповещение менеджера и покупателя о смене статуса заказа
Отправлено: kafaya от 31 Января 2017, 10:49:45
Добрый день, попался сайт на umi с кастомным функционалом. В принципе во всём разобрался, но есть 1 проблема которую не могу решить уже несколько дней.

Дело в том, что базовый функционал о оповещении менеджера и покупателей о смене статуса заказа не работает. На сайте касмтомная функция создания заказа, и видимо из-за этого ЮМИ пропускает какие-либо хуки.

Я нашёл функцию sendCustomerNotification в классе EmarketNotification, но не могу понять на какой хук/крон она завязана, что бы восстановить базовый функционал о оповещении при смене статуса заказа.

Не подскажете в каком направлении двигаться дальше? Спасибо.
Название: Re: Оповещение менеджера и покупателя о смене статуса заказа
Отправлено: aghigay от 31 Января 2017, 11:16:40
Если на сайте кастом для принятия заказа - нет смысла заморачиваться событиями. Нужно просто вскрывать кастом и изучать как там все устроено.
Событие order-status-changed проверяли?
Название: Re: Оповещение менеджера и покупателя о смене статуса заказа
Отправлено: e.ioffe от 31 Января 2017, 12:03:12
Цитировать
Я нашёл функцию sendCustomerNotification в классе EmarketNotification, но не могу понять на какой хук/крон она завязана, что бы восстановить базовый функционал о оповещении при смене статуса заказа.

Функция EmarketNotification::sendCustomerNotification вызывается в методе EmarketNotification::notifyOrderStatusChange, который вызывается из методов EmarketHandlers::onModifyProperty, EmarketHandlers::onModifyObject, EmarketHandlers::onStatusChanged и т.д.

Эти методы прослушивают события, определенные в emarket/events.php

При оформлении заказа должен вызываться метод order класса order (что-то вроде $order->order();). Этот метод делает проверку на текущий статус заказа и вызывает order::setOrderStatus, который, в свою очередь, вызывает событие order-status-changed.

Цитировать
Не подскажете в каком направлении двигаться дальше? Спасибо.

Я бы проверил код макроса на предмет вызова order->order или редиректа на /emarket/purchase/payment/{paymentCode}/ (посмотрите примеры в системных макросах юми).