Skip to content

Releases: medusajs/medusa

v1.8.0-rc.7

04 Apr 14:09
Compare
Choose a tag to compare
v1.8.0-rc.7 Pre-release
Pre-release

Bugs

v1.8.0-rc.6

03 Apr 16:10
Compare
Choose a tag to compare
v1.8.0-rc.6 Pre-release
Pre-release

Features

  • feat: Initialize method for modules (#3649)

Bugs

  • fix(admin-ui): Make copy on manage locations modal better when no locations (#3666)
  • fix(admin-ui, medusa): Require name in create stock location (#3670)
  • fix(medusa, admin-ui, medusa-react): Gift Card update fixes and admin UI cleanup (#3676)
  • fix(medusa): stocked quantity counting when listing products (#3684)
  • fix(medusa-react): Query key invalidation (#3686)
  • fix(medusa-react): export product-categories store hooks (#3689)

Chores

  • chore(medusa-cli): Add missing utils dep (#3688)

v1.8.0-rc.5

31 Mar 11:30
Compare
Choose a tag to compare
v1.8.0-rc.5 Pre-release
Pre-release

Features

Bugs

v1.8.0-rc.4

30 Mar 15:13
Compare
Choose a tag to compare
v1.8.0-rc.4 Pre-release
Pre-release

Features

  • feat(admin-ui): move inventory item fields into manage inventory modal (#3591) @pKorsholm
  • feat(medusa): remove created reservations on subsequent failure for cart completion (#3554) @pKorsholm
  • feat(medusa): Remove reservations for all line items when an order edit is accepted (#3544) @pKorsholm

Bugs

Chores

v1.8.0-rc.3

29 Mar 11:44
Compare
Choose a tag to compare
v1.8.0-rc.3 Pre-release
Pre-release

Bugs

Chores

v1.8.0-rc.2

28 Mar 19:09
Compare
Choose a tag to compare
v1.8.0-rc.2 Pre-release
Pre-release

Features

  • feat(admin-ui): Request return flow warnings and errors (#3473) @pKorsholm
  • feat(oas-cli): output better error when no command is provided (#3559) @patrick-medusajs
  • feat(admin-ui, medusa): Improve fulfillment validation (#3541) @pKorsholm
  • feat(medusa): invalidate price selection caching within update request (#3553) @fPolic
  • feat(medusa): Categories - Adds indexes + remove soft delete (#3589) @riqwan
  • feat(medusa-payment-paypal): Migrate to the new payment processor API (#3414) @adrien2p

Bugs

  • fix(event-bus-local): Error handling (#3575) @adrien2p
  • fix(admin-ui): multi warehouse minor fixes (#3540) @pKorsholm
  • fix(admin): OrderEdit display of difference due with refund (#3487) @fPolic
  • fix(admin-ui): Fix effect check in inventory table and overflow UI (#3577) @StephixOne
  • fix(admin-ui): Hide inventory quantity field in variant stock form if SL module enabled (#3592) @StephixOne
  • fix(medusa-file-s3): Update key formation to use timestamp (#3601) @IgorKhomenko
  • fix(medusa): Include inventory quantity when listing products (#3586) @pKorsholm
  • fix(admin-ui): disallow creating OE if there is no changes (#3604) @fPolic
  • fix(admin-ui): Create fulfillment (#3607) @pKorsholm
  • fix(admin-ui): Update order edit variants table to fit longer content (#3608) @StephixOne

Chores

v1.8.0-rc.1

28 Mar 17:42
Compare
Choose a tag to compare
v1.8.0-rc.1 Pre-release
Pre-release

Features

  • feat(admin-ui): Request return flow warnings and errors (#3473) @pKorsholm
  • feat(oas-cli): output better error when no command is provided (#3559) @patrick-medusajs
  • feat(admin-ui, medusa): Improve fulfillment validation (#3541) @pKorsholm
  • feat(medusa): invalidate price selection caching within update request (#3553) @fPolic
  • feat(medusa): Categories - Adds indexes + remove soft delete (#3589) @riqwan
  • feat(medusa-payment-paypal): Migrate to the new payment processor API (#3414) @adrien2p

Bugs

  • fix(event-bus-local): Error handling (#3575) @adrien2p
  • fix(admin-ui): multi warehouse minor fixes (#3540) @pKorsholm
  • fix(admin): OrderEdit display of difference due with refund (#3487) @fPolic
  • fix(admin-ui): Fix effect check in inventory table and overflow UI (#3577) @StephixOne
  • fix(admin-ui): Hide inventory quantity field in variant stock form if SL module enabled (#3592) @StephixOne
  • fix(medusa-file-s3): Update key formation to use timestamp (#3601) @IgorKhomenko
  • fix(medusa): Include inventory quantity when listing products (#3586) @pKorsholm
  • fix(admin-ui): disallow creating OE if there is no changes (#3604) @fPolic
  • fix(admin-ui): Create fulfillment (#3607) @pKorsholm
  • fix(admin-ui): Update order edit variants table to fit longer content (#3608) @StephixOne

Chores

v1.8.0-rc.0

24 Mar 09:21
Compare
Choose a tag to compare
v1.8.0-rc.0 Pre-release
Pre-release

Preface

You will find that version 1.8 introduces breaking changes, which might cause you to wonder; why is this not considered a major version?

As we've mentioned in the past, we are currently not following strict semantic versioning. Instead, we use minor versions for breaking changes and patches for all else - and we will continue to do so for the time being.

We apologize in advance for the inconvenience this may cause to your setup.


Release Candidate for 1.8

We’re excited to share the Release Candidate (RC) of Medusa 1.8. By definition, release candidates are unstable, so we recommend not using this version in production. We are publishing this pre-release to gather feedback from users and the general developer community and to identify bugs and minor improvements to the stuff we've built.

Our 1.8 release comes with many new features while introducing architectural changes contributing toward making Medusa more modular and portable to new, modern environments. Now is your chance to give these changes a spin.

We welcome feedback, questions, and bug reports. Please use Issues for bug reports and the dedicated GitHub Discussion (for this RC) for all else.

In the 1.8 release notes, we will cover all new improvements and features in depth. In the following RC notes, we only briefly outline the high-level changes that are directly affecting your setup.

Get Started

If you are new to Medusa, please follow our Quickstart guide to set up your project before proceeding with the following steps.

To get started using the pre-release of Medusa 1.8, the first thing you need to do is upgrade Typeorm to their latest version:

yarn add typeorm@latest

Then install the RC version of our core:

yarn add @medusajs/medusa@rc

Aside from upgrading the core, you will need to perform a couple of additional steps, as we’ve changed the core package to rely on our Modules API for cache and events rather than having that functionality baked in. This opens up our cache and events systems to other technologies - more on that in the 1.8 release notes.

Install the new Redis cache module with the following command:

yarn add @medusajs/cache-redis@rc

Install the new Redis event bus module with the following command:

yarn add @medusajs/event-bus-redis@rc

Both modules need configuration. In medusa-config.js add the following to your project configuration:

module.exports = {
  projectConfig: {
    database_url: DATABASE_URL,
    ...
  },
  plugins,
  // Add modules configuration
  modules: {
    eventBus: {
      resolve: "@medusajs/event-bus-redis",
      options: {
        redisUrl: "your-redis-url"
      }
    },
    cacheService: {
      resolve: "@medusajs/cache-redis",
      options: {
        redisUrl: "your-redis-url"
      }
    }
  }
};

Finally, run migrations:

medusa migrations run

You are now set up to start using the RC.

Here’s a quick overview of what’s new in the RC:

  • Multi-warehouse
  • Nested Categories
  • Medusa Admin plugin
  • Payment Processors
  • Event Bus module
  • Cache module
  • OAS Tooling and client types packages
  • Types and Utils packages
  • Search plugins update
  • Performance improvements
  • Typeorm upgrade

This is not an exhaustive overview. Refer to the concrete changes at the bottom of the notes for a more detailed overview.

Features and Improvements

You'll find the following feature flags in 1.8:

Name Flag Description Default value
Order Editing order_editing  Allows you to edit Orders after having been placed  true
Product Categories product_categories  Organize your products to provide customers with a better browsing experience as they navigate your catalog.  false
Publishable Keys publishable_api_keys  Define scopes for your request to retrieve specific resources  true
Sales Channels sales_channels  Group your products in and receive Orders from different channels  true
Tax-inclusive Pricing tax_inclusive_pricing  Specify prices with tax included  false

Features

Multi-warehouse

We are releasing multi-warehouse capabilities in 1.8.

Expand into multiple warehousing locations with our new Inventory and Stock Location modules.

The multi-warehouse features will be enabled by installing and configuring the two modules:

yarn add @medusajs/inventory@rc @medusajs/stock-location@rc
module.exports = {
  projectConfig: {
    database_url: DATABASE_URL,
    ...
  },
  plugins,
  modules: {
    inventoryService: "@medusajs/inventory",
    stockLocationService: "@medusajs/stock-location",
  },
};

And run migrations:

medusa migrations run

After setting up the modules, a new set of settings in Medusa Admin will be available to use.

A more in-depth description will be part of 1.8.

Nested Categories

We are releasing a Product Categories API in 1.8.

Organize your products to provide customers with a better browsing experience as they navigate your catalog.

The feature is released under a feature flag. You can enable it by adding the following to your project configuration in medusa-config.js:

module.exports = {
  projectConfig: {
    database_url: DATABASE_URL,
    ...
  },
  plugins,
  modules,
  featureFlags: {
    product_categories: true
  }
};

And run migrations:

medusa migrations run

A more in-depth description will be part of 1.8.

Medusa Admin as a plugin

In 1.8, we will move Medusa Admin to our core repository to live as a plugin, @medusajs/admin. You install it directly into your Medusa project.

There are two ways of using the new admin plugin; serve it on the server or use its build tooling to deploy it on a hosting platform e.g. Vercel or Netlify.

The following steps demonstrate how to start using the admin plugin on the server. Install it with the following command:

yarn add @medusajs/admin@rc

Add it to your plugins in medusa-config.js:

module.exports = {
  projectConfig: {
    database_url: DATABASE_URL,
    ...
  },
  modules,
  featureFlags,
  plugins: [
    ...
    "@medusajs/admin"
    ]
};

Add and run the build script:

// package.json

"scripts": {
  "build:admin": "medusa-admin build"
}
...
yarn build:admin

Upon starting the server after these steps, Medusa Admin will live on the path /app on your server URL.

Event Bus module

The Redis event bus has been moved from the core into a module, allowing you to build a custom implementation using a different technology from Redis.

To install the Redis event bus, you first install the new package:

yarn add @medusajs/event-bus-redis@rc

The new events system is leveraging our Module API, so you must configure it in your project configuration in medusa-config.js:

module.exports = {
  projectConfig: {
    database_url: DATABASE_URL,
    ...
  },
  plugins,
    featureFlags,
    modules: {
      eventBus: {
	resolve: "@medusajs/event-bus-redis",
	options: {
          redisUrl: "your-redis-url"
	}
      }
    }
};

After configuring the Event Bus module, you can start your server as if nothing has changed.

Cache module

The cache mechanism has similarly been moved from the core into a module, allowing you to build a custom implementation using a different technology from Redis.

To install the Redis cache module, you first install the new package:

yarn add @medusajs/cache-redis@rc

Similar to the Event Bus module, you must configure it in your project configuration in medusa-config.js:

module.exports = {
  projectConfig: {
    database_url: DATABASE_URL,
		...
  },
  plugins,
  featureFlags,
  modules: {
    cacheService: {
      resolve: "@medusajs/cache-redis",
      options: {
        redisUrl: "your-redis-url"
      }
    }
  }
};

After configuring the Cache module, you should be able to start your server as if nothing has changed.

Payment Processor API

This release thoroughly cleans up our payment plugin domain and introduces a fresh new interface for building integrations with payment providers; the Payment Processor API:

export interface PaymentProcessor {
  /**
   * Return a unique identifier to retrieve the payment plugin provider
   */
  getIdentifier(): string

  /**
   * Initiate a payment session with the external provider
   */
  initiatePayment(
    context: PaymentProcessorContext
  ): Promise<PaymentProcessorError | PaymentProcessorSessionResponse>

  /**
   * Update an existing payment session
   * @param context
   */
  updatePayment(
    context: PaymentProcessorContext
  ): Promise<PaymentProcessorError | PaymentProcessorSessionResponse | void>

  /**
   * Refund an existing session
   * @param paymentSessionData
   * @param refundAmount
   */
  refundPayment(
    paymentSessionData: Record<string, unknown>,
    refundAmount: number
  ): Promise<
    PaymentProcessorError | PaymentProcessorSessionResponse["session_data"]
  >

  /**
   * Authorize an existing session if it is not already authorized
   * @param paymentSessionData
   * @param context
   */
  authorizePayment(
    paymentSessionData: Record<string, unknown>,
    context: Record<string, unknown>
  ): Promise<
    | PaymentProcessorError
    | {
        status: PaymentSessionStatus
        data: PaymentProcessorSessionResponse["session_data"]
      }
  >

  /**
   * Capture an existing session...
Read more

v1.7.15

22 Mar 08:51
Compare
Choose a tag to compare

Bugs

  • fix(medusa): Variant update should include the id for the listeners to be able to identify the entity (#3539) @adrien2p

v1.7.14

15 Mar 17:20
Compare
Choose a tag to compare

Features

This release contains significant performance improvements in the Products domain. Please see this pull request for a detailed overview of the tests we have run, as well as the impact of the improvements.

  • feat(medusa): Improve performance of Products domain (#3417) @adrien2p

Bugs