Commit Graph

832 Commits

Author SHA1 Message Date
Riqwan Thamir
3b1a63eca7 feat(pricing,utils,types): add operator field to price rule (#10315)
what:

- adds an operator field to price rule with specific operator fields

RESOLVES CMRC-746
2024-11-28 09:23:26 +00:00
olivermrbl
e9c1b1127e chore: Version packages 2024-11-27 15:40:07 +01:00
Carlos R. L. Rodrigues
e9003c3124 fix(utils): read dir recursive (#10318)
What:
 - Using `Object.defineProperty) to avoid issues on Node versions that set this property as readonly.
2024-11-27 14:37:07 +00:00
Kasper Fabricius Kristensen
030ee87150 fix(dashboard): Align casing of fields in reset password event (#10313)
* fix(dashboard): Align casing of fields in reset password event

* update changeset
2024-11-27 13:06:04 +01:00
Carlos R. L. Rodrigues
a8eec16122 fix(core-flows): aggregate payment status (#10278) 2024-11-26 12:23:53 -03:00
Harminder Virk
9f204817b0 feat: convert MikroORM entities to DML entities (#10043)
* feat: convert MikroORM entities to DML entities

* feat: wip on repository changes

* continue repositories and types rework

* fix order repository usage

* continue to update product category repository

* Add foreign key as part of the inferred DML type

* ../../core/types/src/dml/index.ts

* ../../core/types/src/dml/index.ts

* fix: relationships mapping

* handle nullable foreign keys types

* handle nullable foreign keys types

* handle nullable foreign keys types

* continue to update product category repository

* fix all product category repositories issues

* fix product category service types

* fix product module service types

* fix product module service types

* fix repository template type

* refactor: use a singleton DMLToMikroORM factory instance

Since the MikroORM MetadataStorage is global, we will also have to turn DML
to MikroORM entities conversion use a global bucket as well

* refactor: update product module to use DML in tests

* wip: tests

* WIP product linkable fixes

* continue type fixing and start test fixing

* test: fix more tests

* fix repository

* fix pivot table computaion + fix mikro orm repository

* fix many to many management and configuration

* fix many to many management and configuration

* fix many to many management and configuration

* update product tag relation configuration

* Introduce experimental dml hooks to fix some issues with categories

* more fixes

* fix product tests

* add missing id prefixes

* fix product category handle management

* test: fix more failing tests

* test: make it all green

* test: fix breaking tests

* fix: build issues

* fix: build issues

* fix: more breaking tests

* refactor: fix issues after merge

* refactor: fix issues after merge

* refactor: surpress types error

* test: fix DML failing tests

* improve many to many inference + tests

* Wip fix columns from product entity

* remove product model before create hook and manage handle validation and transformation at the service level

* test: fix breaking unit tests

* fix: product module service to not update handle on product update

* fix define link and joiner config

* test: fix joiner config test

* test: fix joiner config test

* fix joiner config primary keys

* Fix joiner config builder

* Fix joiner config builder

* test: remove only modifier from test

* refactor: remove hooks usage from product collection

* refactor: remove hooks usage from product-option

* refactor: remove hooks usage for computing category handle

* refactor: remove hooks usage from productCategory model

* refactor: remove hooks from DML

* refactor: remove cruft

* cleanup

* re add foerign key indexes

* chore: remove unused types

* refactor: cleanup

* migration and models configuration adjustments

* cleanup

* fix random ordering

* fix

* test: fix product-category tests

* test: update breaking DML tests

* test: array assertion to not care about ordering

* fix: temporarily apply id ordering for products

* fix ordering

* fix ordering remove logs

---------

Co-authored-by: adrien2p <adrien.deperetti@gmail.com>
Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
2024-11-26 20:01:02 +05:30
Frane Polić
1bf60c7a7d feat(dashboard, js-sdk): customer page transfer order + cancel request in timeline (#10250)
**What**
- request order transfer from admin customers details page
- cancel transfer request from order timeline

---

CLOSES CMRC-730
2024-11-26 11:42:47 +00:00
olivermrbl
ccf4e801f3 chore: Version packages 2024-11-25 12:14:36 +01:00
olivermrbl
4245312d8d chore: Version packages 2024-11-25 09:57:00 +01:00
Kasper Fabricius Kristensen
1659c9be5d feat(product,dashboard): Allow re-ordering images (#10187)
* migration

* fix snapshot

* primarykey

* init work on dnd

* progress

* dnd

* undo changes

* undo changes

* undo changes

* undo changes

* fix firefox issue

* lint

* lint

* lint

* add changeset

* undo changes to product module

* set activator node

* init work on service layer

* alternative

* switch to OneToMany

* add tests

* progress

* update migration

* update approach and remove all references to images in product.ts tests

* handle delete images on empty array

* fix config and order type

* update changeset

* rm flag

* export type and fix type in test

* fix type

---------

Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
2024-11-25 09:03:10 +01:00
Frane Polić
b12408dbd8 feat(medusa,core-flows,types,js-sdk): decline / cancel order transfer (#10202)
**What**
- **core-flows**: 
  - cancel transfer
  - decline transfer
- **API**:
  - admin cancel transfer
  - store decline transfer 
  - store cancel transfer
- **js-sdk**:
  - add methods for store endpoints 

---

CLOSES CMRC-726
2024-11-25 07:44:31 +00:00
Kasper Fabricius Kristensen
d6ff8d7aa1 fix(js-sdk): Preserve path in baseUrl (#10222)
**What**
- Currently the `js-sdk` will discard the path in the `baseUrl` and only use the `origin`. As an example passing a `baseUrl` of `"http://localhost:9000/custom/path"`, will result in only `"http://localhost:9000"` being used.
- This PR preserves the path, so using `sdk.admin.products()` will make a request to `"http://localhost:9000/custom/path/admin/products`. For an explanation of when this might be useful see this issue: https://github.com/medusajs/medusa/issues/10190#issuecomment-2492974845

Resolves CMRC-740
2024-11-22 14:52:54 +00:00
Adrien de Peretti
b964b45fb2 fix(stripe): Wrong container type (#10223)
RESOLVES SUP-238

**What**

wrong container type withing payment providers
2024-11-22 10:57:41 +00:00
Adrien de Peretti
9d5b0412ec fix(types): Graph types fixes (#10220)
RESOLVES TRI-599

**What**
- Fix missing filter type in the graph query API
2024-11-22 10:25:31 +00:00
Oli Juhl
1efe4e9e33 fix: Update js-sdk with token (#10211) 2024-11-22 09:32:48 +01:00
Frane Polić
44265a928d feat(dashboard): transfer order admin (#10189)
**What**
- request order transfer from order details page
- timeline events

---

CLOSES CMRC-706
CLOSES CMRC-707
2024-11-22 08:29:12 +00:00
Riqwan Thamir
6486f2bcce feat(core-flows,medusa): remove cart customer validation + rename workflow (#10207)
what:

- removes cart customer takeover validation
- change workflow from update to transfer
2024-11-21 16:57:03 +00:00
mStenz
25d1dfdea5 Fix typo in db error message (#9612) 2024-11-21 13:48:22 +00:00
420coupe
da7a078a7d update CreateOrderFulfillmentWorkflowInput to include optional requires_shipping boolean (#9479)
Co-authored-by: Carlos R. L. Rodrigues <37986729+carlos-r-l-rodrigues@users.noreply.github.com>
2024-11-21 14:22:54 +01:00
Riqwan Thamir
2a8811edd9 feat(medusa): skip draft orders on order list (#10195) 2024-11-21 14:09:23 +01:00
Carlos R. L. Rodrigues
aeb5b43692 feat(workflows-sdk): add response to permanent failure (#10177) 2024-11-20 17:29:37 -03:00
Carlos R. L. Rodrigues
42c08fa8e0 fix(framework): handle deprecated Dirent path (#10179)
What:

- `Dirent` class from `NodeJS` has different properties in different versions, causing issues in our loaders.
- Util `readDirRecursive` was introduced, avoiding old node versions to break

FIXES: https://github.com/medusajs/medusa/issues/8419
2024-11-20 20:25:48 +00:00
Riqwan Thamir
6680f69588 fix: move transfer cart under cart (#10175)
made a whoopsie!
2024-11-20 11:12:49 +00:00
Shahed Nasser
3fee17747f fix(types): fix AdminBatchProductRequest to have product ID (#10168) 2024-11-20 11:10:26 +02:00
Oli Juhl
8091c5f5bc fix: Remove undefined from events in update (#10170) 2024-11-20 09:43:51 +01:00
Harminder Virk
7390c14c20 feat: add support for making relationships searchable (#10172)
Closes: FRMW-2784
2024-11-20 08:39:44 +00:00
Riqwan Thamir
495c381709 feat(types, js-sdk): add updateCustomer to js-sdk (#10158)
what:

- adds new `POST /store/cart/:id/customer` endpoint to js sdk
2024-11-19 18:32:49 +00:00
Frane Polić
79088c8a3b feat(medusa): request order transfer storefront API (#10156)
**What**
- add an endpoint for order transfer requests from the storefront

---

CLOSES CMRC-702
2024-11-19 17:42:25 +00:00
Shahed Nasser
b43febda54 chore(js-sdk,types): add tsdocs for admin JS SDK methods [6/n] (#10028)
* chore(js-sdk,types): add tsdocs for admin JS SDK methods [6/n]

* fix error

* remove type changes
2024-11-19 19:15:44 +02:00
Riqwan Thamir
85f9c2b85a fix(framework,types): correct example of database driver options (#10166) 2024-11-19 16:32:31 +00:00
Shahed Nasser
5fb73e6698 chore(core-flows,types): add TSDocs for useQueryGraphStep (#10042) 2024-11-19 18:31:33 +02:00
Harminder Virk
9dff05cdde Revert "feat: add optional fields" (#10159)
Reverts medusajs/medusa#10150
2024-11-19 13:28:02 +00:00
Adrien de Peretti
59bf9afd48 fix(core-flows): Add missing cart sales channel id fields to be part of the application context (#10142)
RESOLVES SUP-185

**What**
The cart fields to be fetched for the promotion workflow was not including the sales_channel_id, making any rules being constraint to that fields not being validated against this property.
2024-11-19 11:46:49 +00:00
Riqwan Thamir
b7044bb3b0 feat(core-flows,medusa): Add API to update cart's customer (#10151)
what:

- adds an endpoint that updates a cart's customer

RESOLVES CMRC-718
2024-11-19 11:44:25 +00:00
Sebastian Rindom
41dc05d0c9 fix: add address and customer metadata to tax calc context (#10122)
Fixes CMRC-713

**What**
- Ensure that customer and shipping address metadata is passed in the tax calculation context when updating tax lines on a cart.

**Why**
- Gives more flexibility in criteria to evaluate tax rates. 
- https://github.com/medusajs/medusa/discussions/10121
- https://github.com/medusajs/medusa/discussions/10114

Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
2024-11-19 11:42:31 +00:00
Harminder Virk
661ea7865c feat: add optional fields (#10150) 2024-11-19 16:28:33 +05:30
Frane Polić
36460a3a07 feat(medusa, types, utils, core-flows, order) request & accept order transfer (#10106)
**What**
- add request order transfer workflow
- add admin endpoint for transferring an order to a customer
- accept order transfer storefront endpoint
- accept transfer workflow
- changes in the order module to introduce new change and action types

---

**Note**
- we return 400 instead 409 currently if there is already an active order edit, I will revisit this in a followup
- endpoint for requesting order transfer from the storefront will be added in a separate PR

---

RESOLVES CMRC-701
RESOLVES CMRC-703
RESOLVES CMRC-704
RESOLVES CMRC-705
2024-11-19 08:53:22 +00:00
Harminder Virk
2c957c64be refactor: rename workflow to singular (#10134) 2024-11-18 14:58:30 +05:30
Adrien de Peretti
10da8b379f chore(workflows-sdk): Display each error individually instead of packed (#10072)
**What**
Instead of displaying a single string prepared with all the errors, log each error individually
2024-11-15 11:27:52 +00:00
Adrien de Peretti
2e5fd9fd71 fix(core-flows): Fix date usage accross workflows (#10100)
FIXES CMRC-691

**What**
`Date` is something that get executed, since workflows are meant to compose the definition of what will be executed, the date where always having the same value as they was executed once during composition.
Instead wrap those into transformer that will be executed when needed and fix the Date issues
2024-11-14 14:51:30 +00:00
Carlos R. L. Rodrigues
3e265229f2 chore(event-bus): event bus error handling (#10085) 2024-11-13 18:03:29 -03:00
Harminder Virk
98bf8c9006 test: add tests for self relationships (#10071)
Initially I thought that we will have to add special checks to allow relationships referencing itself. However, it turned out that not to be the case. Instead, it had more to do with how self relationships are defined in Mikro ORM.

In case of `belongsTo` relationship we have to define the other side as well either as a `hasMany` or `hasOne`. For example:

** The following code will fail, because no children are defined for the parent**
```ts
const user = model.define("user", {
  id: model.number(),
  username: model.text(),
  parent: model.belongsTo(() => user)
})
```

** Addition of children relationship will make things work**
```ts
const user = model.define("user", {
  id: model.number(),
  username: model.text(),
  parent: model.belongsTo(() => user, { mappedBy: "children" }),
  children: model.hasMany(() => user, { mappedBy: "parent" }),
})
```

We can see the similar setup here with our `ProductCategory` MikroORM entity. https://github.com/medusajs/medusa/blob/develop/packages/modules/product/src/models/product-category.ts#L87-L94

@adrien2p Correct me if I am wrong. But I have added the tests for now so that we know the behavior of self relationships
2024-11-13 17:20:27 +00:00
Carlos R. L. Rodrigues
fc5d2b5fca feat(core-flows): order add quantity diff (#10065) 2024-11-12 16:49:58 -03:00
Carlos R. L. Rodrigues
2344012d1c fix(core-flows): capture before order created (#9980)
What:
 When `autocapture` is enabled, the webhook is processed before the order was created.
 The payment processing workflows were merged into a single one
 
FIXES: SUP-118, SUP-9

https://github.com/medusajs/medusa/issues/9998
2024-11-12 13:43:48 +00:00
Carlos R. L. Rodrigues
1eef324af3 fix(orchestration): fix set step failure (#10031)
What:
 - copy data before saving checkpoint
 - removed unused data format function
 - properly handle registerStepFailure to not throw
 - emit onFinish event even when execution failed
2024-11-12 10:06:36 +00:00
olivermrbl
d5605656ae chore: Version packages 2024-11-12 10:10:07 +01:00
Frane Polić
fb05ca2b8a fix(medusa, types): filter product by external_id (#10010) 2024-11-11 19:31:41 +01:00
Kasper Fabricius Kristensen
34f4f695c0 fix(types): Add AdminBatchUpdateProductVariant type (#10009) 2024-11-11 19:30:44 +01:00
Harminder Virk
e228088f8d fix: pluralize type helper to account for uncountable nouns and special rules (#10011) 2024-11-11 17:18:23 +05:30
olivermrbl
ecece05b72 chore: Version packages 2024-11-11 10:58:20 +01:00