Commit Graph
219 Commits
Author SHA1 Message Date
Riqwan ThamirandPhilip Korsholm ee42b60a20 feat(medusa): add or remove categories from products (#3114)
* wip

* chore: fix issues with join table

* chore: fix issues

* chore: fix ordering issue on random failing test

* chore: revert table name

* chore: added oas for category

* chore: update categories for a product

* chore: add remove category test

* chore: added changeset

* chore: address review comments

* Apply suggestions from code review

Co-authored-by: Philip Korsholm <88927411+pKorsholm@users.noreply.github.com>

Co-authored-by: Philip Korsholm <88927411+pKorsholm@users.noreply.github.com>
2023-01-27 15:25:46 +01:00
Patrick d8ffbe25b0 feat(oas): declare x-codegen on Admin routes - S to V (#3102)
### What

Declare `x-codegen` in OAS for Admin routes - S to V.

### Why

We are introducing a new `x-codegen` OpenApi extension, also known as _vendor extension_, in order to help with passing information down to code generators.

In our case, we wish to declare the `method` name that we would expect to call on a client. This mimics our current JS client package. 
E.g. `medusaClient.product.list` where `product` is the tag of the route and `list` is the x-codegen.method value.

We are also defining the name of a potential typed object for query parameters. OAS 3.0 does not allow to bundle query parameters under a single definition but it is not uncommon to see API clients handle all query parameters as a single typed object, like our JS client package. With x-codegen.queryParams, a code generator can create a named and typed object to bundle all query parameters for a given route. 
E.g. `medusaClient.customer.retrieve(id: string, queryParams: AdminGetCustomerParams)` 

### How

Declare `x-codegen` as an object with fields `method` and `queryParams` on all paths.

Match method and queryParams values with equivalent ones from our current JS client package.

### Test

* Ran OAS validator.
* Ran docs build script.

Expect no visible changes to the documentation.
2023-01-25 13:58:48 +00:00
Oliver Windall Juhl 0009da0261 fix(medusa-payment-stripe): Resend capture event to ensure auto-capture (#3100) 2023-01-25 10:10:31 +01:00
Riqwan ThamirandOliver Windall Juhl 2e7e16b917 feat(medusa): Added models + repo for products in multiple categories (#3083)
* chore: Added models + repo for products in multiple categories

* chore: remove join table model + repo

* chore: add foreign key constraints

* Update packages/medusa/src/migrations/1674455083104-product_category_product.ts

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

* chore: cascade on delete

Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
2023-01-25 07:24:39 +01:00
Patrick d25a531045 feat(oas): declare x-codegen on Admin routes - PRO to R (#3093)
### What

Declare `x-codegen` in OAS for Admin routes - PRO to R.

### Why

We are introducing a new `x-codegen` OpenApi extension, also known as _vendor extension_, in order to help with passing information down to code generators.

In our case, we wish to declare the `method` name that we would expect to call on a client. This mimics our current JS client package. 
E.g. `medusaClient.product.list` where `product` is the tag of the route and `list` is the x-codegen.method value.

We are also defining the name of a potential typed object for query parameters. OAS 3.0 does not allow to bundle query parameters under a single definition but it is not uncommon to see API clients handle all query parameters as a single typed object, like our JS client package. With x-codegen.queryParams, a code generator can create a named and typed object to bundle all query parameters for a given route. 
E.g. `medusaClient.customer.retrieve(id: string, queryParams: AdminGetCustomerParams)` 

### How

Declare `x-codegen` as an object with fields `method` and `queryParams` on all paths.

Match method and queryParams values with equivalent ones from our current JS client package.

### Test

* Ran OAS validator.
* Ran docs build script.

Expect no visible changes to the documentation.
2023-01-24 15:11:34 +00:00
Patrick 8e41c69966 feat(oas): declare x-codegen on Admin routes - D to PRI (#3092)
### What

Declare `x-codegen` in OAS for Admin routes - D to PRI.

### Why

We are introducing a new `x-codegen` OpenApi extension, also known as _vendor extension_, in order to help with passing information down to code generators.

In our case, we wish to declare the `method` name that we would expect to call on a client. This mimics our current JS client package. 
E.g. `medusaClient.product.list` where `product` is the tag of the route and `list` is the x-codegen.method value.

We are also defining the name of a potential typed object for query parameters. OAS 3.0 does not allow to bundle query parameters under a single definition but it is not uncommon to see API clients handle all query parameters as a single typed object, like our JS client package. With x-codegen.queryParams, a code generator can create a named and typed object to bundle all query parameters for a given route. 
E.g. `medusaClient.customer.retrieve(id: string, queryParams: AdminGetCustomerParams)` 

### How

Declare `x-codegen` as an object with fields `method` and `queryParams` on all paths.

Match method and queryParams values with equivalent ones from our current JS client package.

### Test

* Ran OAS validator.
* Ran docs build script.

Expect no visible changes to the documentation.
2023-01-24 12:10:20 +00:00
Philip Korsholm 8f4c84121b feat(medusa): Add inventory for variants (#2970)
* initial get-inventory impl

* add inventory management to create-variant

* update create-variant endpoint

* move if statement

* use middleware for module checking

* add endpoint to medusa-js

* export return type from get-inventory

* add jsdoc

* revert create variant

* rename variable

* initial setInventoryPattern for variant and product endpoints

* remove cache

* sort imports

* add sales channel info to inventory calculations

* add missing import

* remove promise.all from single promise

* update oas

* initial feedback

* checkout joinLevels from develop

* add variant middleware

* add comments
2023-01-24 11:10:33 +01:00
Patrick 09dc9c6677 feat(oas): declare x-codegen on Admin routes - A to D (#3090)
### What

Declare `x-codegen` in OAS for Admin routes - A to D.

### Why

We are introducing a new `x-codegen` OpenApi extension, also known as _vendor extension_, in order to help with passing information down to code generators.

In our case, we wish to declare the `method` name that we would expect to call on a client. This mimics our current JS client package. 
E.g. `medusaClient.product.list` where `product` is the tag of the route and `list` is the x-codegen.method value.

We are also defining the name of a potential typed object for query parameters. OAS 3.0 does not allow to bundle query parameters under a single definition but it is not uncommon to see API clients handle all query parameters as a single typed object, like our JS client package. With x-codegen.queryParams, a code generator can create a named and typed object to bundle all query parameters for a given route. 
E.g. `medusaClient.customer.retrieve(id: string, queryParams: AdminGetCustomerParams)` 

### How

Declare `x-codegen` as an object with fields `method` and `queryParams` on all paths.

Match method and queryParams values with equivalent ones from our current JS client package.

### Test

* Ran OAS validator.
* Ran docs build script.

Expect no visible changes to the documentation.
2023-01-23 20:32:20 +00:00
Carlos R. L. RodriguesandOliver Windall Juhl 2d525237b6 fix(stock-location): Stock location address required (#3065)
What:
- Removes the requirement to have an address id while creating a new stock location.
- Add field company to Location Address

FIXES: CORE-1018

Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
2023-01-23 12:47:04 +00:00
Carlos R. L. RodriguesandSebastian Rindom f65f590a27 feat: inventory items api (#2971)
What:
Admin endpoints to handle inventory items and their stock levels per location

FIXES: CORE-975

Co-authored-by: Sebastian Rindom <7554214+srindom@users.noreply.github.com>
2023-01-23 12:06:23 +00:00
olivermrbl 7152073b00 Merge branch 'master' into develop 2023-01-19 18:30:44 +01:00
olivermrbl a48c533bec chore(release): Publish 2023-01-19 18:29:07 +01:00
olivermrbl 15bea8d49e Merge branch 'master' into develop 2023-01-19 18:26:34 +01:00
Oliver Windall Juhl 9c2169422d fix(medusa): Only add Sales Channel relation + field when enabled (#3069) 2023-01-19 18:26:10 +01:00
Oliver Windall Juhl 9427bc7f25 fix(medusa): Move migration to correct folder (#3067) 2023-01-19 17:34:59 +01:00
Kasper Fabricius Kristensen fcba705701 fix(medusa): Allow deleting metadata fields (#3055) 2023-01-19 11:34:13 +01:00
olivermrbl 6481b0c357 chore(release): Publish 2023-01-18 18:48:57 +01:00
Philip Korsholm 9c4647383e Feat/reservations endpoints (#2995)
**What**
- add reservation endpoints: 
 - `create-reservation`
 - `update-reservation`
 - `delete-reservation`
 - `get-reservation`
 - `list-reservations`
 - `orders/create-reservation-for-line-item`
 - `orders/get-reservations`

Fixes CORE-979
2023-01-18 16:39:33 +00:00
Kasper Fabricius Kristensen 150696de99 feat(medusa, medusa-js, medusa-react): Add endpoint to retrieve product tags from the storefront (#3051) 2023-01-18 10:47:15 +01:00
olivermrbl ab580066ae fix: Merge conflicts with master 2023-01-18 10:17:39 +01:00
Philip Korsholm 76d1752310 fix(medusa): Draft order inventory management (#3040)
* 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
2023-01-17 16:14:58 +01:00
Patrick cb1ec0076b chore(oas): replace response with $ref class JSDoc (Store PRO-V) (#3044)
### 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.
2023-01-17 14:22:10 +00:00
Carlos R. L. Rodrigues 0175388835 feat(medusa): Transaction Orchestrator (#2861)
* chore: transaction orchestrator
2023-01-16 20:16:41 -03:00
Riqwan Thamir 7d4b8b9cc5 feat(medusa): List (service + controller) product categories #3004 (#3023)
**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
2023-01-16 19:20:42 +00:00
Patrick 1ec1a78dfa Merge branch 'develop' into chore/oas-res-schema-AtoPAY 2023-01-16 11:59:19 -05:00
Patrick 542daeeadd chore: changeset 2023-01-16 11:59:05 -05:00
Kasper Fabricius Kristensen cb25244007 hotfix(medusa-js, medusa-react): Fix issue with JS client bundle (#3038) 2023-01-16 17:44:24 +01:00
PatrickandOliver Windall Juhl a0c4cfe0f7 chore(oas): replace response with $ref class JSDoc (Admin PR0-SAL) (#3030)
### 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>
2023-01-16 16:00:05 +00:00
Adrien de Peretti 8c08d00319 fix(medusa): Legacy total service to accept custom items (#3027) 2023-01-16 09:57:01 +01:00
PatrickandOliver Windall Juhl 27a29ef24e chore(oas): replace response with $ref class JSDoc (Admin SHI-V) (#3031)
### 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>
2023-01-15 19:04:26 +00:00
Oliver Windall Juhl 1547dd8143 fix(medusa): Add module config to transaction base service (#3033) 2023-01-15 19:37:11 +01:00
Adrien de Peretti 93d0dc1bdc fix(medusa): test, build and watch scripts (#3025) 2023-01-15 17:10:26 +01:00
Adrien de Peretti 142c8aa70f fix(medusa, medusa-payment-paypal): Add missing data in Payment Collection input (#3010) 2023-01-13 16:26:39 +01:00
Carlos R. L. Rodrigues 9dbccd9ca7 feat(medusa, stock-location, inventory): Allow modules to integrate with core (#2997)
* feat: module shared resources
2023-01-13 10:39:43 -03:00
Adrien de Peretti b3e4be7208 fix(medusa): Draft order totals not working with custom items (#3008) 2023-01-13 13:52:09 +01:00
Oliver Windall Juhl 9e3beaf531 chore(feature-flags): Remove OrderEditing feature flag (#3006) 2023-01-13 11:10:09 +00:00
Oliver Windall Juhl d2c692aa96 fix(medusa): Add default sales channel to product in seeding (#3013) 2023-01-13 10:01:30 +01:00
Riqwan Thamir b2839e2e4d feat(medusa): Retrieve (service + controller) a product category (#3004)
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
2023-01-12 16:19:06 +00:00
Oliver Windall Juhl b80124d32d feat(medusa): Allow custom created_by on order edits (#3007) 2023-01-12 15:47:18 +01:00
Riqwan Thamir aef8421235 feat(medusa): Emit events on product category mutations (#3003)
* chore: added events on product category mutation

* chore: remove duplicates + refactor test
2023-01-12 09:32:03 +01:00
Philip Korsholm 1dc79590b3 fix(medusa): Rename quantity to required quantity (#2963) 2023-01-11 19:21:05 +01:00
Kasper Fabricius Kristensen 8d1275c942 feat(medusa-react): Upgrade react-query and clean up dependencies (#2969) 2023-01-11 19:19:34 +01:00
Riqwan Thamir aab163babb feat(medusa): Nested Categories Admin Update Endpoint (#2986)
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
2023-01-11 16:21:53 +00:00
olivermrbl a8bde8ba74 chore(release): Publish 2023-01-11 16:27:54 +01:00
olivermrbl 9cf971c6bd chore: Add missing changeset for PayPal plugin 2023-01-11 16:24:41 +01:00
Riqwan Thamir 8ed4eab73a feat(medusa): added admin create endpoint for nested categories (#2985)
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
2023-01-11 13:29:02 +00:00
olivermrbl 8e80e50638 chore: Update changesets 2023-01-10 19:26:34 +01:00
Adrien de Peretti a2df11fc10 fix(medusa-payment-manual): Correct wrongly used input data (#2979) 2023-01-10 18:23:24 +01:00
Oliver Windall Juhl 3308766389 chore(feature-flags): Sales Channels enabled by default (#2966) 2023-01-10 16:45:23 +00:00
Adrien de Peretti cac81749ea feat(medusa): Update payment session management (#2937) 2023-01-10 16:33:24 +01:00