Commit Graph
100 Commits
Author SHA1 Message Date
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
06f567f446 fix(admin-ui): table action gap (#3386)
* add gap in table actions

* add changeset

* Update .changeset/light-frogs-smoke.md

Co-authored-by: Kasper Fabricius Kristensen <45367945+kasperkristensen@users.noreply.github.com>

---------

Co-authored-by: Kasper Fabricius Kristensen <45367945+kasperkristensen@users.noreply.github.com>
Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
2023-03-07 13:14:14 +01:00
Philip Korsholm 15f47baf56 Fix(admin-ui, medusa): stock location fixes (#3395)
**What**
- A series of minor fixes for admin-ui relating to managing stock locations: 
  - make "create location" `primary`
  - add delete prompt when cancelling creation if information has been input
  - avoid clipping focus border on country select when creating a stock location
  - allow removals of sales channels from stock locations 

Fixes CORE-1191, CORE-1192, CORE-1190, CORE-1189
2023-03-07 10:54:09 +00:00
Philip Korsholm 5d809a7a39 fix(medusa-payment-stripe): Add typescript to dev deps (#3371)
* add typescript dev devepency

* add changeset

* update yarn.lock
2023-03-04 15:37:32 +01:00
Philip KorsholmandOliver Windall Juhl 8424236799 fix(medusa): Update typescript types to reflect oas and return types (#3344)
* update typescript types to reflect oas and return types

* add changeset

---------

Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
2023-02-28 19:19:24 +01:00
Philip Korsholm d61d6c7b7f fix(medusa): Account for multiple inventory items in get-inventory (#3094)
* use pvi service method instead of inventory service method to get quantity for sales channel

* save a few invocations

* rename quantity

* omit || 0

* add changeset

* extract method for retrieving variant inventory quantity

* update pr with feedback
2023-02-28 17:09:20 +01:00
Philip Korsholm 5eb61fa0ef fix(medusa): update create fulfillment flow (#3172)
* update create fulfillment flow

* move transaction service creation close to where it's used

* integration tests

* fix feedback

* use transformBody

* add changeset
2023-02-28 16:28:11 +01:00
Philip KorsholmandOliver Windall Juhl a1e59313c9 feat(medusa, stock-location): Sales channel filtering when listing locations (#3324)
* only add ordering select if not already selected

* add integration test

* add changeset

* remove catch

* linting and suggestion from adrien

* add sales channel filtering when listing locations

* add changeset

* add exception back into sales channel location service

---------

Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
2023-02-28 10:41:59 +01:00
Philip Korsholm 0a02b70e59 fix(medusa): Reservation routes and VariantInventory type (#3328) 2023-02-26 13:42:16 +01:00
Philip Korsholm 08c8aa46c5 fix(medusa): Only add ordering select if not already present (#3319) 2023-02-26 13:08:06 +01:00
Philip Korsholm 8f4c84121b feat(medusa): Add inventory for variants (#2970)
* initial get-inventory impl

* add inventory management to create-variant

* update create-variant endpoint

* move if statement

* use middleware for module checking

* add endpoint to medusa-js

* export return type from get-inventory

* add jsdoc

* revert create variant

* rename variable

* initial setInventoryPattern for variant and product endpoints

* remove cache

* sort imports

* add sales channel info to inventory calculations

* add missing import

* remove promise.all from single promise

* update oas

* initial feedback

* checkout joinLevels from develop

* add variant middleware

* add comments
2023-01-24 11:10:33 +01:00
Philip Korsholm 9c4647383e Feat/reservations endpoints (#2995)
**What**
- add reservation endpoints: 
 - `create-reservation`
 - `update-reservation`
 - `delete-reservation`
 - `get-reservation`
 - `list-reservations`
 - `orders/create-reservation-for-line-item`
 - `orders/get-reservations`

Fixes CORE-979
2023-01-18 16:39:33 +00:00
Philip Korsholm 76d1752310 fix(medusa): Draft order inventory management (#3040)
* reserve quantities when creating a draft order

* only adjust quantities if a location is provided on a fulfillment

* initial fix for fulfillments

* changeset

* add check for inventory service when cancelling fulfillment

* update test-request with module loaders

* remove unused variable
2023-01-17 16:14:58 +01:00
Philip Korsholm 1dc79590b3 fix(medusa): Rename quantity to required quantity (#2963) 2023-01-11 19:21:05 +01:00
Philip Korsholm 16716f5a4f feat(medusa): Create fulfillment with location (#2931)
* remove duplicate key from oas

* changeset

* initial suggestion for adding locations to fulfillments

* update migration

* re-add functionality for removing entire reservations

* fix tests

* add location when adjusting reserved inventory of a line_item

* add changest

* handle multiple reservations for a product in the same channel

* confirm inventory in stock location previous to creating the fulfillment

* fix tests after updating create-fulfillment to confirm inventory prior to creating fulfillment

* remove bugged code

* initial validation

* initial changes for review

* chekcpoint

* update validate inventory at location

* redo some unwanted changes

* typing

* update snapshots

* redo change for eslintrc

* add eslint disable

* re-order methods in interface

* assert no_notification

* iterate one time less

* add test for validation of correct inventory adjustments in case of no inventory service installation

* ensure correct adjustments for order cancellations

* remove comment

* fix tests

* fix but with coalescing

* remove location id from confirm inventory

* don't throw when adjusting reservations for a line item without reservations

* move reservation adjustments to the api

* add multiplication for updating a reservation quantity

* move inventory adjustments from the service layer to the api

* delete reservation if quantity is adjusted to 0

* rename updateReservation to updateReservationItem

* update dto fields

* reference the correct fields

* update with transaction

* add jsdocs

* force boolean cast

* context-ize cancel and create fulfillment transaction methods

* undo notification cast

* update with changes

* refactor withTransaction to variable

* use maps

* fix service mocks
2023-01-09 14:44:34 +01:00
Philip Korsholm 077e4d9606 remove duplicate key from oas (#2953)
**What**
- remove duplicate oas key

**Why**
- oas generation fails when duplicate keys are present
2023-01-06 09:46:23 +00:00
Philip Korsholm a153289ba3 feat(medusa): Pass location upon receiving returns (#2949) 2023-01-05 19:09:27 +01:00
Philip Korsholm b9680b641f feat(medusa): Add ProductVariantInventoryService (#2883)
* add mw feature flag

* add services

* add types

* add module interfaces

* add interface export

* add models for mw

* to be ammended

* remove featureflag

* use correct count

* update cart completion strategy

* swap service conversion

* update return service

* update order service

* update claim service

* add exception to claim item

* update cart service

* add indicies

* add changeset

* nullable changes in store

* store model update

* fix unit tests

* remove old inventory service

* format integration test

* update snapshots

* remove old inventory service tests

* update snapshots

* remove old code

* option updates

* naming

* add jsdoc to pv inventory service

* rename class variables

* pr feedback

* rename option to context

* if(variant_id) instead of if(typeof varia...)

* update tests

* add jsdoc

* go for custom

* update code for readability
2022-12-30 11:30:04 +01:00
Philip Korsholm 90d774f563 tests(integration): Randomize option value name (#2918) 2022-12-29 18:15:10 +01:00
Philip Korsholm 645e0d0ec5 Feat(medusa): search orders by customer phone and name (#2913)
* add support for customer first- and last names and phone

* test for querying customer first_name, last_name and phone

* add customer as prop for querying orders

* polishing before pr

* changeset
2022-12-29 15:20:18 +01:00
Philip Korsholm 3f097b7987 allow module definitions to have no default package (#2878)
* allow module definitions to have no default package

* remove duplicated test

* update modulesresponse type
2022-12-22 14:51:24 +01:00
Philip Korsholm 37aaca0da4 feat(medusa): Extend Module Resolution configuration (#2864)
**What**
update module definitions in `ConfigModule` to support the following module configuration methods:
- none: defaults are loaded
- boolean `inventoryService: true|false`, if true the defaults are loaded, false throws if it's a required module, if the module is not required it's not loaded 
- string: `inventoryService: "..."`, treats the string as a path to the overriding module, (we dont handle the case where a string is given but the module is not overridable, we just load the default in that case)
- `ConfigurableModuleDeclaration = { resolve?: string, options?: Record } `, like plugins, options can be used to pass configs to the main service of the module, if not defined no options are passed. Resolve is like string, if defined it's used to look for a custom module, otherwise the default is loaded.

Testing: 
- Added unit tests for: 
  - `loaders/modules.ts`
  - `loaders/module-definitions/index.ts`

Fixes CORE-932
2022-12-22 12:20:57 +00:00
Philip Korsholm d8893d6b9f chore: Update release tag from staging to next (#2858) 2022-12-20 12:21:48 +01:00
Philip Korsholm 79cddc23da feat(medusa-file-s3): Allow all AWS options in config (#2809) 2022-12-20 10:01:30 +01:00
Philip Korsholm c16522d6ce feat(medusa): Add has_account to list-customers query params (#2811) 2022-12-16 12:16:34 +01:00