crm.item.productrow.list
Scope: crm Права на выполнение: для всех
crm.item.productrow.list({order: ?{} = null, filter: {}, start: ?number = 0})
Метод вернет массив товарных позиций
{ "productRows": [] }
где каждый элемент массива — это структура, аналогичная результату метода crm.item.productrow.get.
В каждой строке результата есть поле type, которое означает следующее:
TYPE_PRODUCT = 1; // Простой товар TYPE_SET = 2; // Комплект TYPE_SKU = 3; // Товар с торговыми предложениями TYPE_OFFER = 4; // Торговое предложение TYPE_FREE_OFFER = 5; // Торговое предложение, у которого нет товара (не указан или удален) TYPE_EMPTY_SKU = 6; // Специфический тип, означает невалидный товар с торговыми предложениямиС товаром можно работать через crm.product.*. С вариациями - только через catalog.product.* (Можно и с товарами использовать.) При этом, catalog.product.get требует только id товара/вариации. (В выдаче отличаются по iblockId для товара и по наличию parentId для вариации.) А вот catalog.product.list уже требует указания в фильтре iblockId, который чаще всего в облаке 25 - товары, 27 - вариации. (Необходимо проверять в каждом конкретном случае).
Получить значение ownerType
для смарт-процесса можно с помощью crm.enum.ownertype - значение SYMBOL_CODE_SHORT.
Параметры
Параметр | Описание | С версии |
---|---|---|
order | Список для сортировки, где ключ — поле, а значение - ASC или DESC. | |
filter | Список для фильтрации. Примеры фильтров ниже. Ключи =ownerType и =ownerId являются обязательными. | |
start | Сдвиг для постраничной навигации. |
Примеры
Найти все товарные позиции, привязанные к предложению с идентификатором 1
{ "filter": { "=ownerType": "Q", "=ownerId": 1 } }
Найти все товарные позиции, привязанные к смарт-процессу с entityTypeId = 128 и с идентификатором 9, у которых скидка больше 10% или цена ниже 1000
{ "filter": { "=ownerType": "T80", "=ownerId": 9, "0": { "logic": "OR", "0": { ">discountRate": 10 }, "1": { "<price": 1000 } } } }
Найти все товарные позиции, привязанные к предложению с идентификатором 2, которые привязаны к товарам из каталога
{ "filter": { "=ownerType": "Q", "=ownerId": 2, "!=productId": 0 } }
Сообщение не промодерировано, возможны ошибки и неточности.
|
||
На php:
| ||
Сообщение не промодерировано, возможны ошибки и неточности.
|
Всем привет! Подскажите плиз что это за синтаксис: " $result = CRest::call('crm.productrow.list', {{query[params][PARAMS]}}); " - то есть мы вроде обращаемся к методу класса а что значат фигурные скобки двойные в параметрах функции? весь день лопатил php на эту тему и не могу найти ничего подобного (
|
Сообщение не промодерировано, возможны ошибки и неточности.
|
Почему через crm.item.productrow.get можно получить товарную позицию только по id без "=ownerType" и "=ownerId", а в crm.item.productrow.list обязательно нужны "=ownerType" и "=ownerId"?
|
Сообщение не промодерировано, возможны ошибки и неточности.
|
Все типы описаны bitrix/modules/crm/lib/producttype.php \Bitrix\Crm\ProductType
|
Сообщение не промодерировано, возможны ошибки и неточности.
|
Для поля type есть еще TYPE_SERVICE = 7
Обозначает услугу |
Анатолий Елизаренко
|
Чтобы в фильтре работал ownerType, нужно typeId преобразовывать:
T + HEX цифрового id Например: typeId = 128 нужно указывать как "T80". typeId = 139 нужно указывать как "T8B". |
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.