Суть проблемы, пользователь заходит на сайт добавляет товар в корзину по стандартной цене, далее ему предлагаеться зарегестрироваться после чего он получит скидку в 3%,(добавиться в группу пользователей которая попадает под эту скидку), после этого он уже может добавлять товыры с учётом скидки но старые(которые уже были в корзине) остаються с полной ценой. Как решить эту проблему?
Код добавления цены в корзину через add_to_basket.php
<?
if ($USER->IsAuthorized()){?>
<!--noindex--><!--/noindex-->
<?}
else{
?>
<!--noindex--><!--/noindex-->
<?}
?>
Файл add_to_basket.php
<?require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"
;
require_once($_SERVER["DOCUMENT_ROOT"]."/include/functions.php"
;
$APPLICATION->RestartBuffer();?>
<?
if(CModule::IncludeModule("sale"
&& CModule::IncludeModule("catalog"
&& CModule::IncludeModule("iblock"
) {
if($_GET["action"] == "ADD2BASKET"
{
$arPrice = CPrice::GetByID($_GET["price_id"]
;
$rsProd = CIBlockElement::GetByID($arPrice["PRODUCT_ID"]
;
$arProd = $rsProd->GetNext();
$arPrice["PRICE"] = $_GET["PRICE"];
}
else{
$arPrice = CPrice::GetList(array(), array( "PRODUCT_ID" => $_GET["id"], "CATALOG_GROUP_ID" => 1))->Fetch();
$rsProd = CIBlockElement::GetByID($_GET["id"]
;
$arProd = $rsProd->GetNext();
}
$arFields = array(
"PRODUCT_ID" => $arPrice["PRODUCT_ID"],
"PRODUCT_PRICE_ID" => $arPrice["ID"],
"PRICE" => $arPrice["PRICE"],
"CURRENCY" => $arPrice["CURRENCY"],
"QUANTITY" => $_GET["quantity"],
"LID" => LANG,
"DELAY" => "N",
"CAN_BUY" => "Y",
"NAME" => $arProd["NAME"]
);
CSaleBasket::Add($arFields);
}
?>
<script>
$(document).ready(function(){
$('#add-tovar').show();
var destination = jQuery('#add-tovar').offset().top;
jQuery("html,body"
.animate({scrollTop: destination}, 500);
$(".close"
.click(function() {
$('#add-tovar').hide();
return false;
});
});
</script>
<?$APPLICATION->IncludeComponent("bitrix:sale.basket.basket.line", ".default", array(
"PATH_TO_BASKET" => SITE_DIR."personal/cart/",
"PATH_TO_PERSONAL" => SITE_DIR."personal/order/make/",
"SHOW_PERSONAL_LINK" => "N"
),
false,
Array()
);?>
Код добавления цены в корзину через add_to_basket.php
<?
if ($USER->IsAuthorized()){?>
<!--noindex--><!--/noindex-->
<?}
else{
?>
<!--noindex--><!--/noindex-->
<?}
?>
Файл add_to_basket.php
<?require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"
;require_once($_SERVER["DOCUMENT_ROOT"]."/include/functions.php"
;$APPLICATION->RestartBuffer();?>
<?
if(CModule::IncludeModule("sale"
&& CModule::IncludeModule("catalog"
&& CModule::IncludeModule("iblock"
) {if($_GET["action"] == "ADD2BASKET"
{$arPrice = CPrice::GetByID($_GET["price_id"]
;$rsProd = CIBlockElement::GetByID($arPrice["PRODUCT_ID"]
;$arProd = $rsProd->GetNext();
$arPrice["PRICE"] = $_GET["PRICE"];
}
else{
$arPrice = CPrice::GetList(array(), array( "PRODUCT_ID" => $_GET["id"], "CATALOG_GROUP_ID" => 1))->Fetch();
$rsProd = CIBlockElement::GetByID($_GET["id"]
;$arProd = $rsProd->GetNext();
}
$arFields = array(
"PRODUCT_ID" => $arPrice["PRODUCT_ID"],
"PRODUCT_PRICE_ID" => $arPrice["ID"],
"PRICE" => $arPrice["PRICE"],
"CURRENCY" => $arPrice["CURRENCY"],
"QUANTITY" => $_GET["quantity"],
"LID" => LANG,
"DELAY" => "N",
"CAN_BUY" => "Y",
"NAME" => $arProd["NAME"]
);
CSaleBasket::Add($arFields);
}
?>
<script>
$(document).ready(function(){
$('#add-tovar').show();
var destination = jQuery('#add-tovar').offset().top;
jQuery("html,body"
.animate({scrollTop: destination}, 500);$(".close"
.click(function() { $('#add-tovar').hide();
return false;
});
});
</script>
<?$APPLICATION->IncludeComponent("bitrix:sale.basket.basket.line", ".default", array(
"PATH_TO_BASKET" => SITE_DIR."personal/cart/",
"PATH_TO_PERSONAL" => SITE_DIR."personal/order/make/",
"SHOW_PERSONAL_LINK" => "N"
),
false,
Array()
);?>