Для пересчета суммы товаров в корзине в Битриксе, вы можете воспользоваться методом 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 будет содержать общую сумму всех товаров в корзине с учетом скидки.
Помните, что код должен быть размещен например в файле, относящемся к обработчику события.