A while ago I wrote about how you can use ML.Net Recommender to add some smarts to your up-sell.
I decided to take it a step further and make it work for general product recommendations.
So I created a scheduled job that creates and trains the recommendation model, creates predictions for all available variations in advance, storing them in the database. In Quicksilver it takes about 10 minutes to create around 43000 recommendations.
To the “prediction engine” I added extra methods to get recommendations based on what’s in your cart, for 1 or more content references, returning references to the recommendations or the variations themselves. I also added one with some very basic “personalization”, based on the product you are viewing now combined with your previous ordered items.
I added an event listener to remove recommendations from the database when a variation gets deleted.
There is too much code to get into details but if you want to give it a test drive… you can find it here
As I said last time, I would probably not use it in a huge Commerce solution, Episerver Perform would be a better choice. But for small solutions it could be a nice addition.