• Модуль: catalog
  • Путь к файлу: ~/bitrix/modules/catalog/lib/v2/BaseIblockElementRepository.php
  • Класс: BitrixCatalogv2BaseIblockElementRepository
  • Вызов: BaseIblockElementRepository::makeEntity
protected function makeEntity(array $fields = []): BaseIblockElementEntity;

protected function addInternal(array $fields): Result
{
	$result = new Result();

	$elementFields = $this->prepareElementFields($fields);

	if (!empty($elementFields))
	{
		$element = new CIBlockElement();
		$id = $element->add($elementFields);

		if ($id)
		{
			$result->setData(['ID' => $id]);
		}
		else
		{
			$result->addError(new Error($element->LAST_ERROR));
		}
	}

	if ($result->isSuccess())
	{
		$productFields = $this->prepareProductFields($fields);

		if (!empty($productFields))
		{
			$productFields['ID'] = $result->getData()['ID'];
			$res = Product::add([
				'fields' => $productFields,
				'external_fields' => [
					'IBLOCK_ID' => $elementFields['IBLOCK_ID'],
				],
			]);

			if (!$res->isSuccess())
			{
				$result->addErrors($res->getErrors());
			}
		}
	}

	return $result;
}