Commit Graph

872 Commits

Author SHA1 Message Date
Frane Polić
d8a92dbb2d feat(core-flows, dashboard, fulfillment, fulfillment-manual, utils, types): create shipping options with calculated prices (#10495)
**What**
- support creating SO with calculated price
- support updating SO for both types of pricing
- update `validateShippingOptionPricesStep` to handle both SO price_types
- add the `validateShippingOptionsForPriceCalculation` method to `FulfillementModule`
- add `canCalculate` and `calculatePrice` to fulfillment provider service service / interface / manual provider
- disable SO pricing edit on Admin if SO price type is calculated

---

CLOSES CMRC-776
2024-12-11 08:38:44 +00:00
Harminder Virk
fad85a9d29 refactor: migrate promotion module (#10410) 2024-12-11 13:12:39 +05:30
olivermrbl
0e342b491d chore: Version packages 2024-12-10 14:01:50 +01:00
Carlos R. L. Rodrigues
69f4c4f4e0 chore(index): index dml (#10482)
What:
- DML - `autoincrement` property
- Index `type` option (GIN)
- Index module - DML
2024-12-10 10:55:12 +00:00
Oli Juhl
e5e5a34108 fix(core-flows): Refresh cart when items are deleted (#10513) 2024-12-09 19:21:32 +01:00
Shahed Nasser
7c76ee24cb chore: fix documentation links in TSDocs (#10511) 2024-12-09 18:52:02 +02:00
Riqwan Thamir
f8f5d57c7c chore(types): add price types for shipping option endpoints (#10509)
what:

- adds missing price types for shipping options
2024-12-09 16:30:31 +00:00
Kasper Fabricius Kristensen
a1a1e0e789 feat(dashboard): SO cart item total rules UI (#10386) 2024-12-09 09:44:11 +01:00
Riqwan Thamir
9e797dc3d2 feat(core-flows, types): update shipping methods upon cart ops (#10382)
* feat(core-flows,framework,medusa): list shipping options pass in cart as pricing context

* chore: add test for shipping options returning free shipping

* feat(core-flows, types): update shipping methods upon cart ops

* chore: fix specs

* chore: fix bugs + specs

* Update update-shipping-methods.ts

Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>

* Update mutations.ts

Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>

* chore: undo refresh changes

* chore: merge with latest

* chore: address PR comments

* chore: fix conflicts

* chore: fix specs

* chore: address reviews

---------

Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
2024-12-08 14:06:50 +01:00
Riqwan Thamir
f95c4e240c fix(promotion, core-flows): updating cart with removed promotion removes adjustments (#10489) 2024-12-08 13:13:31 +01:00
Kasper Fabricius Kristensen
864f53011b fix(dashboard,types): Fix TS errors (#10457)
**What**
- Fixes TS erros in dashboard project
- Updates incorrect HTTP Invite types
- Fixes incorrectly formatted dates in dashboard
2024-12-08 11:51:13 +00:00
Adrien de Peretti
0a077d48e1 chore(workflow-engine): Migrate to DML (#10477)
RESOLVES FRMW-2832
RESOLVES FRMW-2833

**What**
Migrate workflow engines to DML. Alos includes and update to the linkable generation which now takes into account id and primary keys to generate the linkable instead of only primary keys
2024-12-06 13:23:07 +00:00
Carlos R. L. Rodrigues
b0448a7c35 chore: locking-postgres provider dml (#10478) 2024-12-06 10:14:14 -03:00
Carlos R. L. Rodrigues
f65a3cc06d fix(utils): avoid optional properties on graphql generated file (#10476)
FIXES: SUP-367
2024-12-06 12:16:02 +00:00
Shahed Nasser
597bffaab3 fix(framework): add missing query type argument in request types (#10456)
* fix(framework): add missing query type argument in request types

* fix types
2024-12-06 09:53:34 +02:00
Stevche Radevski
bed00e154d feat(js-sdk): Make credentials configurable in SDK (#10464) 2024-12-06 15:39:35 +08:00
Carlos R. L. Rodrigues
90ae187e09 fix(workflows-sdk): name for when/then step (#10459) 2024-12-05 15:47:42 -03:00
Sebastian Rindom
7ff3f15d6d fix(medusa): calculate sales channel availability correctly for variants (#10448)
* fix: calculate inventory quantities based on sales channel and locations

* Update packages/medusa/src/api/utils/middlewares/products/variant-inventory-quantity.ts

Co-authored-by: Carlos R. L. Rodrigues <37986729+carlos-r-l-rodrigues@users.noreply.github.com>

* Update packages/medusa/src/api/utils/middlewares/products/variant-inventory-quantity.ts

Co-authored-by: Carlos R. L. Rodrigues <37986729+carlos-r-l-rodrigues@users.noreply.github.com>

* Update packages/core/core-flows/src/product/steps/get-variant-availability.ts

Co-authored-by: Carlos R. L. Rodrigues <37986729+carlos-r-l-rodrigues@users.noreply.github.com>

* fix: crk

---------

Co-authored-by: Carlos R. L. Rodrigues <37986729+carlos-r-l-rodrigues@users.noreply.github.com>
2024-12-05 19:29:47 +01:00
Adrien de Peretti
b160fd3cbf fix(utils): DML one to one definition (#10415)
RESOLVES FRMW-2819

**What**
Fix one to one definition.
2024-12-05 16:55:57 +00:00
Adrien de Peretti
559fc6587a fix(): Deleted default sales channel should be prevented (#10193)
FIXES CMRC-722

**What**
- It should not be allowed to delete a default sales channel
- The admin does not allow to delete a sales channel use as the default for the store
2024-12-05 16:19:45 +00:00
Salvador Girones Gil
a7ad809520 fix(core/js-sdk) Add the credentials field in the fetch() only if supported (#10446)
fixes https://github.com/medusajs/nextjs-starter-medusa/issues/421

The root cause of the issue is that credentials is not supported by CloudFlare workers.
2024-12-05 14:10:40 +00:00
Kasper Fabricius Kristensen
16663ec813 fix(dashboard,types): Add missing Metadata form for Region domain and fix payload types (#10449) 2024-12-05 14:03:29 +00:00
Harminder Virk
0a16efa426 refactor: migrate cart module to DML (#10385)
FIXES: FRMW-2815

This PR has no breaking changes
2024-12-05 12:30:50 +00:00
Adrien de Peretti
90d7f4ff39 chore(utils): DML#hasOne allow mappedBy to not be defined (#10442)
RESOLVES FRMW-2826

**What**
We have many places where we define only one to one on one side of the relation. In that case it is a one to one that does not mapped by to the other side relation since it is not defined. This pr allow to create a one to one without mapped by. In order to remove breaking changes, in that case we ask the user to explicitly define the `mappedBy` as `undefined`
2024-12-05 09:31:38 +00:00
Harminder Virk
223bcff379 feat: add support for defining hasOne with FK (#10441) 2024-12-05 14:15:13 +05:30
olivermrbl
4723acd949 chore: Version packages 2024-12-04 18:36:57 +01:00
Oli Juhl
ff4663713a fix(core-flows): Listing return shipping options (#10432) 2024-12-04 17:21:07 +01:00
Frane Polić
340769595a feat(admin, js-sdk, types): update order forms (#10418)
* feat: edit shipping, billing and email forms

* feat: timeline history, update change model, update tests

* fix: address comments

* fix: invalidation, translation schema, update label

* fix: old/new
2024-12-04 14:56:40 +01:00
Kasper Fabricius Kristensen
a5263083fa fix(framework): Ensure that CORS and Auth middleware is applied for routes only defined in middlewares.ts (#10339) 2024-12-04 14:49:43 +01:00
Carlos R. L. Rodrigues
1f3754a75e chore(workflows-sdk): add unit test (#10419) 2024-12-04 10:32:03 +00:00
Frane Polić
ab948b7c65 feat(core-flows,medusa,order,types): update orders (#10373)
**What**
- add order update endpoint
- add workflows and steps for updating orders
- add `registerChanges` method to Order module + workflow step

---

CLOSES CMRC-633
2024-12-03 17:15:26 +00:00
Harminder Virk
3e98364bd1 feature: add support for check constraints in DML (#10391) 2024-12-02 17:59:50 +05:30
Adrien de Peretti
a1f36caaf7 chore(utils): Ensure DML name convention follow the same as the class name for simplicity (#10370)
**What**
DML class name and mikro orm entity name are different, it was ok and the idea was to accept that and do the transformation when needed. But since class name are usually upper case first we decided to re integrate that convention in the DML class name as well to simplify consumption of the dml name without having to worry about the normal case
2024-12-02 04:57:23 +00:00
Riqwan Thamir
11bd556133 feat(core-flows,framework,medusa): list shipping options pass in cart as pricing context (#10374)
* feat(core-flows,framework,medusa): list shipping options pass in cart as pricing context

* chore: add test for shipping options returning free shipping
2024-12-01 20:59:26 +01:00
Oli Juhl
eacd691951 fix: Ensure tax lines are generated for all items and shipping methods in cart (#10372)
* fix: Generate tax lines for all items in cart

* fix: Correct test
2024-12-01 14:50:38 +01:00
Riqwan Thamir
5719e825ca feat(core-flows,types,medusa): ability to update/create custom shipping prices (#10368) 2024-11-29 15:04:33 +01:00
Adrien de Peretti
ed11834d6e Fix(dml): DML default/nullable management (#10363)
RESOLVES FRMW-2813

**What**
Extract what we have done in the order module DML migration.
This includes all the changes we discussed around default value and nullable management

From now on, when the default is being set through the DML on a property, no default initializer will be created, this means that when a mikro orm class is being instantiated, no default will be applied at instantiation time. This fixes the issue when retrieving data and not selecting fields that have a default. The default initializer was taking the relay making you think the data was present except that it was the value of the default initializer. From now on, the default value is applied as follows
- db column default
- before flush
- on persist
The same applies for nullable properties/columns

Co-authored-by: Harminder Virk <1706381+thetutlage@users.noreply.github.com>
2024-11-29 11:46:26 +00:00
Harminder Virk
194361b95a fix: do not rely on model loading order to find an implicit owner (#10360) 2024-11-29 16:02:34 +05:30
Riqwan Thamir
324b4ab438 feat(pricing, types): add price rule operators to price calculations (#10350)
what:

- adds price rule operators when doing price calculations
- rules now accepts a key where the value can be an array of objects `({ operator: string, value: number })`
  - validation for available types of operator and value to be a number
```
await service.createPriceSets({
  prices: [
    {
      amount: 50,
      currency_code: "usd",
      rules: {
        region_id: "de",
        cart_total: [
          { operator: "gte", value: 400 },
          { operator: "lte", value: 500 },
        ]
      },
    },
  ]
})
```
- price calculations will now account for the operators - lte, gte, lt, gt when the price context is a number

RESOLVES CMRC-747
2024-11-28 20:48:00 +00:00
Harminder Virk
d57c739052 fix: do not initialize FKs to null (#10337) 2024-11-28 17:15:08 +05:30
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