Download Latest Version v2.9.0 source code.zip (45.0 MB)
Email in envelope

Get an email when there's a new version of Medusa.js

Home / v2.9.0
Name Modified Size InfoDownloads / Week
Parent folder
README.md 2025-08-14 10.7 kB
v2.9.0 source code.tar.gz 2025-08-14 30.3 MB
v2.9.0 source code.zip 2025-08-14 45.0 MB
Totals: 3 Items   75.3 MB 1

Highlights

Throw error on invalid promotions

[!WARNING]
Breaking change

This release updates the promotion application logic to throw when applying an invalid promotion code. This change improves the experience for developers building storefronts by allowing them to handle invalid discount codes directly from the API response, rather than checking cart promotions after the API request.

The backend will respond with a 400 and a message like so:

The promotion code HELLOWORLD is invalid

Add support for logical operators on Index

This release introduces support for logical operators on Index queries, such as:

:::ts
const { data: products } = await query.index({
  entity: "product",
  filters: {
    $and: [
      { status: "published" },
      {
        $or: [
          { brand: { name: { $ilike: "%adidas%" } } }
        ]
      }
    ]
  }
})

In addition to this, this release also fixes a regression related to indexing custom module entities.

Resolve issue with promotion calculations in a tax-inclusive context

This release resolves an issue with the calculation of adjustments in a tax-inclusive calculation context.

When calculating the applicableTotal (the maximum amount a promotion can apply to an item), it was incorrectly based on the line item’s subtotal (excluding tax), while the promotion value was based on the total (including tax), causing incorrect adjustment calculations.

Bugs

Documentation

Chores

Other Changes

New Contributors

Full Changelog: https://github.com/medusajs/medusa/compare/v2.8.8...v2.9.0

Source: README.md, updated 2025-08-14