* reserve quantities when creating a draft order
* only adjust quantities if a location is provided on a fulfillment
* initial fix for fulfillments
* changeset
* add check for inventory service when cancelling fulfillment
* update test-request with module loaders
* remove unused variable
### Scope
Store routes directories PRO to V.
### What
Move inline OAS response schema declaration under their respective class declarations in order to expose them through `#/components/schemas`. Replace inline OAS response schema with a `$ref` reference pointing to the newly declared schema.
### Why
Having response declared as its own "named" schema will allow OAS code generators to output typed entities/DTO that can be consumed without having to reference the route/operation.
### How
Declare a new @schema JSDoc for each "Res" class used to parse and validate request body. Move the current inline requestBody to the new @schema.
### Test
- Ran OAS validator.
- Ran docs build script.
Expect no visible changes to the documentation.
**What:**
Introduces a store endpoint to retrieve a list of product categories
**Why:**
This is part of a greater goal of allowing products to be added to multiple categories.
**How:**
- Creates an endpoint in store routes
RESOLVES CORE-968
### Scope
Admin routes directories PRO to SAL.
### What
Move inline OAS response schema declaration under their respective class declarations in order to expose them through `#/components/schemas`. Replace inline OAS response schema with a `$ref` reference pointing to the newly declared schema.
### Why
Having response declared as its own "named" schema will allow OAS code generators to output typed entities/DTO that can be consumed without having to reference the route/operation.
### How
Declare a new @schema JSDoc for each "Res" class used to parse and validate request body. Move the current inline requestBody to the new @schema.
### Test
- Ran OAS validator.
- Ran docs build script.
Expect no visible changes to the documentation.
Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
### Scope
Admin routes directories SHI to V.
### What
Move inline OAS response schema declaration under their respective class declarations in order to expose them through `#/components/schemas`. Replace inline OAS response schema with a `$ref` reference pointing to the newly declared schema.
### Why
Having response declared as its own "named" schema will allow OAS code generators to output typed entities/DTO that can be consumed without having to reference the route/operation.
### How
Declare a new @schema JSDoc for each "Res" class used to parse and validate request body. Move the current inline requestBody to the new @schema.
### Test
- Ran OAS validator.
- Ran docs build script.
Expect no visible changes to the documentation.
Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
### Scope
Admin routes directories D to N.
### What
Move inline OAS response schema declaration under their respective class declarations in order to expose them through `#/components/schemas`. Replace inline OAS response schema with a `$ref` reference pointing to the newly declared schema.
### Why
Having response declared as its own "named" schema will allow OAS code generators to output typed entities/DTO that can be consumed without having to reference the route/operation.
### How
Declare a new @schema JSDoc for each "Res" class used to parse and validate request body. Move the current inline requestBody to the new @schema.
### Test
- Ran OAS validator.
- Ran docs build script.
Expect no visible changes to the documentation.
### Scope
Admin routes directories O to PRI.
### What
Move inline OAS response schema declaration under their respective class declarations in order to expose them through `#/components/schemas`. Replace inline OAS response schema with a `$ref` reference pointing to the newly declared schema.
### Why
Having response declared as its own "named" schema will allow OAS code generators to output typed entities/DTO that can be consumed without having to reference the route/operation.
### How
Declare a new @schema JSDoc for each "Res" class used to parse and validate request body. Move the current inline requestBody to the new @schema.
### Test
- Ran OAS validator.
- Ran docs build script.
Expect no visible changes to the documentation.
What:
Introduces a store endpoint to retrieve a product category
Why:
This is part of a greater goal of allowing products to be added to multiple categories.
How:
- Creates an endpoint in store routes
RESOLVES CORE-967
What:
Introduces an admin endpoint that allows a user to update a product category
Why:
This is part of a greater goal of allowing products to be added to multiple categories.
How:
- Creates a route on the admin scope to update category
- Creates a method in product category services to update a category
RESOLVES CORE-956
What:
Introduces an admin endpoint that allows a user to create a product category
Why:
This is part of a greater goal of allowing products to be added to multiple categories.
How:
- Creates a route on the admin scope to create category
- Creates a method in product category services to create a category
RESOLVES CORE-958
**What:**
Introduces an admin endpoint that allows a user to delete a product category, given an ID.
Why:
This is part of a greater goal of allowing products to be added to multiple categories.
How:
- Creates a route on the admin scope to delete category
- Creates a method in product category services to delete a category
RESOLVES CORE-957
* chore: added get route for admin categories API
* chore: add tree method to mock repository
* chore: added changeset to the PR
* chore: rename id to productCategoryId in service
* chore: switch cli option to string
* chore: lint fixes, tests for parent category
* chore: move Nested Categories behind feature flag
* chore: use transformQuery hook in api
* chore: add feature flag in migrations
* chore: remove migration FF, fix FF name
* chore: add free text search + count repo function
* chore: added list endpoint for admin
* chore: added changeset for feature
* chore: address pr review comments
* chore: change oas comment
* chore: add nullable parent category filter + test
* 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
**What**
Move to transformQuery which adds a default ordering and also allows to order the product list from the store API
**How**
Among other things, fix the product repo to allow ordering by either a key from the product or a key from a relation
FIXES CORE-911
FIXES CORE-901
### What
Move inline OAS requestBody schema declaration under their respective class-validator classes in order to expose them through `#/components/schemas`. Replace inline OAS requestBody schema with a `$ref` reference pointing to the newly declared schema.
### Why
Having requestBody declared as its own "named" schema will allow OAS code generators to output typed entities/DTO that can be manipulate without having to reference the route/operation.
### How
Declare a new @schema JSDoc for each class-validator used to parse and validate request body. Move the current inline requestBody to the new @schema.
### Test
- Ran OAS validator.
- Ran docs build script.
Expect no visible changes to the documentation.
### Out-of-scope
requestBody of type `multipart/form-data` used for file uploads. These will be address as part of CORE-934
- [create-upload.ts](58d23a7b45/packages/medusa/src/api/routes/admin/uploads/create-upload.ts (L87-L90))
- [create-protected-upload.ts](58d23a7b45/packages/medusa/src/api/routes/admin/uploads/create-protected-upload.ts (L87-L90))
Path Parameter and Query Parameter. These will need more research and experimentation, part of CORE-931
---
Resolves CORE-853
* chore: tax_rate is added to giftcards
* chore: minor
* chore: update gift card tax calculations to look at giftCard.tax_rate
* chore: gift card transactions use tax rate from gift card for legacy
* fix: gift cart total check for transaction should check the length
* chore: use tax exclusive cost + use giftcard tax rate for gctransactions + refactor
* chore: fix integration test
* chore: address issues brought up in comments
* chore: move gift card creation as a part of order service on order placed
* chore: add type handling for gift card creation
* chore: fix specs
* chore: use taxLines to calculate tax of a gift card
* chore: specs for line items containing gift cards and without
* chore: add integration specs + fix tax rate bug
* chore: round totaling + add GC application specs
* chore: cleanup trialables
* chore: write migration script to backfill gift cards with null tax_rate
* chore: update legacy totals service for gift cards
* chore: add changeset
* chore: address PR review changes
* chore: fix tests based on new totals calc
* chore: address review comments
Co-authored-by: adrien2p <adrien.deperetti@gmail.com>
Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
### What
Rename all JSDoc OAS `@schema` and `$ref: #/components/schemas/` from snake_case to PascalCase, `foo_bar -> FooBar`
Extra scope: Remove `x-resourceId` from JSDoc OAS.
### Why
Classes use PascalCase as a convention but the OAS @schemas describing them were using snake_case. OAS code generators tend to use the schema name when generating typed models.
In order to avoid mismatch between source code, the OAS, and the generated client code, it is advised to align OAS @schemas formatting to the classes they represent.
Extra scope: x-resourceId is not a widely used OAS property. It's current usage in our OAS does not provide additional value. Therefore, we recommend to remove it in order to have one less item to maintain.
### How
Good old search & replace. Regex search to further make sure we didn't miss any.
The scope is limited to `@schema` definition and their usage in `$ref: #/components/schemas/`.
### Test
* Ran OAS validator.
* Ran docs build script.
Expect no visible changes to the documentation.
Resolves: CORE-852, CORE-859
**what**
The goal of that PR is to first refactor the payment provider and payment plugin to support the new API that removes the data mutation from within the plugin to be done by the core instead. In any case, this pr does not include the steps of the deeper refactoring. The last part will come in later pr.
**How**
- The payment plugin is now capable to handle both the deprecated and new API and the plugin works the same as it use to works.
- The mutation made by the plugin have been moved into the core as well as the subscriber
- The tests have been updated to reflect the changed
- Remove all new methods introduced by the payment collections
- Mutualise types
- Update provider and payment collection services
- cleanup around all those refactoring including cleanup of the payment collection
- refactor stripe payment plugin
FIXES CORE-887
* test subtotals on draft order operations
* fetch cart with subtotals when doing draft order operations
* write test for updating discounts seeing changes in totals
* formatting
* udpate test
* force taxes
* missing select
* add import
* rm force_taxes
**What**
- enable to filter sales channels of a Publishable API Key with a free text search param
Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>