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

getProductsByIds

Получение нескольких продуктов по их идентификаторам.

Описание

Этот метод извлекает объекты продуктов на основе их идентификаторов (ids) из API. Он возвращает Promise, который разрешается в объекты IProductsEntity для продукта.

Products.getProductsByIds( ids, langCode, userQuery );

Схема параметров

Схема

ids: string
Идентификаторы страниц продуктов, для которых нужно найти связи
пример: "12345,67890"

langCode: string
Код языка. По умолчанию "en_US"

userQuery: IProductsQuery
Необязательные параметры запроса
пример:

{
"limit": 30,
"offset": 0,
"sortOrder": "DESC",
"sortKey": "id",
"statusId": 123,
"statusMarker": "in_stock",
"conditionValue": "new",
"conditionMarker": "equals",
"attributeMarker": "color"
}

userQuery.offset(обязательный): number
Параметр для постраничной навигации. По умолчанию: 0.

userQuery.limit(обязательный): number
Параметр для постраничной навигации. По умолчанию: 30.

userQuery.sortOrder(обязательный): string
Порядок сортировки "DESC" | "ASC". По умолчанию: "DESC".

userQuery.sortKey(обязательный): string
Поле для сортировки (по умолчанию - null). Возможные значения: "id", "position", "title", "date", "price". По умолчанию: null.

userQuery.templateMarker: string | null
Маркер шаблона страницы продукта, по умолчанию null.
пример: "template_12345"

userQuery.statusMarker: string | null
Маркер статуса страницы продукта, по умолчанию null.
пример: "in_stock"

userQuery.conditionValue: string | null
Искомое значение, по умолчанию null.
пример: "new"

userQuery.attributeMarker: string | null
Текстовый идентификатор индексируемого атрибута, по которому фильтруются значения, по умолчанию null.
пример: "color"

userQuery.conditionMarker: string | null
Маркер условия фильтрации, по которому фильтруются значения, по умолчанию null.
пример: "equals"

Примеры

Минимальный пример

const response = await Products.getProductsByIds('1, 5, 8');

Пример с атрибутами

const userQuery = {
"offset": 0,
"limit": 30,
"sortOrder": "DESC",
"sortKey": "id"
};
const response = await Products.getProductsByIds('1, 5, 8', 'en_US', userQuery);

Пример ответа

[
{
"id": 2954,
"localizeInfos": {
"title": "Коробка"
},
"statusIdentifier": "sale",
"statusLocalizeInfos": {
"title": "Распродажа"
},
"attributeSetIdentifier": "products",
"position": 2,
"templateIdentifier": null,
"shortDescTemplateIdentifier": "product_preview",
"price": 50,
"additional": {
"prices": {
"min": 50,
"max": 150
}
},
"sku": null,
"isSync": true,
"attributeValues": {
"product-name": {
"type": "string",
"value": "product-name",
"isIcon": false,
"position": 0,
"additionalFields": [],
"isProductPreview": false
},
"price": {
"type": "integer",
"value": 50,
"isIcon": false,
"position": 1,
"additionalFields": [],
"isProductPreview": false
},
"currency_products": {
"type": "string",
"value": "usd",
"isIcon": false,
"position": 2,
"additionalFields": [],
"isProductPreview": false
},
"img": {
"type": "image",
"value": [],
"isIcon": false,
"position": 3,
"additionalFields": [],
"isProductPreview": false
}
},
"categories": [
"catalog"
],
"isVisible": true,
"productPages": [
{
"id": 2847,
"pageId": 10,
"productId": 2954,
"positionId": 3190,
"categoryPath": "catalog"
}
],
"blocks": [
"product_block",
"product_block"
]
},
{
"id": 2955,
"localizeInfos": {
"title": "Продукт"
},
"statusIdentifier": "sale",
"statusLocalizeInfos": {
"title": "Распродажа"
},
"attributeSetIdentifier": null,
"position": 1,
"templateIdentifier": null,
"shortDescTemplateIdentifier": null,
"price": null,
"additional": {
"prices": {
"min": 50,
"max": 150
}
},
"sku": null,
"isSync": false,
"attributeValues": {},
"categories": [
"catalog"
],
"isVisible": true,
"productPages": [
{
"id": 2848,
"pageId": 10,
"productId": 2955,
"positionId": 3191,
"categoryPath": "catalog"
}
],
"blocks": [
"product_block",
"product_block"
]
}
]

Схема ответа

Схема: IProductsEntity[]

id: number
Уникальный идентификатор.
пример: 12345

localizeInfos: ILocalizeInfo
Название продуктов с учетом локализации.

statusIdentifier: string | null
Идентификаторы статусов страниц продуктов (может быть null).
пример: "in_stock"

statusLocalizeInfos: any
JSON-описание объекта статуса элемента с учетом языка.

attributeSetIdentifier: string | null
Идентификатор набора атрибутов.
пример: "set_12345"

position: number
Номер элемента (для сортировки).
пример: 1

templateIdentifier: string | null
Идентификатор пользователя связанного шаблона.
пример: "template_12345"

shortDescTemplateIdentifier: string | null
Идентификатор пользователя связанного шаблона для краткого описания.
пример: "short_desc_template_12345"

price: number
Значение цены страницы продукта, взятое из индекса.
пример: 150

additional: object
Дополнительное значение из индекса.
пример:

{
"en": "В наличии",
"de": "Auf Lager"
}

sku: string | null
SKU продукта (единица учета запасов), может быть null.
пример: "SKU_12345"

isSync: boolean
Указание на индексацию страницы.
пример: true

attributeValues: AttributeType
Массив значений атрибутов из индекса, представленный.
пример:

[
{
"id": "color",
"value": "red"
}
]

categories: string[]
Категории продуктов.
пример:

[
1,
2,
3
]

isVisible: boolean
Признак видимости страницы.
пример: true

productPages: any[]
Массив страниц продуктов или объект одной страницы продукта.

blocks: string[]
Массив идентификаторов блоков.
пример:

[
"block_12345",
"block_67890"
]

isPositionLocked: boolean
Индикатор блокировки позиции сортировки (необязательно).
пример: false

relatedIds: number[]
Идентификаторы связанных страниц продуктов.
пример:

[
12345,
67890
]