• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/basketitem.php
  • Класс: BitrixSaleBasketItem
  • Вызов: BasketItem::update
protected function update()
{
	$registry = Registry::getInstance(static::getRegistryType());
	/** @var OrderHistory $orderHistory */
	$orderHistory = $registry->getOrderHistoryClassName();

	/** @var BasketItemCollection $collection */
	$collection = $this->getCollection();

	/** @var BasketBase $basket */
	if (!$basket = $collection->getBasket())
	{
		throw new MainObjectNotFoundException('Entity "Basket" not found');
	}

	$logFields = $this->getLoggedFields();

	$result = parent::update();

	if (!$result->isSuccess())
	{
		if ($basket->getOrderId() > 0)
		{
			$orderHistory::addAction(
				'BASKET',
				$basket->getOrderId(),
				'BASKET_ITEM_UPDATE_ERROR',
				null,
				$this,
				["ERROR" => $result->getErrorMessages()]
			);
		}
	}
	else
	{
		$orderHistory::addLog(
			'BASKET',
			$basket->getOrderId(),
			"BASKET_ITEM_UPDATE",
			$this->getId(),
			$this,
			$logFields,
			$orderHistory::SALE_ORDER_HISTORY_LOG_LEVEL_1
		);

		$orderHistory::addAction(
			'BASKET',
			$basket->getOrderId(),
			"BASKET_SAVED",
			$this->getId(),
			$this,
			[],
			$orderHistory::SALE_ORDER_HISTORY_ACTION_LOG_LEVEL_1
		);
	}

	return $result;
}