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

GetList

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

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

Метод устарел, рекомендуется вместо него использовать метод \Bitrix\Catalog\ProductTable::getList.

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

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

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

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

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

Пример фильтра:
array("QUANTITY_TRACE" => "Y")
Этот фильтр означает "выбрать все записи, в которых значение в поле QUANTITY_TRACE (т.е. ведется количественный учет) равно Y".

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.
arGroupBy Массив полей, по которым группируются записи типов товара. Массив имеет вид:
array("название_поля1", "название_поля2", . . .)
В качестве "название_поляN" может стоять любое поле типов товара.

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

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

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

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

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

Ключ ОписаниеС версии
ID Код товара.
QUANTITY Количество на складе.
QUANTITY_RESERVED Зарезервированное количество.12.5.0
QUANTITY_TRACE Определяет ведется ли количественный учет (Y/N). До версии 12.5.0 параметр назывался "уменьшать количество при оформлении заказа". Оригинальное значение доступно в ключе QUANTITY_TRACE_ORIG.
QUANTITY_TRACE_ORIG Флаг (Y/N/D*) "включить количественный учет".12.0.0
SUBSCRIBE Разрешение/запрет подписки при отсутствии товара (Y/N/D*).14.0.0
WEIGHT Вес единицы товара.14.0.0
WIDTH Ширина товара (в мм).14.0.0
LENGTH Длина товара (в мм).14.0.0
HEIGHT Высота товара (в мм).14.0.0
PRICE_TYPE Тип цены (S - одноразовый платеж, R - регулярные платежи, T - пробная подписка)
RECUR_SCHEME_TYPE Тип периода подписки ("H" - час, "D" - сутки, "W" - неделя, "M" - месяц, "Q" - квартал, "S" - полугодие, "Y" - год)
RECUR_SCHEME_LENGTH Длина периода подписки.
TRIAL_PRICE_ID Код товара, для которого данный товар является пробным.
WITHOUT_ORDER Флаг "Продление подписки без оформления заказа"
TIMESTAMP_X Дата последнего изменения записи. Задается в формате сайта.
VAT_ID Идентификатор ставки НДС.
VAT_INCLUDED Признак включённости НДС в цену (Y/N).
PURCHASING_PRICE Величина закупочной цены.12.5.0
PURCHASING_CURRENCY Валюта закупочной цены.12.5.0
AVAILABLE Флаг доступности товара (Y/N).
CAN_BUY_ZERO Разрешена ли покупка при отсутствии товара (Y/N). Оригинальное значение доступно в ключе CAN_BUY_ZERO_ORIG.12.0.0
CAN_BUY_ZERO_ORIG Флаг (Y/N/D*) "разрешить покупку при отсутствии товара".12.0.0
NEGATIVE_AMOUNT_TRACE_ORIG Флаг (Y/N/D*) "разрешить отрицательное количество товара".12.0.0
TMP_ID Временный строковый идентификатор, используемый для служебных целей.
BARCODE_MULTI (Y/N) Определяет каждый ли экземпляр товара имеет собственный штрихкод.12.5.0
MEASURE ID единицы измерения.14.0.0
TYPE Тип товара. Возможные значения: "1" - "простой товар", "2" - "комплект", "3" - "товар с торговыми предложениями", "4" - "торговое предложение".

До версии 16.0.3 для типа товара "комплект" значение равно "2", во всех других случаях - "1".
14.0.0
ELEMENT_IBLOCK_ID Код инфоблока товара.
ELEMENT_XML_ID Внешний код товара.
ELEMENT_NAME Название товара.
* - значение берется из настроек модуля.

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

<?
// Выведем коды 10 товаров с самым большим количеством на складе
// из тех, количество которых при заказе должно уменьшаться
$ind = 0;
$db_res = CCatalogProduct::GetList(
        array("QUANTITY" => "DESC"),
        array("QUANTITY_TRACE" => "Y"),
        false,
        array("nTopCount" => 10)
    );
while (($ar_res = $db_res->Fetch()) && ($ind < 10))
{
    echo $ar_res["ID"].", ";
    $ind++;
}
?>


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