Как пересчитать сумму товаров в корзине битрикс?

Для пересчета суммы товаров в корзине в Битриксе, вы можете воспользоваться методом BitrixSaleBasket::getPrice().

Сначала, чтобы получить текущую корзину пользователя, нам понадобится объект текущего заказа. Мы можем получить его следующим образом:

global $USER;
BitrixMainLoader::includeModule('sale');
$order = BitrixSaleOrder::loadByUserID($USER->GetID());
$basket = $order->getBasket();

Теперь, имея объект корзины ($basket), мы можем перебрать все элементы и получить их цену:

$totalPrice = 0;
$items = $basket->getBasketItems();
foreach ($items as $item) {
    $totalPrice += $item->getPrice();
}

В результате, переменная $totalPrice будет содержать общую сумму всех товаров в корзине.

Если вы хотите получить цену с учетом скидки, вы можете использовать метод BitrixSaleBasket::getBasePrice() вместо BitrixSaleBasket::getPrice().

$totalBasePrice = 0;
$items = $basket->getBasketItems();
foreach ($items as $item) {
    $totalBasePrice += $item->getBasePrice();
}

Теперь переменная $totalBasePrice будет содержать общую сумму всех товаров в корзине с учетом скидки.

Помните, что код должен быть размещен например в файле, относящемся к обработчику события.