Перейти к основному контенту

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