Medusa v1.10.0stable Released May 04, 2023
โš ๏ธ Breaking Change Impact Score: 7/10

Medusa v1.10.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 **Performance improvements**
  • Instead of compromising on the performance of our API, we decided to fix the issue in Typeorm, which can be found in [this PR](https://github.com/typeorm/typeorm/pull/9990). It is still yet to be merged, so for now, we have published a forked version of Typeorm that includes the fix. This is the breaking change of this release.
Read the original context โ†—
Source flags breaking changes โ€” review applicability
๐Ÿ“„ .MD
โšก Executive Summary (TL;DR)

Medusa v1.10.0. Source highlight: **Performance improvements**

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 (2)

  • Breaking changes **Performance improvements**
  • Instead of compromising on the performance of our API, we decided to fix the issue in Typeorm, which can be found in [this PR](https://github.com/typeorm/typeorm/pull/9990). It is still yet to be merged, so for now, we have published a forked version of Typeorm that includes the fix. This is the breaking change of this release.

โœจ New Features & Capabilities (2)

  • feat(admin-ui): Metadata for stock locations
  • feat(medusa): Create-swap with sales channel

๐Ÿ”ง Bug Fixes & Patches (6)

  • fix(medusa): products retrieve uses query strategy for performance
  • fix(medusa): Use query relation load strategy on Carts
  • fix(medusa): Performance improvement for variant availability
  • fix(medusa): Broken payment session migration
  • fix(admin-ui): allocated badge for orders with statuses cancelled and archived
  • fix(admin-ui): Navigating to tax settings should not break URL
๐Ÿ“„ View Raw Release Notes (Original Developer Log)
<!-- ![release-template (1)](https://github.com/medusajs/medusa/assets/59018053/ca42d9ec-bf8c-4dc1-8cfd-ab98e5836e88) # Version 1.10.0 This version comes with performance improvements to Products retrieval so you can build a better and snapper experience for your customers. CMS_BREAK --> ### Breaking changes **Performance improvements** To improve performance of Cart and Product retrieval, we've changed the `relationLoadStrategy` in Typeorm from `join` to `query`. This means relations are loaded using separate database queries rather than many joins in a single large query. This change also significantly reduces memory usage, as it will produce a much smaller result. Unfortunately, Typeorm's `query`-strategy does not work well in concert with transactions, which is extensively used across our codebase. The separate queries to fetch relations on entities will run outside of an initiated transaction, because it uses a different query runner. This leads to incorrect results in cases where you request entities previously created in an ongoing transaction. Those changes will not have persisted to the database at the time of querying, and will therefore be "invisible" to other query runners. Instead of compromising on the performance of our API, we decided to fix the issue in Typeorm, which can be found in [this PR](https://github.com/typeorm/typeorm/pull/9990). It is still yet to be merged, so for now, we have published a forked version of Typeorm that includes the fix. This is the breaking change of this release. To make sure your project works as expected, you will need to use our forked version in your project until Typeorm accepts our PR and publishes a new version. In your `package.json`, replace the Typeorm version with the following: ``` "typeorm": "npm:@medusajs/typeorm@next" ``` ### Features **Listing products** In #4010, we've introduced checks in our Product API ensuring that product pricing and availability are only set if they are requested. The impacted endpoints are: ``` GET /store/products GET /store/products/:id GET /admin/products GET /admin/products/:id ``` By default, these properties will be set on the product and product variants, but if you specify the `expand` query param on your request, you might not receive product pricing and availability. To include those, add variants and variant prices to the `expand`. It will look like this: ``` GET /store/products?expand="variants,variants.prices" ``` * feat(admin-ui): Metadata for stock locations by @pKorsholm in https://github.com/medusajs/medusa/pull/3955 * feat(medusa): Create-swap with sales channel by @pKorsholm in https://github.com/medusajs/medusa/pull/3998 ### Bugs **Event Bus** In [v1.9.0](https://github.com/medusajs/medusa/releases/tag/v1.9.0), we changed the events system to only fire an event if it had any subscribers. This spawned a bug around wildcard subscribers that we missed in our testing. Wildcard subscribers are supposed to run on all events and are created like so: ``` eventBusService.subscribe("*", someMethodToHandleEvent) ``` To make up for this mistake, we've rolled back the changes introduced in 1.9.0 and will go back to the drawing board at some point in the future. * fix(medusa): products retrieve uses query strategy for performance by @riqwan in https://github.com/medusajs/medusa/pull/3926 * fix(medusa): Use query relation load strategy on Carts by @olivermrbl in https://github.com/medusajs/medusa/pull/3984 * fix(medusa): Performance improvement for variant availability by @pKorsholm in https://github.com/medusajs/medusa/pull/3921 * fix(medusa): Broken payment session migration by @rajshrimohanks in https://github.com/medusajs/medusa/pull/3098 * fix(admin-ui): allocated badge for orders with statuses cancelled and archived by @pKorsholm in https://github.com/medusajs/medusa/pull/3950 * fix(admin-ui): Navigating to tax settings should not break URL by @kasperkristensen in https://github.com/medusajs/medusa/pull/3989 * fix(admin-ui): Pin react-router-dom by @kasperkristensen in https://github.com/medusajs/medusa/pull/3999 * fix(medusa, types, utils, event-bus-local): Revert retrieveSubscribers by @adrien2p in https://github.com/medusajs/medusa/pull/4002 * fix(medusa): Only set product availability + prices if requested by @olivermrbl in https://github.com/medusajs/medusa/pull/#4010 ### Chores * chore: Bump Typeorm to Medusa fork by @olivermrbl in https://github.com/medusajs/medusa/pull/3981 ### New Contributors * @rajshrimohanks made their first contribution in https://github.com/medusajs/medusa/pull/3098 * @vladimirpekez made their first contribution in https://github.com/medusajs/medusa/pull/3972 * @karti16 made their first contribution in https://github.com/medusajs/medusa/pull/3977 **Full Changelog**: https://github.com/medusajs/medusa/compare/v1.9.0...v1.10.0