You might try several techniques to achieve your goal, I have researched and used these before, so it might help you.
Semi-Supervised Learning
Basically you need some historical data linking the products the users, therefore you can establish a primary knowledge of the relationship between some products and the users after that you cluster the same products/users and you label the rest of unlabeled products based on that.
Association rule learning
is a rule-based machine learning method for discovering interesting relations between variables in large databases. It is intended to identify strong rules discovered in databases using some measures of interestingness.
Collaborative learning/Federated learning
It's better to use it when you have informations about the buyers/sellers, therefore you can study the relationship between the product/(buyers/sellers), then products/shops, then you can supervise the learning between the products/shops.You need a high content quality data.
Cooperative Learning
You run diffrent test on diffrent combination of users/items, and you derive diffrent results from them, then you compare them against each other. For this you need some pre-determined rules to evaluate your own decision making results. You need some historical data of the products/users.
Combine collaborative learning and Cooperative Learning
This is what Google search engine is doing, he know what other people are looking for and build patterns for which is called collaborative learning, but if they give the results of it, it will not be specific for you as a user, so they add Cooperative Learning to emphasize your own search results experience. As interesting as it might sound it not that easy to code.