Commit Graph

1580 Commits

Author SHA1 Message Date
Frane Polić
e23f204b7c fix(dashboard, core-flows, medusa): prevent creation of empty fulfillments (#11664) 2025-03-03 16:54:20 +00:00
Riqwan Thamir
ab96ad3b82 feat(utils): add error message when manager is not found in context (#11693) 2025-03-03 15:50:34 +01:00
Kasper Fabricius Kristensen
c28ae573e5 fix(dashboard): Use derived state in DataTable (#11487)
**What**
- Uses derived state in DataTable, to prevent the state in the URL and component from going out of sync.
- Introduces a way for RouteModals to restore URL params on close.

Resolves CMRC-936
2025-03-03 14:18:19 +00:00
Riqwan Thamir
51b0af193c fix(types,medusa): calculate taxes for original price (#11692) 2025-03-03 14:20:48 +01:00
Riqwan Thamir
954136f13a fix(dashboard): bust variant inventory cache on inventory update (#11690) 2025-03-03 12:53:34 +01:00
Adrien de Peretti
d1efad9bf0 chore(): Improve cart update line items (#11666)
**What**
Currently, we are potentially providing an array of selector/data leading to fetching data sequentially before running on update which will fetch data again in batch and perform the update. Now we can pass the data directly which includes the id already and only perform one bulk fetch + one bulk update.

This pr also include a fix on the inventory validation, currently, only the item to update inventory is being checked, with this pr we also check the inventory for the items that needs to be created
2025-03-03 10:06:40 +00:00
Adrien de Peretti
228b7b608d Chore/link module serialization (#11643) 2025-02-28 09:19:21 -03:00
Adrien de Peretti
c250de7919 chore(): Prevent sub workflow events release early + redis unlink (#11641)
**What**
- Prevent event release when a workflow is run as step and finish
- Use `unlink` instead of `del` when removing keys from redist to push the execution to async thread
2025-02-27 10:33:30 +00:00
Adrien de Peretti
ca6a15717d chore(): Add support for extra pool configuration (#11636)
**What**
Support more pool configuration
2025-02-27 10:33:08 +00:00
Harminder Virk
b0a16488e0 feat: add middleware-file-loader (#11638)
Fixes: FRMW-2920

The feature is called `middleware-file-loader`, because it does more than just collecting middlewares. It also collects the bodyParser config for routes
2025-02-27 09:42:29 +00:00
Riqwan Thamir
38beeb157e fix(core-flows): support 0 as a valid unit price for custom line items (#11631) 2025-02-26 19:32:35 +01:00
Adrien de Peretti
d254b2ddba chore(): Improve cascade soft deletetion/restoration and update (#11618)
**What**
- Fix soft deletion and restoration emitted events
- Improve soft deleted/restore algorithm
- Fix big number field handling null value during partial hydration from mikro orm
2025-02-26 18:01:36 +00:00
Adrien de Peretti
caf83cf78c chore: prevent workflow steps to call modules when not necessary (#11632)
**What**
Some steps were calling the modules even when nothing was needed which for some operations would create transaction for nothing leading to extra execution time that add up very quickly on cloud network

Co-authored-by: Carlos R. L. Rodrigues <37986729+carlos-r-l-rodrigues@users.noreply.github.com>
2025-02-26 17:42:48 +00:00
BOUAZZA Ayyoub
93cbc6b669 Fix/add additionl data to product categories hook (#11226)
* fix: add additional_data to categoriesCreated hooks

* fix: restore yarn.lock

* fix: add additional_data param in the http validators

* fix: add additional_data to updateProductCategoriesWorkflow

* Update yarn.lock

* fix: fix merge

* fix: refert yarn.lock

* fix: revert tarn.lock

* Create clean-poets-promise.md

---------

Co-authored-by: Carlos R. L. Rodrigues <37986729+carlos-r-l-rodrigues@users.noreply.github.com>
Co-authored-by: Riqwan Thamir <rmthamir@gmail.com>
2025-02-26 14:58:01 +01:00
Carlos R. L. Rodrigues
322d108c03 chore(core-flows): pass cart as reference to subflows (#11617) 2025-02-26 08:26:44 -03:00
Carlos R. L. Rodrigues
fa1793e8e9 chore(core-utils): avoid overfetching to refresh cart (#11602)
What:
 * Not all Cart operations need a full refresh updating items. This PR introduces a flag to force the refresh for special ocasions, like updating the Cart's region, or transfering the Cart to another customer. For all other flows it will update only promotions, taxes and payment collection if needed.
2025-02-26 10:00:04 +00:00
Adrien de Peretti
eeebb35758 chore(product): revamp upsertWithReplace and Remove its usage from product creation (#11585)
**What**
- Move create product to use native create by structuring the data appropriately, it means no more `upsertWithReplace` being very poorly performant and got 20x better performances on staging
- Improvements in `upsertWithReplace` to still get performance boost for places that still relies on it. Mostly bulking the operations when possible

Co-authored-by: Carlos R. L. Rodrigues <37986729+carlos-r-l-rodrigues@users.noreply.github.com>
2025-02-26 09:53:13 +00:00
Carlos R. L. Rodrigues
03731c7660 chore(core-flows): reserve inventory from available location (#11538) 2025-02-26 06:10:41 -03:00
Harminder Virk
9e2af4801d feat: add routes loader (#11592)
Fixes: FRMW-2919

This PR adds a new routes loader with a single responsibility of scanning the filesystem and collecting routes. Sorting of routes, merging middleware and registering them with express are going to separate implementations.

The new `RoutesLoader` class allows overriding routes as-well (not recommended though) and this is how routes are de-duplicated.

- When two routes for the exact route pattern/matcher are discovered, the routes loader will only keep the last one.

- Routes files can also override handlers for specific HTTP methods. For example, the original route file exported handlers for `GET` and `POST`, but the overriding one only defines `GET`. In that case, we will continue using the original implementation for the `POST` handler.

- If an overriding route file exports additional configuration like `export const AUTHENTICATION=false`, then this will only impact the handlers exported from this file and not the original handlers.

Routes sorting has been already been implemented in a separate PR and you can visualize it using this URL. https://routes-visualizer.fly.dev/
2025-02-26 07:24:10 +00:00
Adrien de Peretti
b42f151be3 chore(): Improve internal repository delete algo (#11601)
* chore(): Improve internal repository delete algo

* chore(): Improve internal repository delete algo

* chore(): Improve internal repository delete algo

* update tests

* Create purple-donkeys-learn.md

* update tests
2025-02-25 19:59:57 +01:00
Kasper Fabricius Kristensen
d814d9540e fix(types): Allow providing either vite@5 or vite@6 for the peer dependency (#11581)
**What**
- The types package has an optional peerDep on vite@5. This causes issues if the package is installed in a repo that has vite@6 installed. An example could be a `react-router/remix` storefront.
- Loosen the dependency to accept either vite@5 or vite@6.

Resolves SUP-970
2025-02-25 18:59:38 +00:00
Shahed Nasser
8bb0a25f57 fix(types, medusa): remove fulfillment and payment status filters from validator + http types (#11604) 2025-02-25 19:42:53 +01:00
Shahed Nasser
698a520729 chore(types): change payment provider types to interfaces (#11597)
* chore(types): change payment provider types to interfaces

* add changeset
2025-02-25 14:30:18 +02:00
olivermrbl
3f7470022c chore: Version packages 2025-02-24 11:36:46 +01:00
Harminder Virk
feec0243ab feat: add middleware and routes sorter (#11526)
Fixes: FRMW-2918
2025-02-24 10:17:15 +00:00
Shahed Nasser
38a57b1ddc chore(ui): explicitely specify the props type of InlineTip (#11575) 2025-02-24 10:11:57 +00:00
Kasper Fabricius Kristensen
f00e6bf660 fix(js-sdk): Export Draft Order methods (#11572) 2025-02-24 10:30:07 +01:00
olivermrbl
932fd90d40 chore: Fix incorrect minor in changeset 2025-02-23 16:29:59 +01:00
Kasper Fabricius Kristensen
efd66c0d59 fix(core-flows): Allow adding shipping methods through order edits (#11504)
* fix(core-flows): Allow adding shipping methods through order edits

* fix(core-flows): Allow adding shipping methods through order edits

* update test description

---------

Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
2025-02-23 16:06:54 +01:00
Carlos R. L. Rodrigues
0c957350a6 fix(order): calculate taxes on order edit flows (#11518)
* fix(order): calcualte taxes on order edit flows

* merge summary

* tests

* fix pending difference

* comments

* claim test

* revert method
2025-02-21 15:27:40 +01:00
Adrien de Peretti
065df75e7d fix(): handle empty q filters - allow to query deleted records from graph API - staled_at fixes (#11544)
* fix(): Allow to query deleted records from graph API

* fix(): Allow to query deleted records from graph API

* handle empty q value

* update staled at sync

* rename integration tests file

* Create strong-houses-marry.md

* try to fix flacky tests

* fix pricing context

* update changeset

* update changeset

* fix import

* skip test for now

---------

Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
2025-02-21 13:24:12 +01:00
Kasper Fabricius Kristensen
3b4997840e fix(medusa,js-sdk,types): Add basic draft order operations to js-sdk (#11514)
**What**
- Exposes `sdk.admin.draftOrder.create/update/retrieve/list` functions from the js-sdk
- Implements the necessary types in the types package.
- Adds missing endpoints to admin API.
2025-02-20 16:05:21 +00:00
Adrien de Peretti
0307304dc6 fix(dashboard): Prevent overfetching data (#11532)
**What**
Currently, the dashboard is fetching way more data than needed to display the products. This can lead to issues for complex catalog. this pr aim to reduce the data to be fetched to exactly what is needed.
<img width="2553" alt="Screenshot 2025-02-19 at 15 08 16" src="https://github.com/user-attachments/assets/b00e856c-e040-4f05-9f15-41fb8d299387" />
2025-02-19 14:26:22 +00:00
Adrien de Peretti
77f37c5f97 Chore(index): Sync logs management (#11522)
**What**
- Add index engine sync log information
- Ad `setTimeout(0)` to give breath to the event loop and ensuring not blocking the event loop and allow for other tasks queue execution to happen while syncing

here is an example:
**LOG_LEVEL=info**

![Screenshot 2025-02-19 at 10 09 25](https://github.com/user-attachments/assets/fc74dc32-1bc1-4123-9de3-f37817b7e783)

**LOG_LEVEL=debug**

![Screenshot 2025-02-19 at 10 10 35](https://github.com/user-attachments/assets/222a1ce1-9267-4cb0-9518-dc4c7aa2b6f4)
2025-02-19 11:54:38 +00:00
Harminder Virk
0e6ffad30f fix: allow setting DB_PORT and DATABASE_URL env variables (#11519)
Fixes: FRMW-2896

Closes: https://github.com/medusajs/medusa/issues/11502
2025-02-19 08:07:15 +00:00
Shahed Nasser
b60e1c855e fix(framework): add missing storefrontUrl from configuration type (#11511)
The `storefrontUrl` is defined in the `packages/core/types/src/common/config-module.ts` file, but for many purposes, including the documentation, we use the types defined in `packages/core/framework/src/config/types.ts`. This PR adds the `storefrontUrl` to the framework type
2025-02-18 17:29:59 +00:00
Adrien de Peretti
448dbcb596 feat(medusa): Rollout index engine behind feature flag (#11431)
**What**
- Add index engine feature flag
- apply it to the `store/products` end point as well as `admin/products`
- Query builder various fixes
- search capabilities on full data of every entities. The `q` search will be applied to all involved joined table for selection/where clauses

Co-authored-by: Carlos R. L. Rodrigues <37986729+carlos-r-l-rodrigues@users.noreply.github.com>
2025-02-18 13:49:57 +00:00
Kasper Fabricius Kristensen
3b69f5a105 fix(dashboard): Properly delete metadata keys, and fix number parsing (#11466)
**What**
- Fixes an issue where we would parse a string like `"52 tests"` into `52` in the Metadata form
- If a row is deleted we now send off key with an empty string as its value to signify that it should be deleted. This is needed to introduce the API we had for updating metadata in V1. Adrien is implementing the BE support for this.

RESOLVES SUP-895
2025-02-18 10:28:24 +00:00
Kasper Fabricius Kristensen
06cc658246 fix(dashboard): Allow using the Enter key in product create Textarea (#11488)
Resolves SUP-911
2025-02-18 10:21:26 +00:00
Ranjith kumar
32ad13813b feat(js-sdk): implement custom storage config to support react native (#11467)
* feat(js-sdk): implement custom storage config to support react native

* chore: add changeset

* feat(js-sdk): implement custom storage config to support react native

* chore: add changeset

* test:  add unit tests for custom storage
2025-02-18 08:38:23 +01:00
Adrien de Peretti
3b7856e8f5 feat(framework): Improve production structured logging with more valuable information as well (#11489)
* feat(framework): Improve production structured logging with more valuable information as well

* feat(framework): Improve production structured logging with more valuable information as well

* feat(framework): Improve production structured logging with more valuable information as well

* feat(framework): Improve production structured logging with more valuable information as well

* fix typo

* update trust proxy

* Create new-ligers-heal.md

* revert trust proxy
2025-02-17 18:16:33 +01:00
Harminder Virk
32c5015f56 fix: generate posix paths for migrations (#11468)
Fixes: FRMW-2913

Related Github issue - https://github.com/medusajs/medusa/issues/11330
2025-02-17 09:57:00 +00:00
Kasper Fabricius Kristensen
b53ea77658 feat(ui,dashboard): Move InlineTip to UI package (#11462) 2025-02-17 09:16:29 +00:00
Adrien de Peretti
63f0774569 feat(): Backport metadata management (#11469)
FIXES FRMW-2915

**What**
Backport metadata management. all the metadata get preserved unless a specific empty string is provided for the key which in turn would remove that key from the metadata
2025-02-17 09:14:53 +00:00
Harminder Virk
a5ff1b92ce refactor: remove host from the server ready log (#11485) 2025-02-17 14:07:44 +05:30
Kasper Fabricius Kristensen
03b8bda1ba fix(dashboard): Fix size of buttons and use Link to navigate (#11366)
**What**
- Fixes the wrong `size` being used for the allocate items button.
- Updates the buttons that link to somewhere to use a Link and asChild instead of an onClick.
2025-02-14 15:19:31 +00:00
Kasper Fabricius Kristensen
b37010857a fix(core-flows): Fix line item ids passed to deleteReservationsByLineItemsStep (#11465) 2025-02-14 15:10:52 +01:00
Kasper Fabricius Kristensen
825b8ad260 fix(medusa): Allow filtering by handle and title as arrays (#11472)
**What**
- Allows filtering products in the Store API with an array value for both `handle` and `title`.

RESOLVES SUP-893
2025-02-14 14:10:32 +00:00
Adrien de Peretti
ceb99d073a fix(medusa): Re throw error in instrumentation after reporting it (#11464)
FIXES FRMW-2914

**What**
Currently, when the instrumentation is enabled, some instrument catches the errors in order to set the span status and info, unfortunately, these errors are not re throw leading to swallow them and return nothing in the end leading to potential breaks in flows
2025-02-14 12:50:52 +00:00
Harminder Virk
bc02fde236 feat: allow all NodeSDK options via registerOtel (#11460) 2025-02-14 15:37:32 +05:30