Есть событие OnGetOptimalPrice которое позволяет изменить выбор минимальной цены, можно использовать так:
Но проблема в том что в событии OnGetOptimalPrice переменная
$productID - это ID товара
но если мы используем торговые предложения этот код не будет работать, т.е. у торговых предложений так нельзя изменить минимальную цену
Есть ли какой-либо способ так же работать с торговыми предложениями???
Код |
---|
AddEventHandler("catalog", "OnGetOptimalPrice", "MyGetOptimalPrice"); function MyGetOptimalPrice($productID, $quantity = 1, $arUserGroups = array(), $renewal = "N", $arPrices = array(), $siteID = false, $arDiscountCoupons = false) { if (SITE_ID == 's1') { global $USER; // Если пользователь не авторизован if (!$USER->IsAuthorized()) { $arOptPrices = CCatalogProduct::GetByIDEx($productID); // Проставляем цену с id = 1 $price = $arOptPrices['PRICES'][1]['PRICE']; $catalog_group_id = 1; // Отдаем результат в массиве $priceArr = array( 'PRICE' => array( "ID" => $productID, 'CATALOG_GROUP_ID' => $catalog_group_id, 'PRICE' => $price, 'CURRENCY' => "RUB", 'ELEMENT_IBLOCK_ID' => $productID, 'VAT_INCLUDED' => "Y", ), 'DISCOUNT' => array( 'VALUE' => $discount, 'CURRENCY' => "RUB", ), ); return $priceArr; } } } |
Но проблема в том что в событии OnGetOptimalPrice переменная
$productID - это ID товара
но если мы используем торговые предложения этот код не будет работать, т.е. у торговых предложений так нельзя изменить минимальную цену
Есть ли какой-либо способ так же работать с торговыми предложениями???