Документация для разработчиков
Темная тема

GetList

Описание и параметры

CDBResult 
   CSaleDelivery::GetList(
 array arOrder = array(),
array arFilter = array(),
array arGroupBy = false,
array arNavStartParams = false,
array arSelectFields = array()
);

Метод возвращает результат выборки записей из служб доставки в соответствии со своими параметрами. Метод статический.

Метод устарел, вместо него следует использовать метод Bitrix\Sale\Delivery\Services\Manager::getActiveList( ).

Параметры вызова

ПараметрОписаниеС версии
arOrder Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид:
array(
"название_поля1" => "направление_сортировки1",
"название_поля2" => "направление_сортировки2",
. . .
)
В качестве "название_поляN" может стоять любое поле корзины, а в качестве "направление_сортировкиX" могут быть значения "ASC" (по возрастанию) и "DESC" (по убыванию).

Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.). 

Значение по умолчанию - пустой массив array() - означает, что результат отсортирован не будет.
arFilter Массив, в соответствии с которым фильтруются записи службы доставки. Массив имеет вид:
array(
"[модификатор1][оператор1]название_поля1" => "значение1",
"[модификатор2][оператор2]название_поля2" => "значение2",
. . .
)
Удовлетворяющие фильтру записи возвращаются в результате, а записи, которые не удовлетворяют условиям фильтра, отбрасываются.

Допустимыми являются следующие модификаторы:
  • ! - отрицание;
  • + - значения null, 0 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • <= - значение поля меньше или равно передаваемой в фильтр величины;
  • < - значение поля строго меньше передаваемой в фильтр величины;
  • @ - значение поля находится в передаваемом в фильтр разделенном запятой списке значений;
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поляX" может стоять любое поле корзины.

Пример фильтра:
array("+<=WEIGHT_FROM" => 1000)
Этот фильтр означает "выбрать все записи, в которых значение в поле WEIGHT_FROM (вес от) меньше либо равно 1000 или значение не установлено (null или ноль)".

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.
arGroupBy Массив полей, по которым группируются записи служб доставки. Массив имеет вид:
array("название_поля1",
"группирующая_функция2" => "название_поля2", ...)
В качестве "название_поляN" может стоять любое поле служб доставки. В качестве группирующей функции могут стоять:
  • COUNT - подсчет количества;
  • AVG - вычисление среднего значения;
  • MIN - вычисление минимального значения;
  • MAX - вычисление максимального значения;
  • SUM - вычисление суммы.
Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.

Значение по умолчанию - false - означает, что результат группироваться не будет.
4.0.6
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет.
4.0.6
arSelectFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.
4.0.6

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий набор ассоциативных массивов параметров доставки с ключами:

Ключ Описание
ID Код службы доставки.
NAME Название доставки.
LID Код сайта, к которому привязана эта доставка.
PERIOD_FROM Минимальный срок доставки.
PERIOD_TO Максимальный срок доставки.
PERIOD_TYPE Единица измерения срока: D - дни, H - часы, M - месяцы.
WEIGHT_FROM Минимальный вес заказа, для которого возможна эта доставка (единица измерения едина на сайте).
WEIGHT_TO Максимальный вес заказа, для которого возможна эта доставка (единица измерения едина на сайте).
ORDER_PRICE_FROM Минимальная стоимость заказа, для которой возможна эта доставка.
ORDER_PRICE_TO Максимальная стоимость заказа, для которой возможна эта доставка.
ORDER_CURRENCY Валюта ограничений по стоимости.
ACTIVE Флаг (Y/N) активности доставки.
PRICE Стоимость доставки.
CURRENCY Валюта стоимости доставки.
SORT Индекс сортировки.
DESCRIPTION Описание доставки.

Если в качестве параметра arGroupBy передается пустой массив, то метод вернет число записей, удовлетворяющих фильтру.

Пример использования

<?
// Выберем отсортированные по индексу сортировки, а потом (при равных индексах) по имени
// активные службы доставки, доступные для текущего сайта, заказа с весом $ORDER_WEIGHT и
// стоимостью $ORDER_PRICE (в базовой валюте текущего сайта), доставки в
// местоположение $DELIVERY_LOCATION
$db_dtype = CSaleDelivery::GetList(
array(
"SORT" => "ASC",
"NAME" => "ASC"
),
array(
"LID" => SITE_ID,
"+<=WEIGHT_FROM" => $ORDER_WEIGHT,
"+>=WEIGHT_TO" => $ORDER_WEIGHT,
"+<=ORDER_PRICE_FROM" => $ORDER_PRICE,
"+>=ORDER_PRICE_TO" => $ORDER_PRICE,
"ACTIVE" => "Y",
"LOCATION" => $DELIVERY_LOCATION
),
false,
false,
array()
);
if ($ar_dtype = $db_dtype->Fetch())
{
echo "Вам доступны следующие способы доставки:<br>";
do
{
echo $ar_dtype["NAME"]." - стоимость ".CurrencyFormat($ar_dtype["PRICE"], $ar_dtype["CURRENCY"])."<br>";
}
while ($ar_dtype = $db_dtype->Fetch());
}
else
{
echo "Доступных способов доставки не найдено<br>";
}
?>


© «Битрикс», 2001-2022, «1С-Битрикс», 2022
Наверх