Почему ни одним способом нельзя изменить цену товар в коризне
например делал так:
но в стандартном компоненте битрикса корзины все равно цена из иб
пытался и так
тоже не работает
инструкция нормальных нет
и как быть?
и так пробовал
как мне менять цену при добавлении в корзину или изменении колва любого товара в корзине ???
например делал так:
Код |
---|
AddEventHandler("sale", "OnBasketAdd", "CheckZaprPrice"); AddEventHandler("sale", "OnBasketUpdate", "CheckZaprPrice"); function CheckZaprPrice($ID, $arFields) { ... } в этой функции через CSaleBasket::Update менял цену |
пытался и так
Код |
---|
AddEventHandler('sale', 'OnBeforeBasketAdd', 'OnBeforeBasketAddHandler'); function OnBeforeBasketAddHandler(&$arFields) { $arFields['CALLBACK_FUNC'] = 'MyBasketCallback'; } function MyBasketCallback($PRODUCT_ID, $QUANTITY = 0) { $arResult = array(); $iProductQuantity = GetProductQuantity($PRODUCT_ID); if ($iProductQuantity<=0) return $arResult; // товар кончился, возвращаем пустой массив $arResult = array( "PRODUCT_PRICE_ID" => 0, "PRICE" => 125, "CURRENCY" => "RUB", "WEIGHT" => 530, "NAME" => "Чемодан кожаный", "CAN_BUY" => "Y" ); return $arResult; } |
тоже не работает
инструкция нормальных нет
и как быть?
и так пробовал
Код |
---|
CModule::IncludeModule("catalog"); class CCatalogProductProviderCustom extends \Bitrix\Catalog\Product\CatalogProvider { public function GetProductData($params) { //Получение готового массива цен $result = parent::GetProductData($params); $arResults = $result->getData(); $arResults['PRICE'] = 100; $arResults['BASE_PRICE'] = 100; $result->setData($arResults); return $result; } } AddEventHandler('sale', 'OnSaleBasketItemRefreshData', 'BeforeBasketAddHandler'); function BeforeBasketAddHandler($BasketItem) { $BasketItem->setField("PRODUCT_PROVIDER_CLASS", "CCatalogProductProviderCustom"); $BasketItem->setField("CUSTOM_PRICE", "Y"); } |
как мне менять цену при добавлении в корзину или изменении колва любого товара в корзине ???