getPersonalRecommendations
Get personal recommendations for the user.
Description
This method returns personal product recommendations for the current context - an authorized user or a guest (resolved via the x-guest-id header, see Guest mode). Recommendations are based on tracked user activity. It returns a Promise that resolves to an IProductsResponse object - a container with items (the products), total and totalFound - not a bare array.
Blocks.getPersonalRecommendations(
marker*,
langCode,
signPrice,
limit
);
Parameters schema
Schema
marker(required): string
Block marker
example: "personal_recommendations_block"
langCode: string
Language code. Default: "en_US"
example: "en_US"
signPrice: string
Order storage marker for price fixing. If the parameter is set, the price is fixed for a certain time
see: Fixing the price
limit: number
Maximum number of products to return. When omitted, the block's own quantity setting applies
example: 10
💲
signPricelocks the returned price for a limited time — set it to your order storage marker. See Fixing the price (signPrice).
Examples
Minimal example
const response = await Blocks.getPersonalRecommendations('personal_recommendations_block');
Example with attributes
const response = await Blocks.getPersonalRecommendations('personal_recommendations_block', 'en_US');
Example with limit
const response = await Blocks.getPersonalRecommendations('personal_recommendations_block', 'en_US', undefined, 4);
🔢
limitcaps how many products come back. Omit it and the block's own quantity setting from the admin panel keeps applying. See Limiting the number of products (limit).
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: ILocalizeInfo
Localized status name for the product.
example:
{ "title": "Sale" }
items.attributeSetIdentifier: string | null
Set of attributes id.
example: "set_12345"
items.position: number
Item number (for sorting).
example: 1
items.price: number | null
The value of the product page price taken from the index.
example: 150.00
items.additional: object
Additional value from the index.
example:
{
"prices": {
"min": 5,
"max": 150
}
}
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: IAttributeValues
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.moduleFormConfigs: Array<IFormConfig>
Module form configurations (optional).
items.rating: IRating
Rating data.
items.isPositionLocked: boolean
Sorting position lock indicator (optional).
example: false
items.relatedIds: number[]
Ids of related product pages.
example:
[
12345,
67890
]
items.paymentStages: unknown
Payment stages data (may be null).
example: null
items.distance: number
Vector (semantic) search relevance distance. Present only in results of vector search.
example: 0.42
items.discountConfig: Record<string, unknown>
Discount configuration object.
example:
{}
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.signedPrice: string
The signed price of the product is obtained along with the product data when signPrice is set.
see: Fixed product price
example: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
items.productPages: IProductPageRef[]
Array of product page references linking the product to its pages.
example:
[
{
"id": 16,
"pageId": 4,
"productId": 15,
"positionId": 244,
"categoryPath": "products"
}
]
items.blocks: string[]
Array of block identifiers.
example:
[
"block_12345",
"block_67890"
]
totalFound: number
Number of products matched before limits are applied; returned by block product endpoints (similarProducts, cart/wishlist recommendations, frequently ordered). Optional.
example: 2
🔒
signedPriceis the signed token that carries the locked price — pass it back when you create an order. See Fixed product price (signedPrice).