UMIhelp

Разработка дополнительного функционала => Custom макросы => Тема начата: htmllancer от 28 Марта 2014, 13:20:17

Название: Изменение цены товара
Отправлено: htmllancer от 28 Марта 2014, 13:20:17
Доброго всем, стоит такая задача - изменить цену товара по логике
одно поле умножить на другое

Кроме как через event 'order_refresh' - это не реализовать

но столкнулся с такой проблемой,что мне не взять цену товара, не обнулить ее, только что то вычесть
		public function OnPutElement(iUmiEventPoint $e) {
if ($e->getMode() === "after") {

$order = $e->getRef('order');
$items = $order->order_items;

foreach($items as $item) {
$objects = umiObjectsCollection::getInstance();
$itemObject = $objects->getObject($item);
$itemPrice = $itemObject->getValue('item_price');
                                         // реально 400 но в дампе 0
$itemObject->setValue('item_price', '-388');
                                        // в дампе 12
}
throw new BreakException();
}

}

};

К то нибудь сталкивался с такой проблемой? Или кто знает как ее по другому решить?

Спасибо
Название: Re:Изменение цены товара
Отправлено: ilyar от 28 Марта 2014, 14:19:47
Сталкивался, позже постараюсь описать подробнее особенности решения через iUmiEventPoint.

Рекомендую реализовать это через baseRestriction (http://api.docs.umi-cms.ru/spravochnik_po_klassam_yadra_umicms/model_dannyh/baserestriction/) для поля Price
Название: Re:Изменение цены товара
Отправлено: htmllancer от 28 Марта 2014, 17:10:27
Спасибо. Почитаю. Если не сложно приведите особенности решения через iUmiEventPoint
Название: Re:Изменение цены товара
Отправлено: admin от 14 Мая 2014, 13:49:26
Доброго всем, стоит такая задача - изменить цену товара по логике
одно поле умножить на другое

в какой момент должна меняться цена? при выводе в каталоге? при положении в корзину? при оформлении заказа?