Well, you can simply try linear and tree based algorithms.
I'm considering that the target is to find the price which can make highest sales. If you have data for your company and other competitors for the price and sales in the same company. You can use the above algorithms to model sales as a function of price and other factors.
Then in your test observation that will be a single row, you can use different values of price to see the change in sales for the that price. Noting the value of sales for multiple prices should give you the price elasticity curve. Then you'll be able to find a price point that'll give you the max sales.
If you are interested in profits, then you can carry out further calculations for finding the profit for each price point with corresponding sales and in the end choose a price point that gives max profits instead.