GetList
Описание и параметры
С версии 15.5 класс считается устаревшим и строго не рекомендованным к использованию. Вместо него используйте методы класса \Bitrix\Sale\Discount.
CDBResult CSaleDiscount::GetList( array arOrder = array(), array arFilter = array(), array arGroupBy = false, array arNavStartParams = false, array arSelectFields = array() );
Метод возвращает результат выборки записей из скидок на заказ в соответствии со своими параметрами. Нестатический метод.
Параметры вызова
| Параметр | Описание |
|---|---|
| arOrder | Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид:
array( "название_поля1" => "направление_сортировки1", "название_поля2" => "направление_сортировки2", . . . )В качестве "название_поляN" может стоять любое поле корзины, а в качестве "направление_сортировкиX" могут быть значения "ASC" (по возрастанию) и "DESC" (по убыванию). Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.). Значение по умолчанию - пустой массив array() - означает, что результат отсортирован не будет. |
| arFilter | Массив, в соответствии с которым фильтруются
записи скидки. Массив имеет вид:
array( "[модификатор1][оператор1]название_поля1" => "значение1", "[модификатор2][оператор2]название_поля2" => "значение2", . . . )Удовлетворяющие фильтру записи возвращаются в результате, а записи, которые не удовлетворяют условиям фильтра, отбрасываются. Допустимыми являются следующие модификаторы:
Пример фильтра: array("!CURRENCY" => "USD")
Этот фильтр означает "выбрать все записи, в которых значение в поле CURRENCY (валюта) не равно USD".Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет. |
| arGroupBy | Массив полей, по которым группируются записи
скидок. Массив имеет вид:
array( "название_поля1", "группирующая_функция2" => "название_поля2", ... )В качестве "название_поляN" может стоять любое поле служб доставки. В качестве группирующей функции могут стоять:
Значение по умолчанию - false - означает, что результат группироваться не будет. |
| arNavStartParams | Массив параметров выборки. Может содержать следующие ключи:
|
| arSelectFields | Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение
"*", то будут возвращены все доступные поля. Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса. |
Возвращаемые значения
Возвращается объект класса CDBResult, содержащий набор ассоциативных массивов с ключами:
| Ключ | Описание |
|---|---|
| ID | Код скидки. |
| LID | Код сайта, к которому привязана эта скидка. |
| PRICE_FROM | Общая стоимость заказа, начиная с которой предоставляется эта скидка. |
| PRICE_TO | Общая стоимость заказа, до достижения которой предоставляется эта скидка. |
| CURRENCY | Валюта денежных полей в записи. |
| DISCOUNT_VALUE | Величина скидки. |
| DISCOUNT_TYPE | Тип величины скидки (P - величина задана в процентах, V - величина задана в абсолютной сумме). |
| ACTIVE | Флаг (Y/N) активности скидки. |
| SORT | Индекс сортировки (если по сумме заказа доступно несколько скидок, то берется первая по сортировке). |
| USER_GROUPS | Перечень групп пользователей, на которые должна действовать скидка. |
Если в качестве параметра arGroupBy передается пустой массив, то метод вернет число записей, удовлетворяющих фильтру.
Пример использования
<?
// Выберем величину активной скидки для текущего сайта и стоимости
// заказа $ORDER_PRICE (в базовой валюте этого сайта)
$db_res = CSaleDiscount::GetList(
array("SORT" => "ASC"),
array(
"LID" => SITE_ID,
"ACTIVE" => "Y",
">=PRICE_TO" => $ORDER_PRICE,
"<=PRICE_FROM" => $ORDER_PRICE
),
false,
false,
array()
);
if ($ar_res = $db_res->Fetch())
{
echo "Наша скидка - ";
if ($ar_res["DISCOUNT_TYPE"] == "P")
{
echo $ar_res["DISCOUNT_VALUE"]."%";
}
else
{
echo CurrencyFormat($ar_res["DISCOUNT_VALUE"], $ar_res["CURRENCY"]);
}
}
?>
© «Битрикс», 2001-2025, «1С-Битрикс», 2025