Digging through the digital haystack...
{
"name": "api",
"version": "1.1.18",
"license": "MIT",
"keywords": [
"sqlite",
"postgres",
"typescript",
"ecommerce",
"headless",
"medusa"
],
"scripts": {
"build": "pnpm medusa build",
"seed": "pnpm medusa exec ./src/scripts/seed.ts",
"setup:dev": "./scripts/setup-dev.sh",
"start": "pnpm medusa start",
"setup:db": "pnpm medusa db:setup --no-interactive",
"script:entrypoint": "./scripts/entrypoint.sh",
"migrate": "medusa db:migrate",
"dev": "medusa develop",
"lint": "eslint . --max-warnings 0",
"lint:fix": "eslint . --fix",
"format": "prettier \"**/*\" --ignore-unknown --list-different",
"format:fix": "prettier \"**/*\" --ignore-unknown --write",
"typecheck": "tsc",
"clean": "rm -rf node_modules dist .medusa .turbo",
"test:integration:http": "TEST_TYPE=integration:http NODE_OPTIONS=--experimental-vm-modules jest --silent=false --runInBand --forceExit",
"test:integration:modules": "TEST_TYPE=integration:modules NODE_OPTIONS=--experimental-vm-modules jest --silent --runInBand --forceExit",
"test:unit": "TEST_TYPE=unit NODE_OPTIONS=--experimental-vm-modules jest --silent --runInBand --forceExit",
"pre-commit": "lint-staged",
"bump": "bumpp"
},
"dependencies": {
"@medusajs/admin-sdk": "2.10.3",
"@medusajs/cli": "2.10.3",
"@medusajs/core-flows": "^2.10.3",
"@medusajs/dashboard": "^2.10.3",
"@medusajs/draft-order": "^2.10.3",
"@medusajs/framework": "2.10.3",
"@medusajs/medusa": "2.10.3",
"@mikro-orm/core": "6.4.3",
"@mikro-orm/knex": "6.4.3",
"@mikro-orm/migrations": "6.4.3",
"@mikro-orm/postgresql": "6.4.3",
"@repo/common": "workspace:*",
"@repo/emails": "workspace:*",
"@repo/tsconfig": "workspace:*",
"@rokmohar/medusa-plugin-meilisearch": "^1.3.5",
"awilix": "^8.0.1",
"axios": "^1.12.2",
"jsonwebtoken": "^9.0.2",
"pg": "^8.13.0",
"resend": "^6.2.0",
"scrypt-kdf": "^3.0.0",
"zod": "^4.1.12"
},
"devDependencies": {
"@medusajs/test-utils": "2.10.3",
"@mikro-orm/cli": "6.4.3",
"@repo/eslint": "workspace:*",
"@repo/prettier": "workspace:*",
"@swc/core": "1.13.5",
"@swc/jest": "^0.2.39",
"@types/jest": "^30.0.0",
"@types/jsonwebtoken": "^9.0.10",
"@types/node": "^24.8.1",
"@types/react": "^18.2.79",
"@types/react-dom": "^18.2.25",
"jest": "^30.2.0",
"prop-types": "^15.8.1",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"ts-node": "^10.9.2",
"vite": "^7.1.10",
"yalc": "^1.0.0-pre.53"
},
"engines": {
"node": ">=20"
}
}
v24.6.0
PostgreSQL 17
Linux 6.17.3-arch2-1
No response
I created a fixed-amount discount (e.g. €10 off), but there’s no way to set a minimum cart value. Customers can apply it to carts worth less than the discount amount — for example, an €8 cart becomes €0 after applying a €10 code. In “per-item” mode, the discount can be applied to many low-cost items, making the whole cart free.
Fixed-amount discounts should only apply when the cart total is at or above a defined minimum (e.g. “€10 off orders over €100”). This is standard in e-commerce and needed to prevent unintended free orders.
The discount applies regardless of cart value. No minimum purchase amount can be set, so fixed discounts are unsafe to use in production.