Доброго времени суток.
Подскажите пожалуйста, вдруг кто сталкивался.
Суть в том что мне нужно предоставить скидку, в том случае, если клиент уже заказывал товар на сайте ранее. Я вызываю событие OnSaleComponentOrderResultPrepared и передаю ему свой метод в котором собственно и пытаюсь колдовать. Пока что пришел вот к чему[CODE]$basket = $event->getBasket();
foreach($basket->getBasketItems() as $item)
{
$discount_price = $item->getField("PRICE") - ($item->getField("PRICE") / 100 * 90);
var_dump($discount_price); // Тут значение правильное
$item->setField("DISCOUNT_PRICE", $discount_price);
$item->save();
var_dump($item->getField("DISCOUNT_PRICE")); // 0. Почему?
}
[/CODE]$event - это экземпляр заказа, так что тут все правильно. Получается что не отрабатывает setField(), но ведь то же самое на странице корзины прекрасно пересчитало скидку. А на странице оформления заказа DISCOUNT_PRICE так и остается равным нулю. Подозреваю что с событием промахнулся.. Но тогда какое нужно использовать? Подтолкните в нужном направлении?
Подскажите пожалуйста, вдруг кто сталкивался.
Суть в том что мне нужно предоставить скидку, в том случае, если клиент уже заказывал товар на сайте ранее. Я вызываю событие OnSaleComponentOrderResultPrepared и передаю ему свой метод в котором собственно и пытаюсь колдовать. Пока что пришел вот к чему[CODE]$basket = $event->getBasket();
foreach($basket->getBasketItems() as $item)
{
$discount_price = $item->getField("PRICE") - ($item->getField("PRICE") / 100 * 90);
var_dump($discount_price); // Тут значение правильное
$item->setField("DISCOUNT_PRICE", $discount_price);
$item->save();
var_dump($item->getField("DISCOUNT_PRICE")); // 0. Почему?
}
[/CODE]$event - это экземпляр заказа, так что тут все правильно. Получается что не отрабатывает setField(), но ведь то же самое на странице корзины прекрасно пересчитало скидку. А на странице оформления заказа DISCOUNT_PRICE так и остается равным нулю. Подозреваю что с событием промахнулся.. Но тогда какое нужно использовать? Подтолкните в нужном направлении?