• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/basketcomponenthelper.php
  • Класс: BitrixSaleBasketComponentHelper
  • Вызов: BasketComponentHelper::calculatePrice
static function calculatePrice($fuserId, array $basketList)
{
	$totalPrice = 0;
	$totalWeight = 0;

	foreach ($basketList as $basketData)
	{
		$totalPrice += $basketData["PRICE"] * $basketData["QUANTITY"];
		$totalWeight += $basketData["WEIGHT"] * $basketData["QUANTITY"];
	}

	$orderData = array(
		'SITE_ID' => SITE_ID,
		'ORDER_PRICE' => $totalPrice,
		'ORDER_WEIGHT' => $totalWeight,
		'BASKET_ITEMS' => $basketList
	);

	$registry = Registry::getInstance(Registry::REGISTRY_TYPE_ORDER);
	/** @var SaleBasket $basketClassName */
	$basketClassName = $registry->getBasketClassName();

	$basket = $basketClassName::create(SITE_ID);
	$basket->setFUserId($fuserId);
	foreach ($basketList as $oldItem)
	{
		$item = $basket->createItem($oldItem['MODULE'], $oldItem['PRODUCT_ID']);
		unset($oldItem['MODULE'], $oldItem['PRODUCT_ID']);
		$item->initFields($oldItem);
	}
	$orderData['ORDER_PRICE'] = self::calculateBasketCost($basket);
	unset($basket);

	return $orderData;
}