• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/rest/synchronization/loader/factory.php
  • Класс: Bitrix\Sale\Rest\Synchronization\Loader\Factory
  • Вызов: Factory::create
static function create($typeName, $params=[])
{
	if($typeName === Registry::ENTITY_SHIPMENT
		|| $typeName === Registry::ENTITY_ORDER
		|| $typeName === Registry::ENTITY_PAYMENT
		|| $typeName === Registry::ENTITY_PROPERTY_VALUE
		|| $typeName === Registry::ENTITY_BUNDLE_COLLECTION
		|| $typeName === Registry::ENTITY_TAX
		|| $typeName === Registry::ENTITY_BASKET_ITEM
		|| $typeName === Registry::ENTITY_BASKET_PROPERTY_ITEM
		|| $typeName === Registry::ENTITY_SHIPMENT_ITEM
		|| $typeName === Registry::ENTITY_SHIPMENT_ITEM_STORE
		|| $typeName === Registry::ENTITY_SHIPMENT_ITEM_STORE_COLLECTION
		|| $typeName === Registry::ENTITY_PROPERTY_VALUE_COLLECTION
		|| $typeName === Registry::ENTITY_OPTIONS
		|| $typeName === Registry::ENTITY_DISCOUNT
		|| $typeName === Registry::ENTITY_DISCOUNT_COUPON
		|| $typeName === Registry::ENTITY_ORDER_DISCOUNT
		|| $typeName === Registry::ENTITY_PERSON_TYPE
		|| $typeName === Registry::ENTITY_ORDER_STATUS
		|| $typeName === Registry::ENTITY_DELIVERY_STATUS
		|| $typeName === Registry::ENTITY_ENTITY_MARKER
		|| $typeName === Registry::ENTITY_ORDER_HISTORY
		|| $typeName === Registry::ENTITY_NOTIFY
		|| $typeName === Registry::ENTITY_TRADE_BINDING_ENTITY
		|| $typeName === ENTITY_CRM_CONTACT_COMPANY_COLLECTION)
	{
		return new Entity($typeName);
	}
	elseif ($typeName === Registry::ENTITY_TRADE_BINDING_COLLECTION)
	{
		return new TradeBinding($typeName, $params);
	}
	elseif ($typeName === Registry::ENTITY_SHIPMENT_ITEM_COLLECTION)
	{
		return new ShipmentItem($typeName, $params);
	}
	elseif ($typeName === Registry::ENTITY_SHIPMENT_COLLECTION)
	{
		return new Shipment($typeName, $params);
	}
	elseif ($typeName === Registry::ENTITY_PAYMENT_COLLECTION)
	{
		return new Payment($typeName, $params);
	}
	elseif($typeName === Registry::ENTITY_BASKET_PROPERTIES_COLLECTION)
	{
		return new BasketProperties($typeName, $params);
	}
	elseif($typeName === Registry::ENTITY_BASKET)
	{
		return new BasketItem($typeName, $params);
	}
	elseif($typeName === Registry::ENTITY_PROPERTY)
	{
		return new Property($typeName);
	}
	elseif ($typeName === 'TRADING_PLATFORM_TYPE')
	{
		return new TradingPlatform($typeName);
	}
	elseif ($typeName === 'PRODUCT')
	{
		return new Product($typeName, $params);
	}
	elseif ($typeName === 'PAY_SYSTEM_TYPE')
	{
		return new PaySystem($typeName, $params);
	}
	elseif ($typeName === 'DELIVERY_SYSTEM_TYPE')
	{
		return new DeliverySystem($typeName, $params);
	}
	elseif ($typeName === 'PERSON_TYPE_TYPE')
	{
		return new PersonType($typeName, $params);
	}
	else
	{
		throw new NotSupportedException("Entity type: '".$typeName."' is not supported in current context");
	}
}