• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/controller/synchronizer.php
  • Класс: BitrixSaleControllerSynchronizer
  • Вызов: Synchronizer::setDefaultSettingsAction
public function setDefaultSettingsAction()
{
	$r = new Result();
	$manager = new BitrixSaleRestSynchronizationManager();



	$personId = BitrixSalePersonType::getList(['select'=>['ID', 'NAME'],'order'=>'ID', 'limit'=>1])->fetch()['ID'];

	if((int)$personId>0)
	{
		$manager->setDefaultPersonTypeId($personId);
	}
	else
	{
		$r->addError(new Error('person type not found'));
	}

	$ps = Manager::getList(
		[
			'select'=>['ID'],
			'filter'=>['!ID'=>Manager::getInnerPaySystemId(), 'ENTITY_REGISTRY_TYPE'=>'ORDER'],
			'order'=>['ID'=>'ASC'],
			'limit'=>1
		]
	)->fetchAll();

	$paySystemId = isset($ps[0])? $ps[0]['ID']:0;
	if((int)$paySystemId>0)
	{
		$manager->setDefaultPaySystemId($paySystemId);
	}
	else
	{
		$r->addError(new Error('paysystem not found'));
	}

	$deliverySystemId = EmptyDeliveryService::getEmptyDeliveryServiceId();
	if((int)$deliverySystemId>0)
	{
		$manager->setDefaultDeliverySystemId($deliverySystemId);
	}
	else
	{
		$r->addError(new Error('deliverysystem not found'));
	}

	$manager->setDefaultSiteId(SITE_ID);
	$manager->setDefaultDeliveryStatusId(DeliveryStatus::getInitialStatus());
	$manager->setDefaultOrderStatusId(OrderStatus::getInitialStatus());

	if($r->isSuccess())
	{
		$manager->activate();

		return true;
	}
	else
	{
		$manager->deactivate();
		$this->addErrors($r->getErrors());

		return null;
	}
}