Commit Graph
100 Commits
Author SHA1 Message Date
Philip Korsholm 24bb26b81a Feat(authentication): username password provider (#6052) 2024-01-23 09:04:22 +00:00
Philip Korsholm 2b9f98895e Feat(modules-sdk): Run hooks on application start (#6111)
**What**
- run `onApplicationStart` hook when starting modules
2024-01-17 10:46:44 +00:00
Philip Korsholm f065581736 Feat(authentication): Load auth providers (#6023)
* initial providers loader implementation

* registerAdd providers

* remove comment

* remove comment
2024-01-09 10:02:02 +01:00
Philip KorsholmandOli Juhl 479a8b82a9 feat(authentication, types): Create authentication entities and services (#5979)
* create authentication entities

* ensure hashes are not returned

* re-add integration test argument

* update filterableprops

* update type

* pr feedback

* update serialization

* move finding existing entities and validation to service layer

* update types

* update models

* update user model

* pr feedback

* fix build

* pr feedback

* update integration test fixtures

---------

Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
2024-01-08 09:50:12 +01:00
Philip Korsholm 3550750975 feat(pricing, types, utils): Soft delete pricing entities (#5858) 2024-01-04 09:02:49 +01:00
Philip Korsholm d16d10619d Feat(medusa-test-utils, utils, pricing, product, link-modules): upgrade mikro orm version to latest (#5985)
* update mikro-orm version

* add changeset

* update product tests

* add optional number serializer util

* upgrade cart mikro-orm versions

* clean up test
2024-01-02 17:11:55 +01:00
Philip Korsholm c1c470e6b8 fix(medusa, pricing, types): pass dates as Date-objects rather than strings to the pricing module (#5768)
* init

* remove date string validator;

* add transformOptionalDate transformer to api

* move type conversion to the datalayer

* fix final module integration test

* update arrow-function

* make string optional

* move work to utils

* make check for value exists

* move util back to pricng

* change utils

* refactor get-iso-string

* fix build

* flip transform condition

* add null check for isDate

* feat(pricing): Separate Pricing Module internal types from `@medusajs/types` (#5777)

* create types for pricing repositories

* create RepositoryTypes input

* add service types

* use models for repository types

* fix build

* update types to match interface types

* add aliases

* types instead of moduletypes

* move repository to types for pricing module

* add changeset

* fix merge error

* fix conflict

* fix build

* re-add validation of dates in updatePriceLists_
2023-12-21 08:29:41 +01:00
Philip Korsholm 6d1e3cc028 feat(types,module-sdk): setup authentication module skeleton (#5943)
**What**
- add authentication module skeleton
2023-12-21 06:56:20 +00:00
Philip Korsholm 56b07ed0cf feat(medusa): Update shipping option price type (#5895)
**What**
- allow updates to shipping option price type
- Clean up the use of strings in the api validation

Fixes #5824
2023-12-15 10:12:43 +00:00
Philip Korsholm e4bfa6c88a fix(medusa): throw proper error when product doesn't exist w/ key header (#5745)
**What**
- ensure that an error is raised properly if the requested product doesn't exist and a publishable-key header is set

**Why**
- previously endpoints would hang if the product didn't exist and requests would time out


closes #5724
2023-11-28 10:24:50 +00:00
Philip Korsholm de8f748674 fix(link-modules, utils): remove limits on queries when primary-key is provided (#5732) 2023-11-27 15:42:25 +00:00
Philip Korsholm 3bcf08c0cb fix(admin-ui): inventory item deletion when removing product (#5727) 2023-11-27 13:42:55 +00:00
Philip Korsholm 18afe0b9ad Fix(medusa, inventory, stock-location, types, utils): Modules sdk build query (#5713)
* remove defaults

* take 2

* works now

* add changeset

* pricing module and pricing service list take null updates

* update handlers

* update product module service with take:null where relevant

* no spread

* note to self:default offset should be 0, not 15
2023-11-27 10:17:42 +00:00
Philip Korsholm aa6c4cbac5 fix(medusa): pricing module list prices return type (#5715) 2023-11-26 16:30:21 +00:00
0df1c7d427 fix(pricing, types): update calculatePrices return type to match actual type (#5709)
* initial type fix

* add changeset

* update changeset

* update tsdocs

---------

Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
Co-authored-by: Riqwan Thamir <rmthamir@gmail.com>
2023-11-24 17:12:34 +00:00
Philip Korsholm 712c4496ce fix(medusa): Update default relations in admin for list-product from module 2023-11-24 12:50:42 +00:00
Philip Korsholm 02ea9ac3ac feat(admin-ui): Delete pricing forms from edit + create variant modals (#5676) 2023-11-23 15:31:32 +00:00
Philip KorsholmandRiqwan Thamir a39ce125cc fix(product, types, workflows): Update product variant workflow (#5668)
**What**
- Fix issues with update-variant workflow: 
  - other variants than the updated variant are no longer removed 
  - options are updated properly


Co-authored-by: Riqwan Thamir <5105988+riqwan@users.noreply.github.com>
2023-11-23 14:35:01 +00:00
Philip Korsholm dc5750dd66 feat(medusa,types,workflows,utils,product): PricingModule Integration of PriceLists into Core (#5536) 2023-11-21 17:42:37 +00:00
Philip Korsholm 9ff22110a6 fix(medusa): Add inventory decoration for cart endpoints (#5187)
**What**
- decorate item totals for `cart.item.variant` when adding a line-item and retrieving a cart

closes #5181
2023-10-31 09:55:30 +00:00
Philip Korsholm e346be3eca fix(integration-tests): Restore integration redis-url (#5502) 2023-10-31 09:04:03 +01:00
Philip Korsholm 4d52082bf0 feat(medusa): variant creation with prices in productservice.create (#5410) 2023-10-30 17:22:57 +01:00
148f537b47 feat(medusa): integrate pricing module to core (#5304)
* add pricing integraiton feature flag

* init

* first endpoint

* cleanup

* remove console.logs

* refactor to util and implement across endpoints

* add changeset

* rename variables

* remove mistype

* feat(medusa): move price module integration to pricing service (#5322)

* initial changes

* chore: make product service always internal for pricing module

* add notes

---------

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

* nit

* cleanup

* update to object querying

* update cart integration test

* remove uppercase currency_code

* nit

* Feat/admin product pricing module reads (#5354)

* initial changes to list prices for admin

* working price module implementation of list prices

* nit

* variant pricing

* redo integration test changes

* cleanup

* cleanup

* fix unit tests

* [wip] Core <> Pricing - price updates  (#5364)

* chore: update medusa-app

* wip

* get links and modules working with migration

* wip

* chore: make test pass

* Feat/rule type utils (#5371)

* initial rule type utils

* update migration script

* chore: cleanup

* ensure prices are always decorated

* chore: use seed instead

* chore: fix oas conflict

* region id add to admin price read!

---------

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

* pr feedback

* create remoteQueryFunction type

* fix merge

* fix loaders issue

* Feat(medusa, types, pricing): pricing module migration script (#5409)

* add migration script for money amounts in pricing module

* add changeset

* rename file

* cleanup imports

* update changeset

* add check for pricing module and ff

* feat(medusa,workflows,types): update prices on product and variant update (#5412)

* wip

* chore: update product prices through workflow

* chore: cleanup

* chore: update product handler updates prices for variants

* chore: handle reverts

* chore: address pr comments

* chore: scope workflow handlers to flag handlers

* chore: update return

* chore: update db url

* chore: remove migration

* chore: increase jest timeout

* Feat(medusa): update migration and initDb to run link-migrations (#5437)

* initial

* loader update

* more progress on loaders

* update integration tests and remote-query loader

* remove helper

* migrate isolated modules

* fix test

* fix integration test

* update with pr feedback

* unregister medusa-app

* re-register medusaApp

* fix featureflag

* set timeout

* set timeout

* conditionally run link-module migrations

* pr feedback 1

* add driver options for db

* throw if link is not defined in migration script

* pass config module directly

* include container in migrate command

* chore: increase timeout

* rm redis from api integration tests to test

* chore: temporarily skip tests

* chore: undo skips + add timeout for workflow tests

* chore: increase timeout for order edits

* re-add redis

* include final resolution

* add sharedcontainer to medusaapp loader

* chore: move migration under run command

* try removing redis_url from api tests

* chore: cleanup server on process exit

* chore: clear container on exit

* chore: adjustments

* chore: remove consoles

* chore: close express app on finish

* chore: destroy pg connection on shutdown

* chore: skip

* chore: unskip test

* chore: cleanup container pg connection

* chore: skip

---------

Co-authored-by: Riqwan Thamir <rmthamir@gmail.com>
2023-10-30 14:42:17 +01:00
Philip Korsholm ca6e7dc350 feat(medusa): add pricing integration feature flag (#5287) 2023-10-13 13:35:06 +00:00
Philip Korsholm 90e24c593f Fix/pricing update fixes (#5275)
* fix for merging line items and quantity prices

* add changeset

* fix draft order unit_price calculation

* update test to reflect only quantity change

* fix unit tests

* update conditional
2023-10-03 11:20:49 +02:00
Philip KorsholmandOli Juhl 2b91049f58 fix(medusa): quantity prices for line item updates (#5137)
* initial code push

* update metadata and only merge if the existing line item allows merging

* update should_merge check

* undo changes to taxrate service

* update results with unit pricing corresponding to the db values after update

* add should_merge property to line_item creation

* add should_merge property to line_item creation

* fix unit tests

* undo adding "should_merge" to create-line-item

* undo change to "addOrUpdateLineItem"

* :wqh_merge from generate method

* undo changes to unit tests

* revert to adding pricing in updateLineItem method

* update cart service test

* Create funny-radios-juggle.md

---------

Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
2023-09-28 14:26:58 +02:00
bc42b201ea feat(pricing): add price rule entity (#5050)
**What**
- add price-rule entity to pricing module

blocked by #4977 

Fixes CORE-1497

Co-authored-by: Riqwan Thamir <5105988+riqwan@users.noreply.github.com>
Co-authored-by: Adrien de Peretti <25098370+adrien2p@users.noreply.github.com>
2023-09-26 12:59:55 +00:00
edf90eecb4 feat(pricing) Add Price Set Rule Type (#4977)
* initial

* initial service

* update pricing module service

* add integration test for rule-type

* update pricing-module integration tests

* update pricing service interface

* feat(pricing): PriceSets as entry point to pricing module

* chore: add price set money amount

* chore: add price set money amount

* chore: change name of test

* chore: added changeset

* chore: use filterable props from money amount in price sets

* chore: update migrations

* test update integration test

* fix weird behavior

* Update packages/pricing/integration-tests/__fixtures__/rule-type/index.ts

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

* Apply suggestions from code review

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

* move rule-type to common

* chore: reset migration

* chore: remove incorrect conflicts

* chore: address review

* chore: remove ghost price list

* Apply suggestions from code review

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

* update id prefix

* use persist not persistAndflush

* rename key_value to rule_attribute

* more renaming

---------

Co-authored-by: Riqwan Thamir <rmthamir@gmail.com>
Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
2023-09-14 17:58:31 +02:00
5d10c46bb1 feat(medusa): Separate money amount and variant (#4906)
* initial changes

* working test

* final changes to product tests

* update integration tests

* update price list integration tests

* update integration tests

* update unit tests

* update plugin integration tests

* remove catch from integration test

* undo change

* add andWhere

* update upsertCurrencyMoneyAmount method

* undo line item changes

* undo changes

* update deprecated method

* Update packages/medusa/src/migrations/1692953518123-drop_money_amount_constraints_for_pricing_module.ts

Co-authored-by: Carlos R. L. Rodrigues <37986729+carlos-r-l-rodrigues@users.noreply.github.com>

* rename joinTable

* update with joinTable entity

* update load methods

* remove await create

* re-add context test

* update price list behavior for prices

* update price list snapshots

* re-add admin seeder

* pr feedback

* fix unit tests

* fix plugin integration tests

* initial review changes

* redo changes to variant creation

---------

Co-authored-by: Carlos R. L. Rodrigues <37986729+carlos-r-l-rodrigues@users.noreply.github.com>
Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
2023-09-13 13:26:20 +02:00
Philip Korsholm 2b078f06d9 fix(medusa): default sales channel for store variant endpoints (#4556)
* add changeset

* include default sales channel when querying variant endpoints

* make parameter optional

* update default values

* add integraiton tests
2023-09-11 14:05:47 +02:00
Philip Korsholm c9989529ed fix(medusa): Price selection strategy bug with customer groups without customers (#4578)
* change up condition for joining price lists

* add changeset

* naming

* update tests
2023-07-24 11:10:17 +02:00
Philip Korsholm 1304657133 fix(medusa-plugin-brightpearl): stacking reservations (#4383)
**What**
- Change the way we create reservations in brightpearl

Previously we would create reservations 1 to 1 from medusa to brightpearl. This causes issues due to brightpearl collapsing reservations causing occasional double reservations. 
i.e. this update would allocate 4 stock for the order row
```
{
	"products": [
		{
			"productId": "2713",
			"salesOrderRowId": "224688",
			"quantity": "2"
		},
		{
			"productId": "2713",
			"salesOrderRowId": "224688",
			"quantity": "2"
		}
	]
}
```

Instead what we do now is create the rows with reservation quantity based on total quantity reserved in medusa. This means that a reservation creation acts as a trigger to update the reservation in brightpearl, but not with any specific amount. Instead we calculate how much total is reserved and create that in brightpearl.
2023-07-19 07:38:29 +00:00
Philip Korsholm aae4b3ad37 feat(admin-ui): Always show currencies overview (#4541)
* move around featureflags

* add changeset
2023-07-18 17:05:10 +02:00
Philip Korsholm d184d23c63 Feat/bulk operations for inventory service (#4503)
* initial push

* bulk delete reservations by location ids

* add method to interface (not implemented yet)

* bulk update

* delete reservations by location id bulk

* add create bulk for inventory item

* refactor attach inventory item method

* add changeset

* verbose false

* method override instead of multiple methods

* change up method signature

* redo changes when updating interface

* update createInventoryLevel method

* rename variables

* fix feedback

* return correct string array when emitting event

* refactor inventory service

* redo order changes

* snapshot

* move prep methods
2023-07-18 11:17:57 +02:00
Philip Korsholm 950a581690 fix(medusa-file-minio): Minio private bucket default (#4540)
* default "getUploadDescriptor" to private (similar to aws + digital ocean)

* add changeset
2023-07-17 10:50:06 +02:00
Philip KorsholmandOliver Windall Juhl 5b91a3503a feat(medusa): Add proper pagination (#4517)
* update method for listing regions

* add changeset

* fix unit tests

* listAndCount swaps

* add count calculation to list-returns

* swap integration test

* notes pagination

* pagination props for notifications

* listAndCount store regions

* fix nit

* fix note unit test

* update list-regions store unit test

* cleanup integration test

* rename introduced tests

---------

Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
2023-07-14 16:14:51 +02:00
Philip Korsholm 55db914151 fix(admin): Price input (#4530)
* initial fix for number inputs

* add changeset
2023-07-14 10:45:23 +02:00
Philip KorsholmandOliver Windall Juhl 56d1d326d4 Fix(medusa): Return correct region count (#4514)
* update method for listing regions

* add changeset

* fix unit tests

* fix nit

---------

Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
2023-07-13 08:59:26 +02:00
Philip Korsholm 0bfdc33a0b fix(admin-ui): Inventory nitpicking (#4316)
* minor fixes

* add changeset

* add search by sku placeholder
2023-06-16 08:28:07 +02:00
Philip KorsholmandOliver Windall Juhl 1d91fa4e08 fix(medusa-plugin-brightpearl): External ref split (#4295)
* order should be first part of external_ref

* add changeset

---------

Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
2023-06-15 19:41:44 +02:00
Philip Korsholm f8643361cd feat(admin-ui, medusa): Remove feature flag (#4267) 2023-06-15 16:55:29 +00:00
Philip KorsholmandOliver Windall Juhl 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
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
Philip Korsholm 869628bf4c feat(admin-ui): Rename allocation to reservation (#4133)
* rename allocation -> reservation

* add changeset

* edit-reservation modal

* rename
2023-06-05 16:28:29 +02:00
Philip Korsholmandolivermrbl 572280e1d1 fix(medusa-plugin-brightpearl): Add bp from sales channel of order where possible (#4160)
* add bp from sales channel of order where possible

* add changeset

* correct typo

* Add missing relations

---------

Co-authored-by: olivermrbl <oliver@mrbltech.com>
2023-06-05 16:01:01 +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 5c01b4e6b6 fix(inventory): Use correct table name in migration (#4155)
* whoops

* add changeset
2023-05-23 12:42:21 +02:00
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
Philip Korsholmandolivermrbl eba21d9c5f feat(medusa-plugin-contentful): Initial implementation of inventory module (#3991)
* cleanup contentful plugin

* initial implementation of inventory module in contentful

---------

Co-authored-by: olivermrbl <oliver@mrbltech.com>
2023-05-18 10:12:34 +02:00
Philip Korsholm 2945769497 fix(admin-ui): Allow backorder update on variants (#4051) 2023-05-16 17:28:45 +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
Philip Korsholm 353fc94e4f feat(admin-ui): Manage inventory toggle (#4041) 2023-05-08 18:44:27 +02:00
Philip Korsholm eff9f4c6f9 chore(medusa-plugin-contentful): Cleanup plugin (#3990) 2023-05-07 13:01:12 +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
Philip Korsholm d2443d83e6 initial create-swap with sales channel (#3998) 2023-05-03 17:03:33 +02:00
Philip Korsholm 9838723192 fix(medusa): Performance improvement for variant availability (#3921)
**What**
- refactor availability invocations to only do one call to the inventory module

@adrien2p would love to run through some tests of this with you and get your take on approach
2023-05-03 09:17:55 +00:00
Philip Korsholm 0c30d05cf3 fix(admin-ui): allocated badge for orders with statuses cancelled and archived (#3950)
* fix allocated badge for orders with statuses cancelled and archived

* add changeset
2023-05-01 09:48:51 +02:00
Philip Korsholm 4c5c4fd9b3 feat(admin-ui): Metadata for stock locations (#3955)
* initial update to stock locations

* add changeset
2023-05-01 08:39:29 +02:00
Philip Korsholm 4a85627435 feat(medusa, medusa-plugin-brightpearl): Inventory management for Brightpearl (#3192) 2023-04-23 12:50:19 +02:00
Philip Korsholm 2cc2acb6e0 fix(admin-ui): Add guard for null product_id (#3894)
* handle null variants differently

* add changeset
2023-04-21 18:02:37 +02:00
Philip Korsholm d302db2397 fix(admin-ui): Add guard for null product_id (#3894)
* handle null variants differently

* add changeset
2023-04-21 18:00:51 +02:00
Philip KorsholmandOliver Windall Juhl 2be144ff05 feat(medusa): Add purchasable prop on variants when setting availability (#3811)
* write integration tests

* update variant inventory decorator

* update types

* add changeset

* feedback comments

* add yaml schemas

* different oas approach

* pr feedback

* update oas

---------

Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
2023-04-20 08:54:26 +02:00
Philip Korsholm 0d0e9bf206 fix(medusa): Correct inventory quantity calculation (#3881)
* initial fix

* add changeset
2023-04-19 15:43:55 +02:00
Philip Korsholm 748833383f hotfix(medusa): Temporary multi-warehouse support for draft orders (#3665)
* remove reservations from draft order creation and show correct inventory

* add changeset

* add integration tests

* adjust inventory on payment if no inventory service is installed
2023-04-04 11:36:51 +02:00
Philip Korsholm 7f87c4f2c8 fix(medusa-react): Query key invalidation (#3686) 2023-04-03 17:29:48 +02:00
Philip Korsholm 0cca13779d Fix(medusa): stocked quantity counting when listing products (#3684)
* count stocked quantity correctly when listing products

* add integration test

* add changeset
2023-04-03 11:07:56 +02:00
Philip Korsholm a5ad6c0542 fix(admin-ui, medusa): Require name in create stock location (#3670)
* initial fix

* add changeset

* remove company from required fields
2023-04-02 11:57:41 +02:00
Philip KorsholmandOliver Windall Juhl eed784d7d0 fix(admin-ui, medusa): Allocations and fulfillments for variants without inventory items (#3660)
* fix fulfillment for order lines without inventory items

* fix summary card on order for variants without inventory items

* add changeset

* minor fixes

* remove variants without inventory items from allocate modal

* naming

* Update .changeset/kind-rings-wave.md

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

* remove line item indicator

* cleanup

---------

Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
2023-03-31 15:53:56 +02:00
Philip Korsholm 5e405be02c feat(medusa): Remove reservations for all line items when an order edit is accepted (#3544)
**What**
- Remove all allocations to line items once an order edit is confirmed

**Why**
- Since all line items of an order are discarded once an order edit is confirmed it will orphan the reservations causing inconsistencies with the stock
2023-03-30 09:56:10 +00:00
Philip Korsholm 999aeb116c fix(medusa): Fix hanging inventory item migration script (#3624) 2023-03-30 09:29:44 +02:00
Philip Korsholm 5fd74b38ae feat(medusa): remove created reservations on subsequent failure for cart completion (#3554)
**What**
- If cart completion fails after creating reservations, remove those reservations

**Why**
- To avoid hanging reservations if something fails at a later point
2023-03-29 17:03:53 +00:00
Philip Korsholm a7e3f2d343 feat(admin-ui): move inventory item fields into manage inventory modal (#3591) 2023-03-29 18:12:38 +02:00
Philip Korsholm 0d00903385 Fix(admin-ui): delete inventory item when variant is deleted (#3585) 2023-03-29 16:23:22 +02:00
Philip KorsholmandOliver Windall Juhl 0695ff642b fix(medusa, admin-ui): List all inventory levels (#3552)
* ensure that all levels are listed

* add changeset

* remove count from config

* update changeset version bump

---------

Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
2023-03-29 08:54:49 +02:00
d1a6aa5a90 fix(admin-ui): Create fulfillment (#3607)
* fix for create-fulfillment

* remove ff check

* add changeset

* Disable Create fulfillment button if no quantities fulfilled

---------

Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
Co-authored-by: Rares Capilnar <rares.capilnar@gmail.com>
2023-03-28 19:04:35 +02:00
Philip Korsholm e359d3f85b fix(medusa): Include inventory quantity when listing products (#3586)
* initial inclusion of quantities when listing admin prices

* add changeset

* rename variable

* add inventory service check when listing products

* update changeset version bump
2023-03-28 12:42:26 +02:00
Philip Korsholm feaf8d2e19 feat(admin-ui, medusa): Improve fulfillment validation (#3541)
* validate that an inventory level exists as well

* improve create-fulfillment handling in admin

* pass along location id rather than inventory level id

* add changeset

* remove dependency
2023-03-27 20:36:59 +02:00
Philip Korsholm 284578a67a Fix(admin-ui): multi warehouse minor fixes (#3540)
**What**
1. Enable the "create location" button in "create stock location" when a field has changed
2. Remove the "successful delete" toast when cancelling stock location creation
3. Properly update available and reserved when editing stock levels for variant
4. invalidate inventoryItemList queryKeys when changing location levels

**Why**
- we had the same bug with form validation when creating location levels as we had when editing them (1)
- when updating location levels, listing inventory items wouldn't show the newly added location levels (4)
- fixing ui bugs (2, 4)
2023-03-24 14:11:40 +00:00
Philip Korsholm 332a9b686b Feat(admin-ui): Request return flow warnings and errors (#3473)
**What**
- Add warning to request-return modal if no inventory level exists for the combination of items that is being requested 
- Block receive return at location with the same condition
2023-03-24 14:01:31 +00:00
Philip Korsholm 3171b0e518 feat(medusa): add if statement to idempotency-key initialize (#3555)
* add if statement to idempotency-key initialize

* add changeset
2023-03-22 21:34:50 +01:00
Philip Korsholm 55c5fba0d3 Feat(admin, medusa): add locations to claim and swap creation (#3522)
**What**
- Add location selection to claim and swap creation

Fixes CORE-1269
2023-03-20 14:05:37 +00:00
Philip Korsholm 026bdab05d Feat/fulfill swaps and claims with locations (#3518)
* re-add if statements

* initial implementation

* add changeset

* address feedback

* remove context param from create-fulfillment

* fix tests
2023-03-20 13:48:25 +01:00
Philip Korsholm ea2633bccf Fix/minor mw fixes (#3521)
**What**
- Fix stock locations quantities being shown as `undefined` and `NaN`
- Throw if updates to location levels are made with negative quantities through the api
- Show "allocated" in order summary for partially fulfilled orders

Fixes CORE-1268, CORE-1267, CORE-1265
2023-03-19 20:28:59 +00:00
Philip KorsholmandOliver Windall Juhl aed7805c0e fix(medusa): Error messages for reset tokens (#3514)
* initial

* reset password token handling

* Create .changeset/old-planes-cross.md

---------

Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
2023-03-19 10:52:10 +01:00
Philip KorsholmandOliver Windall Juhl 0d1b63d773 fix(medusa): Use get for creating fulfillments (#3498)
* use get

* changeset

* use set

* add tests

---------

Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
2023-03-16 19:03:36 +01:00
Philip KorsholmandSebastian Rindom 2e12f13565 Feat/show order as allocated (#3497)
**What**
- Add check to see if any items is unfulfilled when validating reservations for allocation indicator
- Add reservations refresh to onSuccess when creating a fulfillment to automatically update indicators on fulfillment



Fixes CORE-1248

Co-authored-by: Sebastian Rindom <7554214+srindom@users.noreply.github.com>
2023-03-16 15:49:00 +00:00
Philip Korsholm 02c77d7059 Fix/adjust reservations correctly (#3474)
**What**
- Adjust reservations correctly according to the following heuristic: 

adjustment by addition:  (i.e. positive quantity adjustment passed to the adjustment method)
- if a reservation for the line-item in the location exists add quantity to that
- if not create a new reservation

adjustment by subtraction: 
- if a reservation with the exact quantity exists, delete it and return
- if a reservation with a greater quantity exists, subtract from it and return 
- otherwise delete from reservations until a reservation with greater quantity than the remaining is found and adjust that with the remaining quantity OR there are no more reservations

Fixes CORE-1247
2023-03-16 09:47:54 +00:00
Philip Korsholm 38c8d49f46 Feat(medusa): handle reservation quantity update for line items (#3484)
**What**
-  Raise exception if a reservation is updated or created to have larger quantity than is unfulfilled for a line-item

Fixes CORE-1249
2023-03-16 09:15:39 +00:00
Philip Korsholm 3be6084dfd filter possible locations by inventory id (#3476)
**What**
- Ensure that an inventory level exists for a sales channel (which it will since this is invoked after `confirmInventory` that will validate that stock exists in the sales channel)

Fixes CORE-1225
2023-03-15 12:00:18 +00:00
Philip Korsholm 10bf05c147 Fix(inventory, stock-location): Remove orphaned location levels and reservations (#3460)
**What**
- Remove related inventory levels and reservation items when a stock location is removed

**How**
- Add bulk deletion methods for both inventory levels and reservation items to the inventory service api
- invoke both on location removal

Fixes CORE-1232
2023-03-15 09:12:46 +00:00
Philip KorsholmandSebastian Rindom fe9eea4c18 feat(medusa, admin-ui, medusa-react, medusa-js): Allow toggling of manage inventory (#3435)
**What**
- Toggle manage inventory in the inventory management modal

**How**
- Create/update/remove inventory item based on if `manage_inventory` is set and if an inventory item already exists
- Move all stock location updates to when the modal is submitted
- Add create-inventory-item endpoint in the core

Fixes CORE-1196

Co-authored-by: Sebastian Rindom <7554214+srindom@users.noreply.github.com>
2023-03-14 16:14:31 +00:00
Philip Korsholm 30a3203640 Fix(medusa): Missing location id on fulfillments (#3462)
**What**
- include location id when creating a fulfillment
- Allow location updates to reservations without passing along quantity

**Why**
- location_id on fulfillment was null after creation

Fixes CORE-1242, CORE-1243
2023-03-14 11:08:52 +00:00
Philip Korsholm 55a1f232a3 Feat(admin-ui, medusa): request return with location (#3451)
* add location_id to request_return endpoint to support "receive_now" returns

* changeset

* admin request return

* add locations to recieving returns

* cleanup test

* add check for inventory service
2023-03-14 10:35:59 +01:00
Philip Korsholm c16f387d1c fix(admin-ui): Edit allocation update (#3447)
**What**
- update the edit-allocation side-bar with the new table layout

Fixes CORE-1215
2023-03-13 14:08:05 +00:00
Philip Korsholm ef4a36794e Fix(admin-ui): border overflow (#3437)
**What**
- Fix border clipping out of component

Fixes CORE-1190
2023-03-09 17:28:00 +00:00
Philip Korsholm 80b95a2300 Fix(medusa, admin-ui): Order allocations (#3419)
**What**
- Fix `delete-reservation` endpoint to allow deletions of reservations 
- remove `inventory_item_id` from reservation update call to properly update reservation
- invalidate all list caches to properly update order overview after an allocation has been created
- Fix overlap for long product titles in edit-allocation-modal

Fixes CORE-1214
2023-03-09 17:07:49 +00:00
Philip Korsholm 784723a039 Fix/disable allocate button (#3426)
* remove allocate option from order editing summary if no further allocations can be made

* add changeset

* add minor button styles to badge component
2023-03-09 13:05:56 +01:00
Philip Korsholm 9f508c8bd8 fix(medusa): Create migration to ensure correct variant inventory column (#3384)
* add migration to ensure quantity is called required quantity

* add changeset
2023-03-08 15:27:43 +01:00