В init.php отлавливаю событие изменение корзины, в случае если условие верное добавляю товар в корзину. Все работает, но проблема в том что только после обновления страницы. Как вызывать обновление ajax?
AddEventHandler("sale", "OnBeforeBasketUpdate", "HandlerUpdateCart");
AddEventHandler("sale", "OnBasketDelete", "HandlerUpdateCart");
function HandlerUpdateCart($ID,$arFields)
{
$basket = Sale\Basket::loadItemsForFUser(Sale\Fuser::getId(), Bitrix\Main\Context::getCurrent()->getSite());
$price = $basket->getPrice();
$basketItems = $basket->getBasketItems();
foreach ($basket as $basketItem) {
//Проверяем есть ли уже подарок
if($basketItem->getProductId() == 22120){
$i = 1;
if($price < 15000){
$fields = [
'PRODUCT_ID' => 22120,
'QUANTITY' => 0,
];
$r = CSaleBasket::Update($basketItem->getId(), $fields);
}
}
}
if($price > 15000 && $i != 1){
$fields = [
'PRODUCT_ID' => 22120,
'QUANTITY' => 1,
];
$r = Bitrix\Catalog\Product\Basket::addProduct($fields);
}
}