You need to convert your data to a numeric representation that models can work with. The only problematic feature is the location (categorical variable), but we can represent it with one column for each location, and 0s and 1s (so called OneHotEncoding). An example to get you started:
Preprocessing
from sklearn.feature_extraction import DictVectorizer
data = [
{'location': 'store 1', 'quality': 8},
{'location': 'store 1', 'quality': 9},
{'location': 'store 2', 'quality': 2},
{'location': 'store 2', 'quality': 3},
]
prices = [100.00, 99.9, 11.25, 9.99]
vec = DictVectorizer()
X = vec.fit_transform(data)
y = prices
Now X will look like this:
╔═════════════════╦═════════════════╦═════════╗
║ location=store1 ║ location=store2 ║ quality ║
╠═════════════════╬═════════════════╬═════════╣
║ 1 ║ 0 ║ 8 ║
║ 1 ║ 0 ║ 9 ║
║ 0 ║ 1 ║ 2 ║
║ 0 ║ 1 ║ 3 ║
╚═════════════════╩═════════════════╩═════════╝
Model training
This matrix can now be feed to a model:
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X, y)
Prediction
The new data will also need to be converted into numeric form using the same DictVectorizer. Note that now we use .transform instead of .fit_transform:
>>> test_data = [{'location': 'store 2', 'quality': 3}]
>>> X_test = vec.transform(test_data)
>>> model.predict(X_test)
array([ 10.28])
By the way, I would approach this problem as a classification problem(sold/not sold) and then I would use regression to determine the price only on the sold items.