[COLOR=#000000]Всем привет.[/COLOR]
[COLOR=#000000]Мне достался непонятный функционал работы с заказами. в заказах есть списки товаров. Все эти товары лежат в отдельном инфоблоке. и свойство Цена доставки каждого товара находится в свойствах элемента инфоблока.[/COLOR]
[COLOR=#000000]Соответственно. при расчете Итоговой цены доставка не учитывается.[/COLOR]
[COLOR=#000000]Задача. Нужно учитывать стоимость доставки кажждого из товаров.[/COLOR]
[COLOR=#000000]Вариант решения. №1 (Пока самый желаеммый)[/COLOR]
[COLOR=#000000]Добавить в расчет поля "Сумма" цену доставки. если было "Количество" * "Цена" , то стало "Количество" * "Цена" + Цена доставки.[/COLOR]
[COLOR=#000000]Попытка решения.[/COLOR]
[COLOR=#000000][COLOR=#000000] Повесил обработчик события OnSaleCalculateOrder. в Нем прошелся по каждому товару и с помощью CSaleBasket::GetByID зная BUSCET_ID каждого товара нахожу цену доставки. но так как в событии отсутствует поле "Сумма" не знаю как добавить цену доставки..[/COLOR]
[/COLOR]
[COLOR=#000000][FONT=Tahoma, Geneva]И даже при простом изменении Цены товара в этом событии [/FONT][/COLOR][URL=http://joxi.ru/DmBxBqJuJwN5AP]http://joxi.ru/DmBxBqJuJwN5AP[/URL]
[COLOR=#000000], Итоговая цена отображается все равно не правильно. [/COLOR][URL=http://joxi.ru/BA0REN6fMJBgmy][COLOR=#0000ff]http://joxi.ru/BA0REN6fMJBgmy[/COLOR][/URL]
[COLOR=#000000][FONT=Tahoma, Geneva][U][COLOR=#000000]Другие варианты... Также использовал следующие события[/COLOR][/U][COLOR=#000000]:[/COLOR]
[/FONT][/COLOR]
[COLOR=#000000][FONT=Tahoma, Geneva] -- OnBeforeOrderUpdate - [/FONT][/COLOR][URL=http://joxi.ru/V2VY9E5IdxdDmv][FONT=Tahoma, Geneva]http://joxi.ru/V2VY9E5IdxdDmv[/FONT][/URL][COLOR=#000000][FONT=Tahoma, Geneva] Проблема возникала в том что это работает только после нажатия на кнопку применить/сохранить. Еще не правильно отображалась Итоговая цена если мы меняем Количество или ценутовара (Измененные данные приходили только при повторном нажатии на кнопку применить/сохранить (видимо присвоение этих полей происходит после события)) До - [/FONT][/COLOR][URL=http://joxi.ru/Dr8NBj3ho4zz26][FONT=Tahoma, Geneva]http://joxi.ru/Dr8NBj3ho4zz26[/FONT][/URL][COLOR=#000000][FONT=Tahoma, Geneva]. После первого сохранения - [/FONT][/COLOR][URL=http://joxi.ru/E2pbyXeS79abrY][FONT=Tahoma, Geneva]http://joxi.ru/E2pbyXeS79abrY[/FONT][/URL][COLOR=#000000][FONT=Tahoma, Geneva]. После второго сохранения - [/FONT][/COLOR][URL=http://joxi.ru/J2b3WY4u0XGEA6][FONT=Tahoma, Geneva]http://joxi.ru/J2b3WY4u0XGEA6[/FONT][/URL][COLOR=#000000][FONT=Tahoma, Geneva]. Причем при просмотре заказа вообще странно все выглядит[/FONT][/COLOR][FONT=Tahoma, Geneva] [/FONT][URL=http://joxi.ru/vAWy9vltg1qMmW][FONT=Tahoma, Geneva]http://joxi.ru/vAWy9vltg1qMmW[/FONT][/URL]
[FONT=Tahoma, Geneva]
[/FONT][COLOR=#000000] -- [/COLOR][FONT=Tahoma, Geneva][COLOR=#000000]OnBeforeBasketUpdate - там отлавливал изменение цены доставки и с помощью CSaleOrder::Update пытался изменить поле доставки.. но там тоже не понятно что происходило.[/COLOR]
[/FONT]
[COLOR=#000000]Жду любой комментарий по этому поводу.. Уже не знаю что делать... мне даже способ редактирования кода модуля сойдет, только не знаю как и где искать все это... что за события срабатывают и где их обработчики..[/COLOR]
[COLOR=#000000]Мне достался непонятный функционал работы с заказами. в заказах есть списки товаров. Все эти товары лежат в отдельном инфоблоке. и свойство Цена доставки каждого товара находится в свойствах элемента инфоблока.[/COLOR]
[COLOR=#000000]Соответственно. при расчете Итоговой цены доставка не учитывается.[/COLOR]
[COLOR=#000000]Задача. Нужно учитывать стоимость доставки кажждого из товаров.[/COLOR]
[COLOR=#000000]Вариант решения. №1 (Пока самый желаеммый)[/COLOR]
[COLOR=#000000]Добавить в расчет поля "Сумма" цену доставки. если было "Количество" * "Цена" , то стало "Количество" * "Цена" + Цена доставки.[/COLOR]
[COLOR=#000000]Попытка решения.[/COLOR]
[COLOR=#000000][COLOR=#000000] Повесил обработчик события OnSaleCalculateOrder. в Нем прошелся по каждому товару и с помощью CSaleBasket::GetByID зная BUSCET_ID каждого товара нахожу цену доставки. но так как в событии отсутствует поле "Сумма" не знаю как добавить цену доставки..[/COLOR]
[/COLOR]
[COLOR=#000000][FONT=Tahoma, Geneva]И даже при простом изменении Цены товара в этом событии [/FONT][/COLOR][URL=http://joxi.ru/DmBxBqJuJwN5AP]http://joxi.ru/DmBxBqJuJwN5AP[/URL]
[COLOR=#000000], Итоговая цена отображается все равно не правильно. [/COLOR][URL=http://joxi.ru/BA0REN6fMJBgmy][COLOR=#0000ff]http://joxi.ru/BA0REN6fMJBgmy[/COLOR][/URL]
[COLOR=#000000][FONT=Tahoma, Geneva][U][COLOR=#000000]Другие варианты... Также использовал следующие события[/COLOR][/U][COLOR=#000000]:[/COLOR]
[/FONT][/COLOR]
[COLOR=#000000][FONT=Tahoma, Geneva] -- OnBeforeOrderUpdate - [/FONT][/COLOR][URL=http://joxi.ru/V2VY9E5IdxdDmv][FONT=Tahoma, Geneva]http://joxi.ru/V2VY9E5IdxdDmv[/FONT][/URL][COLOR=#000000][FONT=Tahoma, Geneva] Проблема возникала в том что это работает только после нажатия на кнопку применить/сохранить. Еще не правильно отображалась Итоговая цена если мы меняем Количество или ценутовара (Измененные данные приходили только при повторном нажатии на кнопку применить/сохранить (видимо присвоение этих полей происходит после события)) До - [/FONT][/COLOR][URL=http://joxi.ru/Dr8NBj3ho4zz26][FONT=Tahoma, Geneva]http://joxi.ru/Dr8NBj3ho4zz26[/FONT][/URL][COLOR=#000000][FONT=Tahoma, Geneva]. После первого сохранения - [/FONT][/COLOR][URL=http://joxi.ru/E2pbyXeS79abrY][FONT=Tahoma, Geneva]http://joxi.ru/E2pbyXeS79abrY[/FONT][/URL][COLOR=#000000][FONT=Tahoma, Geneva]. После второго сохранения - [/FONT][/COLOR][URL=http://joxi.ru/J2b3WY4u0XGEA6][FONT=Tahoma, Geneva]http://joxi.ru/J2b3WY4u0XGEA6[/FONT][/URL][COLOR=#000000][FONT=Tahoma, Geneva]. Причем при просмотре заказа вообще странно все выглядит[/FONT][/COLOR][FONT=Tahoma, Geneva] [/FONT][URL=http://joxi.ru/vAWy9vltg1qMmW][FONT=Tahoma, Geneva]http://joxi.ru/vAWy9vltg1qMmW[/FONT][/URL]
[FONT=Tahoma, Geneva]
[/FONT][COLOR=#000000] -- [/COLOR][FONT=Tahoma, Geneva][COLOR=#000000]OnBeforeBasketUpdate - там отлавливал изменение цены доставки и с помощью CSaleOrder::Update пытался изменить поле доставки.. но там тоже не понятно что происходило.[/COLOR]
[/FONT]
[COLOR=#000000]Жду любой комментарий по этому поводу.. Уже не знаю что делать... мне даже способ редактирования кода модуля сойдет, только не знаю как и где искать все это... что за события срабатывают и где их обработчики..[/COLOR]