* init: copy PI files
* feat: add subscribers, refactor strategies folder
* wip: strategies integration tests package
* fix: rename
* wip: use redis
* wip: use redis deps, redis setup in local tests
* fix: naming collision, medusa config
* fix: typing, update apply changes for new event ordering and reimplement interface
* feat: make redis container run in integration tests
* fix: missing yarn lock
* feat: redis setup v2
* fix: setup server imports
* fix: a lot of integration issues
* fix: a lot of integration issues v2, transform tags, fix `ops` object parsing
* wip: parsing product options
* feat: ✨creating product and variants works, processing product/variant options, update schema
* fix: query keys, logic for finding existing variant
* fix: types
* feat: update product variant's options
* feat: parse MA records
* feat: creating/updating MA records, region detection, error handling
* feat: throw an error when creating an MA for nonexistent region
* refactor: remove unused methods
* refactor: use provided ids to track records, extract a couple of methods
* refactor: remove unused method
* refactor/wip: add initial comment for main methods
* refactor: replace usage of RedisJSON functionality with basic k/v api
* feat: async progress report
* types: define more precise types, cleanup
* feat: error handling
* feat: unit testing preprocessing
* feat: integration testing for CI, fix legacy bug where user is unable to create a variant if regional price is also sent as payload, add csv for integration tests
* fix: error throw for logs
* feat: add product endpoint snap
* refactor: remove log
* feat: add snaps, rebase
* refactor: add comments
* feat: snap update
* refactor: typo
* refactor: change error handler
* feat: Redis cleanup after the job is done
* testing :fix product unit test, remove integration snap, add inline object matcher
* testing: fix obsolete snaps
* refactor: update comments
* fix: rebase issue
* fix: rebase issue v2, remove log form an integration test
* fix: try reverting setup server
* fix: insert variants test
* refactor: don't pass tx manager, refactor methods
* refactor: don't use regionRepo, add `retrieveByName` to region repo
* refactor: don't use productRepo
* refactor: don't use `productVariantRepo`
* refactor: remove repo mocks from unit tests
* fix: product import unit tests
* feat: file cleanup on finalize, kill test logs
* wip: use files to persist ops instead of redis, move strategy class into `batch-job` folder
* fix: minio delete method, add file cleanup method to import, fix promise coordination
* fix: replace redis methods
* feat: store import ops as a file instead of Redis
* feat: test cleanup
* fix: change unit tests after Redis logic removal
* feat: use `results` for progress reporting, add `stat_descriptors` info after preprocessing, remove redis mentions
* feat: extract to other files, use directory from property, fix strategy loader to allow other files in `strategies` directory
* feat: fix instance progress counter
* fix: mock services types
* fix: update snaps
* fix: error handling stream, fix test file service name generation
* fix: remove dir with tmp files after testing
* fix: new yarn.lock after rebase
* fix: remove log, change object shape
* fix: add DI types
* refactor: remove container as a csv parser dep
* fix: remove seeder, change typings
* refactor: reimplement `retrieveByName` in the region service
* fix: unit tests typings
* fix: remove ts-ignore, complete typings for csv parser validators
* fix: don't keep track of progress since it is redundant and only keep track of `advancement_count`
* fix: return of the batch job seeder
* fix: update find region by name method
* fix: update types for service typings
* fix: update redis type usage
* fix: update unit tests file
* fix: unit tests
* fix: remove redis from integration test
* feat: refactor region retrieval by name
* feat: refactor product option update
* fix: remove repo import
* fix: return redis in test
* fix: handle stream error
* fix: tmp data cleanup
Co-authored-by: fPolic <frane@medusajs.com>
### What
Creating a swap on an order with a discount leads to an incorrect difference due.
**Scenario**
- Create a store with minimum 2 products (Prod A, Prod B)
- Create a discount that only works for Prod A
- Create an order for Prod A with the discount applied
- Create a swap between Prod A and Prod B
**Expected outcome**
We would expect the difference_due amount to come out to the sum of:
- -1 * (price of prod a - discount applied to prod a)
- price of prod b
**Actual outcome**
Instead the discount is applied across both products when calculating difference due. This results in a total that is instead the sum of:
- -1 * (price of prod a - discount applied to prod a)
- price of prod b - discount on prod b ignoring the condition
### How
Adds `line_item.adjustments` to relations in cart retrieval prior to setting the difference_due to car total
Fixes CORE-361
* docs: add link to install a Medusa server
* docs: update link to quickstart guide
Co-authored-by: Shahed Nasser <shahednasser@gmail.com>
Co-authored-by: Shahed Nasser <shahednasser@gmail.com>
**What**
Naive fix to allow carts with 100% discount to be completed.
**Why**
Discount total is wrongly calculated if `items` and `items.adjustments` is not included in relations upon retrieving the cart.
**Thought**
This is yet another example of why we need to rethink and refactor totals computation to not depend on what is provided by the user.
**What**
Simplify the transaction base service.
**How**
In fact, it does not need to be template and reduce the extensibility as the type is internally enforce. Now, the type is deduced by this which can be any derived class.