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