* fix(product): when running migrations, prevent exploding on isolated case
* chore: remove try catch block
* chore: added variant test fixes
* chore: update name of var
* ✨ feat(migrations): add metadata column to product_category table in database to store additional information about each product category
* ✨ feat(product-category.ts): add metadata field to ProductCategory model to store additional details
📝 docs(product-category.ts): add documentation for new metadata field in ProductCategory model
* ✨ feat(product-category.ts): add metadata field to ProductCategoryInput type to support additional data
* ✨ feat(ProductCategory.ts): add optional metadata field to ProductCategory model to store additional details
* ✨ feat(product-categories): add metadata field to product categories for additional information storage
📝 docs(product-categories): add documentation for new metadata field in product categories
* ✨ feat(product-categories): add 'metadata' field to default and allowed product category fields for enhanced data tracking
* ✨ feat(product-category.ts): add metadata support to product categories
🔧 refactor(product-category.ts): import setMetadata from utils to handle metadata setting in a more efficient way
* ✨ feat(models): add metadata field to AdminPostProductCategoriesCategoryReq and AdminPostProductCategoriesReq models to store additional information
* 📝 docs(api-reference): add metadata field to ProductCategory schema in both admin and store specs
🔧 fix(api-reference): make metadata field required in ProductCategory schema to ensure data consistency
* Create nine-fishes-matter.md
---------
Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
**what:**
**PriceList Service APIs:**
- createPriceList
- updatePriceList
- addPriceListPrices
- removePriceListRules
- setPriceListRules
- deletePriceList
- listPriceLists
- listAndCountPriceLists
**Price Calculations**
- Returns prices with price list prices
- Returns a new shape with calculated and original prices
Co-authored-by: Philip Korsholm <88927411+pKorsholm@users.noreply.github.com>
**What**
- Ensure that we format numbers with `.` as the decimal separator, even when the users locale uses `,`. This changes still allows users to use comma as the decimal separator, but the transformation we use before writing to state converts the number to use a dot instead.
**What**
- Fixes an issue where the default errorHandler middleware was not applied if the user did not have a `middlewares.ts` file.
- Updates the type of `MiddlewaresConfig` so `middlewares` is now optional, as people might want to only set a bodyParser config for a matcher and not provide any additional middleware.
## What?
Added sorting to the `supportedLanguages` array in `packages/admin-ui/ui/src/i18n/index.ts`. This makes sure the languages in the dropdown are sorted alphabetically.

## Why?
As we're supporting more languages in the admin UI, this list was getting messy.
## How?
By using `sort()` and `localeCompare()` on array declaration.
## Testing
Go to Medusa Admin locally, login and navigate to Settings > Personal information to test the language dropdown.
While I was developing a custom tax provider, I ran into a pretty frustrating issue related to multiple tax lines and incorrect / unexpected tax total calculations. I outlined the issue in discord, before finding the solution: https://discord.com/channels/876835651130097704/1169705457804398662
After some digging, I found this issue from a while back: https://github.com/medusajs/medusa/pull/1262, where it states there is now a unique constraint on `item_id, code` and `shipping_method_id, code`. But, in the current documentation for creating a custom tax provider, it states these fields as part of the tax line items returned are optional.
If these `code` values are left out, it can cause tax lines to be applied multiple times (as seen here as well: https://github.com/medusajs/medusa/issues/1901)
I'm not entirely sure how this should be phrased in the documentation, so I just wanted to get this up and on your radar for resolution. If it ends up being that `code` truly should not be optional, I suspect some type definitions would need to change as well?
`create-medusa-app` currently prints a generic error message when it cannot connect to a database. This tiny pull request adds the thrown error to the log message, that simplifies debugging of installation issues