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);

Use conditions to find specific products data:

attributeMarker: The text identifier of the indexed attribute by which values are filtered. conditionMarker: The type of condition to apply to the attribute value.

MarkerMeaningExample
eqEqualstatusId = 1 (active only)
neqNot equalrole ≠ "Viewer"
inContains (one of)role in ["Editor", "Manager"]
ninNot containsemail not in ["@temp.com"]
exsExists (has value)Has lastLogin
nexsDoes not existNever logged in

conditionValue: The value to compare against.

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"
}
]

items.id: number
The unique identifier.
example: 12345

items.localizeInfos: ILocalizeInfo
The name of the products, taking into account localization.
example:

items.statusIdentifier: string | null
Product page status identifiers (may be null).
example: "in_stock"

items.statusLocalizeInfos: any
JSON description of the item status object, taking into account the language.
example:

items.attributeSetIdentifier: string | null
Set of attributes id.
example: "set_12345"

items.position: number
Item number (for sorting).
example: 1

items.templateIdentifier: string | null
User id of the linked template.
example: "template_12345"

items.shortDescTemplateIdentifier: string | null
User id of the linked template for a short description.
example: "short_desc_template_12345"

items.price: number
The value of the product page price taken from the index.
example: 150

items.additional: object
Additional value from the index.
example:

{
"en": "In Stock",
"de": "Auf Lager"
}

items.sku: string | null
Product SKU (Stock Keeping Unit), may be null.
example: "SKU_12345"

items.isSync: boolean
Indication of page indexing.
example: true

items.attributeValues: AttributeType
Array of attribute values from the index, represented.
example:

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

items.categories: string[]
Product categories.
example:

[
1,
2,
3
]

items.isVisible: boolean
A sign of page visibility.
example: true

items.productPages: any
Array of product pages or a single product page object.
example: []

items.blocks: string[]
Array of block identifiers.
example:

[
"block_12345",
"block_67890"
]

items.isPositionLocked: boolean
Sorting position lock indicator (optional).
example: false

items.relatedIds: number[]
Ids of related product pages.
example:

[
12345,
67890
]