Medusa v1.18.0stable Released Nov 21, 2023
⚠️ Breaking Change Impact Score: 7/10

Medusa v1.18.0 β€” Release Notes & Engineering Impact

Source available β€” automated, not human-reviewed

Component: medusajs Β· Channel: stable. Automated analysis, not a compatibility certification. How this works.

Analysis updated: 2026-11-01.

Breaking-change evidence from the source

  • Breaking changes **Changes to feature flags**
Read the original context β†—
Source flags breaking changes β€” review applicability
πŸ“„ .MD
⚑ Executive Summary (TL;DR)

Medusa v1.18.0. Source highlight: Subscriber API + Scheduled Jobs API

Who Does This Impact? (Role-Based Analysis)

πŸ’» Software Engineers & Devs

Check the source notes against the package and APIs you use before upgrading.

πŸ“Š Product & Engineering Leads

Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.

βš™οΈ DevOps & Security

Verify the target version, runtime requirements and rollback procedure in the official documentation.

⚠️ Breaking Changes & Deprecations (1)

  • Breaking changes **Changes to feature flags**

✨ New Features & Capabilities (6)

  • feat(pricing,types): price list API + price calculations with price lists by @riqwan in #5498
  • feat(workflows,medusa,utils): add medusa v2 feature flag
  • feat(medusa): Alternative Subscriber API and new ScheduledJobs API
  • feat(medusa): Add metadata to Product Category by @bqst in #5599
  • chore: add missing error responses to currency OAS
  • chore: add TSDocs for IStockLocationService

πŸ”§ Bug Fixes & Patches (6)

  • fix: minor fixes to IconButton and Button documentation
  • fix(admin-ui): Preserve decimal numbers when locale uses commas
  • fix(admin-ui): sort supported languages alphabetically
  • fix(medusa): Add missing promiseAll import
  • fix(medusa): Error handling middleware should be applied when no config is exported
  • fix(medusa): Update wrapHandler so it also passes errors in non-async route handlers to the errorHandler middleware by @kasperkristensen in #5597
πŸ“„ View Raw Release Notes (Original Developer Log)
<!-- ![image](https://github.com/medusajs/medusa/assets/59018053/f2f8ccd5-e000-4fce-9cc1-6e9c2e8e8ab6) # Version 1.18.0 This version introduces an improved Subscriber API and a new Scheduled Jobs API. CMS_BREAK --> ## Highlights ### Subscriber API + Scheduled Jobs API This release comes with an improved Subscriber API and a new Scheduled Jobs API. These are drastic improvements of the developer experience of setting up event subscribers and cron jobs. **Subscriber API** ```ts // src/subscribers/product-update-handler.ts import type { SubscriberConfig, SubscriberArgs, ProductService } from "@medusajs/medusa" export default async function productUpdateHandler({ data, eventName, container, pluginOptions }: SubscriberArgs) { const productService: ProductService = container.resolve("productService") const { id } = data const product = await productService.retrieve(id) // do something with the product... } export const config: SubscriberConfig = { event: ProductService.Events.UPDATE } ``` **Scheduled Jobs API** ```ts // src/jobs/once-a-minute.ts import type { ProductService, ScheduledJobConfig, ScheduledJobArgs } from "@medusajs/medusa" export default async function handler({ container, data, pluginOptions }: ScheduledJobArgs) { const productService: ProductService = container.resolve("productService") const count = await productService.count() console.log(`You have ${count} products`) } export const config: ScheduledJobConfig = { name: "every-minute", schedule: "* * * * *" } ``` Read more about the new APIs in [the PR details](https://github.com/medusajs/medusa/pull/5624). ### Breaking changes **Changes to feature flags** This version significantly changes the feature flags in our core `@medusajs/medusa`. We've decided to replace all module-specific feature flags with one that encapsulates all the work around modularizing Medusa further. The following feature flags no longer exist: | Name | Flag | Environment variable | | -------------- | ------ | ------------ | | Product Module | `isolate_product_domain` |Β MEDUSA_FF_ISOLATE_PRODUCT_DOMAIN | | Pricing Module | `isolate_pricing_domain` |Β MEDUSA_FF_ISOLATE_PRICING_DOMAIN | These feature flags have been replaced with one capturing all work for Medusa V2, releasing next year: | Name | Flag | Environment variable | | -------------- | ------ | ------------ | | Medusa V2 | `medusa_v2` |Β MEDUSA_FF_MEDUSA_V2 | **Creating a NotificationService** The introduction of the new Subscriber API changes the recommended way to define the subscribers of a NotificationService. The recommended approach is to use a loader until our Subscriber API natively supports NotificationServices or we introduce a mechanism dedicated towards it. Read more [here](https://docs.medusajs.com/upgrade-guides/medusa-core/1-18). ## Features * feat(pricing,types): price list API + price calculations with price lists by @riqwan in #5498 * feat(workflows,medusa,utils): add medusa v2 feature flag by @riqwan in https://github.com/medusajs/medusa/pull/5603 * feat(medusa): Alternative Subscriber API and new ScheduledJobs API by @kasperkristensen in https://github.com/medusajs/medusa/pull/5624 * feat(medusa): Add metadata to Product Category by @bqst in #5599 ## Bugs * fix: minor fixes to IconButton and Button documentation by @kasperkristensen in https://github.com/medusajs/medusa/pull/5636 * fix(admin-ui): Preserve decimal numbers when locale uses commas by @kasperkristensen in https://github.com/medusajs/medusa/pull/5641 * fix(admin-ui): sort supported languages alphabetically by @VariableVic in https://github.com/medusajs/medusa/pull/5479 * fix(medusa): Add missing promiseAll import by @chemicalkosek in https://github.com/medusajs/medusa/pull/5635 * fix(medusa): Error handling middleware should be applied when no config is exported by @kasperkristensen in https://github.com/medusajs/medusa/pull/5634 * fix(medusa): Update wrapHandler so it also passes errors in non-async route handlers to the errorHandler middleware by @kasperkristensen in #5597 * fix(ui): Fixed CodeBlock line number width by @kasperkristensen in #5640 * fix(product): when running migrations, prevent exploding on isolated case by @riqwan in #5643 ## Chores * chore: add missing error responses to currency OAS by @shahednasser in https://github.com/medusajs/medusa/pull/5627 * chore: change code owners of docs-util directory by @shahednasser in https://github.com/medusajs/medusa/pull/5626 * chore: add TSDocs for IStockLocationService by @shahednasser in https://github.com/medusajs/medusa/pull/5631 * chore(types): Add TSDoc comments to IInventoryService by @shahednasser in https://github.com/medusajs/medusa/pull/5630 ## Documentation * docs: update docusaurus to v3 by @shahednasser in https://github.com/medusajs/medusa/pull/5625 * docs: added troubleshooting for postgres docker container by @shahednasser in https://github.com/medusajs/medusa/pull/5629 * docs: add note about ttl in redis cache module by @shahednasser in https://github.com/medusajs/medusa/pull/5617 * docs: generate inventory and stock location references by @shahednasser in #5645 ## New Contributors * @VariableVic made their first contribution in https://github.com/medusajs/medusa/pull/5479 **Full Changelog**: https://github.com/medusajs/medusa/compare/v1.17.4...v1.18.0