Добрый день . Подскажите какое событие подойдет для отмены/добавления скидки при смене платежной системы?
13.09.2019 12:00:30
Добрый день . Подскажите какое событие подойдет для отмены/добавления скидки при смене платежной системы?
|
|
|
|
13.09.2019 13:53:00
Не надо сверлить зубы через задний проход дрелью от Сваровски
|
|||
|
|
13.09.2019 14:46:43
Не надо сверлить зубы через задний проход дрелью от Сваровски
|
|||
|
|
13.09.2019 14:57:44
так я потому и спросил про событие чтобы на него повесить пересчет заказа
|
|
|
|
13.09.2019 16:28:46
Смотрите изменения оплат
Не надо сверлить зубы через задний проход дрелью от Сваровски
|
|
|
|
13.09.2019 17:12:54
только срабатывает через раз, точнее
условие if(($arParameters['VALUE']==7 && $arParameters['OLD_VALUE']==4) отрабатывет всегда, а вот пересчет через раз |
|
|
|
13.09.2019 18:02:42
Не надо сверлить зубы через задний проход дрелью от Сваровски
|
|||
|
|
16.09.2019 09:54:17
так код я выше привел.
привожу конечный на текущий момент(решили не на определенную платежку, а на любую пересчет повесить)
чтобы было более понятно берем за основу 2 платежки нал и карта создаем заказ так чтобы были скидки - карта, далее в личном кабинете меняем способ оплаты на наличку при этом отрпбатывает код
наше событие changePay при этом может как сработать так и нет, но в 80% оно отрабатывает. идем в админку проверяем. нам повезло и все скидки пересчитались, оплата наличными, все отлично. там же в админке возвращаем все обратно, оплата картой. возвращаемся в той же админке в заказ - и тут фиг вам, скидок нет. идем опять в платежки(через админку) меняем карту на наличку, сохраняем и обратно в заказ - видим что вообще все скидки послетали, опять идем меняем наличку на карту и тут вуаля все пересчиталось и применилось. Но повторюсь это я привел именно самый плохой вариант. примерно в 80% все отрабатывает отлично, т.е. на 10 заказов - 2 выходят без пересчета. |
|||||
|
|
16.09.2019 10:17:08
дополню, условие нужно расширить, а то из админки заказ не создать будет, а так отсеим момент пока заказа нет
if($arParameters['VALUE']!=$arParameters['OLD_VALUE'] && !empty($arParameters['OLD_VALUE'])) { |
|
|
|
16.09.2019 11:28:59
Алексей, нельзя же так утром в понедельник по лбу
1. Событие вызывается ДО сохранения заказа. Это означает, что вызов $order->save приводит к абсолютно непредсказуемым результатам. В обработчике его быть не должно, save и так будет вызван. Ваша задача - передать измененные данные. 2.
3. Зачем вы дергаете обновление корзины (refreshData) и никак не пробрасываете результаты пересчета в заказа? Правильный вариант (здесь нет проверки на ваши условия):
Не надо сверлить зубы через задний проход дрелью от Сваровски
|
|||||
|
|
||||