Releases: medusajs/medusa
v1.8.0-rc.7
v1.8.0-rc.6
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
Features
- feat(admin-ui): Make number input increment/decrement buttons not tabbable-to (#3645) @StephixOne
- feat(admin-ui, medusa): admin UI metadata (#3644) @kasperkristensen
- feat(admin-ui): Add new feature badge for categories and inventory (#3657) @StephixOne
Bugs
- fix(admin-ui): Collapse categories by default (#3637) @olivermrbl
- fix(admin-ui): Always show categories in product page (#3655) @olivermrbl
v1.8.0-rc.4
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
- fix(admin-ui): delete inventory item when variant is deleted (#3585) @pKorsholm
- fix(admin-ui): Fix team table filter dropdown transparency (#3625) @StephixOne
- fix(medusa): execSync stdio (#3633) @carlos-r-l-rodrigues
- fix(oas:test): Augment jest timeout from 30 to 60 sec (#3631) @patrick-medusajs
- fix(medusa): Fix hanging inventory item migration script (#3624) @pKorsholm
- fix(admin-ui): Eliminate purple from most-visible components (#3639) @olivermrbl
Chores
- chore(admin-ui): Update favicon (#3640) @olivermrbl
v1.8.0-rc.3
Bugs
- fix(modules-sdk): check if dependency is registered (#3620) @carlos-r-l-rodrigues
- fix(medusa-cli): add semver dependency (#3603) @kasperkristensen
- fix(medusa, admin-ui): List all inventory levels (#3552) @pKorsholm
Chores
- chore: Merge master to develop and manage conflict (#3570) @adrien2p
- chore(medusa): EOL causing logging to hang (#3622) @olivermrbl
v1.8.0-rc.2
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
- chore(medusa, modules-sdk): default module error message (#3605) @carlos-r-l-rodrigues
v1.8.0-rc.1
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
- chore(medusa, modules-sdk): default module error message (#3605) @carlos-r-l-rodrigues
v1.8.0-rc.0
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...
v1.7.15
v1.7.14
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.
Bugs
- fix(medusa): Issue on fixed total amount discount when using includes tax (#3472) @pepijn-vanvlaanderen