Commit Graph

915 Commits

Author SHA1 Message Date
Stevche Radevski
fde73dbfae feat(auth-google,auth-github): Allow passing a custom callbackUrl to … (#10829)
* feat(auth-google,auth-github): Allow passing a custom callbackUrl to oauth providers

* feat: Add state management in auth providers

* chore: Changes based on PR review
2025-01-06 17:33:29 +01:00
Shahed Nasser
c440068d49 chore: small tsdoc changes for remoteLink and remoteQueryConfig (#10837) 2025-01-06 14:01:46 +02:00
Anuchit
79c87c09de fix(core-flow): invalid update quantity in update line item in cart workflow (#10405)
* fix: invalid update quantity in update line item in cart workflow

* test: update cart workflow test

* fix: rm shallow copy in transform
2025-01-05 14:39:29 +01:00
Adrien de Peretti
7d8f6cf39f fix(): Workflow cancellation + gracefully handle non serializable state (#10674)
FIXES FRMW-2852

**What**
A workflow distributed transaction expect any response and error to be serializable. When it is not the case, the distributed transaction might fail during the save checkpoint that occurs for async steps. This can lead to unexpected behaviour.

With this pr, we introduce a way to handle non serialazable object in a more sustainable manner, this means the following:

- If a workflow throw any non serialazable error (e.g AWS error that contains full IncomingMessage object that related to network communication, think of req/res) then we identify that this object is not serialzable and we clean up the object to make it serializable without loosing the main information, add a new error to the workflow to informed of this issue and can be handled by the user.
- If a response is not serializable (which should not happen at this point because it is handled before by the value resolver), in that case, we wont be able to reuse that response to continue the workflow which means that the workflow is in a non runnable state. In that case we throw a specific error stating that a non serializable context is being provided

**second what**
This pr refactor the `runAsStep` to add better support for workflow cancelation, especially async ones
2025-01-05 13:30:17 +00:00
Harminder Virk
ecc09fd77d feat: generate modules mappings at runtime (#10791) 2025-01-03 15:49:47 +05:30
Harminder Virk
5e9d86d75d feat: deprecate remoteQueryConfig in favor of queryConfig (#10773)
Fixes: FRMW-2783
2025-01-03 08:46:23 +00:00
Ranjith kumar
1ef3e4b8de docs: update fulfillment provider module docs to reflect CalculatedShippingOptionPrice (#10778)
The return value below the example for the `calculatePrice` method is shown correctly as `CalculatedShippingOptionPrice` but the example is not updated in the guide "How to Create a Fulfillment Provider Module"

This PR updates the example in the guide and the TS doc
2024-12-31 11:44:17 +00:00
Harminder Virk
bbf790ea44 feat: deprecate remote link (#10768)
Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
2024-12-30 14:57:43 +05:30
Shahed Nasser
ce51c36ecf chore: improve payment provider tsdocs + generate reference (#10742) 2024-12-26 14:11:52 +02:00
Shahed Nasser
688e1e60a5 chore(js-sdk): add tags to js-sdk (#10739) 2024-12-26 11:18:02 +02:00
Stevche Radevski
c8f9938865 feat(medusa): Add health endpoint for all running modes of medusa (#10737) 2024-12-26 13:53:12 +08:00
Shahed Nasser
699bb6dc24 fix(core-flows): export updateTaxRegionsStep (#10732)
Export `updateTaxRegionsStep` to ensure it's included in generated references
2024-12-25 09:08:09 +00:00
Shahed Nasser
13ddf27c68 fix(medusa,types,js-sdk): fix request query parameter types for store product routes (#10707)
* fix(medusa,types): fix request query parameter types for store product routes

* fix test errors
2024-12-23 18:10:08 +02:00
Harminder Virk
0559d54c18 fix: pluralization of words ending in y, where y follows a vowel (#10697)
Fixes: FRMW-2851
2024-12-23 13:07:27 +00:00
olivermrbl
348f866ffe chore: Version packages 2024-12-20 11:25:36 +01:00
Frane Polić
fc321e96ce fix(core-flows): select stock locations for reservation from correct SC (#10661)
* fix: add stock location for reservations only if related to correct SC

* fix: update spec

* fix: wrong SC id get in OE flow

* fix: ensure test case has multiple SC and SLs
2024-12-20 09:25:19 +01:00
Adrien de Peretti
100da64242 chore(fulfillment, utils): Migrate module to DML (#10617)
**What**
- Allow to provide `foreignKeyName` option for hasOne and belongsTo relationships
  - `model.hasOne(() => OtherEntity, { foreignKey: true, foreignKeyName: 'other_entity_something_id' })`
  - The above will also output a generated type that takes into consideration the custom fk name 🔽 
- Update types to account for defined custom foreign key name
- Fix joiner config linkable generation to account for custom linkable keys that provide a public API for their model but are not part of the list of the models included in the MedusaService
  - This was supposed to be handled correctly but the implementation was not considering that custom linkable keys could reference models not part of the one provided to medusa service
- Migrate fulfillment module to DML
- Fix has one with fk behaviour and hooks (the relation should be assigned but not the fk)
- Fix has one belongsTo hooks (the relation should be assigned but not the fk)
- Fix hasOneWithFk and belongsTo non persisted fk to be selectable
- Allow to define `belongsTo` without other side definition for `ManyToOne` with no counter part defined
  - Meaning that if a user defined `belongsTo` on one side andnot mapped by and no counter part on the other entity it will be considered as a `ManyToOne`
- `orphanRemoval` on `OneToOne` have been removed, this means that when assigning a new object relation to an entity, the previous one gets deconected but not deleted automatically. This prevent removing data un volountarely

**NOTE**
As per our convention here are some information to keep in mind

**HasOne <> BelongsTo**
Define `OneToOne`, The foreign key is owned by the belongs to and the relation needs to be provided to cascade if wanted

**HasMany <> BelongsTo**
Define `OneToMane` <> `ManyToOne`, the foreign key is owned by the many to one and for those relation no cascade will be performed, the foreign key must be provided. For the `HasMany` the cascade is available

**HasOne (with FK)**
Will act similarly to belongs to with **HasOne <> BelongsTo**

Co-authored-by: Carlos R. L. Rodrigues <37986729+carlos-r-l-rodrigues@users.noreply.github.com>
2024-12-19 16:40:11 +00:00
Frane Polić
1118e35924 feat(core-flows): pass fields variant details when creating fulfillment (#10665) 2024-12-19 16:39:04 +01:00
Riqwan Thamir
5d1098ceb9 fix(core-flows): refresh payment collections upon shipping changes (#10673)
* fix(core-flows): refresh payment collections upon shipping changes

* chore: fix spec
2024-12-19 16:31:17 +01:00
Riqwan Thamir
3f4d574748 feat(order, types): Add Credit Line to order module (#10636)
* feat(order, types): Add Credit Line to order module

* chore: add action to inject credit lines
2024-12-19 10:36:59 +01:00
Shahed Nasser
fec24aa7eb chore: improve tsdocs of fulfillment provider (#10649)
* initial changes

* small changes
2024-12-19 10:04:12 +02:00
Frane Polić
3dba551ad2 fix(core-flows): data passed to to fulfillment provider context (#10660)
* fix: cart data passed to context, from location in validation

* refactor: extract common fields to a const
2024-12-18 21:23:06 +01:00
Shahed Nasser
9d85e663b8 fix(core-flows): use useQueryGraphStep instead of useQueryStep (#10643)
Replace usage of `useQueryStep` with `useGraphQueryStep` and remove `useQueryStep`, as it's not exported by the package and seems to be a duplicate of `useGraphQueryStep`
2024-12-18 17:18:51 +00:00
Adrien de Peretti
048620884b chore(types): Keep intelisense while being more loosen (#10657)
**What**
Keep the autocompletion for the fields API in Query APIs while being more flexible in order to prevent limitation from our depth limit but also to be more flexible when assigning string[] coming from the API for example.
2024-12-18 17:12:31 +00:00
Oli Juhl
c9b8db04c1 feat: Custom line items (#10408)
* feat: Custom line items

* fix tests

* fix migration

* Allow custom items in update line item workflow

* throw if line item doesn't have a price

* minor things

* wip

* fix flows

* fix test

* add default

* add to type
2024-12-18 12:53:57 +01:00
Frane Polić
bde4b82194 feat(core-flows,dashboard,js-sdk,medusa,types): support Fulfillment Options (#10622)
**What**
- add a list point for fetching fulfillment options for a provider
- add FO support on SO create & update on dashboard
- pass `cart` and `stockLocation` to `validateFufillmentData` context

---

CLOSES CMRC-789
CLOSES CMRC-790
2024-12-18 09:16:26 +00:00
Shahed Nasser
1232a43fce fix(core-flows): export getItemTaxLinesStep (#10640) 2024-12-17 19:31:55 +02:00
Nathan John
2ad08c4c44 Add FilterableRefundReason filter by description and label (#10606) 2024-12-17 15:54:06 +00:00
Riqwan Thamir
632c340bf5 chore(utils): add comments + cleanup util functions (#10628)
remnants from https://github.com/medusajs/medusa/pull/10579
2024-12-17 14:22:33 +00:00
olivermrbl
a391a29aa8 chore: Version packages 2024-12-17 14:41:05 +01:00
Riqwan Thamir
6367bccde8 feat(medusa,pricing): Cart pricing context with customer group (#10579)
* fix(carts): Fixes cart modifications not accounting for certain price lists (#10493)

*What*

* Fixes #10490
* Expands any available customer_id into its customer_group_ids for cart
  updates that add line items.

*Why*

* Cart updates from the storefront were overriding any valid price lists
  that were correctly being shown in the storefront's product pages.

*How*

* Adds a new workflow step that expands an optional customer_id into the
  customer_group_ids it belongs to.
* Uses this step in the addToCartWorkflow and
  updateLineItemInCartWorkflow workflows.

*Testing*
* Using medusa-dev to test on a local backend.
* Adds integration tests for the addToCart and updateLineItemInCart
  workflows.

Co-authored-by: Riqwan Thamir <rmthamir@gmail.com>

* chore: update cart workflows to accept new pricing context

* chore: add transfer specs

* chore: fix specs

* chore: modify types + specs

* chore: add data migration + dashboard changes

* chore: fix update line item workflow

* chore: add changeset + unskip spec

---------

Co-authored-by: Sergio Campamá <sergiocampama@gmail.com>
2024-12-17 11:10:30 +01:00
Frane Polić
0c49470066 feat(core-flows): calculate SO price on cart ops (#10563)
**What**
- calculate the shipping option price when creating a shipping method
- calculate the shipping option price when refreshing cart
- add testing for calculated SO flow
- fix validation on calculated SO creation
- add manual fulfillment provider for testing
- add `from_location` to calculation context

---

RESOLVES CMRC-778
RESOLVES CMRC-602
RESOLVES SUP-136
2024-12-16 22:28:30 +00:00
Riqwan Thamir
90ad2566fd feat(types,fulfillment): ability to delete a canceled fulfillment (#10602) 2024-12-16 11:17:45 +01:00
Riqwan Thamir
429c57095b fix(core-flows): use customer create workflow to reuse the emit event (#10601)
what:

- uses the create customer workflow instead to reuse the event emit.

RESOLVES CMRC-792
2024-12-13 14:40:46 +00:00
Carlos R. L. Rodrigues
729eb5da7b chore(inventory): convert to dml (#10569)
Fixes: FRMW-2848

Co-authored-by: Harminder Virk <1706381+thetutlage@users.noreply.github.com>
2024-12-13 12:51:26 +00:00
Harminder Virk
ae1d875fcf fix: pluralization rule for the info word (#10599) 2024-12-13 16:09:09 +05:30
Shahed Nasser
54118941ef docs-util: support @version tag (#10591) 2024-12-13 09:40:47 +02:00
Shahed Nasser
7f669b8c5f chore: small tsdoc update to dml float property. (#10576) 2024-12-12 15:32:22 +02:00
Frane Polić
472e92e400 feat(medusa, core-flows, fulfillment): calculate SO price endpoint (#10532)
**What**
- endpoint + flow for fetching calculated price for a shipping option

---

CLOSES CMRC-777
2024-12-12 08:03:56 +00:00
Harminder Virk
885c82ded6 feat: add support for float properties (#10551) 2024-12-12 10:34:39 +05:30
Shahed Nasser
c3b2b4b438 chore: fixes to tsdocs + docs-util related to providers 2024-12-11 17:27:32 +02:00
Stevche Radevski
3626118eef feat(file-s3): Add support for IAM role authentication to file-s3 provider (#10528) 2024-12-11 18:30:37 +08:00
Harminder Virk
16d27ea6e4 feat: Migrate customer module to DML (#10499) 2024-12-11 14:37:27 +05:30
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