For start, you can check the Google's crash course on recommender systems and other questions tagged as recommender-system. As about your questions:
- I want to find items with similar dimension(length,height,width), material type and etc
For this you can use nearest neighbour search, where using some metric you just find a chosen number of most similar items. If this doesn't scale for your data, you can check the Annoy package that implements approximate nearest neighbours algorithm, or one of the other alternatives.
Notice however that this might not be the best idea. Showing similar items may lead to recommending a different toilet seat to a user who bought a toilet seat, as Amazon did, this is a dumb recommendation to make.
Modern recommender systems often use algorithms like matrix factorization to show results of the "other users who bought this item, also bought this" kind.
- and from those items, recommend(display) the item that has to be sold first (due to inventory issue. possible to provide competitive
deal for customer too).
This is a buisiness decision, not a part of a recommender system. This is you, who needs to make the decision about how you are going to handle it. It is a standard programming problem about defining a set of if ... else ...
conditions, sorting, and filtering stuff.
That said, technically this could be treated as a machine learning problem. For example you could use reinforcement learning that would find it's way how to make recommendations and optimize the inventory capacity, similar as DeepMind did for cooling of Google's data centres. So this can be done, but this would be a complicated research project by itself, that would probably need a dedicated research team and resources.