Commit Graph

1220 Commits

Author SHA1 Message Date
Shahed Nasser
e6b6c0d3b7 chore(types, utils): update TSDocs related to analytics module (#12564) 2025-05-21 14:43:09 +00:00
Frane Polić
3071d09a03 fix(core-flows): skip location check if inventory is not managed (#12540)
* fix: skip location check if inventory is not managed

* fix: rm todo

* chore: changeset
2025-05-21 15:37:43 +02:00
Shahed Nasser
db33616cf9 chore(core-flows): add tsdocs for hooks in complete cart (#12555) 2025-05-21 14:25:53 +03: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
Carlos R. L. Rodrigues
ebe5cc7acd chore(index): return ids only (#12543) 2025-05-20 11:16:02 -03: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
Carlos R. L. Rodrigues
59bbff62d8 fix(index): Apply various fixes to the index engine (#12501) 2025-05-19 15:14:25 -03:00
Stevche Radevski
b9a51e217d feat: Add an analytics module and local and posthog providers (#12505)
* feat: Add an analytics module and local and posthog providers

* fix: Add tests and wire up in missing places

* fix: Address feedback and add missing module typing

* fix: Address feedback and add missing module typing

---------

Co-authored-by: Adrien de Peretti <adrien.deperetti@gmail.com>
Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
2025-05-19 19:57:13 +02:00
Adrien de Peretti
52bd9f9a53 chore(product, modules-sdk): Add missing index for select-in strategy + allow to pass top level strategy to force the behaviour (#12508)
**What**
- Add missing index for query that falls in select in strategy, specifically the heaviest one with variant IN filtering
- Allow to force the strategy to be sent to the entry point module when using the graph API. It is useful with big dataset where filtering is enough without pagination and select in can offer better performances

e.g
```ts
       await query.graph({
            entity: 'product',
            fields,
            filters,
            strategy: 'select-in' // <-- this will force the module to use receive this value and apply it accordingly 
        })
```
2025-05-19 15:57:58 +00:00
Adrien de Peretti
85d2b3c992 fix(utils): Missing zod deps (#12518) 2025-05-18 15:49:59 +02:00
olivermrbl
8c0b49fed4 chore: Version packages 2025-05-16 11:04:39 +02:00
Frane Polić
9f4d32b220 fix(core-flows): fulfilment cancelation with shared inventory kit item (#12503)
* fix(core-flows): fulfilment cancelation with shared inventory kit item

* fix: typos, check if iitem exists

* chore: typo
2025-05-16 10:50:10 +02:00
Harminder Virk
e149a99886 feat: define validators and use normalize-products step (#12473)
Fixes: FRMW-2965

In this PR we replace/remove the existing step to normalize a CSV file with the newly written CSV normalizer and also we validate the file contents further using a Zod schema.

I have duplicated the schema for now. But it is makes sense to re-use the schema for CSV validating and `/admin/products/batch`, then I can keep one source of truth under utils and re-export it. WDYT?

**Screenshots of some errors after validating the file strictly**

![CleanShot 2025-05-15 at 16 36 46@2x](https://github.com/user-attachments/assets/c7fa424f-b947-4898-9b94-47c48617c129)

![CleanShot 2025-05-15 at 16 36 34@2x](https://github.com/user-attachments/assets/0fefef79-148b-4eeb-8ef0-3077e8063ea8)
2025-05-16 08:37:25 +00:00
Shahed Nasser
e91aa2493a chore(types, utils): TSDoc improvements for providers (#12498)
* chore(types, utils): TSDoc improvements for providers

* small iteration
2025-05-15 18:40:33 +03:00
Shahed Nasser
b2984f48f5 fix(types): change update signature of IAuthProvider (#12496)
Change the signature of the `update` method in `IAuthProvider` to match other methods. this is necessary as in the generated references `update` was being inferred as a property rather than a method.
2025-05-15 11:02:05 +00:00
olivermrbl
d2dd2e7c72 chore: Version packages 2025-05-15 09:49:09 +02:00
Pedro Guzman
142a1f0a5b fix(product): returned updates order in upsertWithReplace (#12486)
* add failing test for upsertWithReplace order

* reproduce prices update shuffling issue

* fix: fix order of returned updates in updateMany

* fix: fix order of returned updates in ProductService

* fix: reset test count to 1

* Create tame-insects-marry.md

---------

Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
2025-05-15 09:22:24 +02:00
Adrien de Peretti
7fdbf2a965 fix(workflows-sdk): Miss match context usage within run as step (#12449)
**What**

Currently, runAsStep keep reference of the workflow context that is being run as step, except that the step is composed for the current workflow composition and not the workflow being run as a step. Therefore, the context are currently miss matched leading to wrong configuration being used in case of async workflows.

**BUG**
This fix allow the runAsStep to use the current composition context to configure the step for the sub workflow to be run

**BUG BREAKING**
fix the step config wrongly used to wrap async step handlers. Now steps configured async through .config that returns a new step response will indeed marked itself as success without the need for background execution or calling setStepSuccess (as it was expected originally)

**FEATURE**
This pr also add support for cancelling running transaction, the transaction will be marked as being cancelled, once the current step finished, it will cancel the transaction to start compensating all previous steps including itself

Co-authored-by: Carlos R. L. Rodrigues <37986729+carlos-r-l-rodrigues@users.noreply.github.com>
2025-05-14 13:28:16 +00:00
Shahed Nasser
851c81fd4b chore(types,utils): add featureFlag and version tags (#12464) 2025-05-13 19:12:19 +03:00
Harminder Virk
4602163b56 feat: create CSV normalizer to normalize a CSV file (#12396) 2025-05-13 18:04:59 +05:30
olivermrbl
d3a5868e8b chore: Version packages 2025-05-13 12:56:07 +02:00
Frane Polić
39e5eadefc fix(core-flows, dashboard): reservation recreation on fulfilment cancel + allocation button display (#12447)
**What**
- fix recreation of reservations on fulfilment cancel
- fix allocate items button display

---

CLOSES CMRC-1018
2025-05-12 17:09:23 +00:00
Frane Polić
5fe0e8250d fix(core-flows): Refund and recreate payment session on cart complete failure (#12263) 2025-05-11 19:53:49 +02:00
Casey Harper
9d4bc81d0f fix(plugins, utils): Plugin admin folder loading with backslash on Windows (#12418)
* fix: Plugin admin folder loading with backslash on Windows

* fix: Plugin admin folder loading with backslash on Windows - Add changeset

---------

Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
2025-05-11 18:46:12 +02:00
Riqwan Thamir
cc5af67c48 fix(core-flows): use transform as input to account holder step (#12430)
* fix(core-flows): use transform as input to account holder step

* chore: add a simple test

* chore: add comment

* chore: Fix tests

---------

Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
Co-authored-by: olivermrbl <oliver@mrbltech.com>
2025-05-11 18:45:44 +02:00
Adrien de Peretti
fff285f8d2 feat(core-flows): Emit cart trasnferred customer (#12425)
**What**
When a cart is transferred emit an event notifying of the action with the cart id and the customer id
2025-05-11 15:17:19 +00:00
Frane Polić
47700899ed fix(core-flows): use product title for line item title (#12397)
* fix(core-flows): use prduct title for line item title

* fix: module tests

* fix: http tests

* fix: display item subtitle instead of prod title as secondary text in line item

* fix: claim/exchange items
2025-05-11 17:05:46 +02:00
Adrien de Peretti
9d29078b0d fix(workflow-engine-*): q text search (#12435) 2025-05-11 16:21:41 +02: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
Adrien de Peretti
091041f2da test(core-flows): Ensure productVariantUpdated failure compensate the workflow (#12381) 2025-05-09 13:03:22 +02:00
Shahed Nasser
7eddcb54b8 chore(utils): add version tag to order edit events (#12424) 2025-05-09 13:11:46 +03:00
Shahed Nasser
89beaf38e1 chore(utils): small fix to payload in TSDocs (#12409) 2025-05-09 12:51:27 +03:00
Oli Juhl
469ecef3c5 chore: Minor restructure of cart completion (#12353)
* chore: Minor revamp of cart completion

* wip

* wip

* temp. remove import

* continue on error

* chore: Use workflow

* fix import

* Create beige-actors-tie.md

* fix import
2025-05-08 13:37:21 +02:00
Stevche Radevski
f929185021 fix: Use logger in the test runner and migration commands (#12406) 2025-05-08 11:25:47 +02:00
Shahed Nasser
0dd4572964 chore(utils): fixes to events TSDocs (#12395)
* chore(utils): fixes to events TSDocs

* more fixes
2025-05-07 14:25:11 +03:00
Shahed Nasser
c4dd805849 fix(core-flows): export order-related utility workflows (#12380) 2025-05-07 12:02:08 +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
Adrien de Peretti
80007f3afd feat(workflows-*): Allow to re run non idempotent but stored workflow with the same transaction id if considered done (#12362) 2025-05-06 17:17:49 +02:00
Edin Abazi
a16ffb83d9 fix: rename Macedonia FYROM to North Macedonia (#12375) 2025-05-06 15:44:17 +02:00
Shahed Nasser
ffd323a2a9 chore(types): add note in TSDocs of list and retrieve methods (#12364) 2025-05-06 09:52:06 +03:00
Harminder Virk
e4d853185f fix: export ProductImage to allow for custom links to add alt text (#12357) 2025-05-05 14:24:25 +05:30
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
Pedro Guzman
ed55d17a36 fix: batch updates in upsertMany_ (#12333) 2025-05-02 08:36:33 +02:00
Shahed Nasser
332e46d1db chore(utils): fixes to events TSDocs (#12342) 2025-05-01 19:23:50 +03:00
Shahed Nasser
e3e02a1cc8 chore: add tsdocs for events (#12337) 2025-05-01 12:15:33 +03:00
Shahed Nasser
a53d645f8a fix(core-flows,utils): move fulfillment workflow events (#12338)
Move fulfillment workflow events to be with other workflow events.

Could be considered a breaking change for users using the previously `FulfillmentEvents` variable
2025-05-01 09:11:17 +00:00
Frane Polić
8985998756 feat(core-flows, utils): add OrderEdit events (#12320)
* feat(core-flows, utils): add OrderEdit events

* fix: typo
2025-04-30 17:44:39 +02:00
Carlos R. L. Rodrigues
90c61d1898 fix(core-flows): add missing remove remote link (#12326)
* fix(core-flows): add missing remove remote link

* temp disable test
2025-04-30 17:43:37 +02:00
Harminder Virk
ceb504db2c feat: add needed methods to the file module and providers (#12325) 2025-04-30 13:17:31 +05:30