• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/integration/bizproc/document/item.php
  • Класс: Bitrix\Crm\Integration\BizProc\Document\Item
  • Вызов: Item::addProductRows
static function addProductRows(string $documentId, array $productRows): Result
{
	$documentInfo = static::GetDocumentInfo($documentId);
	$result = new Result();

	if (!$documentInfo)
	{
		$result->addError(new Error('Invalid document type'));
	}
	else
	{
		$factory = Container::getInstance()->getFactory($documentInfo['TYPE_ID']);
		$item = isset($factory) ? $factory->getItem($documentInfo['ID']) : null;
	}

	if (!isset($factory, $item))
	{
		$errorMessage = Loc::getMessage('CRM_ENTITY_EXISTENCE_ERROR', ['#DOCUMENT_ID#' => $documentId]);
		$result->addError(new Error($errorMessage));
	}
	elseif (!$factory->isLinkWithProductsEnabled())
	{
		$result->addError(new Error(Loc::getMessage('CRM_BP_DOCUMENT_ITEM_LINK_WIH_PRODUCTS_DISABLED_ERROR')));
	}

	if ($result->isSuccess())
	{
		foreach ($productRows as $row)
		{
			$addResult = $item->addToProductRows($row);
			if (!$addResult->isSuccess())
			{
				$result->addErrors($addResult->getErrors());
			}
		}

		if ($result->isSuccess())
		{
			$operation = $factory->getUpdateOperation($item, static::getContext());
			$result = static::launchOperation($operation);
		}
	}

	return $result;
}