You can set this problem up as a prediction, or Learning-to-Rank problem. First, you want to define an objective function. A reasonable assumption is that ultimately you want to make it as easy as possible for users to buy your products, which means you want to rank those products as high as possible that they are most likely to purchase. The notion of "as high as possible" can be made precise by one of the known rank measures (see reference), such as normalized discounted cumulative gain (nDCG) or mean reciprocal rank (MRR) of a purchase. Ranking products according to a statistical model that predicts conversion rates or probability of purchase will lead you towards this goal.
Now, for a moment let's make the following simplifying assumptions:
- There are no queries (i.e., every user sees the same list).
- Each day, sales are exactly the same for every product as on the previous day.
- Each product is bought at least once a day.
- Users look at every item in the result list, then decide if and what to buy.
Under these conditions, ranking by the previous day's sales would always be perfect.
Of course, we have simplified too much.
- As the ubiquitous financial disclaimer says, "past performance is not necessarily indicative of future results". Sales change seasonally, weekly, and just randomly.
- Many (usually most) sales data is sparse; especially new products have no data at all, so we need to rely on other information.
- The user expresses her intent by typing a query. Ideally, we could reduce this aspect by remembering sales numbers for each query separately; in practice, however, this would hugely exacerbate the data sparsity problem, see 2).
Therefore, you want to rank by a function of input features (among them, yesterday's product conversions) to predict today's product conversions as accurately as possible. This function can be as simple as a weighted sum of features, as you propose, or as complex as a deep neural net. What is common among them is how to figure out the model parameters: Collect training data at the end of day d: feature values from day d-1, and the conversions observed on day d. The latter is our ground truth, but we pretend we don't know it and try to predict it based on the former alone, e.g., by means of a linear regression. Doing so, features other than (previous) sales will turn out to be useful, to combat sparsity.
Obviously, I have only scratched the surface. There are many aspects and refinements; for example, Assumption 4.) above is clearly unrealistic. Due to limited attention, users only look at the top-most results, which leads to so-called position bias.
Hopefully, however, this brief summary will point you in the right direction.