Appearance
Configuring a SimilarProducts recommendation
Looking for setup prerequisites, authentication details, and package references? Start with the TypeScript / JavaScript SDK landing page.
Unlike most other recommendation types, SimilarProducts requires setup to be optimally useful.
For more information about the types of data and comparers that go into setting up the recommendation, click here.
Before going any further, read about handling different types of users here.
ts
const recommender = new Recommender(RELEWISE_DATASET_ID, RELEWISE_API_KEY, {
serverUrl: RELEWISE_SERVER_URL,
});
const settings = {
language: 'en-gb',
currency: 'GBP',
displayedAtLocation: 'Product Details',
user: getUser()
};
const builder = new SimilarProductsProductBuilder(settings)
.product({ productId: 'product-id', variantId: 'variant-id' })
.setNumberOfRecommendations(10)
.setEvaluationSettings(evaluationSettings => {
evaluationSettings.significanceOfSimilaritiesInDisplayName = 1;
evaluationSettings.significanceOfSimilarBrand = 0.5;
evaluationSettings.significanceOfSimilarListPrice = 0.5;
evaluationSettings.significanceOfSimilarSalesPrice = 0.5;
evaluationSettings.significanceOfCommonImmediateParentCategories = 1;
evaluationSettings.significanceOfCommonParentsParentCategories = 0.5;
evaluationSettings.significanceOfCommonAncestorCategories = 0.25;
evaluationSettings.significanceOfIdenticalProductDataValues = 1;
evaluationSettings.significantProductDataFields = [
{ key: 'StringValueDataKey', comparer: 'Equals', significance: 1 },
{ key: 'CollectionValueDataKey', comparer: 'CollectionOverlap', significance: 1 }
];
})
.setSelectedProductProperties({
displayName: true,
brand: true,
pricing: true
});
const response = await recommender.recommendSimilarProducts(builder.build());