• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/order/matcher/fieldsynchronizer.php
  • Класс: Bitrix\Crm\Order\Matcher\FieldSynchronizer
  • Вызов: FieldSynchronizer::addProperties
static function addProperties($items)
{
	$result = new Result();

	foreach ($items as $itemFields)
	{
		$variants = static::extractItems($itemFields);
		$relations = static::extractRelations($itemFields);
		$matchProperties = static::extractMatchProperties($itemFields);

		/** @var \Bitrix\Main\Result $res */
		$res = OrderPropsTable::add($itemFields);

		if ($res->isSuccess())
		{
			$propertyId = $res->getId();

			if (!empty($variants))
			{
				foreach ($variants as $item)
				{
					$item['ORDER_PROPS_ID'] = $propertyId;
					unset($item['ID']);
					\CSaleOrderPropsVariant::Add($item);
				}
			}

			if (!empty($relations))
			{
				self::saveRelations($propertyId, $relations);
			}

			if (!empty($matchProperties))
			{
				OrderPropsMatchTable::add(['SALE_PROP_ID' => $propertyId] + $matchProperties);
			}
		}
		else
		{
			$result->addErrors($res->getErrors());
		}
	}

	return $result;
}