Добрый день.
Народ, подскажите, пжл. Вот такой трабл:
Я добавляю товар в корзину,используя функцию CSaleBasket::Add($arFields). В массиве $arFields
$arFields = array(
"PRODUCT_ID" => $iIdNumber,
"PRODUCT_PRICE_ID" => 0,
"PRICE" =>$sPriceValue,
"CURRENCY" => $sPriceCurrency,
"VAT_RATE" => 0.2,
"QUANTITY" => 1,
"PRICE_VAT_INCLUDE" => "Y",/////////добавленый параметр
"LID" => LANG,
"DELAY" => "N",
"CAN_BUY" => "Y",
"NAME" => $sName,
"CALLBACK_FUNC" => "CatalogBasketCallback",
"NOTES" => "",
"ORDER_CALLBACK_FUNC" => "CatalogBasketOrderCallback",
"DETAIL_PAGE_URL" => "/numberandcottage/index.php?ID=$iIdNumber"
);
Я добавляю товар в корзину с заданной ценой "PRICE" =>$sPriceValue. При этом указываю стандартные функции обратного вызова "CALLBACK_FUNC" => "CatalogBasketCallback" и "ORDER_CALLBACK_FUNC" => "CatalogBasketOrderCallback".
Но досадно, что стандартные функции обратного вызова при этом обновляют товар в корзине изменяют мою цену на минимально доступную для данного пользователя.
Я так понимаю, что причина этого в функции GetOptimalPrice,которая используется в CatalogBasketCallback и в CatalogBasketOrderCallback.
Чтобы в корзине была актуальная цена товара , я в функцию GetOptimalPrice передаю параметр array(array("PRICE"=>"200","CURRENCY"=>"UAH")),явным образом ограничивая список цен, из которых выбирается оптимальная.
$arPrice = CCatalogProduct::GetOptimalPrice($productID, $quantity, $USER->GetUserGroupArray(), $renewal,array(array("PRICE"=>"200","CURRENCY"=>"UAH")));
При этом цена в корзине выводиться нужная,т.е. та ,которую я указал array(array("PRICE"=>"200","CURRENCY"=>"UAH")).
Но при этом не работают скидки.
Может кто-то уже переписывал функцию GetOptimalPrice?
Помогите решить проблему.Заранее спасибо!!!
Народ, подскажите, пжл. Вот такой трабл:
Я добавляю товар в корзину,используя функцию CSaleBasket::Add($arFields). В массиве $arFields
$arFields = array(
"PRODUCT_ID" => $iIdNumber,
"PRODUCT_PRICE_ID" => 0,
"PRICE" =>$sPriceValue,
"CURRENCY" => $sPriceCurrency,
"VAT_RATE" => 0.2,
"QUANTITY" => 1,
"PRICE_VAT_INCLUDE" => "Y",/////////добавленый параметр
"LID" => LANG,
"DELAY" => "N",
"CAN_BUY" => "Y",
"NAME" => $sName,
"CALLBACK_FUNC" => "CatalogBasketCallback",
"NOTES" => "",
"ORDER_CALLBACK_FUNC" => "CatalogBasketOrderCallback",
"DETAIL_PAGE_URL" => "/numberandcottage/index.php?ID=$iIdNumber"
);
Я добавляю товар в корзину с заданной ценой "PRICE" =>$sPriceValue. При этом указываю стандартные функции обратного вызова "CALLBACK_FUNC" => "CatalogBasketCallback" и "ORDER_CALLBACK_FUNC" => "CatalogBasketOrderCallback".
Но досадно, что стандартные функции обратного вызова при этом обновляют товар в корзине изменяют мою цену на минимально доступную для данного пользователя.
Я так понимаю, что причина этого в функции GetOptimalPrice,которая используется в CatalogBasketCallback и в CatalogBasketOrderCallback.
Чтобы в корзине была актуальная цена товара , я в функцию GetOptimalPrice передаю параметр array(array("PRICE"=>"200","CURRENCY"=>"UAH")),явным образом ограничивая список цен, из которых выбирается оптимальная.
$arPrice = CCatalogProduct::GetOptimalPrice($productID, $quantity, $USER->GetUserGroupArray(), $renewal,array(array("PRICE"=>"200","CURRENCY"=>"UAH")));
При этом цена в корзине выводиться нужная,т.е. та ,которую я указал array(array("PRICE"=>"200","CURRENCY"=>"UAH")).
Но при этом не работают скидки.
Может кто-то уже переписывал функцию GetOptimalPrice?
Помогите решить проблему.Заранее спасибо!!!