Есть событие 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 товара
но если мы используем торговые предложения этот код не будет работать, т.е. у торговых предложений так нельзя изменить минимальную цену
Есть ли какой-либо способ так же работать с торговыми предложениями???