Adrien de Peretti
240c439beb
fix(medusa): Product model before insert hook ( #5200 )
...
**What**
When the id is provided, the rest of the hook should still apply. At the moment, when the id is provided the hook is skipped
2023-09-26 09:48:26 +00:00
David Preininger
2caff2efc7
feat(medusa): Authentication overhaul ( #4064 )
...
* implemented bearer auth
* changed naming strat
* changed session auth to not use jwt
* typo
* changed auth header prefix for admin api token auth
* fixed supporting functions to work with new session type
* removed database calls for bearer auth improving performance
* removed unused deps
* changed auth in tests
* added integration tests
* Accepted suggested change
Co-authored-by: Carlos R. L. Rodrigues <37986729+carlos-r-l-rodrigues@users.noreply.github.com >
* Typo
Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com >
* more typos
Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com >
* proper formatting
Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com >
* removed endregion
Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com >
* removed startregion
Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com >
* fixed admin JWT integration test
* added more fixes to integration tests
* Update OAS
* Create fluffy-donkeys-hope.md
* created API reference for new auth
* implemented getToken in medusa-js
* Apply suggestions from code review
Co-authored-by: Shahed Nasser <shahednasser@gmail.com >
* Apply suggestions from code review
Co-authored-by: Shahed Nasser <shahednasser@gmail.com >
* deleted files which should be autogenerated
* Update fluffy-donkeys-hope.md
* JSDoc update
Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com >
* added missing route exports
* implemented runtime domain safety in jwt token manager
* fixed jwt manager
* lint get-token files
* Update fluffy-donkeys-hope.md
* Revert "deleted files which should be autogenerated"
This reverts commit cd5e86623b822e6a6ac37322b952143ccc493df9.
* Revert "Apply suggestions from code review"
This reverts commit f02f07ce58fd9fcc2dfc80cadbb9df2665108d65.
* Revert "created API reference for new auth"
This reverts commit c9eafbb36453f5cf8047c79e94f470cb2d023c7d.
* renamed header for sending api access tokens
* medusa-js - changed apiKey header
---------
Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com >
Co-authored-by: Carlos R. L. Rodrigues <37986729+carlos-r-l-rodrigues@users.noreply.github.com >
Co-authored-by: olivermrbl <oliver@mrbltech.com >
Co-authored-by: Shahed Nasser <shahednasser@gmail.com >
2023-09-25 13:57:44 -04:00
Carlos R. L. Rodrigues
f12299deb1
Feat: @medusajs/workflows ( #4553 )
...
feat: medusa workflows
2023-07-25 10:13:14 -03:00
Adrien de Peretti
d2a8cf0378
feat(medusa): Continue create product workflow changes ( #4473 )
2023-07-24 13:30:24 +02:00
Adrien de Peretti
4d326fbbdf
chore: Move factories and helpers to a better place ( #4551 )
...
* chore: Move factories and helpers to a better place
* align factory product variant
* fix factory cart
* add simple store fac
* fix tests
* fix tests
* fix
* fix cart seeder
2023-07-20 13:16:04 +02:00
Riqwan Thamir
4e8045a0ac
fix(medusa): Use query relation load strategy on Products ( #3926 )
...
* fix(medusa): products retrieve uses query strategy for performance
* chore: packaged version of medusa typeorm fix
* chore: update path
* chore: stock locations uses typeorm version
* chore: resolve typeorm to medusa package
* chore: Update medusa project in CI action
* chore: temp disable transaction timeout for plugins
---------
Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com >
Co-authored-by: olivermrbl <oliver@mrbltech.com >
2023-05-02 19:37:44 +02:00
Oliver Windall Juhl
3b3236cc01
fix(medusa): Reduce joins in cart retrieval ( #3909 )
...
* fix(medusa): Remove discounts.regions relation from cart retrieval
* Create violet-poets-rule.md
* fix service test
* update snapshot
---------
Co-authored-by: Philip Korsholm <88927411+pKorsholm@users.noreply.github.com >
2023-04-25 12:51:33 +02:00
Oliver Windall Juhl
809ab2e0eb
chore: Merge master to develop ( #3653 )
2023-03-31 13:09:57 +02:00
olivermrbl
e1b92e9b04
fix: Merge conflicts with master
2023-02-22 17:38:49 +01:00
Oliver Windall Juhl
f88af0c28d
fix(medusa): Received quantity on return lines ( #3267 )
2023-02-17 10:13:50 +00:00
Riqwan Thamir
121b42acfe
chore(medusa): Typeorm upgrade to 0.3.11 ( #3041 )
2023-02-15 16:25:30 +01:00
Carlos R. L. Rodrigues
923ccece24
feat(medusa,stock-location,inventory): Integration tests ( #3149 )
2023-02-06 09:02:43 -03:00
Oliver Windall Juhl
9e3beaf531
chore(feature-flags): Remove OrderEditing feature flag ( #3006 )
2023-01-13 11:10:09 +00:00
Oliver Windall Juhl
3308766389
chore(feature-flags): Sales Channels enabled by default ( #2966 )
2023-01-10 16:45:23 +00:00
Philip Korsholm
16716f5a4f
feat(medusa): Create fulfillment with location ( #2931 )
...
* remove duplicate key from oas
* changeset
* initial suggestion for adding locations to fulfillments
* update migration
* re-add functionality for removing entire reservations
* fix tests
* add location when adjusting reserved inventory of a line_item
* add changest
* handle multiple reservations for a product in the same channel
* confirm inventory in stock location previous to creating the fulfillment
* fix tests after updating create-fulfillment to confirm inventory prior to creating fulfillment
* remove bugged code
* initial validation
* initial changes for review
* chekcpoint
* update validate inventory at location
* redo some unwanted changes
* typing
* update snapshots
* redo change for eslintrc
* add eslint disable
* re-order methods in interface
* assert no_notification
* iterate one time less
* add test for validation of correct inventory adjustments in case of no inventory service installation
* ensure correct adjustments for order cancellations
* remove comment
* fix tests
* fix but with coalescing
* remove location id from confirm inventory
* don't throw when adjusting reservations for a line item without reservations
* move reservation adjustments to the api
* add multiplication for updating a reservation quantity
* move inventory adjustments from the service layer to the api
* delete reservation if quantity is adjusted to 0
* rename updateReservation to updateReservationItem
* update dto fields
* reference the correct fields
* update with transaction
* add jsdocs
* force boolean cast
* context-ize cancel and create fulfillment transaction methods
* undo notification cast
* update with changes
* refactor withTransaction to variable
* use maps
* fix service mocks
2023-01-09 14:44:34 +01:00
Philip Korsholm
b9680b641f
feat(medusa): Add ProductVariantInventoryService ( #2883 )
...
* add mw feature flag
* add services
* add types
* add module interfaces
* add interface export
* add models for mw
* to be ammended
* remove featureflag
* use correct count
* update cart completion strategy
* swap service conversion
* update return service
* update order service
* update claim service
* add exception to claim item
* update cart service
* add indicies
* add changeset
* nullable changes in store
* store model update
* fix unit tests
* remove old inventory service
* format integration test
* update snapshots
* remove old inventory service tests
* update snapshots
* remove old code
* option updates
* naming
* add jsdoc to pv inventory service
* rename class variables
* pr feedback
* rename option to context
* if(variant_id) instead of if(typeof varia...)
* update tests
* add jsdoc
* go for custom
* update code for readability
2022-12-30 11:30:04 +01:00
Kasper Fabricius Kristensen
33aa3edb80
fix(medusa): keep country_code when partially updating cart addresses ( #2683 )
...
**What**
- Fixes a bug where `country_code` was dropped when partially updating a shipping or billing address on a cart.
2022-12-12 14:03:54 +00:00
Adrien de Peretti
ed121922b0
fix(medusa): Order service legacy decorate totals should add totals to items ( #2667 )
...
For some reason, probably a conflict, the legacy decorate totals does not attach the totals to the line items
https://github.com/medusajs/medusa/pull/2546/files
FIXES CORE-832
Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com >
2022-11-24 18:31:45 +00:00
Adrien de Peretti
d2b1848e52
feat(medusa): Cart and totals computational optimizations ( #2475 )
2022-11-14 15:45:47 +01:00
Adrien de Peretti
129ad4b687
fix(medusa): Order/Cart decorate totals should assign the items totals ( #2546 )
...
**What**
If `total` or `subtotal` are selected then get the line item totals and assign them to the items.
I also had to remove the totals from the cart update service since they are not used and that by having them the items get the tax lines attached and since the update is performed by passing the entire cart, it is trying to insert the tax lines with the cart update
**Tests**
Add an integration tests to validate that the items includes the totals in the order and draft order
FIXES CORE-687
2022-11-07 13:54:41 +00:00
Sebastian Rindom
3d255302b0
fix(medusa): Optimize Cart totals calculation ( #2372 )
...
**What**
The existing totals calculations are extremely heavy and perform an enormous amount of duplicate work. The changes here remove large parts of the overhead and improves response times for cart endpoints up to 30x.
2022-10-07 08:44:06 +00:00
Frane Polić
ba6416f095
feat(medusa): Convert SwapService to TypeScript ( #2000 )
...
**What**
- refactor swap service to typescript
- reimplement legacy methods
- use enums instead of magic strings
RESOLVES CORE-396
Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com >
2022-09-05 13:37:47 +00:00
Carlos R. L. Rodrigues
ffd6234356
chore(integration): throw errors on catch blocks ( #2091 )
...
Why:
Suppressing errors and not failing the execution will lead to misleading errors of the following tests.
Fixes CORE-461
2022-08-25 06:36:24 +00:00
Sebastian Rindom
39f2c0c15e
fix(medusa): calculates correct taxes and totals on order with gift cards ( #1807 )
...
**What**
Since the release of the Tax API the line item totals calculations on orders with gift cards have been wrong. To understand the bug consider the below order:
Region:
- tax_rate: 25%
- gift_cards_taxable: true
Order:
- applied gift card: 1000
- items:
- A: unit_price: 1000
- B: unit_price: 500
- Subtotal: 1500
**Previous calculation method**
1. Determine how much of the gift card is used for each item using `item_total / subtotal * gift_card_amount`:
- Item A: 1000/1500 * 1000 = 666.67
- Item B: 500/1500 * 1000 = 333.33
2. Calculate line item totals including taxes using `(unit_price - gift_card) * (1 + tax_rate)`
- Item A: 1000 - 666.67 = 333.33; vat amount -> 83.33
- Item B: 500 - 333.33 = 166.67; vat amount -> 41.67
3. Add up the line item totals: order subtotal = 500; vat amount = 125; total = 625
This is all correct at the totals level; but at the line item level we should still use the "original prices" i.e. the line item total for item a should be (1000 * 1.25) = 1250 with a tax amount of 250.
**New calculation method**
1. Use default totals calculations
- Item A: subtotal: 1000, tax_total: 250, total: 1250
- Item B: subtotal: 500, tax_total: 125, total: 625
2. Add up the line item totals: subtotal: 1500, tax_total: 375, total: 1875
3. Reduce total with gift card: subtotal: 1500 - 1000 = 500, tax_total: 375 - 250 = 125, total = 625
Totals can now be forwarded correctly to accounting plugins.
Fixes CORE-310.
2022-07-11 12:18:43 +00:00
adrien2p
1c3c62e966
test(medusa): Fix integration
2022-05-10 14:15:08 +02:00
Zakaria El Asri
1cfeb5dbd8
feat: line item adjustments ( #1319 )
...
* add: crud services + model + totals
* fix: enforce unique constraint on line item adjustment model and update service (#1241 )
* add: unique constraint on model + fix service
* fix: unique constraint
* fix: add cascade on delete + fix discount relation
* fix: remove optional unique prop
* add: tests for ensuring line item adjustment db constraints (#1279 )
* add: tests for ensuring db constraints
* fix: use given when then
* feat: adjust cart to include line item adjustments (#1242 )
* fix: cart service + cart tests
* fix: remaining tests
* fix: swap tests
* fix: add relationship + fix oas
* refactor: applyDiscount
* fix: refactor applyDiscount and fix + add unit tests
* fix: plugins tests
* feat: line item adjustments draft orders (#1243 )
* fix: draft order tests
* fix: constraint
* fix: wrong variable name
* fix: unique constraint
* progress: add tests
* fix: add cascade on delete + fix discount relation
* fix: remove optional unique prop
* fix: cart removeLineItem + tests
* fix: cart unit tests
* fix: update snapshot
* remove: verbose option
* rename arg
Co-authored-by: Sebastian Rindom <skrindom@gmail.com >
* add: create adjustments for swap additional_items
* add: create adjustments for return lines
* fix: unit test for creating adjustment for additional_items
* fix: create adjustments only for non return items + no deletion when item is a return item
* add: integration tests
* refactor: use refreshAdjustments method
* refactor test
Co-authored-by: Sebastian Rindom <skrindom@gmail.com >
Co-authored-by: Sebastian Rindom <skrindom@gmail.com >
Co-authored-by: Sebastian Rindom <skrindom@gmail.com >
2022-04-12 15:49:31 +02:00
Zakaria El Asri
33426ddb4c
fix: make plugin tests run with integration test suites ( #1101 )
...
* fix: make plugin tests run with integration test suites"
* add: plugins to test pipeline
* add: run integration tests on different jobs + fix failing test command
* fix: typo
* fix: pipeline
2022-02-25 16:39:28 +01:00
Sebastian Rindom
c56660fca9
feat: new tax api ( #979 )
...
* feat: add tax calculation strategy (#885 )
* feat: add tax calculation strategy
* fix: adds strategy loader
* fix: eslint ignore
* chore: cleanup
* fix: allow plugin overwrites
* fix: allow plugin overwrites
* fix: fake region
* Update packages/medusa/src/loaders/strategies.ts
Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com >
Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com >
* feat: adds tax related db entities + tax provider (#896 )
* feat: adds tax related db entities + tax provider
* fix: add tax provider tests
* fix: add tax service unit tests
* fix: tests + migrations
* fix: add inherited tax lines
* chore: rm tax-line repo
* fix: test
* fix: pr comments
* fix: unit test
* feat: totals service to ts (#911 )
* feat: adds tax related db entities + tax provider
* fix: add tax provider tests
* fix: add tax service unit tests
* fix: tests + migrations
* feat: totals service to ts
* fix: remove totals.js
* fix: add shipping methods
* fix: add inherited tax lines
* chore: rm tax-line repo
* fix: test
* fix: tests
* fix: tests
* fix: unit test
* fix: adds TotalsServiceProps
* feat: adds integration tests for automatic tax calculation + shipping tax rates (#945 )
* feat: adds tax related db entities + tax provider
* fix: add tax provider tests
* fix: add tax service unit tests
* fix: tests + migrations
* feat: totals service to ts
* fix: remove totals.js
* fix: add shipping methods
* fix: add inherited tax lines
* chore: rm tax-line repo
* fix: test
* fix: tests
* fix: tests
* fix: unit test
* fix: integration test helpers
* fix: adds factories + tests automatic tax rates
* fix: remove verbose
* fix: adds TotalsServiceProps
* fix: add shipping tax lines
* fix: add migration for shipping taxes
* fix: integration tests for shipping taxes
* fix: integration tests for shipping taxes
* fix: jsdoc types
* Feat/manual taxes (#950 )
* feat: adds tax related db entities + tax provider
* fix: add tax provider tests
* fix: add tax service unit tests
* fix: tests + migrations
* feat: totals service to ts
* fix: remove totals.js
* fix: add shipping methods
* fix: add inherited tax lines
* chore: rm tax-line repo
* fix: test
* fix: tests
* fix: tests
* fix: unit test
* fix: integration test helpers
* fix: adds factories + tests automatic tax rates
* fix: remove verbose
* fix: adds TotalsServiceProps
* fix: add shipping tax lines
* fix: add migration for shipping taxes
* fix: integration tests for shipping taxes
* fix: integration tests for shipping taxes
* fix: add integration tests for manual taxes
* fix: cart service - cleanup jsdoc
* feat: add /carts/id/taxes to manually calculate taxes
* feat: add integration tests for order tax calculations
* fix: unit tests
* fix: merge
* fix: rm verbose
* fix: unit tests
* fix: object -> cartOrOrder
* fix: rounding
* Feat/complete order w tax lines (#951 )
* feat: adds tax related db entities + tax provider
* fix: add tax provider tests
* fix: add tax service unit tests
* fix: tests + migrations
* feat: totals service to ts
* fix: remove totals.js
* fix: add shipping methods
* fix: add inherited tax lines
* chore: rm tax-line repo
* fix: test
* fix: tests
* fix: tests
* fix: unit test
* fix: integration test helpers
* fix: adds factories + tests automatic tax rates
* fix: remove verbose
* fix: adds TotalsServiceProps
* fix: add shipping tax lines
* fix: add migration for shipping taxes
* fix: integration tests for shipping taxes
* fix: integration tests for shipping taxes
* fix: add integration tests for manual taxes
* fix: cart service - cleanup jsdoc
* feat: add /carts/id/taxes to manually calculate taxes
* feat: add integration tests for order tax calculations
* feat: adds cart completion strategy + create order w. tax lines
* fix: unit tests
* fix: merge
* fix: rm verbose
* fix: unit tests
* fix: unit tests
* fix: unit tests
* fix: ensure calculation for list orders
* fix: unit tests
* fix: integration tests
* fix: adds cart order type gaurds
* Docs/tax api (#954 )
* feat: adds tax related db entities + tax provider
* fix: add tax provider tests
* fix: add tax service unit tests
* fix: tests + migrations
* feat: totals service to ts
* fix: remove totals.js
* fix: add shipping methods
* fix: add inherited tax lines
* chore: rm tax-line repo
* fix: test
* fix: tests
* fix: tests
* fix: unit test
* fix: integration test helpers
* fix: adds factories + tests automatic tax rates
* fix: remove verbose
* fix: adds TotalsServiceProps
* fix: add shipping tax lines
* fix: add migration for shipping taxes
* fix: integration tests for shipping taxes
* fix: integration tests for shipping taxes
* fix: add integration tests for manual taxes
* fix: cart service - cleanup jsdoc
* feat: add /carts/id/taxes to manually calculate taxes
* feat: add integration tests for order tax calculations
* feat: adds cart completion strategy + create order w. tax lines
* fix: unit tests
* fix: merge
* fix: rm verbose
* fix: unit tests
* fix: unit tests
* fix: unit tests
* fix: ensure calculation for list orders
* fix: unit tests
* fix: integration tests
* docs: documents tax related methods and types
* fix: require either item_id or shipping_method_id
* feat: product type tax rate (#969 )
* feat: adds tax related db entities + tax provider
* fix: add tax provider tests
* fix: add tax service unit tests
* fix: tests + migrations
* feat: totals service to ts
* fix: remove totals.js
* fix: add shipping methods
* fix: add inherited tax lines
* chore: rm tax-line repo
* fix: test
* fix: tests
* fix: tests
* fix: unit test
* fix: integration test helpers
* fix: adds factories + tests automatic tax rates
* fix: remove verbose
* fix: adds TotalsServiceProps
* fix: add shipping tax lines
* fix: add migration for shipping taxes
* fix: integration tests for shipping taxes
* fix: integration tests for shipping taxes
* fix: add integration tests for manual taxes
* fix: cart service - cleanup jsdoc
* feat: add /carts/id/taxes to manually calculate taxes
* feat: add integration tests for order tax calculations
* feat: adds cart completion strategy + create order w. tax lines
* fix: unit tests
* fix: merge
* fix: rm verbose
* fix: unit tests
* fix: unit tests
* fix: unit tests
* fix: ensure calculation for list orders
* fix: unit tests
* fix: integration tests
* docs: documents tax related methods and types
* fix: require either item_id or shipping_method_id
* feat: adds returns tests for new tax system
* feat: adds return lines + integration tests for swaps
* feat: return integration tests
* feat: adds product type tax rates
* feat: add tax management endpoints
* fix: create single migration
* fix: adds tax rates to js client
* fix: strats
* Fix/plugin tests (#998 )
* plugin testing setup
* fix: test sendgrid plugin
* fix: test sendgrid plugin
* chore: clean
* chore: clean
* fix: clean up tests
* fix: remove dirty import
* fix: sendgrid + brightpearl
* fix: plugin integration tests
* fix: klarna
* fix: shipping method tax
* fix: remove taxrates
* fix: unit tests
* fix: integration
* fix: integration
* fix: plugins tests
* fix: ignore plugins
* fix: tests
* fix: taxes (#1017 )
* fix: taxes
* fix: taxes
* fix: faulty ref
* fix: create tax-lines with claim items
* fix: snapshot tax-liens
* fix: allows integration test teardown to force deleting tables
* fix: tests
* fix: merge
* fix: adds tax-rates to client
* fix: adds tax-rates to medusa-react
* fix: tests
* fix: tests
* fix: add product types
* fix: adds tax provider endpoint + cascaded deletes on tax rate relations
* fix: move errors to service layer
* fix: cleanup api
* fix: unit tests
* fix: error handler in base-service
* fix: Add order region to swap on createFulfillment (#1110 )
Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com >
2022-02-24 20:14:09 +01:00