Пытаюсь понять, как это правильно реализовать. Как вообще понять, что состав заказа был изменен в процессе его редактирования в админке? Такого события, к сожалению, не предусмотрено и приходится уведомлять пользователя вручную.
Обработчик OnOrderUpdate задействовать не удалось, ибо массив $arFields не содержит никаких данных о том, что собственно было изменено в процессе обновления.
В крайнем случае хотелось бы отправлять сообщение с историей изменений заказа, в случае если они реально (а не формально, когда обновилась дата изменения заказа).
У меня пока старое ядро и обновляться не планирую по ряду причин. Пока что вижу решение задачи следующим: повесить обработчик на событие OnBeforeOrderUpdate с целью прочитать данные о корзине "до изменения" в глобальную переменную, а потом при наступлении OnOrderUpdate проверить на изменения и если они есть - выслать письмо с новым товаром в заказе...
Александр Кислицын написал: Суть ваших действий непонятна - зачем это все вообще?
Часто приходится заменять одни товары другими и нужно что-бы пользователь получал уведомление об этом. Это же касается и стоимости доставки.
Сейчас пытаюсь проверить схему с использованием глобальной переменной, все получается, но почему-то оба события срабатывают трижды пока я всего-лишь один раз нажимаю кнопку "изменить заказ" в админке
1. но ведь пользователь согласовывает эти изменения? 2. зачем городить огород, когда вы можете ввести какой-либо статус (например подтверждение заказа) и после его применения отправлять пользователю письмо определенной формы, в котором напишите, что заказ готов к отправке, состав заказа такой-то, условия оплаты такие-то, условия отправки такие-то
Александр Кислицын написал: . но ведь пользователь согласовывает эти изменения?2. зачем городить огород, когда вы можете ввести какой-либо статус (например подтверждение заказа) и после его применения отправлять пользователю письмо определенной формы, в котором напишите, что заказ готов к отправке, состав заказа такой-то, условия оплаты такие-то, условия отправки такие-то
Да, согласен. Небольшой огород. Но при схеме со статусом заказа "изменен" пришлось бы подтвержденные заказа переводить в статус "изменен" потом опять на "подтвержден", путаница будет, особенно если буду заниматься этим не сам. Насчет доставки, так и сделаю, а изменение состава заказа попробую все-таки на обработчики повешать - так будет полный порядок с точки зрения клиента ну а на нагрузку никак не повлияет, ведь это редкие операции.
В общем ничего не получается - при наступлении событий OnBeforeOrderUpdate и OnOrderUpdate метод CSaleBasket::GetList возвращает одни и те же товары, с теми же ценами и кол-вом Придется добавить таки состав заказа в сообщение статуса "подтвержден".
У нас следующие статусы, которых вполне хватает для основных цепочек БП Принят, Подтвержден, Обработан, Оплачен, Отправлен, Выполнен, Закрыт, Возврат Заказа
Александр Кислицын написал: У нас следующие статусы, которых вполне хватает для основных цепочек БП Принят, Подтвержден, Обработан, Оплачен, Отправлен, Выполнен, Закрыт, Возврат Заказа