Commit Graph
100 Commits
Author SHA1 Message Date
Frane Polić 9b5e025863 fix: close create form on success (#7011) 2024-04-08 16:31:42 +02:00
Frane Polić 58c68f6715 feat(dashboard): Admin UI regions v2 (#6943) 2024-04-06 17:41:54 +02:00
Frane Polić 01759cae65 fix(region): update regions countries (#6970)
* fix: update regions countries

* fix: test case
2024-04-06 09:50:46 +02:00
Frane Polić e58e81fd25 feat(dashboard): admin 3.0 order refund form (#6850) 2024-04-01 10:55:42 +02:00
Frane Polić 9766266b97 fix(admin-next): admin v2 flag parsing and loading user data (#6843) 2024-03-27 18:18:48 +01:00
Frane PolićandKasper Fabricius Kristensen 2ae8eaa779 feat(dashboard) admin 3.0 return creation (#6713)
**What**
- request return flow

Co-authored-by: Kasper Fabricius Kristensen <45367945+kasperkristensen@users.noreply.github.com>
2024-03-22 16:57:18 +00:00
Frane Polić 189b03c485 feat(dashboard) admin 3.0 order edit (#6665)
**What**
- added Order Edit creation flow

**NOTES**
- since the state is managed on the server upon changing input / adding items a request is fired to update the edit
- on save we only confirm the edit

---

**TODO**
- [x] item removal functionality

---

https://github.com/medusajs/medusa/assets/16856471/01aa85ea-1fb1-4dff-9cf4-d8d79029c2cc
2024-03-20 07:54:22 +00:00
Frane PolićandKasper Fabricius Kristensen a1b4aff127 feat(dashboard): manage discounts conditions (#6620)
**What**
- forms for managing discount conditions

---

https://github.com/medusajs/medusa/assets/16856471/bb0b3fe8-fa60-479b-bc42-6db9d422bcdf





Co-authored-by: Kasper Fabricius Kristensen <45367945+kasperkristensen@users.noreply.github.com>
2024-03-15 11:56:23 +00:00
Frane Polić 39e73b2d2f feat(dashboard) admin 3.0 create discounts form (#6590) 2024-03-11 08:06:27 +01:00
Frane Polić fcb03d60ea feat(dashboard): Discounts details + edits (#6547)
**What**
- Discounts details page
- Edit discount details
- Edit discount configurations
- `ListSummary` component

**NOTE**
- conditions edit form will be implemented in a separate PR
- edit details from is missing metadata component which will be added later

---


https://github.com/medusajs/medusa/assets/16856471/c878af4a-48c2-4c45-b824-662784c7a139
2024-03-06 14:08:15 +00:00
Frane Polić 608c10383a feat(admin-next) discounts list page (#6490) 2024-02-27 12:33:19 +01:00
Frane Polić 8ff838970e fix(medusa): register logger when running migrations (#6415) 2024-02-21 13:28:58 +01:00
Frane Polić a6a4b3f01a feat(payment): provider service (#6308) 2024-02-12 20:57:41 +01:00
Frane Polić 2104843826 feat(payment): payment and session methods (#6138) 2024-02-06 13:40:22 +01:00
Frane Polić 3db2f95e65 feat: sales channel module (#5923) 2024-01-29 09:47:28 +01:00
Frane Polić d47e946496 feat(payment): PaymentCollection CRUD (#6124) 2024-01-22 11:04:46 +01:00
Frane Polić 6941627679 Merge pull request #6092 from medusajs/feat/payment-module-interfaces
feat: Payment module interface
2024-01-18 16:35:48 +01:00
Frane Polić 844a5d990c feat: Payment module models (#6065) 2024-01-18 15:50:56 +01:00
Frane Polić 491848bb45 Merge branch 'develop' into feat/payment-module-models 2024-01-18 14:41:24 +01:00
Frane Polić af61195aad Merge branch 'develop' into feat/payment-module-models 2024-01-18 14:19:18 +01:00
Frane Polić efdc59fd53 Merge branch 'develop' into feat/payment-module-models 2024-01-15 11:19:55 +01:00
Frane Polić 8472460f53 feat: Payment module package setup (#6059) 2024-01-11 16:41:40 +01:00
Frane Polić 6fc6a9de6a feat(medusa, link-modules): sales channel <> pubkey link (#5820) 2024-01-05 14:51:57 +01:00
Frane Polić fe007d01bd feat(medusa, link-modules): sales channel <> order link (#5810) 2024-01-03 14:07:54 +01:00
76332ca6c1 feat(medusa, link-modules): sales channel <> cart link (#5459)
* feat: sales channel joiner config

* feat: product sales channel link config, SC list method

* feat: migration

* fix: refactor list SC

* refactor: SC repo api

* chore: changeset

* feat: add dedicated FF

* wip: cart<>sc link and migration

* chore: changeset

* fix: update migration with the cart table constraints

* feat: populate the pivot table

* chore: remove relation from joiner config

* fix: constraint name

* fix: filter out link relations when calling internal services

* feat: product<> sc join entity

* fix: update case

* fix: add FF on in the repository, fix tests

* fix: assign id when FF is on

* fix: target table

* feat: product service - fetch SC with RQ

* feat: admin list products & SC with isolated product domain

* feat: get admin product

* feat: store endpoints

* fix: remove duplicate import

* fix: remove "name" prop

* feat: typeorm entity changes

* feat: pivot table, entity, on cart create changes

* feat: update carts' SC

* feat: cart - getValidatedSalesChannel with RQ

* feat: refactor

* wip: changes to create cart workflow

* fix: remove join table entity due to migrations failing

* fix: product seeder if FF is on

* feat: attach SC handler and test

* fix: env

* feat: workflow compensation, cart service retrieve with RQ

* fix: remote joiner implode map

* chore: update changesets

* fix: remove methods from SC service/repo

* feat: use remote link in handlers

* fix: remove SC service calls

* fix: link params

* fix: migration add constraint to make link upsert pass

* refactor: workflow product handlers to handle remote links

* fix: condition

* fix: use correct method

* fix: build

* wip: update FF

* fix: update FF in the handlers

* chore: migrate to medusav2 FF

* chore: uncomment test

* fix: product factory

* fix: unlinking SC and product

* fix: use module name variable

* refactor: cleanup query definitions

* fix: add constraint

* wip: migrate FF

* fix: comments

* feat: cart entity callbacks, fix tests

* fix: only create SC in test

* wip: services updates, changes to models

* chore: rename prop

* fix: add hook

* fix: address comments

* fix: temp sc filtering

* fix: use RQ to filter by SC

* fix: relations on retrieve

* feat: migration sync data, remove FF

* fix: revert order of queries

* fix: alter migration, relations in service

* fix: revert id

* fix: migrations

* fix: make expand work

* fix: remote link method call

* fix: try making tests work without id in the pivot table

* test: use remote link

* test: relations changes

* fix: preserve channel id column

* fix: seeder and factory

* fix: remove sales_channels from response

* feat: support feature flag arrays

* fix: cover everything with correct FF

* fix: remove verbose

* fix: unit and plugin tests

* chore: comments

* fix: reenable workflow handler, add comments, split cart create workflow tests

* chore: reenable link in the create mehod, update changesets

* fix: address feedback

* fix: revert migration

* fix: change the migration to follow link module

* fix: migration syntax

* fix: merge conflicts

* fix: typo

* feat: remove store sales channel foreign key

* fix: merge migrations

* fix: FF keys

* refactor: cart service

* refactor: FF missing key

* fix: comments

* fix: address PR comments

* fix: new changesets

* fix: revert flag router changes

* chore: refactor `isFeatureEnabled`

---------

Co-authored-by: Carlos R. L. Rodrigues <rodrigolr@gmail.com>
Co-authored-by: Riqwan Thamir <rmthamir@gmail.com>
2023-12-22 13:05:36 +01:00
Frane PolićandRiqwan Thamir 1d7888afca feat(medusa, link-modules): sales channel <> product module link (#5450)
* feat: sales channel joiner config

* feat: product sales channel link config, SC list method

* feat: migration

* fix: refactor list SC

* refactor: SC repo api

* chore: changeset

* feat: add dedicated FF

* feat: product<> sc join entity

* fix: update case

* fix: add FF on in the repository, fix tests

* fix: assign id when FF is on

* fix: target table

* feat: product service - fetch SC with RQ

* feat: admin list products & SC with isolated product domain

* feat: get admin product

* feat: store endpoints

* fix: remove duplicate import

* fix: remove "name" prop

* feat: refactor

* fix: product seeder if FF is on

* fix: env

* refactor: workflow product handlers to handle remote links

* fix: condition

* fix: use correct method

* fix: build

* wip: update FF

* fix: update FF in the handlers

* chore: migrate to medusav2 FF

* chore: uncomment test

* fix: product factory

* fix: unlinking SC and product

* fix: use module name variable

* refactor: cleanup query definitions

* fix: add constraint

* chore: rename prop

* fix: add hook

* fix: address comments

* fix: temp sc filtering

* fix: use RQ to filter by SC

* fix: add sc to filter to list

---------

Co-authored-by: Riqwan Thamir <rmthamir@gmail.com>
2023-12-15 13:43:00 +01:00
Frane PolićandRiqwan Thamir aba9ded2a3 feat(workflows): update product workflow (#4982)
**What**
- added "update product" workflow

Co-authored-by: Riqwan Thamir <5105988+riqwan@users.noreply.github.com>
2023-10-19 12:02:40 +00:00
Frane Polić 4dd11c8867 fix(admin-ui): modal pointer events (#5113) 2023-09-18 15:07:59 +02:00
Frane Polić 4710520c35 fix(admin-ui): fix template expression (#5103)
**What**
- use template instead of object in render
2023-09-17 20:08:14 +00:00
Frane Polić 4bf8acbdd4 fix(medusa): csv parser check match prop on column (#4913)
**What**
- if there is the `match` column with regex defined in the schema don't look up column definition by name
2023-08-31 09:38:52 +00:00
Frane Polić b7de679e9b feat(admin-ui): batch job completed notification (#4886) 2023-08-28 20:21:42 +02:00
Frane Polić 758f035c2f fix(admin-ui): delete customer group (#4893) 2023-08-28 19:05:31 +02:00
Frane PolićandOli Juhl 50798d1189 fix(admin-ui): currency input exception (#4888)
* fix: infer cell formatting

* chore: changeset

* Update friendly-months-attack.md

---------

Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
2023-08-28 16:58:34 +02:00
Frane Polić 0c7c2eeeab feat(admin-ui): refresh products when a BatchJob is completed (#4840) 2023-08-25 07:34:48 +00:00
Frane Polić 8b860416d2 feat(medusa): PriceListImportStrategy descriptive errors (#4842) 2023-08-23 21:39:34 +02:00
Frane Polić d8a6e3e0d8 feat(medusa-file-local): implement missing streaming methods (#4788) 2023-08-23 13:05:04 +02:00
Frane Polić edf9ed4e59 fix(medusa-interfaces, medusa-file-*): flag for streaming to a private bucket (#4771)
* wip: unify file service api

* fix: flag type

* fix: update Spaces service

* fix: S3/Spaces - default to private

* fix: MinIO `isPrivate` for `getPresignedDownloadUrl`, add `isPrivate` to `GetUploadedFileType`

* chore: changeset
2023-08-22 13:05:30 +02:00
Frane PolićandOli Juhl 4a448b68fd feat(admin-ui): bulk advanced selections + copy/paste (#4568)
* wip: bulk editor copy/paste

* feat: exit edit mode with "enter" press

* wip: arrow navigation + onEnter

* wip: 2D select + arrow navigation

* feat: arrow navigation and multiselect, tabs navigation and multiselect

* fix: region cols offset

* feat: 2d copy

* feat: 2d paste

* fix: trailing tab

* fix: borders

* feat: ensure consistent copy order

* fix: off by one col, pass `cmd` keypress

* feat: `cmd` select

* refactor: cleanup 1

* refactor: cleanup 2, utils

* fix: copy paste

* fix: copy paste indicator

* fix: reduce dashed border size

* fix: issue with leading empty cell

* feat: cp support 2 formats of content, notification on copy, remove dashed box

* fix: last empty cell case

* feat: buffer content edge cases

* refactor: remove log

* feat: past fill selected area

* feat: simplify copy-paste

* fix: throw error if textual cell is in the buffer

* Create eighty-zebras-grow.md

---------

Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
2023-08-14 21:37:12 +02:00
Frane PolićandOliver Windall Juhl bfc0ea5695 feat(admin-ui): Bulk Editor (#4516)
* wip: initial commit

* wip: modal layout

* wip: regions

* refactor: restructure, drag to fill logic wip

* fix: currency input, optimise table rendering on input change

* fix: pass edited amount to local cell state

* wip: cell based algo

* wip: row based algo

* feat: convert prices to human format initially

* feat: column fill

* fix: decimal formating

* feat: currency symbol, tax incl. indicator, formatting dropdown, drag indicator positioning

* fix: load all currencies

* wip: highlighting range selection

* feat: more optimal highlighting algo

* fix: coordinate click handlers, selection reset

* fix: resetting pointers on close

* feat: prefill regional prices

* feat: keypress features, persisting price change between edits

* fix: undo feature, add saving waring

* feat: update prices

* feat: notifications and prompts

* feat: use only store currencies

* feat: tax. incl tooltip

* fix: decimal formatting

* fix: correct decimal formatting when multiedit

* feat: save prompt with hidden columns check

* chore: changesets

* fix: push icon

* fix: feedback changes v1

* fix: remove span placeholder

* fix: simplify and optimise selection algo

* fix: scroll z index

* fix: truncate region headers

* feat: calculate first col width

* fix: don't show delete notification

* fix: utils check conditions

* fix: typo

* feat: new selection behaviour

* refactor: currency cell

* refactor: save prompt

* chore: changesets

* chore: cleanup

* chore: Update changeset

* fix: don't calculate first col with but rather cut product title to the longest variant if needed

* feat: add loader on save

* fix: very last cell setting undefined on first render

* fix: show confirmation exit prompt on "x" click

* Update packages/admin-ui/ui/src/components/organisms/product-variants-section/edit-prices-modal/utils.ts

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

---------

Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
2023-07-19 15:38:04 +02:00
Frane PolićandfPolic 1bd2e7a5be fix(admin-ui): flickering Timeline (#4231)
* fix(admin-ui): prevent Timeline flickering while loading

* chore: changesets

---------

Co-authored-by: fPolic <frane@medusajs.com>
2023-06-07 10:58:30 +02:00
Frane Polić db41995307 chore(utils): clean util package deps (#4146) 2023-05-26 13:20:12 +02:00
Frane PolićandfPolic 92f01cefbc fix(medusa): downgrade papaparse version (#4174)
* fix: downgrade `papaparse` version

* chore: changesets

---------

Co-authored-by: fPolic <frane@medusajs.com>
2023-05-25 20:26:58 +02:00
Frane Polić a8e73942e6 feat(medusa): handle product categories in import/export strategies (#3842)
**What**
- add ProductCategories to import and export strategies
- refactor ProductCategoriesService methods to use "retrieve_" pattern

---

RESOLVES CORE-1275
2023-05-08 08:58:11 +00:00
Frane Polić 0c58ead6d8 fix(medusa): Validate customer_id when completing a cart (#3967) 2023-05-07 13:12:06 +02:00
Frane Polić 88a224e42a fix(admin): display correct items in the timeline after OE (#3895) 2023-04-23 13:28:15 +02:00
Frane PolićandfPolic 78ff64e783 fix(medusa): validate customer for group discount (#3797)
* fix: validate customer for group discount

* fix: remove logger

* fix: add generated desc

* fix: add an integration test case

* refactor: update error message

* fix: typo

* refactor: move condition

---------

Co-authored-by: fPolic <frane@medusajs.com>
2023-04-11 14:16:18 +02:00
Frane PolićandfPolic 08f85fa33b fix(medusa): export product prices in human-readable format (#3739)
* fix: export product prices in human-readable format

* feat: add changesets

* fix: update snaps

* fix: update more snaps

---------

Co-authored-by: fPolic <frane@medusajs.com>
2023-04-07 09:59:28 +02:00
Frane PolićandfPolic 6f48cc57bc fix(admin-ui): "cancel fulfillment" notification text (#3750)
* fix: "cancel fulfillment" notification text

* fix: add changesets

---------

Co-authored-by: fPolic <frane@medusajs.com>
2023-04-06 15:45:54 +02:00
Frane PolićandfPolic c24c2a9732 fix(medusa-react): update customer hook payload type (#3752)
Co-authored-by: fPolic <frane@medusajs.com>
2023-04-06 15:42:55 +02:00
Frane PolićandfPolic 72b76bbd3c fix(admin-ui): display SC update notification (#3755)
Co-authored-by: fPolic <frane@medusajs.com>
2023-04-06 15:21:03 +02:00
Frane PolićandfPolic 91f0e01d0f fix(admin-ui): disallow creating OE if there is no changes (#3604)
* wip: fix modal

* refactor: revert log

---------

Co-authored-by: fPolic <frane@medusajs.com>
2023-03-28 14:56:07 +02:00
1ce3cc5ae4 feat(medusa): invalidate price selection caching within update request (#3553)
* feat: invalidate price selection caching on update

* feat: add `onVariantsPricesUpdate` to PriceSelectionStrategy

* fix: update units

* fix: import

* Create .changeset/tame-pillows-heal.md

* fix: address feedback

* refactor: make `onVariantsPricesUpdate` optional

---------

Co-authored-by: fPolic <frane@medusajs.com>
Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
2023-03-28 11:18:13 +02:00
Frane Polić bd199d7f44 fix(admin): OrderEdit display of difference due with refund (#3487)
**What**
- fix `difference_due` in the OE modal to show the correct difference a user has to pay 
- fix Timeline crashing due to returned line item being `undefined `(deleted after OE confirmation)

**Why**
We were taking into account `refunded_amount` when calculating "Difference Due"  and used the following formula: 
`orderEdit.total - paidTotal + refundedTotal`.
The issue here is that  `orderEdit.total` is "overpriced" for the amount of items that are returned/refunded already (i.e. we are charging the user again for the returned items).

The straightforward solution would be to subtract `refunded_total` from the `orderEdit.total` to get the total cost of items the user is actually getting after the edit.

`difference_due = (orderEdit.total - refundedTotal) - (paidTotal - refundedTotal ) =  orderEdit.total - paidTotal`

But if we have partially refunded returns, we would have the same problem of returned items priced into the total.
In that case, general solution should be something like:
`diff_due_display = orderEdit_total_of_items_user_is_getting - paid_total + refunded_total`

Would like to hear what you guys think!

---

FIXES CORE-1246
2023-03-24 16:59:15 +00:00
f831b7db37 fix(admin-ui): show failure reason for batch jobs (#3526)
* fix: display error messages for batch jobs

* feat: add changesets

* feat: tooltip size, load more jobs

---------

Co-authored-by: fPolic <frane@medusajs.com>
Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
2023-03-21 16:13:39 +01:00
a3a7ace0c0 fix(admin): draft order shipping details (#3500)
* wip: fix draft order shipping details screen

* fix: reset address, refactor and cleanup

* fix: use const

* Create .changeset/violet-sloths-train.md

* fix: required fields, reset province

---------

Co-authored-by: fPolic <frane@medusajs.com>
Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
2023-03-19 14:31:03 +01:00
Frane Polić f97b3d7cce feat(medusa): Cache modules (#3187) 2023-03-10 15:09:26 +01:00
Frane Polić 6c04624727 chore(medusa): remove PublishableAPIKeys feature flag (#3087) 2023-02-20 21:16:08 +01:00
Frane Polić 61b0b2f3aa fix(medusa): Pass query transformer config in storefront controllers (#3219) 2023-02-09 17:52:04 +01:00
Frane Polić 5b63533c77 feat(medusa): Preserve custom adjustments when refreshing adjustments (#3085) 2023-02-06 19:22:05 +01:00
Frane Polić 4d6e63d68f feat(medusa): Decorate OrderEdit LineItems with totals (#3108) 2023-02-06 17:32:26 +01:00
Frane Polić e22a383f47 fix(medusa): fields params usage in the storefront endpoints (#2980) 2023-02-06 16:18:23 +01:00
Frane PolićandOliver Windall Juhl ea460b4e0b feat(medusa): add q param to PKs sales channels retrieval (#2810)
**What**
- enable to filter sales channels of a Publishable API Key with a free text search param

Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
2022-12-15 19:12:44 +00:00
Frane Polić 2d22b17b49 feat(medusa): Allow all relations on /admin/* endpoints (#2763) 2022-12-15 09:07:07 +01:00
Frane Polić 3464617553 fix(medusa): Payment status on refunds (#2770) 2022-12-12 19:04:36 +01:00
Frane Polić 3b2c929408 feat(medusa-js, medusa-react): PublishableKeys SC management (#2734) 2022-12-07 12:16:48 +01:00
Frane Polić 322d462311 feat(medusa): PublishableApiKeys SC scopes (#2590)
**What**
-  add/ remove sales channels to/from PublishableApiKey in batch
- associate created cart with SC defined by PK
- filter products if PK with SC association is present
- retrieve a list of sales channels for a PK
- implement 3 new middleware
  - `extendRequestParams`
    -  _extend req object with PK scopes (a list of sales channels) if a publishable key is present in the header of the request_
  - `validateProductSalesChannelAssociation`
    -  _validate if the passed product id belongs to a SC from the PK's scope_
  - `validateSalesChannelParam`
    -  _validate that passed SC ids in the req body/query are within the scope of the PK_

**How**
- The general idea was to reuse existing logic in the controller layer which expects `sales_channel_id` array to be passed. The middleware sets associated SC ids in the request context if a PK is present. These ids are then merged in the controller and passed to the service layer.

**TODO**
- filter response from the search endpoint (CORE-824)

**Testing**
- _integration tests_
  - add sales channels to the publishable API key scope
  - remove sales channels from the publishable API key scope
  - returns products from a specific channel associated with a publishable key
  - returns products from multiples sales channels associated with a publishable key
  - returns all products if PK is not passed
  - returns all products if passed PK doesn't have associated channels
  - should assign sales channel to order on cart completion if PK is present in the header
  - list sales channels from the publishable api key
  -  throws because sales channel in query/body is not in the scope of passed PK 

---

**Discussion**
- what about the other endpoints (e.g. GET /store/product/:id - do we return 404 if the product is not in the SC associated with passed PK)
- what about products search route
- what about `/admin/products` & `/admin/orders` routes (do we add the middleware there as well)

---

RESOLVES CORE-792
RESOLVES CORE-793
RESOLVES CORE-816
2022-12-07 07:50:20 +00:00
Frane Polić 9eafde07fe feat(medusa-js): Register PublishableApiKey (#2616)
**What**
- register a publishable API key through `medusa-js` i.e. define the key that will be sent with each request

**How**
- introduce KeyManager class which is used to share keys between medusa-js objects.

**Usage**
1. Set the key through the `Medusa` config
2. Set the key through `KeyManager` dynamically:
```ts
import { KeyManager } from "medusa-js"

KeyManager.registerPublishableApiKey("pk_123")
```

---

RESOLVES CORE-794
2022-11-17 12:19:18 +00:00
Frane Polić 03fc9e18e9 feat(medusa, medusa-js, medusa-react): PublishableApiKey "update" endpoint & add "title" property (#2609)
**What**
- update PK endpoint
  - medusa-js/react implementation
- add a title property to the entity
  - update the migration file
  - pass a title on create
  - list PKs by title
  - update the client libs with new param signatures
- change id prefix to: "pk_"
2022-11-16 04:35:22 +00:00
Frane Polić 3de553c27f feat(medusa-js, medusa-react): PublishableApiKeys clients (#2582)
**What**
- add `PublishableApiKeys` endpoints to the `medusa-js` and `medusa-react` clients

--- 

RESOLVES CORE-791
DEPENDS ON https://github.com/medusajs/medusa/pull/2567
2022-11-15 15:41:58 +00:00
Frane Polić d0809bdf25 feat(medusa): PublishableApiKeys CRUD (#2567) 2022-11-14 19:30:24 +01:00
Frane Polić aa8eba38e9 feat(medusa): PublishableAPI keys model (#2543) 2022-11-10 10:14:06 +01:00
Frane Polić 591668d332 fix(medusa): draft order set payment as captured (#2479)
**What**
- when an order is created from a draft order, set the payment of the order as captured

FIXES CORE-592
2022-10-31 12:24:59 +00:00
Frane Polić 73db8cfca6 feat: list OE by order id (#2457)
**What**
- allow passing `order_id` param to OE list endpoint
2022-10-17 15:34:20 +00:00
Frane PolićandOliver Windall Juhl 05f921711f fix(medusa): Product import - allow null product type (#2424)
**What**
- allow the product type field to be null

**How**
- in case the type is `null`, pass `undefined` as the value of type prop to product create/update services, otherwise pass an object with `{value}` which will be upserted

Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
2022-10-12 12:43:41 +00:00
Frane Polić 69ef713854 fix(medusa): remove changes when deleting order edits (#2420)
**What**
- when deleting an OE cloned items are deleted, this would fail if there were changes associated with the OE since line items were referenced from the item changes and couldn't be deleted

**How**
- when deleting an order edit also remove it's item changes

Fixes CORE-689
2022-10-12 08:04:29 +00:00
Frane Polić 308b99cc5d fix(medusa-react): OrderEdit add item hook renaming (#2392) 2022-10-11 12:28:24 +02:00
Frane Polić 5f2bc975cb fix(medusa): Allow edits relation on order retrieval (#2384) 2022-10-07 15:45:28 +02:00
Frane Polić 884f36e8a8 feat: add a line item to an order edit (#2243)
**What**
- Implement adding a line item to order (edit)

**How**
- _by implementing the following "flow"_
  - generate a line item
  - computing line item adjustments for that line item
  - creating tax lines
  - creating a change record

**Testing**
- **_integration tests_**
  - check if line item and order item change objects are created (with correct tax lines)
  - line item adjustments are generated if
    - fixed discount is applied to cart
    - percentage discount is applied
- **_unit tests_** 
  - ensure that methods from Inventory, LineItem, LineItemAdjustment etc. services are called 

---

RESOLVES CORE-495
2022-09-28 11:51:13 +00:00
Frane Polić de85a971c6 fix: infer MA currency on PL create (#2232)
**What**
- a MoneyAmount record can be created with either providing region or currency. MA records cannot be inserted in the DB without currency due to not null constraints therefore the currency needs to be inferred from provided region

**How**
- by using the same utility that fixes this issue on PL update

**Testing**
- extend the "create PL" integration test to handle a MA with a region

---

FIXES CORE-525
2022-09-19 18:30:31 +00:00
Frane Polić e1fe5ed094 feat(medusa): Update OrderEdit (#2220) 2022-09-19 13:29:12 +02:00
Frane Polić 992ef733f4 fix(medusa): Check for Sales Channel on product import (#2202) 2022-09-14 09:53:23 +02:00
Frane Polić f2eb942b41 feat: order editing data model (#2184)
**What**
- add order editing entities
- add repositories
- add a feature flag for the order editing feature
- add the migrations file

RESOLVES CORE-490
2022-09-13 16:40:21 +00:00
Frane PolićandOliver Windall Juhl ee8fe3a88b fix(medusa-file-spaces): return fileKey for Spaces upload (#2171)
**What**
- return `fileKey` in the response after the file is uploaded to Spaces

Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
2022-09-09 10:55:43 +00:00
Frane PolićandOliver Windall Juhl ba6416f095 feat(medusa): Convert SwapService to TypeScript (#2000)
**What**
- refactor swap service to typescript
- reimplement legacy methods
- use enums instead of magic strings

RESOLVES CORE-396

Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
2022-09-05 13:37:47 +00:00
Frane Polić 546a963f7b feat: import strategy - sales channels support (#2124)
**What**
- add support for specifying sales channel with import strategy
- additional:
  - refactor SC service to use `retrieve_` pattern
  - fix: pass arguments from `startServerWithEnvironment` to setup server
  - fix: minio undefined resolve/reject calls
  - fix: csv parser - detect missing columns from schema only if the column is required

**How**
- extending schema to expect sales channels columns in an import CSV file

RESOLVES CORE-304
2022-09-02 11:28:43 +00:00
Frane PolićandfPolic 03221c4a19 feat: product import strategy (#1706)
* 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>
2022-08-25 22:16:51 +02:00
Frane Polić bda83a84bc feat(medusa): Convert RegionService to TypeScript (#1914) 2022-08-22 19:59:02 +02:00
Frane Polić 97c48a5ab9 feat: invalidate product list hooks (#1931)
**What**
- invalidate cache on prodcut list hooks when a product is added/removed to/from a sales channel
2022-07-28 14:01:35 +00:00
Frane PolićandfPolic 3fbe8d7d08 feat(medusa): Validate LineItems in SalesChannel (#1871)
* wip: validate line item SC

* fix: repository type, remove relation, use sc id, check if cart has associated sc

* feat: setup tests and seeder, change entity retrieval in cart service method

* feat: remove repo usage and method, use Adrien's method from product service to check sc association, add test cases, add seeder entities, accept flag for validating sc on the endpoint

* feat: add a unit test to ensure validation method is called if flag is passed

* feat: allow `validate_sales_channels` flag in other relevant endpoints

* fix: typo

* fix: flag rename

* fix: correct FF in test suites

* fix: address PR feedback

* fix: change error message

* feat: remove query params, guard with FF, refactor

* feat: guard validation in the service

* refactor: rename validation method

* refactor: reorganise tests

* wip: cleanup test file

* wip: revert cart seeder changes use factories

* fix: remove seeder, update mocks

* fix: method name

* fix: units, validate by default

* git: resolve merge conflicts

* refactor: separate line item sales chanel units

Co-authored-by: fPolic <frane@medusajs.com>
2022-07-27 21:39:06 +02:00
Frane Polić 0d1624cf6a feat(medusa, medusa-js, medusa-react): Implement Sales Channel creation (#1795) 2022-07-06 22:18:05 +02:00
Frane PolićandPhilip Korsholm f9c3218aac feat(medusa): Sales Channels model (#1782)
**What**
- added `SalesChannel` entity
- added `SalesChannel` repository
- added `SalesChannel` relations to the order, cart and store entities
- added a migrations file

**How**
- introduced entities and relations under a new feature flag "sales-channels"

Fixes CORE-271

Co-authored-by: Philip Korsholm <88927411+pKorsholm@users.noreply.github.com>
2022-07-05 07:31:11 +00:00
Frane Polić 79345d27ec fix(medusa-react): Invalidate price list product cache on various price list updates (#1503) 2022-05-16 11:28:28 +02:00
Frane Polić 03c5617896 fix(medusa): allow price list prices update when region_id is provided (#1472) 2022-05-11 07:43:19 +02:00
Frane PolićandfPolic b7f699654b feat: customer group customers client endpoints (#1221)
* feat: add `listCustomers` (by group) to `medusa-js`

* feat: add `useAdminCustomerGroupCustomers` hook

* fix: remove log

* fix: import/export

* fix: change query keys

* wip: sublist query keys

* fix: revert query factory changes

* fix: add query as a param when building the "detail" key

* fix: revert keys logic, use special case

* fix: query path, change batch keys

* change admin customer groups cache key generation

* spread query params

Co-authored-by: fPolic <frane@medusajs.com>
2022-03-23 20:07:13 +01:00
Frane PolićandfPolic 932f4b29a8 fix: list customers query error (#1226)
* fix: list customers generated query

* fix: consistency

Co-authored-by: fPolic <frane@medusajs.com>
2022-03-23 20:05:58 +01:00
Frane PolićandfPolic 218b20b26d fix: CustomerGroups missing features in the clients (#1159)
* feat: support for query params in customer groups retrieve method

* feat: add `useAdminDeleteCustomerGroup`hook

* fix: formatting

* fix: pass `query` object in `useAdminCustomerGroup` hook

Co-authored-by: fPolic <frane@medusajs.com>
2022-03-10 13:10:18 +01:00
Frane PolićandfPolic daf49bcaf3 feat: customer groups react hooks (#1153)
* fix: msw handlers for medusa-react storybook

* feat: add customer groups query hooks

* feat: add create/update customer groups hooks

* feat: add customer group batch  hooks

* feat: add test files, fix import

* add customer groups fixture

* add customer gorup mock endpoints

* add test cases

* add hook comments

* fix: typos

* fix: comments refactor

* fix: comment

Co-authored-by: fPolic <frane@medusajs.com>
2022-03-07 12:52:48 +01:00
Frane PolićandfPolic 93426bfc02 feat: customer groups client endpoints (#1147)
* feat: WIP add customer group endpoints, fix generated type exports from api

* fix: export api types, add `list`method

* fix: export customer groups types from the `medusa-js` package

* fix: cleanup type exports from customer groups api

* feat: add customer group batch methods

* fix: refactor comments

* fix: address PR comments

Co-authored-by: fPolic <frane@medusajs.com>
2022-03-03 03:52:40 +01:00
Frane Polić a514d84ccf feat: list customer groups (#1099) 2022-03-02 11:38:44 +01:00
Frane Polić d80eaa172d feat: customer group update (#1098) 2022-02-25 18:53:49 +01:00