diff --git a/packages/medusa/src/api/routes/admin/store/update-store.js b/packages/medusa/src/api/routes/admin/store/update-store.js index 4cc23296a2..9915025021 100644 --- a/packages/medusa/src/api/routes/admin/store/update-store.js +++ b/packages/medusa/src/api/routes/admin/store/update-store.js @@ -3,6 +3,7 @@ import { MedusaError, Validator } from "medusa-core-utils" export default async (req, res) => { const schema = Validator.object().keys({ name: Validator.string(), + default_currency: Validator.string(), currencies: Validator.array().items(Validator.string()), }) diff --git a/packages/medusa/src/models/store.js b/packages/medusa/src/models/store.js index 95dde91655..28fe5b40a1 100644 --- a/packages/medusa/src/models/store.js +++ b/packages/medusa/src/models/store.js @@ -5,6 +5,7 @@ class StoreModel extends BaseModel { static modelName = "Store" static schema = { name: { type: String, required: true, default: "Medusa Store" }, + default_currency: { type: String, required: true, default: "USD" }, currencies: { type: [String], default: [] }, metadata: { type: mongoose.Schema.Types.Mixed, default: {} }, } diff --git a/packages/medusa/src/services/store.js b/packages/medusa/src/services/store.js index d8b5b00b1c..e78fa7d817 100644 --- a/packages/medusa/src/services/store.js +++ b/packages/medusa/src/services/store.js @@ -81,6 +81,16 @@ class StoreService extends BaseService { ) } + if (update.default_currency) { + update.default_currency = update.default_currency.toUpperCase() + if (!currencies[update.default_currency]) { + throw new MedusaError( + MedusaError.Types.INVALID_DATA, + `Invalid currency ${update.default_currency}` + ) + } + } + if (update.currencies) { update.currencies = update.currencies.map(c => c.toUpperCase()) update.currencies.forEach(c => {