• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/controller/basket.php
  • Класс: BitrixSaleControllerBasket
  • Вызов: Basket::updateAction
public function updateAction(BasketItem $basket, array $fields)
{
	$data = [
		'ORDER'=>[
			'ID'=>$basket->getCollection()->getOrderId()
		],
		'BASKET'=>[
			'ITEMS'=>[
				array_merge(
					['ID'=>$basket->getBasketCode()],
					$fields
				)
			]
		]
	];

	$builder = $this->getBuilder(
		new SettingsContainer([
			'deleteBaketItemsIfNotExists' => false
		])
	);

	$builder->buildEntityBasket($data);

	if($builder->getErrorsContainer()->getErrorCollection()->count()>0)
	{
		$this->addErrors($builder->getErrorsContainer()->getErrors());
		return null;
	}

	$order = $builder->getOrder();

	$r = $order->save();
	if(!$r->isSuccess())
	{
		$this->addErrors($r->getErrors());
		return null;
	}

	//TODO: return $order->toArray();
	return new Page('ITEM', $this->get($basket), 1);
}