Commit Graph

173 Commits

Author SHA1 Message Date
Shahed Nasser
958b003a11 chore: add since tags for latest release (#13739) 2025-10-13 11:24:51 +03:00
Nicolas Gorga
76bf364440 fix(js-sdk): pass headers to auth.refresh() (#13690)
Fixes #13689
2025-10-09 16:58:17 +00:00
Frane Polić
7dc3b0c5ff feat(core-flows,dashboard,js-sdk,promotion,medusa,types,utils): limit promotion usage per customer (#13451)
**What**
- implement promotion usage limits per customer/email
- fix registering spend usage over the limit
- fix type errors in promotion module tests

**How**
- introduce a new type of campaign budget that can be defined by an attribute such as customer id or email
- add `CampaignBudgetUsage` entity to keep track of the number of uses per attribute value
- update `registerUsage` and `computeActions` in the promotion module to work with the new type
- update `core-flows` to pass context needed for usage calculation to the promotion module

**Breaking**
- registering promotion usage now throws (and cart complete fails) if the budget limit is exceeded or if the cart completion would result in a breached limit

---

CLOSES CORE-1172
CLOSES CORE-1173
CLOSES CORE-1174
CLOSES CORE-1175


Co-authored-by: Adrien de Peretti <25098370+adrien2p@users.noreply.github.com>
2025-10-09 12:35:54 +00:00
William Bouchard
5e827ec95d feat(admin-shared,dashboard,js-sdk,types): refund reasons in dashboard (#13575)
CLOSES CORE-1209

This PR just adds the stuff necessary to support refund reasons in the dashboard. It adds the option in the settings tab and allows viewing, creating, editing and deleting refund reasons. I hate to open such a big PR but most of it is copy pasted from the return reasons. Major difference is only the fact that refund reasons don't have a `value` field
2025-09-23 15:51:40 +00:00
Bastien
513b352da3 feat(store): add id filtering to store collections endpoint (#13555)
* feat(store): add id filtering to store collections endpoint

* 🐛 Fix circular type reference

*  Add changeset
2025-09-23 10:37:32 -04:00
Shahed Nasser
6a91f79f44 feat(js-sdk): allow passing a query parameter to deleteLineItem (#13581) 2025-09-23 11:47:10 +00:00
Sebastian Rindom
41047b3854 feat(dashboard): configurable product views (#13408)
* feat: add a reusable configurable data table

* fix: cleanup

* fix: cleanup

* fix: cache invalidation

* fix: test

* fix: add configurable products

* feat: add configurable product table

* fix: build errors+table style

* fix: sticky header column

* add translations

* fix: cleanup counterenderer

* fix: formatting

* fix: client still skips nulls

* fix: test

* fix: cleanup

* fix: revert client bracket format

* fix: better typing

* fix: add placeholder data to product list
2025-09-18 18:27:17 +02:00
Shahed Nasser
aa7ea4d9a6 chore: add tsdocs for latest changes (#13539) 2025-09-18 18:04:24 +03:00
Shahed Nasser
b1d068197b chore: update TSDocs of JS SDK store methods to clarify required auth (#13507) 2025-09-15 14:33:11 +03:00
Shahed Nasser
21c6e8600f chore(js-sdk): add ignore tag to views (#13503) 2025-09-15 13:30:11 +03:00
Leonardo Benini
1b30b656b3 fix(js-sdk): skip null values in query qs.stringify (#13460)
* escape null values in qs.stringify

* skip null values

---------

Co-authored-by: William Bouchard <46496014+willbouch@users.noreply.github.com>
2025-09-12 12:07:56 -04:00
Sebastian Rindom
2a94dbd243 feat(ui): add column visibility and drag-and-drop reordering support (#13198) 2025-09-01 12:03:56 +00:00
Sebastian Rindom
5a46372afd Feat/datatable core enhancements (#13193)
**What**

This PR adds core DataTable enhancements to support view configurations in the admin dashboard. This is part of a set of stacked PRs to add the feature to Medusa.

- Puts handlers in place to update the visible columns in a table and the order in which they appear.
- Adds a ViewPills component for displaying and switching between saved view configurations
- Integrated view configuration hooks (useViewConfigurations) with the DataTable

Note: Column drag-and-drop reordering and the column visibility UI controls are not included in this PR as they require additional UI library updates - which will come in the next PR.

Example of what this looks like with the feature flag turned on - note the view pills with "default" in the top. This will expand when the data table behavior adds configuration.
<img width="2492" height="758" alt="CleanShot 2025-08-13 at 2  31 35@2x" src="https://github.com/user-attachments/assets/ee770f1c-dae1-49da-b255-1a6d615789de" />
2025-09-01 10:30:05 +00:00
Sebastian Rindom
fa10c78ed3 feat(admin): add view configuration client infrastructure (#13186)
This is part of stacked PRs to add a view configuration feature which will allow users to customize the columns seen in tables in the Medusa Admin dashboard.

**What**
- Adds client providers, sdk methods and hooks for interacting with the views api.
2025-09-01 09:20:37 +00:00
Shahed Nasser
1956456cd4 chore: update TSDocs for new release changes (#13317)
* chore: update TSDocs for new release changes

* remove .medusa directory
2025-08-28 11:51:24 +03:00
William Bouchard
486621383a feat(dashboard,core,modules): free shipping promotion in dashboard (#13263)
* feat(dashboard,core,modules): free shipping promotion in dashboard

* self-review

* adapt for edit to work

* changeset

* integration tests

* across for each

* remove only from tests

* remove console log

* revert to across

* update wording for shipping promotions

* modify changeset

* suggestion frane

* fix i18n schema
2025-08-22 16:30:30 -04:00
Frane Polić
492e018957 feat(dashboard, core-flows, js-sdk, types, medusa): listing order's shipping options (#13242)
* feat(dashboard, core-flows,js-sdk,types,medusa): listing order's shipping option

* fix: typo

* chore: migrate claim form

* fix: cleanup rule logic

* feat: add test case, rm params

* fix: expand location name
2025-08-21 13:01:27 +02:00
William Bouchard
4b3c43fe92 feat(dashboard, js-sdk): shipping option type mngmt dashboard (#13208)
* chore(types, api): support shipping option type api endpoints

* core flows

* api

* typos

* compiler errors

* integration tests

* remove metadata

* changeset

* modify test

* upsert

* change remote query

* minor to patch

* description optional

* chore(dashboard, js-sdk): shipping option type management on admin dashboard

* description optional

* woops my bad

* my bad again

* create and edit

* prettier

* build code from label

* remove metadata route

* remove some translation text that is not used

* remove unsued files

* changeset

* adapt test

* fix test

* suggestion

---------

Co-authored-by: william bouchard <williambouchard@williams-MacBook-Pro.local>
2025-08-14 15:21:33 -04:00
Stevche Radevski
2c1fe4cfe4 fix: Allow getting the token from the SDK client (#13164) 2025-08-08 08:42:44 +02:00
Shahed Nasser
57ad8fc755 chore: use since instead of version tag in TSDocs (#13126) 2025-08-01 17:52:52 +03:00
Ante Primorac
0db5bf6f8c fix(js-sdk): add missing admin order archive and complete methods (#12944)
* fix(js-sdk): add missing admin order archive and complete methods

* Create cuddly-rice-shave.md

---------

Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
2025-07-22 19:14:07 +02:00
Shahed Nasser
35bd9f0bc4 chore: add to TSDocs note about removing item from order edit (#12997) 2025-07-18 18:36:10 +03:00
Shahed Nasser
94920c3f6d chore: add version and deprecated tags to import routes and methods (#12829) 2025-06-26 09:54:50 +03:00
Shahed Nasser
7d09981440 chore: remove ignore tag for import function + update version tag (#12774) 2025-06-19 13:08:34 +03:00
Harminder Virk
f2cb528a56 feat: wire up direct uploads with local file provider (#12643) 2025-06-10 15:07:54 +05:30
Frane Polić
9866baa852 feat(core-flows,js-sdk,medusa,types): draft order delete (#12172) 2025-05-28 14:37:00 +02:00
Shahed Nasser
d155f492be chore(core-flows, types): change base64 comment fo files in TSDocs to binary (#12627)
* chore(core-flows, types): change base64 comment fo files in TSDocs to binary

* add in generatd
2025-05-27 18:35:39 +03:00
Christian
ca9ffcc80b feat: add presignedUrl method to upload sdk (#12569) 2025-05-21 22:21:50 +02:00
Shahed Nasser
9f376ff1f1 fix(js-sdk): allow passing custom request body parameters in auth.register method (#12545)
The `auth.login` method of the JS SDK allows passing custom, which is useful for custom authentication providers. For example:

```ts
const response = await sdk.auth.login("customer", "phone-auth", {
      phone
    })
```

However, the `auth.register` method doesn't allow that, so we can't do the following:

```ts
const response = await sdk.auth.register("customer", "phone-auth", {
      phone
    })
```

Instead, we'd have to use the `client.fetch` method.

This PR fixes the input type of the payload passed to the `register` method to be similar to that of `login`,  which would allow using it with custom authentication providers
2025-05-20 16:27:13 +00:00
Harminder Virk
fca5ad77b4 feat: process import from pre-processed chunks (#12527)
Fixes: FRMW-2968

In this PR we have done two major things.

- First, we remove storing CSV contents within the workflow storage and neither store the JSON payloads to be created/updated in workflows. Earlier, they all were workflow inputs, hence were stored in the workflow
- Introduce a naive concept of chunks and process chunks one by one. The next PR making chunking a bit more robust while using streams, adding ability to resume from the failed chunk and so on.

> [!IMPORTANT]  
> The new endpoint `/admin/product/imports` is not in use yet. But it will be after the next (final) PR.

## Old context in workflow storage

![CleanShot 2025-05-19 at 17 11 08@2x](https://github.com/user-attachments/assets/798bdcc9-a368-4c1f-afdd-2a77f5ce43e0)

## New context in workflow storage

![CleanShot 2025-05-19 at 17 15 08@2x](https://github.com/user-attachments/assets/0463d035-403f-4600-a9cd-5af24d5fee7c)
2025-05-20 12:33:18 +00:00
Shahed Nasser
0f802a977a chore(js-sdk, types): update TSDocs related to tax provider changes (#12428) 2025-05-09 14:34:45 +03:00
Shahed Nasser
6032f3ec40 chore(js-sdk,types,utils): updates to file TSDocs (#12426)
* chore(js-sdk,types,utils): updates to file TSDocs

* remove ignore tag for file provider

* update file service tsdocs
2025-05-09 14:34:31 +03:00
Frane Polić
9cedeb182d feat(dashboard, js-sdk, medusa, tax, types): custom tax providers (#12297)
* wip: setup loaders, add endpoints, module work, types, js sdk

* fix: tax module provider loader

* feat: select provider on region create, fix enpoint middleware registration

* feat: edit form

* fix: rename param

* chore: changeset

* fix: don't default to system provider

* fix: admin fixes, dispalt tax provider

* fix: some tests and types

* fix: remove provider from province regions in test

* fix: more tests, optional provider for sublevel regions, fix few types

* fix: OE test

* feat: edit tax region admin, update tax region core flow changes

* feat: migrate script

* fix: refactor

* chore: use query graph

* feat: provider section
2025-05-06 19:26:33 +02:00
Harminder Virk
84f58f9058 feat: implement direct upload (#12328)
* feat: implement direct upload

* feat: add direct-upload endpoint

* refactor: implement feedback

* refactor: have a dedicated endpoint for direct uploads

* refactor: convert responses to snakecase

* refactor: rename method to createImport

* test: add tests for the presigned-urls endpoint
2025-05-04 12:58:10 +02:00
Shahed Nasser
876a14eb98 chore(js-sdk): fix TSDocs of draft orders in JS SDK (#12270) 2025-04-23 12:48:13 +03:00
Frane Polić
01542f6973 feat(core-flows, js-sdk, medusa): draft order shipping removal (#12124)
**What**
- allow removal of a shipping method

---

CLOSES CMRC-1013
2025-04-16 06:10:24 +00:00
Shahed Nasser
90f9149735 chore: fixes to JS SDK TSDocs (#12159) 2025-04-11 16:41:52 +03:00
Shahed Nasser
83d29c2e79 chore(js-sdk, types): add TSDocs for plugin methods in JS SDK (#12106)
* chore(js-sdk, types): add TSDocs for plugin methods in JS SDK

* tsdocs for draft orders
2025-04-07 18:11:33 +03:00
Kasper Fabricius Kristensen
f441362f4a feat(medusa,core-flows,types,js-sdk): Draft Order workflows and API endpoints (#11805) 2025-04-02 10:23:33 +02:00
Shahed Nasser
e998366aba chore(js-sdk): improve the TSDocs of auth methods in JS SDK (#12033) 2025-03-28 17:55:01 +02:00
Shahed Nasser
0cc306bf56 fix(js-sdk, types): fixes types and deprecate duplicate methods (#11975) 2025-03-25 16:37:30 +01:00
Shahed Nasser
768ea91e1b chore(js-sdk,types): add missing examples for JS SDK methods (#11934)
* chore(js-sdk,types): add TSDocs for calculate method

* added tsdocs for promotions

* finished adding examples

* fixes

* remove unused import
2025-03-25 14:55:54 +02:00
Shahed Nasser
c6f2f444ed fix(js-sdk): fix the return type of the promotion.listRules method (#11937) 2025-03-24 07:35:15 +01:00
Shahed Nasser
053326950d fix(js-sdk): fix the API route used in fulfillment.cancel method (#11936) 2025-03-21 15:08:44 +00:00
Riqwan Thamir
c3440e5e38 feat(medusa,types): add enabled plugins route (#11876) 2025-03-17 20:11:46 +01:00
Riqwan Thamir
5ab15a2988 feat(dashboard,js-sdk,admin-shared): add customer addresses + layout change (#11871)
what:

- changes customer layout from 1 layout to 2
- adds ability to create and delete customer addresses
- adds 2 customer widget locations
- adds is_giftcard=false by default to products list

<img width="1663" alt="Screenshot 2025-03-08 at 21 34 02" src="https://github.com/user-attachments/assets/e66f05da-718c-4c25-81ce-67ba0a814ca3" />
2025-03-17 16:16:27 +00:00
Riqwan Thamir
cb6249320e fix(types,order,medusa): Create credit lines + hooks (#11569)
what:

- api/workflows to create credit lines
- hooks to enable extending credit lines
2025-03-17 15:20:59 +00:00
Shahed Nasser
3256a1f740 chore(js-sdk): fix tsdocs for properties and methods (#11748) 2025-03-06 09:12:05 +02:00
Frane Polić
bdf9723239 fix(dashboard): filter outbound shipping options in RMA (#11629)
**What**
- filter out return shipping options for Claims/Exchanges
- fix the incorrect display of "missing inventory" warning

---

CLOSES CMRC-946
CLOSES CMRC-947
2025-02-28 14:55:35 +00:00
Oli Juhl
54a6ef91ac chore: Move token from params to headers (#11281)
* chore: Move token from params to body

* chore: Add type

* wip

* chore: clean up

* clean ip
2025-02-26 17:41:16 +01:00