Commit Graph
100 Commits
Author SHA1 Message Date
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
befc2f1c80 feat(product): Create (+ workflow), delete, restore (#4459)
* Feat: create product with product module

* feat: create product wip

* feat: create product wip

* feat: update product relation and generate image migration

* lint

* conitnue implementation

* continue implementation and add integration tests for produceService.create

* Add integration tests for product creation at the module level for the complete flow

* only use persist since write operations are always wrapped in a transaction which will be committed and flushed

* simplify the transaction wrapper to make future changes easier

* feat: move some utils to the utils package to simplify its usage

* tests: fix unit tests

* feat: create variants along side the product

* Add more integration tests an update migrations

* chore: Update actions workflow to include packages integration tests

* small types and utils cleanup

* chore: Add support for database debug option

* chore: Add missing types in package.json from types and util, validate that all the models are sync with medusa

* expose retrieve method

* fix types issues

* fix unit tests and move integration tests workflow with the plugins integration tests

* chore: remove migration function export from the definition to prevent them to be ran by the medusa cli just in case

* fix package.json script

* chore: workflows

* feat: start creating the create product workflow

* feat: add empty step for prices and sales channel

* tests: update scripts and action envs

* fix imports

* feat: Add proper soft deleted support + add product deletion service public api

* chore: update migrations

* chore: update migrations

* chore: update todo

* feat: Add product deletion to the create-product workflow as compensation

* chore: cleanup product utils

* feat: Add support for cascade soft-remove

* feat: refactor repository to take into account withDeleted

* fix integration tests

* Add support for force delete -> delete, cleanup repositories and improvements

* Add support for restoring a product and add integration tests

* cleaup + tests

* types

* fix integration tests

* remove unnecessary comments

* move specific mikro orm usage to the DAL

* Cleanup workflow functions

* Make deleted_at optional at the property level and add url index for the images

* address feedback + cleanup

* fix export

* merge migrations into one

* feat(product, types): added missing product variant methods (#4475)

* chore: added missing product variant methods

* chore: address PR feedback

* chore: catch undefined case for retrieve + specs for variant service

* chore: align TEntity + add changeset

* chore: revert changeset, TEntity to ProductVariant

* chore: write tests for pagination, unskip the test

* Create chilled-mice-deliver.md

* update integration fixtuers

* update pipeline node version

* rename github action

* fix pipeline

* feat(medusa, types): added missing category tests and service methods (#4499)

* chore: added missing category tests and service methods

* chore: added type changes to module service

* chore: address pr feedback

* update repositories manager usage and serialisation from the write public API

* move serializisation to the DAL

* rename template args

* chore: added collection methods for module and collection service (#4505)

* chore: added collection methods for module and collection service

* Create fresh-islands-teach.md

* chore: move retrieve entity to utils package

* chore: make products optional in DTO type

---------

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

* feat(product): Apply transaction decorators to the services (#4512)

---------

Co-authored-by: Riqwan Thamir <rmthamir@gmail.com>
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>
2023-07-16 20:19:23 +02:00
Adrien de Peretti d363da2b72 chore(create-medusa-app): Cleanup the main script for readability and maintanability (#4369)
* chore(create-medusa-app): Cleanup the main script for readability and maintanability

* update types

* cleanup

* Create polite-queens-kiss.md
2023-07-10 16:27:16 +02:00
Adrien de PerettiandOliver Windall Juhl 4264302f21 feat(medusa, stripe, paypal): Add update payment session support to the abstract payment processor API (#4442)
* feat(medusa, stripe, paypal): Add update payment session support to the abstract payment processor API

* continue to add updatePaymentData

* feat: Add update payment data to paypal as well and add stripe tests

* fix stripe updatePaymentData returned object type

* fix tests

* Create three-ravens-raise.md

* fix paypal updatePayment data impl

---------

Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
2023-07-10 15:59:19 +02:00
Adrien de Peretti a6c0825722 chore: Update node version in the pipeline to 16 (#4485)
* chore: Update node version in the pipeline to 16

* upgrade to node 16 (setup-server)
2023-07-10 12:17:30 +02:00
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
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
Adrien de Peretti 5a4580b6a8 chore(medusa-dev-cli): Cleanup plugin setup (#4421)
FIXES CORE-1420

does not include ts migration
2023-06-28 11:32:05 +00:00
Adrien de Peretti 627bdb689f chore(gatsby-source-medusa): Cleanup plugin setup (#4419)
* chore(gatsby-source-medusa): Cleanup plugin setup

* fix process-node

* Create gentle-cups-crash.md
2023-06-27 14:00:11 +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
Adrien de Peretti 30d89044f1 fix(product): The bin scripts should include a shebang and import in the body (#4296) 2023-06-15 19:42:49 +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 PerettiandOliver Windall Juhl 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
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
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
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
Adrien de Peretti c0e527d6e0 chore(medusa): Align build query utils (#4148) 2023-05-22 15:14:14 +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
Adrien de PerettiandRiqwan Thamir 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
Adrien de Peretti cff54d7325 fix(medusa-payment-stripe): Catch on idempotency key retrieve if not found (#4025)
**What**
In case the idempotency key is not found, an error will be thrown. We actually want to catch this error and create the key if it does not exists
2023-05-05 14:54:38 +00:00
Adrien de PerettiandOliver Windall Juhl 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
af710f1b48 fix(medusa): Bulk create variant + pass transaction to the inventory service context methods (#3835)
* fix(medusa): Bulk create variant and pass transaction where needed

* Create fair-penguins-stare.md

* fix unit tests

* event

* transaction orchestration

* revert options

* Prevent isolated module to use the given transaction if any in the exposed service

* Use enum

* remove changeset to re do it

* Create thick-ants-tickle.md

* update event bus local

* remove changeset to re do it

* Create thick-kings-wonder.md

* remove changeset to re do it

* Create slimy-bees-eat.md

* Update packages/utils/src/event-bus/index.ts

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

---------

Co-authored-by: Philip Korsholm <88927411+pKorsholm@users.noreply.github.com>
Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
2023-04-19 09:27:48 +02:00
Adrien de Peretti 6bb1654b61 fix(medusa): List products end points (#3829)
* fix(medusa): List products end points

* lint

* Create fast-toes-know.md
2023-04-13 21:33:08 +02:00
Adrien de PerettiandRiqwan Thamir 282e239dfc chore(medusa): Migrate price list repository (#3725)
* chore(medusa): Migrate price list repository

* Create grumpy-cars-tease.md

* fixes

* fix

* fix

* cleanup

---------

Co-authored-by: Riqwan Thamir <rmthamir@gmail.com>
2023-04-08 18:54:08 +02:00
Adrien de Peretti 1a60c6f58d fix(medusa): Throw on line item generation if variant does not have a price (#3766) 2023-04-08 18:32:59 +02:00
Adrien de Peretti 60abb91b7c chore(medusa): Migrate payment collection repository api (#3724)
* chore(medusa): Migrate payment repository api

* Create fresh-ties-hide.md
2023-04-05 12:39:46 +02:00
Adrien de Peretti eab2d22f7d chore(medusa): Migrate product tag repository (#3726)
* chore(medusa): Migrate product tag repository

* chore(medusa): cleanup

* chore(medusa): cleanup

* Create healthy-lies-eat.md

* chore(medusa): naming

* fix repo
2023-04-05 12:39:28 +02:00
Adrien de Peretti 4d69d8ef6a chore(medusa): Migrate product type repository (#3727)
* chore(medusa): Migrate product type repository

* Create pink-socks-brake.md
2023-04-05 12:39:15 +02:00
Adrien de Peretti 914d57336b chores(medusa): cleanup registrations life time (#3699) 2023-04-05 12:15:44 +02:00
Adrien de Peretti 4488ec6852 fix(medusa): Ignore categories seeding for sqlite (#3713) 2023-04-04 17:33:49 +02:00
Adrien de Peretti dae8da1099 fix(admin): Duplicate product without prices (#3706)
* fix(admin): Duplicate product without prices

* Create honest-ways-eat.md
2023-04-04 16:04:31 +02:00
Adrien de Peretti e5a2e9c8d2 fix(medusa): circular loading (#3705) 2023-04-04 16:02:35 +02:00
Adrien de PerettiandOliver Windall Juhl d886430bf8 fix(medusa): Rounding issues on line item adjustments (#3446)
* chores(medusa): Attempt to fix discount rounding issues

* add migration

* update entities

* apply multipler factor properly

* fix discount service

* WIP

* fix rounding issues in discounts

* fix some tests

* Exclude raw_discount_total from responses

* fix adjustments

* cleanup response

* fix

* fix draft order integration

* fix order integration

* fix order integration

* address feedback

* fix test

* Create .changeset/polite-llamas-sit.md

* remove comment

---------

Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
2023-03-29 11:04:41 +02:00
Adrien de Peretti 7f120e576b chore: Merge master to develop and manage conflict (#3570) 2023-03-29 10:11:32 +02:00
Adrien de Peretti b9c6c3d059 fix(medusa-payment-paypal): Missing typescript dev dependency (#3609) 2023-03-28 19:20:39 +02:00
5307408894 feat(medusa-payment-paypal): Migrate to the new payment processor API (#3414)
* feat(medusa-payment-paypal): Migrate to the new payment processor API

* WIP

* WIP

* WIP unit tests

* WIP

* unit tests

* fix package.json

* yarn

* cleanup

* address feedback 1/2

* Start to implement a new Paypal SDK

* cleanup

* finalise sdk

* cleanup

* fix push missing file

* rename sdk methods

* unit test the http client

* WIP

* fix http client

* Create .changeset/empty-melons-eat.md

* refactor tests

* fix quote

* fix options

* cleanup

* do not retry auth

* WIP

* retry mechanism max attempts

* use both old and new options

* fix capture

* remove totals fields

* add missing method

* cleanup

* fix current tests

* authorize should update the data with the fresh order

* remove comments

* fix tests

* Update packages/medusa-payment-paypal/src/core/paypal-http-client.ts

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

* fix unit tests

* update changeset

---------

Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
Co-authored-by: Riqwan Thamir <rmthamir@gmail.com>
2023-03-28 13:49:09 +02:00
Adrien de Peretti 4a7bdc917a fix(event-bus-local): Error handling (#3575)
**What**

The error handling was applied on the emit, which always succeed. On the other hand, the `on` which calls the handler, was not handling any errors and therefore crashed the server
2023-03-24 13:49:29 +00:00
Adrien de Peretti 98fe8fd00a fix(medusa): Variant update should include the id for the listeners to be able to identify the entity (#3539)
* fix(medusa): Variant update should include the id for the listeners to be able to identify the entity

* fix unit tests

* Create brave-seahorses-film.md
2023-03-21 16:15:05 +01:00
Adrien de Peretti fa4049cb51 feat(medusa): Improve performance of Products domain (#3417)
* feat(medusa): Improve product update performances

* fix tests and update

* update mock repo

* improve repo

* cleanup

* fix

* cleanup + bulk emit + unit test fix

* improvements

* improve

* fix unit tests

* fix export

* fix product update handler

* enhance mock repo

* fix import integration

* fix end point tests

* revert mock repo product variant

* fix unit

* cleanup

* cleanup

* address feedback

* fix quotes in tests

* address feedback

* Create new-tips-mate.md

* use types
2023-03-15 17:05:43 +01:00
Adrien de Peretti f0a1355feb feat(medusa): Bulk emit events (#3407) 2023-03-13 15:28:51 +01:00
Adrien de Peretti 601d20e7ab chores(medusa): Improve draft order creation perf flow (#3431) 2023-03-09 16:17:41 +01:00
Adrien de Peretti 53eda215e0 fix(medusa): Issue when ordering with multiple columns (#3385)
**What**
No true fix due to the same issue as [here](https://github.com/typeorm/typeorm/issues/6294) but at least the pagination works again. The ordering can't be applied on multiple columns/relation as it produce the wrong SQL.

FIXES CORE-1193
2023-03-08 12:37:18 +00:00
Adrien de Peretti 84e4489683 chore(medusa): Little improvement in draft order creation (#3374)
**What**
Only call line item service create once, instead of twice.
2023-03-07 19:10:53 +00:00
Adrien de Peretti 33c6ccf059 fix(medeusa): Transform query includes options should only be added to allowed props if there is already at least one allowed props (#3362)
**What**
when `fields` only contain includes options, it should return the entire object plus the include options. If the fields contains the included options + other fields, it should only return the requested fields + the included options
2023-03-07 11:52:14 +00:00
Adrien de PerettiandOliver Windall Juhl d6b1ad1ccd feat(medusa): Performance improvement of DraftOrder creation (#3350)
* chore(medusa): Improve draft order creation

* cleanup

* fix unit tests

* fix unit tests 2

* Create beige-ties-hunt.md

* cleanup feedback

---------

Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
2023-03-02 18:03:04 +01:00
Adrien de PerettiandOliver Windall Juhl f033711ad6 feat(medusa): Add Lifetime support on project/plugin services (#3349)
* feat(medusa): Add Lifetime support on project/plugin services

* Create kind-dogs-argue.md

---------

Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
2023-03-02 16:33:11 +01:00
Adrien de PerettiandOliver Windall Juhl e143a86976 fix(medusa): Plugin repository loader (#3345)
* fix(medusa): Plugin repository loader

* Create brave-goats-pay.md

---------

Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
2023-03-01 18:14:36 +01:00
Adrien de Peretti b458615ed5 fix(medusa): Delete all payment sessions when cart total is 0 (#3346)
* Fix(medusa): On cart total amount at 0 the non initialised payment sessions are not delete

* fix test

* Create good-crews-pull.md
2023-03-01 13:22:25 +01:00
Adrien de Peretti 589d1c09b0 feat(medusa-payment-stripe): Stripe PaymentProcessor implementation (#3257) 2023-02-28 18:44:24 +01:00
Adrien de PerettiandOliver Windall Juhl cbbf3ca054 fix(medusa): Clean response data usage for admin and store fields/expand (#3323)
* fix(medusa): Clean response data usage for admin and store fields/expand

* cleanup

* Create mighty-ads-fold.md

* fix integration

* fix integration

* refactor transform query and cleanup

* fix missing re naming

* Update packages/medusa/src/api/middlewares/transform-query.ts

---------

Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
2023-02-28 09:48:08 +01:00
Adrien de Peretti 5301a1e9d6 chore(medusa): Revert AbstractPaymentService deprecation (#3298) 2023-02-21 20:40:40 +01:00
Adrien de Peretti d11ab924b8 feat(medusa): Configurable returnable_items on order decorate totals (#3276) 2023-02-21 14:48:49 +01:00
Adrien de PerettiandOliver Windall Juhl f43e9f0f20 feat(medusa): Load PaymentProcessors + integrate in PaymentProviderService (#2978)
* feat: Add payment process support into the loader and payment provider

* WIP

* feat: continue payment provider alignment

* fix tests and defer payment service resolution

* continue to add support to payment provider

* continue to add support to payment provider

* fix fixtures

* chore: add updateSessionData unsupported error

* chore: Adress feedback

* chore: Adress feedback

* chore: fix default loader

* cleanup

* cleanup

* fix unit tests

* Create purple-sloths-confess.md

* address feedback

* minor changes

* fix unit test

---------

Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
2023-02-21 09:48:32 +01:00
Adrien de PerettiandOliver Windall Juhl 46547f29c7 chore(medusa): Improve store list products (#3252)
* chore(medusa): Improve list products by 46.5 percents

* fix handler

* todo's

* Create tricky-terms-wash.md

---------

Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
2023-02-20 12:45:05 +01:00
Adrien de Peretti aefe5aa133 feat(medusa): Expose an activeManager_ getter in TransactionBaseService (#3256) 2023-02-16 10:26:23 +00:00
Adrien de PerettiandOliver Windall Juhl 5e0273a370 chore(medusa): New totals calc. in Swap creation (#3191)
* feat(medusa): Cleanup swap creation flow

* revert test and package

* fix unit tests

* fix swap seeder that does not include the tax lines on the return line item

---------

Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
2023-02-14 10:52:45 +01:00
Adrien de Peretti 4cb44a3a2e fix(medusa): Discount allocation precision issues (#3244) 2023-02-13 17:22:18 +01:00
Adrien de Peretti bbbb3d8882 fix(medusa): Missing withTransaction on update in get-cart.ts (#3246) 2023-02-13 16:30:46 +01:00
Adrien de Peretti a2cc084db8 fix(medusa): Missing withTransaction on calculateDiscountForLineItem (#3247) 2023-02-13 16:29:11 +01:00
Adrien de Peretti eee9283818 feat(medusa): Allow empty fields/expand (#3220) 2023-02-09 18:05:56 +01:00
Adrien de Peretti 8c5219a31e chore: Update ignored files for npm (#3217) 2023-02-09 17:25:14 +01:00
Adrien de Peretti 6e443dc708 feat(medusa): Improve addShippingMethod on store cart route (#3222) 2023-02-09 16:55:40 +01:00
Adrien de Peretti bfa33f444c fix(medusa): Applying Discounts (with Conditions) on DraftOrders and Carts (#3197) 2023-02-08 19:01:23 +01:00
Adrien de Peretti ce866475b4 chore(*-payment-*): Cleanup PaymentProvider plugins (#3011) 2023-02-07 12:43:24 +01:00
Adrien de Peretti 82da3605fb feat(medusa-payment-stripe): Avoid unnecessary customer update if the stripe id already exists (#3046) 2023-02-06 14:25:02 +01:00
Adrien de PerettiandOliver Windall Juhl dc156861d4 fix(medusa): ShippingOption type on listAndCount (#2040)
**What**
Fix typing issue

Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
2023-02-06 13:00:32 +00:00
Adrien de Peretti e581d3bd90 chore(integration-tests): Flaky tests (#3126) 2023-01-27 17:45:54 +01:00
Adrien de Peretti 8c08d00319 fix(medusa): Legacy total service to accept custom items (#3027) 2023-01-16 09:57:01 +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
Adrien de Peretti b3e4be7208 fix(medusa): Draft order totals not working with custom items (#3008) 2023-01-13 13:52:09 +01:00
Adrien de Peretti 6239fa0704 feat(medusa): Migrate setPaymentSession to use new session flow (#2982)
**What**
When selecting a payment session, we do not necessarily run setPaymentSessions. manage the previously selected session.m accordingly.
2023-01-11 10:43:54 +00:00
Adrien de Peretti a2df11fc10 fix(medusa-payment-manual): Correct wrongly used input data (#2979) 2023-01-10 18:23:24 +01:00
Adrien de Peretti cac81749ea feat(medusa): Update payment session management (#2937) 2023-01-10 16:33:24 +01:00
Adrien de Peretti 4a50786fbc feat(medusa): Introduce Payment Processor API (#2737) 2023-01-10 12:15:42 +01:00
Adrien de PerettiandOliver Windall Juhl 1817b810fc fix(medusa): Cancel order missing refunds relation (#2976)
**What**

The order cancelation does not include the refunds relation. It means that the check of the length of the refund is never true and therefore no errors are thrown if the order contains the refunds.

**How**

Add the refunds relation and tests

FIXES CORE-976

Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
2023-01-10 09:38:59 +00:00
Adrien de Peretti 28bec599ae fix(medusa): Repository util mention of entity specifics (#2965) 2023-01-09 14:18:55 +01:00
Adrien de Peretti e4af968531 fix(medusa): Custom repository take/skip when called without relations (#2962)
**What**
The actual behavior is that the skip/take is applied in a first query returning the correct number of results. When there is no relations, we are calling findByIds with the previously retrieved ids, but we also pass skip/take which means that no result are returned after the first increment of the skip.

The skip/take should not be applied in that case as it has already been applied.

FIXES CORE-970
2023-01-09 09:54:25 +00:00
Adrien de Peretti baeacd1cc5 feat(medusa): Disable subscriber when no search engine is installed (#2958) 2023-01-07 15:58:06 +01:00
Adrien de Peretti 3d200c41f9 chore: refactor payment collection setPaymentSession (#2928)
**What**

Only use `setPaymentSessionsBatch` in `setPaymentSession` to reuse the logic as it is the same behavior. One for a unique session and the other one for multiple sessions.
This refactoring reduce the risk of introducing bugs when working around payment session if it needs to be changed (which is currently happening as part of the payment refactoring) and having to change it in less places instead of more and more places
2023-01-05 15:22:12 +00:00
Adrien de Peretti 463f83ffdd feat(medusa): Ordering products on retrieval (#2815)
**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
2022-12-22 10:33:53 +00:00
Adrien de Peretti e27b1940c7 fix(medusa): Include items.variant relation in order calculation (#2869)
**What**

When an order require to decorate the totals, the variant relation should be added

FIXES CORE-930
2022-12-22 09:32:49 +00:00
Adrien de Peretti c8724da503 feat(medusa,medusa-payment-stripe): Move database mutation from plugin to core (#2743)
**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
2022-12-19 14:37:35 +00:00
Adrien de Peretti 5e4decbc1c fix(medusa): Batch job not saving the errors properly (#2812) 2022-12-16 20:13:53 +01:00
Adrien de PerettiandSebastian Rindom 0fa5042e35 feat(medusa): CSV formatter accounts for comma and semicolon (#2789)
Co-authored-by: Sebastian Rindom <skrindom@gmail.com>
2022-12-15 14:06:49 +01:00
Adrien de PerettiandOliver Windall Juhl 7cced6006a fix(medusa-core-utils): getConfigFile typings (#2783)
* fix: getConfigFile typeings

* Create brave-apes-carry.md

Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
2022-12-14 19:35:16 +01:00
Adrien de Peretti 71b536e01e chore(medusa): Replace inline Redis cache in favour of the CacheService (#2802)
* chore: Replace all usage of redis for the cache in favour of the cache service

* Create four-bugs-mate.md

* chore: missing new line
2022-12-14 18:11:10 +01:00
Adrien de Peretti b5d6682db6 feat(medusa): Allow regexp in CORS configuration (#1935) 2022-12-12 19:24:37 +01:00
Adrien de Peretti e63777e3c5 fix(medusa): Creating tax lines in cart completion strategy (#2761) 2022-12-12 18:28:41 +01:00
Adrien de Peretti 424efff919 feat(medusa): Allow to assign a Collection to a Product on import (#2764) 2022-12-12 17:10:03 +01:00
Adrien de Peretti d68e81fb3d fix(medusa): Update line item adjustments upon cart discount removal (#2751)
**What**

When a discount is deleted from a cart, the line item adjustments must be refreshed. Now, the cart service `removeDiscount` includes updating the adjustments.

**Tests**

**Add a new integration test which:**
- create a cart with a discount 
- add a line item
- validate the adjustments
- remove the discount
- check that the adjustments are not present anymore

**Update unit tests**
The actual tests cases now check that the adjustments repository is called when needed

FIXES CORE-890
2022-12-12 09:53:40 +00:00
Adrien de Peretti 42d9c7222b feat(medusa): Performance improvements of Carts domain (#2648)
**What**

I have created a new method on the cart service which is `addLineItems`, allowing a user to add one or multiple items in an optimized way. Also updated the `generate` method from the line item service which now also accept a object data or a collection of data which. Various places have been optimized and cache support has been added to the price selection strategy.

The overall optimization allows to reach another 9000% improvement in the response time as a median (Creating a cart with 6 items):

|   | Min (ms)  | Median (ms)  | Max (ms)  | Median Improvement (%)
|---|:-:|---|---|---|
| Before optimisation  | 1200  | 9999 | 12698  |  N/A
| After optimisation | 63  | 252  | 500  | 39x
| After re optimisation | 56 | 82  | 399  | 121x
| After including addressed feedback | 65 | 202  | 495  | 49x

FIXES CORE-722
2022-12-07 14:39:12 +00:00
Adrien de Peretti 1b21af87ab chore(medusa-core-utils): Migrate to TS (#2670) 2022-12-05 10:21:04 +01:00