Evaluation of Forecasting performance Metric on original or transformed Dependent Variable
I would say that in your circumstance it is necessary to scale back to true prices. This is not an absolute statement, but really depends on the setup of your problem: if you have a true price that is "1", then its log will be "0" and, whatever you predict for that single point, you'll get undefined / infinite MAPE. So I'd say yes, at least scale it back to exp before doing it.
Also I don't understand the difference between "1" and "2": they seem identical to me, in "1" you're just taking the log of the price for the test set and then taking the exp again, in "2" you're just avoiding doing the two operations...
As for "3", no, definitely they aren't independent on all transformations - in particular not log. MAPE is only independent to rescaling data by a constant factor, MAE by shifting it by a constant addend.
On this point, beware that no measure gives a perfect truth and you might get very bad results just applying them. For example, using MAPE, if you have something with price of 1 cent and you're estimating it at 1$ you'll give it the same (huge) error as if it had price 1000$ and you're estimating it at 100k. On the other hand, since you're taking logs in training, that's basically the same rule you're using to train your model, so it might not be catastrophic. Just beware if you have true prices that are very close to, or worse exactly, 0.
(MAE is probably worse in this case, because it will basically give all the weight to the few very expensive items in your database, but I can't say for sure from here)
I am building a machine learning model to forecast future prices in scikit-learn. The dependent variable price is not normally distributed, thus, I will perform log transformation on only dependent variable price using np.log(price).  After this, I will split complete data-set into train and test sets. Thus y_train and y_test both are now log transformed prices. After machine learning model fitting, I have to calculate forecasting performance metrics like MAPE error for the fitted model.

Should the data (price) be transformed back to its original scale before calculating MAPE using np.exp() for both model.predict method and y_test set ?  
Or we should first split the data into train and test, apply log transformation on training set y_train only, after this apply inverse transform on model.prediction set. Thus, y_test set (original) and np.exp(model.predict()) would then be used to calculate MAPE  
Or the values of MAPE or MAE metric is independent of scaling of response variable y and MAPE can be reported using transformed log values of dependent variable price?