• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/helpers/order/builder/basketbuilderrest.php
  • Класс: BitrixSaleHelpersOrderBuilderBasketBuilderRest
  • Вызов: BasketBuilderRest::itemsDataPreparation
public function itemsDataPreparation()
{
	foreach($this->formData["PRODUCT"] as $basketCode => $productData)
	{
		if($productData["IS_SET_ITEM"] == "Y")
			continue;

		if(!isset($productData["PROPS"]) || !is_array($productData["PROPS"]))
			$productData["PROPS"] = array();

		if(self::isBasketItemNew($basketCode) == true)
		{
			$item = $this->createItem($basketCode, $productData);
		}
		else
		{
			/** @var BasketItem $item */
			$item = $this->getItemFromBasket($basketCode, $productData);

			if(is_null($item))
			{
				$this->builder->getErrorsContainer()->addError(new Error('basketItem - is not exists ['.$basketCode.']'));
				throw new BuildingException();
			}
		}

		foreach ($productData["PROPS"] as &$prop)
		{
			unset($prop['BASKET_ID']); // bug BitrixSaleBasketPropertiesCollectionBase::redefine()
		}

		if(!empty($productData["PROPS"]) && is_array($productData["PROPS"]))
		{
			/** @var BitrixSaleBasketPropertiesCollection $property */
			$property = $item->getPropertyCollection();

			if(!$property->isPropertyAlreadyExists($productData["PROPS"]))
				$property->setProperty($productData["PROPS"]);
		}
	}

	return $this;
}