• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/rest/synchronization/synchronizer.php
  • Класс: BitrixSaleRestSynchronizationSynchronizer
  • Вызов: Synchronizer::import
protected function import(array $fields)
{
	$r = new Result();
	$errors=[];

	$internalizer = new Internalizer('import', ['fields'=>$fields], new BitrixSaleControllerOrder(), [], Controller::SCOPE_REST);
	$process = $internalizer->process();

	if($process->isSuccess())
	{
		$fields = $process->getData()['data']['fields'];

		LoggerDiag::addMessage('SYNCHRONIZER_IMPORT_FIELDS', var_export($fields, true));

		$orderController = new BitrixSaleControllerOrder();

		try
		{
			$result = $orderController->importAction($fields);
		}
		catch (BitrixMainSystemException $e)
		{
			$errors[] = new Error('SYNCH_OUTCOMING_REPLICATION_IMPORT_INTERNAL_ERROR');
			LoggerDiag::addMessage('SYNCHRONIZER_IMPORT_FIELDS_EXCEPTION', var_export($e->getTraceAsString(), true));
		}

		if(count($orderController->getErrors())>0)
		{
			$errors = $orderController->getErrors();
		}
	}
	else
	{
		$errors = $r->getErrors();
	}

	if(count($errors)>0)
	{
		$r->addErrors($errors);
		LoggerDiag::addMessage('SYNCHRONIZER_IMPORT_FIELDS_ERROR', var_export($errors, true));
	}
	else
	{
		$r->setData(['DATA'=>$result]);
		LoggerDiag::addMessage('SYNCHRONIZER_IMPORT_FIELDS_SUCCESS', var_export($result, true));
	}

	return $r;
}