- Модуль: 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;
}