• Модуль: salescenter
  • Путь к файлу: ~/bitrix/modules/salescenter/lib/controller/compilation.php
  • Класс: BitrixSalesCenterControllerCompilation
  • Вызов: Compilation::createCompilationAction
public function createCompilationAction(array $productIds = [], array $options = []): array
{
	if (!isset($options['ownerId']) || (int)$options['ownerTypeId'] !== CCrmOwnerType::Deal)
	{
		return [];
	}

	$dealId = (int)$options['ownerId'];
	$dialogId = $options['dialogId'] ?? null;
	$chatId =$this->normalizeChatId($dialogId);

	if (!$dealId)
	{
		$dealId = $this->createDealForCompilation();
		$this->onAfterDealAdd($dealId, (int)$options['sessionId']);
		ImOpenLinesManager::getInstance()->sendDealNotify($dealId, $dialogId);
	}

	$compilationId = CatalogManager::getInstance()->createCompilationForDeal($dealId, $productIds, $chatId);
	$compilationLink = CatalogManager::getInstance()->getLinkToProductCompilation($compilationId, $productIds)->getData();

	return [
		'link' => $compilationLink['link'],
		'compilationId' => $compilationId,
		'ownerId' => $dealId,
	];
}