• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/delivery/rest/deliveryservice.php
  • Класс: BitrixSaleDeliveryRestDeliveryService
  • Вызов: DeliveryService::getDeliveryList
static function getDeliveryList($query, $n, CRestServer $server): array
{
	self::checkDeliveryPermission();
	$params = self::prepareIncomingParams($query);
	self::checkParamsBeforeDeliveryListGet($params);

	$select =
		isset($params['SELECT']) && is_array($params['SELECT'])
			? array_flip(self::prepareIncomingParams(array_flip($params['SELECT'])))
			: self::ALLOWED_DELIVERY_FIELDS
	;

	$filter = [];
	$filterFromParams = isset($params['FILTER']) && is_array($params['FILTER']) ? $params['FILTER'] : [];
	if ($filterFromParams)
	{
		$incomingFieldsMap = self::getIncomingFieldsMap();
		foreach ($filterFromParams as $rawName => $value)
		{
			$filterField = CSqlUtil::GetFilterOperation($rawName);
			$fieldName = $incomingFieldsMap[$filterField['FIELD']] ?? $filterField['FIELD'];
			$filter[$filterField['OPERATION'] . $fieldName] = $value;
		}
	}

	$order =
		isset($params['ORDER']) && is_array($params['ORDER'])
			? self::prepareIncomingParams($params['ORDER'])
			: []
	;

	$result = [];
	$deliveryListResult = DeliveryServicesManager::getList([
		'select' => $select,
		'filter' => $filter,
		'order' => $order,
	]);
	while ($delivery = $deliveryListResult->fetch())
	{
		$result[] = self::prepareOutcomingFields($delivery);
	}

	return $result;
}