Skip to main content

getRelatedProductsById

Search for all related product objects by page id.

Description

This method retrieves all related product page objects for a specific product based on its identifier (id) from the API. It accepts an optional userQuery parameter for additional query parameters such as offset, limit, sortOrder, and sortKey. It returns a Promise that resolves to an object IProductsResponse.

Products.getRelatedProductsById( id, langCode, userQuery );

Parameters schema

Schema

id: number
Product page identifier for which to find relationship
example: 12345

langCode: string
Language code. Default: "en_US"
example: "en_US"

userQuery: IProductsQuery
Optional set query parameters
example:

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

userQuery.offset(required): number
Parameter for pagination. Default: 0.

userQuery.limit(required): number
Parameter for pagination. Default: 30.

userQuery.sortOrder(required): string
Sort order "DESC" | "ASC". Default: "DESC".

userQuery.sortKey(required): string
Field for sorting (default - null). Possible values: "id", "position", "title", "date", "price". Default: null.

userQuery.templateMarker: string | null
Product page template marker, default null.
example: "template_12345"

userQuery.statusMarker: string | null
Product page status marker, default null.
example: "in_stock"

userQuery.conditionValue: string | null
The value that is being searched for, default null.
example: "new"

userQuery.attributeMarker: string | null
The text identifier of the indexed attribute by which values are filtered, default null.
example: "color"

userQuery.conditionMarker: string | null
Marker of the filter condition by which the values are filtered, default null.
example: "equals"

By default, you can retrieve 10 objects. This is due to the record limit in the module's permissions settings.
For pagination to work correctly, you need to configure Module permissions according to your needs in the corresponding section.

Examples

Minimal example

const response = await Products.getRelatedProductsById(1);

Example with attributes


const userQuery = {
"offset": 0,
"limit": 30,
"sortOrder": "DESC",
"sortKey": "id"
};

const response = await Products.getRelatedProductsById(1, 'en_US', userQuery);

Example response

{
"items": [],
"total": 0
}

Response schema

Schema: IProductsResponse

total: number
The total number of products found.
example: 100

items: IProductsEntity[]
An array of product entities.
example:

[
{
"id": 12345,
"title": "Product 1"
},
{
"id": 67890,
"title": "Product 2"
}
]