Суть проблемы, пользователь заходит на сайт добавляет товар в корзину по стандартной цене, далее ему предлагаеться зарегестрироваться после чего он получит скидку в 3%,(добавиться в группу пользователей которая попадает под эту скидку), после этого он уже может добавлять товыры с учётом скидки но старые(которые уже были в корзине) остаються с полной ценой. Как решить эту проблему?
Код добавления цены в корзину через add_to_basket.php
<?
if ($USER->IsAuthorized()){?>
<!--noindex-->&price_id=<?=$arElement["PRICES"]["BASE"]["ID"];?>&quantity=1" class="buy" rel="nofollow" onclick="return addToCart(this, 'catalog_list_image_<?=$arElement['ID']?>', 'list', 'В корзине');" id="catalog_add2cart_link_<?=$arElement['ID']?>">купить <!--/noindex-->
<?}
else{
?>
<!--noindex-->&price_id=<?=$arElement["PRICES"]["BASE"]["ID"];?>&quantity=1" class="buy" rel="nofollow" onclick="return addToCart(this, 'catalog_list_image_<?=$arElement['ID']?>', 'list', 'В корзине');" id="catalog_add2cart_link_<?=$arElement['ID']?>">купить <!--/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-->
<?}
else{
?>
<!--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()
);?>