getProducts
Поиск всех объектов продуктов с пагинацией и фильтрацией
Products.getProducts(body, langCode, userQuery)
const body = [
{
"attributeMarker": "price",
"conditionMarker": "mth",
"statusMarker": "waiting",
"conditionValue": 1,
"pageUrls": [
"23-laminat-floorwood-maxima"
],
"isNested": false,
"title": ""
},
{
"attributeMarker": "price",
"conditionMarker": "lth",
"conditionValue": 3,
"pageUrls": [
"23-laminat-floorwood-maxima"
],
"isNested": false,
"title": ""
}
]
const value = await Products.getProducts(body)
Схема
body:* IFilterParams[]
Тело запроса. По умолчанию [].
пример: []
langCode: string
Параметр кода языка. По умолчанию "en_US"
пример: en_US
userQuery: IProductsQuery
Необязательные параметры запроса.
userQuery.offset: number
Необязательный параметр для пагинации, по умолчанию 0
пример: 0
userQuery.limit: number
Необязательный параметр для пагинации, по умолчанию 30
пример: 30
userQuery.sortOrder: string
Необязательный порядок сортировки DESC | ASC
пример: DESC
userQuery.sortKey: string
Необязательное поле для сортировки (id, title, date, price, position, status)
пример: id
userQuery.statusId: number
Необязательный параметр - поиск по идентификатору статуса
пример: 1
userQuery.statusMarker: string
Необязательный идентификатор статуса страницы продукта
пример: waiting
userQuery.conditionValue: string
Необязательное значение, которое ищется
пример: 3
userQuery.conditionMarker: string
Необязательный идентификатор условия фильтра, по которому фильтруются значения
пример: mth
userQuery.attributeMarker: string
Необязательный текстовый идентификатор индексируемого атрибута, по которому фильтруются значения
пример: price
Схема (body)
attributeMarker: string
текстовый идентификатор атрибута
пример: price
conditionMarker: string
текстовый идентификатор условия
пример: in
statusMarker: string
текстовый идентификатор статуса страницы продукта (по умолчанию не установлен)
пример: status_1
conditionValue: number
значение условия
пример: 1
pageUrls: Array<string>
уникальная часть URL страницы (после последнего "/")
title: string
пример: Iphone 17 Pro
название продукта
isNested: boolean
индикатор поиска для всех вложенных категорий (pageUrls)
пример: false
Этот метод ищет все объекты продуктов с пагинацией, которые не имеют категории, на осн ове предоставленных параметров запроса (userQuery). Он возвращает Promise, который разрешается в массив элементов, где каждый элемент является объектом.
Пример возврата:
{
"total": 100,
"items": [
{
"id": 4,
"localizeInfos": {
"title": "Cosmo"
},
"statusIdentifier": null,
"statusLocalizeInfos": {},
"attributeSetIdentifier": "products",
"position": 1,
"templateIdentifier": null,
"isPositionLocked": false,
"shortDescTemplateIdentifier": null,
"price": 150,
"additional": {
"prices": {
"min": 120,
"max": 150
}
},
"sku": null,
"isSync": true,
"attributeValues": {
"price": {
"type": "integer",
"value": 150,
"position": 1,
"isProductPreview": false
},
"product-name": {
"type": "string",
"value": "Cosmo",
"position": 0,
"isProductPreview": false
},
"currency_products": {
"type": "string",
"value": "",
"position": 2,
"isProductPreview": false
}
},
"isVisible": true
}
]
}
Схема
total: number
общее количество найденных записей
пример: 100
id: number
идентификатор объекта
пример: 1764
additional: Record<string, any>
дополнительное значение из индекса
пример:
{
"prices": {
"min": 0,
"max": 100
}
}
statusLocalizeInfos: CommonLocalizeInfos
json-описание объекта статуса элемента с учетом языка
пример:
{ "title": "Продукт" }
localizeInfos: Record<string, any>
json-описание основного объекта данных страницы с учетом языка "en_US" (например)
пример:
{
"en_US": {
"title": "Каталог",
"plainContent": "Содержимое для каталога",
"htmlContent": "<b>Содержимое для каталога</b>",
"menuTitle": "Каталог"
}
}
isVisible: boolean
Флаг видимости страницы
пример: true
position: number
номер позиции (для сортировки)
пример: 192
templateIdentifier: string
пользовательский идентификатор связанного шаблона
пример: my-template
attributeSetId: number
идентификатор набора атрибутов
пример: 7
blocks: array
блоки продукта
пример:
["product_block"]
isSync: boolean
индикатор индексации страницы (true или false)
пример: false
attributeValues: Record<string, string>
Массив значений атрибутов из индекса (представленный в виде пары пользовательский идентификатор атрибута: значение атрибута)
пример:
{
"en_US": {
"marker": {
"value": "",
"type": "string"
}
}
}
statusId: number
идентификаторы статусов страницы продукта (может быть null)
пример: 1
sku: string
значение SKU продукта, взятое из индекса
пример: 1
relatedIds: array
идентификаторы связанных страниц продуктов
пример:
[ 1, 2, 3 ]
price: number
значение цены страницы продукта, взятое из индекса
пример: 0
templateIdentifier string
пользовательский идентификатор связанного шаблона
пример: my-template
shortDescTemplateIdentifier string
пользовательский идентификатор связанного шаблона для краткого описания
пример: my-template-short