• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/controller/action/entity/saveorderaction.php
  • Класс: BitrixSaleControllerActionEntitySaveOrderAction
  • Вызов: SaveOrderAction::setTradeBinding
private function setTradeBinding(SaleOrder $order, $tradingPlatformId): SaleResult
{
	$result = new SaleResult();

	$platform = SaleTradingPlatformManager::getList([
		'select' => ['ID'],
		'filter' => [
			'=ID' => $tradingPlatformId,
		],
	])->fetch();
	if ($platform)
	{
		$collection = $order->getTradeBindingCollection();

		/** @var SaleTradeBindingEntity $binding */
		$binding = $collection->createItem();
		$setFieldResult = $binding->setFields([
			'TRADING_PLATFORM_ID' => $tradingPlatformId,
		]);

		if (!$setFieldResult->isSuccess())
		{
			$result->addErrors($setFieldResult->getErrors());
		}
	}
	else
	{
		$result->addError(
			new MainError('Trading platform with id:"'.$tradingPlatformId.' not found"')
		);
	}

	return $result;
}