Commit Graph

1428 Commits

Author SHA1 Message Date
Adrien de Peretti
bdd9c5a7e9 fix(medusa): model loader with customizations (#4443)
* fix(medusa): model loader with customizations

* fix plugin models loader

* Create late-insects-punch.md

* Address pr feedback

* remove unnecessary bits

* remove unnecessary bits

* fix

* remove unnecessary changes

* rm duplicate param jsdoc
2023-07-04 11:34:19 +02:00
Adrien de Peretti
9dcdc0041a fix(medusa, utils): fix the way selects are consumed alongside the relations (#4389)
**What**
There is actually an issue with using the `fields` query params with the way the repositories are using our custom query strategy. This pr aims to fix this issue by reworking the strategy.

What we had to do was to rework the way the selects are built for each subquery in order to follow the aliasing convention and to be taken into consideration. Alongside these changes, the join used to always select everything, this needed to be changed so that if there are any selects provided for a join, the join should not select everything and let the query select the fields that are requested.

Another notable change is that all the repositories are now using the repository util in order to centralize the customization and to have a single place to update when this kind of issue arises. This means that the eager relations when using the query builder are not necessarily taken into account. For that reason, I have removed the `shipping_option` eager option in favor of explicitly asking for the relations like we started to do it in some places.

FIXES CORE-1413
2023-06-29 13:26:41 +00:00
Riqwan Thamir
9760d4a96c feat(medusa, types): Improve DX of model extensions (#4398) 2023-06-29 13:45:16 +02:00
Adrien de Peretti
6f1fa244fa chore(medusa-cli): Cleanup plugin setup (#4420)
* chore(medusa-cli): Cleanup plugin setup

* fix: logger types

* fix event bus local

* fix event bus redis

* Create late-dragons-collect.md

* move to ts

* remove unused command

* env

* fix
2023-06-28 16:37:25 +02:00
Oliver Windall Juhl
85eb12883e feat(medusa): Improve error messaging in plugin loader (#4410)
* feat(medusa): Improve error messaging in plugin loader

* Create fair-kids-tease.md

* pr comments

* pr comments
2023-06-26 13:33:40 +02:00
Adrien de Peretti
01245ac89e feat(medusa): Improve DX of validators extensions (#4397)
* feat(medusa): Allow to register extended validators seemlesly

* Create happy-points-yawn.md

* comment
2023-06-26 11:05:23 +02:00
Adrien de Peretti
7bf7d2adef chore(medusa): Concurrently get entities and count (#4367)
* chore(medusa): Concurrently get the items and count instead of sequentially

* Create tidy-sloths-sit.md
2023-06-21 11:28:28 +02:00
Adrien de Peretti
13294fff3f fix(medusa): medusa develop does not take execArgv into account properly (#4338) 2023-06-17 15:43:05 +02:00
Philip Korsholm
f8643361cd feat(admin-ui, medusa): Remove feature flag (#4267) 2023-06-15 16:55:29 +00:00
Oliver Windall Juhl
9b42387fd3 chore: Add missing deps (#4317) 2023-06-15 18:27:31 +02:00
Derek Wene
81dfeb43ea feat(medusa): add redis_prefix in configModule.projectConfig (#4268) 2023-06-14 16:24:35 +02:00
Liam Cooper
ca477c86af feat(medusa): Preserve node flags in develop command (#1860) 2023-06-14 15:26:16 +02:00
Adrien de Peretti
02b1bd07cd fix(medusa): Query parser issues with large array (#4213)
* fix(medusa): Query parser issues with large array

* Create little-weeks-exercise.md

* add integration tests
2023-06-14 13:36:04 +02:00
Adrien de Peretti
8e708aaddf fix(medusa): Remove items.refundable from the order default store fields (#4294)
* fix(medusa): Remove items.refundable from the order default store fields

* Create khaki-socks-thank.md

---------

Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
2023-06-13 19:20:20 +02:00
Adrien de Peretti
2c0074031b fix(medusa): getAvailableContext should first check if the inventory service is present (#4293)
* fix(medusa): getAvailableContext should first check if the inventory service is present

* Create clever-seals-share.md
2023-06-13 18:14:43 +02:00
Adrien de Peretti
14c0f62f84 feat: Product Module (#4161)
* chore: boilerplate setup

* wip: add Product, ProductTag, ProductType, ProductCollection models

* wip: `IProductService` definition

* wip: test function in index, build passing

* fix: where condition

* chore: get boilerplate working with modules sdk, create a boilerplate test, create product variant model, register services properly

* chore: added variant to model

* chore: changed definition details + add migrator

* cleanup and update product entity

* Update product unique index to include soft deleted

* Migrations tests

* generated migration

* update dev orm config

* add path aliases

* WIP

* chore: added boilerplate integration test + database helper + product variant migraiton + model

* chore: remove old test utils

* update ts and jest config to include path aliases

* tweak config

* WIP migrations variant

* Migrations round

* integration tests migrations polishing

* chore: fixed issues with test db

* fix path aliases when published

* use ts-alias

* fix connection loader

* fixes

* wip: product list

* (WIP): Data access layer

* (WIP): DAL cleanup services

* wip: `ProductTag` DAL

* wip: `ProductTag` expose list in product service

* (WIP): Continue DAL and test list product filtering/populate

* WIP: unit tests

* chore: added tests for service - productvariant

* chore: WIP finding issues with orm manager fork

* WIP fix fields selection

* chore: make text fixes work

* (WIP) product integration

* (WIP) product integration

* chore: create a product in variant test

* list product with relations

* wip: `ProductTag` service + integrations

* chore: added with and without serialization example

* chore: remove only in spec

* wip: `ProductCollection` service + integrations

* uncomment product.variants

* Update type IProductService

* (WIP) type work

* (WIP) Product variants relation

* WIP: replacable data layer

* (WIP): Use bundle types

* WIP: update type

* WIP upadte tests

* WIP

* wip: options/option values entites

* (WIP): cleanup

* wip: add option value to variant, fix collection

* Integration tests for custom data access layer

* update tests

* chore: merge with latest branch

* chore: scope tests to relations and add category to models/index

* chore: ignore dist folders for jest

* chore: modularize spec data file

* improve DX

* module fixture naming

* chore: added category tests + fix model

* chore: use kebab case

* chore: allow scoping products by category id

* chore: replace `kebabCase` import

* feat: add `deleted_at` to options

* improve typings

* chore: wip

* fix query util

* revert webpack

* fix: update option models, create option DTOs, tests wip, fix `deduplicateIfNecessary` returning `undefined`

* fix: merge conflict

* WIP connection

* rm unsues deps

* fix migrations

* fix query util

* chore: adds mpath on creation

* WIP update types

* improve typings

* WIP typeings improvement

* WIP

* deps

* chore: package medusa/product ot medusa-commerce/product

* chore: added product categories service + descendants filter

* add missing index

* Add support for strict categories not in

* Add support for strict categories not in

* lint

* rename module

* rename module

* Create small-ducks-doubt.md

* yarn lock

* update initialise

* chore: fix/finalise DTOs

* fix: wrong types in `IProductService`

* fix type

* Load database config from env if present (#4175)

* Load database config from env if present

* Load database config from env if present

* options optionnal

* update util

* add defaults

* improve filterable interfaces

* fix import

* fix types

* remove medusa-telemetry from modules-sdk

* WIP fixing webpack issues when bootstraping module

* cleanup

* improve loading driver options

* cleanup

* yarn lock

* fix import

* improve sdk types and naming

* align orther modules initialise method

* fix module tests with singleton module

* fix module tests with singleton module

* add up/down migration scripts

* update types

* scripts

* cleanup migrations and scripts

* hash module singleton

* cleanup migration

* cleanup

* fix stringifyCircular usage

* improvements

* fix deps

* fix deps

* improve load config utils

* improve load config utils

* fix deps

* add declaration to the build

* update yarn

* Do not resolve a module path if the exports are explicitly given

* fix module registration resolution path when exports are provided. Explicitly check for false and assign an empty string in this scenario for segregation purpose

* add comment

* fix migration options to prevent set replica errors

* chore: update types to a proper depedency

* chore: update type package

* add seed scripts

* Add descriptive error during database config loading

* use MedusaError

* chore: added lodash to package

* add more test to the database config loader util

* create bin scripts

* add bin

* update argv retrieval

* update package.json

* chore: add product category to injected deps

* chore: replace with product category service

* move dotenv usage to the functions

* do not load db if there is custom manager

* chore: fix some tests on products repo

* chore: fixed product spec

* chore: skip products module on modules register

* stringifyCircular update

* chore: fix incorrect module resolution

* fix: circular stringify and non required module loading

* yarn lock

* target es5

* chore: mikro-orm back to 5.7.4

* revert module registry

* skip external modules

* es2020

* update indexes, migration and integration tests

* rm only

* unit test script should only run unit tests

* Exclude product integration from the unit tests and make use of the global integration script to run all packages integration tests

* fix integration tests

* improve setup

* cleanup

* log error on setup fail

* Create enum like for package names

* chore: remove EOL

* chore: review part 2

* renamve gateway to productModuleService

* chore: added filters and collections to productmoduleservice

* chore: add collection to the singleton instance

* chore: remove skipped test + add todo

* fix indexes on fields and relations + update migration

* update yarn lock

* update idx

* add foreign key

* rename interface and add listCategories

* rename product module definition

---------

Co-authored-by: fPolic <frane@medusajs.com>
Co-authored-by: Riqwan Thamir <rmthamir@gmail.com>
Co-authored-by: Carlos R. L. Rodrigues <rodrigolr@gmail.com>
2023-06-09 20:47:24 +02:00
Philip Korsholm
79cca2ab80 feat(admin-ui): Filter reservations (#4115)
* initial filter

* clenaup

* reser filters correctly

* filter reservations

* ensure reset works

* update types

* add adjustment icon

* pr prep

* update filtering with proper description handling

* location filter updates and search removal

* removed greyed out dates + add created_by filtering

* update filtering with proper ordering

* filter out selected users

* fix array issues

* update spacing for searchable queries

* fix deselection bug for inventory item search

* update date filter;

* rename const a to initialFilters

* fix re-render issue

* ui updates

* update inventory filter to remove selected items

* fix width

* fix truncation for button text if desired

* add span classes

* add "go to reservations" popover

* add tooltip if location text is truncated

* fix long items

* typing

* minor fix for select value

* fix reservation quantity field updates

* add pb

* Update packages/admin-ui/ui/src/components/templates/reservations-table/index.tsx

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

* feedback

* add changeset

---------

Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
2023-06-08 17:57:39 +02:00
Shahed Nasser
8676ee7a2e feat(medusa,medusa-cli): Added an invite option to the create user command, and allow seeding publishable api keys (#4192)
* feat(medusa,medusa-cli): Added an invite option to the create user command

* ensure process exits for invites

* addressed PR comments

* allow seeding publishable api keys
2023-06-07 20:34:27 +02:00
Adrien de Peretti
2db6a1d407 chore(medusa): Improve database loader error handling (#4254)
* chore(medusa): Improve database loader error handling

* Create sharp-melons-doubt.md

* move the database error handling to the utils

* fix unit tests

* tackle feedback

* fix unit tests
2023-06-07 10:57:29 +02:00
Philip Korsholm
eadf13cb21 feat(medusa): variants expand inventory_items (#4203)
* add expand params for inventory items to product and variant endpoints in store

* add changeset

* update integration test naming

* make priceSeelctionParams extends findParams and adjust api accordingly
2023-06-05 20:14:05 +02:00
Adrien de Peretti
af2dc4f75a feat(medusa, inventory, stock-location): Remove unnecessary transaction usage in the modules and the list product end points (#4232) 2023-06-05 12:11:12 +02:00
Adrien de Peretti
d76ba0cd29 fix(medusa): Order edit missing transaction when consuming the inventory module (#4211)
* fix(medusa): Order edit missing transaction when consuming the inventory module

* Create hot-cougars-speak.md

* fix missing types
2023-06-05 11:01:28 +02:00
Oliver Windall Juhl
0f87d3d642 chore(medusa,admin-ui): Add reservations FF (#4184)
* chore(medusa,admin-ui): Add reservations FF

* Create five-ways-care.md

* Tweak description
2023-05-29 22:02:01 +02:00
Oliver Windall Juhl
6998666c6e fix(medusa): Upserting tax rates (#4189)
* fix(medusa): Upserting tax rates

* Create orange-bikes-sparkle.md

* add more tests

* add explicit null type
2023-05-29 13:31:39 +02:00
Derek Wene
e3cfbcd4a7 fix(medusa): migrations cli should also pull from ${plugin}/dist (#3956)
* fix(medusa): migrations should also pull from dist

* chore: add changeset
2023-05-28 12:18:42 +02:00
Frane Polić
db41995307 chore(utils): clean util package deps (#4146) 2023-05-26 13:20:12 +02:00
Frane Polić
92f01cefbc fix(medusa): downgrade papaparse version (#4174)
* fix: downgrade `papaparse` version

* chore: changesets

---------

Co-authored-by: fPolic <frane@medusajs.com>
2023-05-25 20:26:58 +02:00
Philip Korsholm
0a35f21af7 feat(medusa, inventory): Search inventory items by title and description (#4154)
* initial filtering based on query

* add changeset

* add expect clause to ensure other items are not inluded
2023-05-24 11:52:25 +01:00
Philip Korsholm
3a38c84f88 feat(medusa,inventory,types): Expand list-reservation capabilities (#3979)
**What**
- Add filter capabilities to reservation items based on: 
  - description query: "contains", "startsWith", "endsWith", "equals"
  - date querying

**How**
- Introducing a new filtering primitive: "StringSearchOperator" resembling the "dateComparisonOperator"

Fixes CORE-1373
2023-05-24 09:54:25 +00:00
Philip Korsholm
4f3c8f5d70 feat(admin-ui,medusa): Reservations management (#4081)
* add location filtering to list-location levels

* cleanup

* add location filtering to list-location levels

* cleanup

* Initial work on route,table,new reservation form

* generated types

* add block

* udpate clients

* initial create reservation

* update actionables for reservation table

* update edit-allocation modal

* misc naming updates

* update reservations table

* add expand capabilities for list-reservations

* expand fields and show columns

* update oas

* make remove item work in focus modal

* add yarn lock

* add integration test

* Fix display when label doesn't match search term

* remove unused file

* Update packages/admin-ui/ui/src/components/templates/reservations-table/components/reservation-form/index.tsx

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

* Update packages/admin-ui/ui/src/domain/orders/details/allocations/edit-allocation-modal.tsx

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

* Update packages/admin-ui/ui/src/components/templates/reservations-table/new/index.tsx

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

* initial changes

* add changeset

* update font size

* cleanup reservations table + select

* add decorated inventory item type

* use type

* feedback changes

* Update packages/admin-ui/ui/src/components/molecules/item-search/index.tsx

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

* decorate response for list inventory item to include total quantities

* update decorated properties

* decorate type

* adrien feedback

* Update packages/generated/client-types/src/lib/models/DecoratedInventoryItemDTO.ts

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

* update join-utils

* fix caching

---------

Co-authored-by: Rares Capilnar <rares.capilnar@gmail.com>
Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
Co-authored-by: Riqwan Thamir <rmthamir@gmail.com>
2023-05-23 05:24:28 +02:00
Philip Korsholm
0476f52519 Feat(medusa, admin-ui): Update edit allocation modal (#4071)
* update edit-allocation modal

* add changeset

* update edit-allocation modal

* update allocation modal
2023-05-22 15:58:51 +02:00
Adrien de Peretti
bf18bd0c8a feat(medusa): Revert pricing service setVariantPrices API (#4130) 2023-05-22 12:23:54 +02:00
Adrien de Peretti
ed382f2ee5 feat(medusa): Improve prices flow (#3703) 2023-05-18 08:55:28 +02:00
Oliver Windall Juhl
a91987fab3 feat(medusa): Remove sqlite support (#4026) 2023-05-17 12:13:36 +02:00
Juan Zapata Gomez
e2d29d35c4 feat(plugins): Pass Config Modules to plugins (#4094) 2023-05-17 09:34:31 +02:00
Philip Korsholm
4fb443c0ea feat(medusa): Add location id filtering to list location levels (#4066)
**What**
- add capabilities for filtering locations by id when listing locations for an inventory item
2023-05-16 12:21:53 +00:00
Adrien de Peretti
9518efccae fix(medusa): Product repo typeorm issues (#4084)
* fix(medusa): Product repo typeorm issues

* chore: fixed category scopes

* WIP fix categories

* fix product repo to attach categories

* fix uni tests

* Create eighty-icons-exercise.md

* revert package.json

* fix change set

* last fixes

* cleanup iteration

* fix repository deep relations joining aliasing

* improve response time

* improve category test case

* fix free texts search

* fix repo

* centralise repository manipulation into utils and use the utils in the product repo

* fix product repo

* fix customer group

* update changeset

* fix customer group

* include feedback

* fix repo

* remove query strategy

---------

Co-authored-by: Riqwan Thamir <rmthamir@gmail.com>
2023-05-16 09:36:52 +02:00
Adrien de Peretti
cdbac2c840 feat(medusa,utils): Add support for multiple where condition on the same column (#4046) 2023-05-15 21:04:03 +02:00
Oliver Windall Juhl
a86f0e815a chore(medusa): Expose ioredis options (#4073)
* chore(medusa): Expose ioredis options

* Create empty-clocks-tease.md
2023-05-15 18:56:23 +02:00
Oliver Windall Juhl
a666462333 feat(medusa): Cart custom query strategy (#4083) 2023-05-12 14:06:55 +02:00
Lacey Pevey
1ea57c3a69 chore(utils): update class-validator to 0.14.0 (#4032)
* update class-validator to 0.14.0 in utils package

* Create new-jokes-relax.md

---------

Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
2023-05-08 18:29:31 +02:00
Shahed Nasser
a8887cd02f docs: added idempotency key documentation (#4039) 2023-05-08 19:21:07 +03:00
Frane Polić
a8e73942e6 feat(medusa): handle product categories in import/export strategies (#3842)
**What**
- add ProductCategories to import and export strategies
- refactor ProductCategoriesService methods to use "retrieve_" pattern

---

RESOLVES CORE-1275
2023-05-08 08:58:11 +00:00
Frane Polić
0c58ead6d8 fix(medusa): Validate customer_id when completing a cart (#3967) 2023-05-07 13:12:06 +02:00
patpich
3d6bcaaf65 fix(medusa): ShippingOptionService.list method param type (#4018)
## What

Fix typing on ShippingOptionService.list selector parameter

## Why

A backend server interfacing with the `ShippingOptionService.list()` method will throw TS error when attempting to pass selector values that should be valid.

## Steps to reproduce

* In a IDE that can display TS errors
* Create an instance of the ShippingOptionService
* Call the `list()` method on the instance with the following selector parameter: `{ region_id: "foobar" }`
* Expect: No TS error
* Actual: `TS2345: Argument of type '{ region_id: string; }' is not assignable to parameter of type 'Selector<ShippingMethod>'.`

## How

* Change the `selector` type to `Selector<ShippingOption>`
2023-05-07 10:52:45 +00:00
patpich
ff37cd190f fix(search): add missing default product relations (#4008)
* fix(search): add missing default product relations

Add missing default product relations for events calling SearchService.addDocuments

For the following events: `ProductService.Events.UPDATED,  ProductVariantService.Events.CREATED, ProductVariantService.Events.UPDATED]`,
`SearchService.addDocuments` will fail due to `product` missing its `variants` relations.

The issue can be observed with the Algolia plugin where `reduce` is being attempted on `product.variants`.
https://github.com/medusajs/medusa/blob/develop/packages/medusa-plugin-algolia/src/utils/transformer.ts#L14

Implement the same retrieve pattern as `handleProductCreation` method.

* chore(changeset): patch

---------

Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
2023-05-05 13:04:56 +02:00
Derek Wene
bd53adb238 fix(medusa): has-changes (#4023)
* fix(medusa): has-changes

* add changeset
2023-05-05 11:05:20 +02:00
Philip Korsholm
7fd22ecb4d feat(client-types, types, medusa, inventory): Inventory item and reservation item datamodel updates (#3971)
* add fields

* add title in migration

* update api endpoints to reflect datamodel changes

* update migration exports for inventory module

* add changeset

* add created_by for reservation item
2023-05-04 17:25:48 +02:00
Oliver Windall Juhl
284f1eed9a fix(medusa): Only set product availability + prices if requested (#4010)
* fix(medusa): Only set product availability if variants are requested

* Add checks to get products as well

* Create nasty-fans-suffer.md
2023-05-04 09:29:13 +02:00
Adrien de Peretti
0e488e71b1 fix(medusa, types, utils, event-bus-local): Revert retrieveSubscribers (#4002)
* fix(medusa, event-bus-redis, event-bus-local): Revert retrieveSubscribers as the wildcard prevent us from filtering

* Create calm-eggs-collect.md

---------

Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
2023-05-03 18:55:45 +02:00