Commit Graph
100 Commits
Author SHA1 Message Date
Riqwan ThamirandCarlos R. L. Rodrigues de6f61b05f feat: added totals tests for end 2 end RMA flow (#8906)
what:

I've added some specs and comments in the specs for where I think totals are incorrect. 

Lets get this test merged in as the status quo and proceed to fix these issues one by one.

Additionally, this also removes the temporary_difference as its not something we use. 

RESOLVES CC-346

Co-authored-by: Carlos R. L. Rodrigues <37986729+carlos-r-l-rodrigues@users.noreply.github.com>
2024-09-04 13:11:04 +00:00
Riqwan Thamir ff623f8b00 fix(order,utils): fix outstanding amount stuck on long orders (#8968) 2024-09-03 18:48:47 +02:00
Riqwan Thamir e49d004fef chore: remove promotions in campaign validators + move tests to http (#8965) 2024-09-03 14:19:42 +02:00
Riqwan ThamirandOli Juhl 230acb700b feat(core-flows,types): Refunds can only be performed when order is imbalanced (#8944)
* feat(core-flows,types): Refunds can only be performed when order is imbalanced

* Apply suggestions from code review

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

* chore: fix tests

---------

Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
2024-09-03 13:53:20 +02:00
Riqwan Thamir 25367734c7 fix(dashboard): fix campaign end date (#8935)
what:

- scopes the conditional to the right date attribute

<img width="1027" alt="Screenshot 2024-09-02 at 11 47 09" src="https://github.com/user-attachments/assets/87048b93-e118-4548-80ee-2564bc2e56e5">

RESOLVES CC-68
2024-09-02 09:59:24 +00:00
Riqwan Thamir 2a6c6fe590 feat(dashboard,types): split damaged activity from received (#8859)
what:

- split damaged activity from received
- adds a popover to view return details

<img width="1661" alt="Screenshot 2024-08-28 at 23 23 10" src="https://github.com/user-attachments/assets/064e982c-f850-452d-a60d-e5c267d0075a">

RESOLVES CC-363
2024-08-29 14:04:00 +00:00
Riqwan Thamir 8fbfb1445d fix(dashboard): align items inside quick view popover (#8847)
* fix(dashboard): align items inside quick view popover

* chore: remove unwanted w-* classes
2024-08-28 14:37:35 +02:00
Riqwan Thamir c72b4847b9 fix(dashboard,js-sdk): fixes from rma flows testing (#8826) 2024-08-28 10:59:36 +02:00
Riqwan Thamir 2ee374fafc fix(order): run migration before setting not null (#8831) 2024-08-28 10:10:35 +02:00
Riqwan Thamir 531285c1e9 feat(dashboard,types): add active order change panel - claims, exchanges & returns (#8738)
* feat(dashboard,types): add active order change panel - claims, exchanges & returns

* Apply suggestions from code review
2024-08-23 13:24:38 +02:00
Riqwan Thamir 59599ac237 feat(core-flows,dashboard): adds item validations for claims, returns and exchanges (#8735)
what:

- adds item validations for claims, returns and exchanges
- prevents autofocus on item add
- reset item quantity when error
2024-08-23 09:30:27 +00:00
Riqwan Thamir 02c6574e01 fix(admin-next,types): fixes order page from breaking in admin server (#8730) 2024-08-23 08:07:04 +02:00
Riqwan Thamir 4219674ead fix: enable next actions bar when refund is available (#8719) 2024-08-22 10:02:43 +00:00
Riqwan Thamir 335061d8cd feat(medusa,types,core-flows): apply created_by values - claims, exchanges, returns, fulfillment (#8712)
what:

- Applies created_by values - claims, exchanges, returns, fulfillment

RESOLVES CC-96
2024-08-21 18:15:55 +00:00
Riqwan Thamir cb6cc79018 feat(fulfillment,order): add created_by fields to fulfillment, return, claim, exchange (#8711)
what: 

- add created_by fields to fulfillment, return, claim, exchange
2024-08-21 17:59:42 +00:00
Riqwan Thamir 01583baf6d chore(order): align mikroorm <> order module (#8710)
what:

- aligns the order module migrations with mikroorm snapshot
2024-08-21 17:37:17 +00:00
Riqwan Thamir a5707fd3bc feat(dashboard): add activities for order - claim, exchange, payment (#8702)
what:

- add activities for order - claim, exchange, payment

<img width="382" alt="Screenshot 2024-08-21 at 16 12 31" src="https://github.com/user-attachments/assets/56627d63-69b4-4b9c-b9db-c670fe49bfc9">


RESOLVES CC-344
2024-08-21 14:38:18 +00:00
Riqwan Thamir de7848f68d fix(core-flows): account for unfulfilled items while generating order status (#8698)
what:

- account for unfulfilled items while generating order status

RESOLVES CC-314
2024-08-21 14:33:43 +00:00
Riqwan Thamir 0da9445d80 fix(dashboard): bust order preview cache to reset fulfilled quantity (#8687) 2024-08-21 16:23:49 +02:00
Riqwan Thamir a7d03ec562 feat(dashboard,core-flows): ability to refund payment post RMA flow (#8685) 2024-08-21 09:58:09 +02:00
Riqwan ThamirandCarlos R. L. Rodrigues 8bd284779e feat(dashboard,core-flows,js-sdk,types): ability to mark payment as paid (#8679)
* feat(core-flows): create or update payment collections in RMA flows

* chore: change ui to pick payment link from unpaid payment collection

* Apply suggestions from code review

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

* chore: fix mathbn

* feat(dashboard,core-flows,js-sdk,types): ability to mark payment as paid

* chore: add captured bt

---------

Co-authored-by: Carlos R. L. Rodrigues <37986729+carlos-r-l-rodrigues@users.noreply.github.com>
2024-08-20 22:58:28 +02:00
Riqwan ThamirandCarlos R. L. Rodrigues 430d9a38c4 feat(core-flows): create or update payment collections in RMA flows (#8676)
* feat(core-flows): create or update payment collections in RMA flows

* chore: change ui to pick payment link from unpaid payment collection

* Apply suggestions from code review

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

* chore: fix mathbn

---------

Co-authored-by: Carlos R. L. Rodrigues <37986729+carlos-r-l-rodrigues@users.noreply.github.com>
2024-08-20 18:40:58 +02:00
Riqwan Thamir fa44e3f5a8 feat(dashboard,core-flows,js-sdk,types,link-modules,payment): ability to copy payment link (#8630)
what: 

- enables a button to create a payment link when a payment delta is present
- api to delete order payment collection
- adds a pending amount to payment collections

Note: Not the happiest with the decision on when to create a payment collection and when not to. The code should programatically create or delete payment collections currently to generate the right collection for the payment delta. Adding a more specific flow to create and manage a payment collection will help reduce this burden from the code path and onto CX/merchant.

Another issue I found is that the payment collection status doesn't get updated when payment is complete as it still gets stuck to "authorized" state

https://github.com/user-attachments/assets/037a10f9-3621-43c2-94ba-1ada4b0a041b
2024-08-20 10:30:17 +00:00
Riqwan Thamir 4791d1d775 fix(promotion): validate rules accurately when attribute is scoped by context (#8655) 2024-08-19 15:38:42 +02:00
Riqwan Thamir adcd25650c feat(medusa,core-flows,types): API to create payment collections for order (#8617)
what:

- adds an API to create a payment collection for order
2024-08-16 08:16:40 +00:00
Riqwan Thamir 82c147b91e feat(dashboard,core-flows,js-sdk,types,medusa): Add exchange UI + fixes (#8606)
what:

- adds exchange UI
- fixes bugs on core-flows and endpoints
- random set of tiny fixes


https://github.com/user-attachments/assets/b163b9c1-4475-4936-ae98-20795760cc55
2024-08-15 17:54:51 +00:00
Riqwan Thamir 4cb28531e5 feat(core-flows,dashboard): add fixes to allow only outbound or inbound claims (#8590)
what:

- allows completing claim with only inbound items
- allows completing claim with only outbound items
- validates against creating claims when an active change order is present
2024-08-14 21:09:05 +00:00
Riqwan Thamir 01c8e4d3c1 fix(core-flows): fixes build fails (#8584) 2024-08-13 13:30:18 +00:00
Riqwan Thamir e823021446 feat(core-flows): introduce a generic create entities step (#8553) 2024-08-13 14:50:17 +02:00
Riqwan Thamir 6f50e376a9 fix(core-flows): fixes duplicate fulfillment issue (#8581)
what:

- fixes a bug where fulfilling an outbound item was throwing an error due to the entire order being processed for fulfillment

RESOLVES CC-298
2024-08-13 10:40:46 +00:00
Riqwan Thamir dd4147314f feat(core-flows,dashboard,medusa): fixes set of tiny bugs in claims flow (#8551)
* feat(types,dashboard): ability to set shipping methods for claim

* chore: fix a bunch of stuff

* chore: update comment
2024-08-12 13:09:19 +02:00
Riqwan Thamir 3fe5848e72 feat(types,dashboard): ability to set shipping methods for claim (#8533) 2024-08-09 11:51:33 +02:00
Riqwan Thamir a93b025233 feat(dashboard,js-sdk,types): ability to add refund reason and note (#8466)
what: 

- adds ability to add refund reason and note to a refund

<img width="524" alt="Screenshot 2024-08-06 at 13 06 59" src="https://github.com/user-attachments/assets/51537e9b-170b-4dd6-9de5-6bdea5e26822">

<img width="1090" alt="Screenshot 2024-08-06 at 12 57 18" src="https://github.com/user-attachments/assets/70bc84a4-5ebf-43e9-8416-370fd37ba615">

<img width="247" alt="Screenshot 2024-08-06 at 13 08 46" src="https://github.com/user-attachments/assets/b1dc1d83-7fb8-4af5-9a5b-fddb63ff1812">
2024-08-08 21:19:08 +00:00
Riqwan Thamir a7cace90e0 feat(medusa): filter shipping options by location (#8511)
what:

- filters shipping options by location ID

RESOLVES CC-328
2024-08-08 14:40:02 +00:00
Riqwan Thamir 85ed025705 feat(dashboard,js-sdk,medusa): add ability to add outbound items to claim (#8502)
what:

- user can add/remove/update outbound items to a claim
- adds API to query variants

Note: There are several paths that are not implemented yet correctly, but have some code lying around. Those will be tackled in the followup PRs

https://github.com/user-attachments/assets/cadb3f7a-982f-44c7-8d7e-9f4f26949f4f

RESOLVES CC-330
RESOLVES CC-296
2024-08-08 12:20:13 +00:00
d50161fa32 feat(adshboard,types,medusa): enable adding notes/return reason to inbound claims (#8488)
* wip: setup UI

* wip: rendering modal, adding claim items, create checks

* fix: make form work after merge

* fix: continuation of claim edit

* chore: ability to add and remove items to claim inbound

* chore: minor fixes

* chore: add toast messages on actions

* feat(adshboard,types,medusa): enable adding notes/return reason to inbound items

* chore: fix types in a bunch of places

* chore: add conditional for actions

* Update packages/admin-next/dashboard/src/routes/orders/order-create-claim/components/claim-create-form/claim-create-form.tsx

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

---------

Co-authored-by: fPolic <mainacc.polic@gmail.com>
Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
2024-08-07 19:32:07 +02:00
Riqwan ThamirandfPolic eb590417be feat(core-flows,dashboard,medusa): ability to add and remove items to claim inbound (#8480)
* wip: setup UI

* wip: rendering modal, adding claim items, create checks

* fix: make form work after merge

* fix: continuation of claim edit

* chore: ability to add and remove items to claim inbound

* chore: minor fixes

---------

Co-authored-by: fPolic <mainacc.polic@gmail.com>
2024-08-07 15:27:04 +02:00
Riqwan ThamirandfPolic 17567b9f0a feat(dashboard): claims first implementation (#8468)
* wip: setup UI

* wip: rendering modal, adding claim items, create checks

* fix: make form work after merge

* fix: continuation of claim edit

---------

Co-authored-by: fPolic <mainacc.polic@gmail.com>
2024-08-07 13:40:31 +02:00
0ff5b975e7 feat(core-flows,payment,medusa,types): Refund reasons management API (#8436)
* feat(core-flows,payment,medusa,types): add ability to set and manage refund reasons

* fix(payment): validate total amount when refunding payment (#8437)

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

* feature: introduce additional_data to the product endpoints (#8405)

* chore(docs): Generated References (#8440)

Generated the following references:
- `product`

* chore: align payment database schema

* Update packages/core/core-flows/src/payment-collection/steps/create-refund-reasons.ts

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

* chore: address review

---------

Co-authored-by: Carlos R. L. Rodrigues <37986729+carlos-r-l-rodrigues@users.noreply.github.com>
Co-authored-by: Harminder Virk <virk.officials@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
2024-08-06 11:47:42 +02:00
Riqwan ThamirandCarlos R. L. Rodrigues bcad5052af fix(payment): validate total amount when refunding payment (#8437)
Co-authored-by: Carlos R. L. Rodrigues <37986729+carlos-r-l-rodrigues@users.noreply.github.com>
2024-08-04 15:32:06 +00:00
Riqwan Thamir ce8c90838d fix(core-flows,utils,medusa): fix bug where payment collection across orders were getting updated (#8401)
This took embarrassingly long to debug. :|

what:

- fixes a bug where the payment collection of other orders were getting updated
- adds order status to payments section

<img width="1069" alt="Screenshot 2024-08-02 at 08 37 38" src="https://github.com/user-attachments/assets/31776bd3-e6b9-4d23-8be6-f972f7316cf3">
<img width="1072" alt="Screenshot 2024-08-02 at 08 37 48" src="https://github.com/user-attachments/assets/38cdd8a1-9f31-4920-91bf-a3554e298960">
2024-08-02 08:34:42 +00:00
Riqwan Thamir 7ae1d80380 feat(dashboard,types,js-sdk,payment): ability to refund payment in order page (#8385)
* feat(dashboard,types,js-sdk,payment): ability to refund payment in order page

* chore: use confirmation variant for capture payment

* chore: change refund design accords to figma

* chore: move to js-sdk + currency input
2024-08-01 19:13:41 +02:00
Riqwan Thamir 3169543d56 feat(dashboard,js-sdk,types): add ability to capture payment from order page (#8368)
what:

- adds ability to capture payment from order page

bugs found:

- when capturing payment of one order, other orders statuses get affected from "captured" to "partially captured". Will investigate this separately. 

https://github.com/user-attachments/assets/0a1beac2-74fc-4803-8528-8de5913964d4
2024-08-01 06:46:03 +00:00
Riqwan Thamir c976361f22 feat(dashboard,icons,types,js-sdk): add providers to location UI (#8328) 2024-07-30 08:47:01 +02:00
Riqwan Thamir 5fc5f2c35f feat(medusa): add stock_location_id filter to providers api (#8319)
what:

- adds a filter to fulfillment providers API to scope by stock locations

RESOLVES CC-260
2024-07-29 08:30:53 +00:00
Riqwan Thamir 71411463b1 feat(core-flows,medusa): add endpoint to add/remove fulfillment providers to location (#8299)
what:

- add endpoint to add/remove fulfillment providers to location
- specs cleanup from previous PR

RESOLVES CC-259
2024-07-26 14:35:19 +00:00
Riqwan Thamir 91c17651f1 feat(core-flows, fulfillment): validate shipping options to stock locations (#8291)
what:

- validate shipping options to stock locations

RESOLVES CC-232
2024-07-26 12:26:26 +00:00
Riqwan Thamir 34cf7a03a2 feat(utils,link-modules): link between fulfillment provider and stock location (#8275)
what:

- adds link between fulfillment provider and stock location

RESOLVES CC-233
2024-07-25 06:38:19 +00:00
Riqwan Thamir 04819107dd feat(core-flows,types): add workflow to request item return (#8098) 2024-07-11 19:45:40 +02:00
Riqwan Thamir 8a548cbc2f feat(core-flows,types): add workflow to update order change actions (#8080) 2024-07-11 11:04:41 +02:00
Riqwan Thamir 95f29358d1 feat(core-flows, types): workflow to delete order change actions (#8064)
* chore: workflow to delete order change actions

* chore: fix soft delete signature
2024-07-10 18:31:12 +02:00
Riqwan Thamir bec2dcd667 feat(core-flows, order): add workflow to create change order actions (#8056)
what:

- adds workflow to create change order actions
2024-07-10 10:35:03 +00:00
Riqwan Thamir 566bbd5074 feat(core-flows,types): cancel order changes workflow (#8035)
what:

- adds cancel order changes workflow
2024-07-09 14:06:33 +00:00
Riqwan Thamir b6fd82e31e feat(order,core-flows): added order change create workflow (#8033)
what:

- adds anorder change create workflow
- remove order change service, brings validation to entry point service
2024-07-09 12:12:05 +00:00
Riqwan Thamir 276c8b925f chore: fix notification loader error (#7969) 2024-07-05 12:05:18 +02:00
Riqwan Thamir 0d534d4f70 fix(product): category tree breaks due to pagination limit (#7947)
what:

- when children scope beyond the pagination limit, we fail to load all descendants and ancestors
- we fix this by fetching all categories in the tree scoped by the where clause
2024-07-04 14:58:21 +00:00
Riqwan Thamir 78a4bcc700 fix(dashboard): breaking store page due to default currency (#7915)
* chore: fix breaking store page due to default currency

* fix: remote query checks all data when scoped by id

* chore: minor change
2024-07-04 09:37:36 +02:00
Riqwan Thamir b6e4435c23 chore: cleanup migrations logs (#7924)
what:

when running `medusa run migrations`, cleanup logs with short descriptive message.

Before:

<img width="1262" alt="Screenshot 2024-07-03 at 14 31 36" src="https://github.com/medusajs/medusa/assets/5105988/504e9c24-371c-476d-9b6d-2dfe1a4088dc">

After:

<img width="1004" alt="Screenshot 2024-07-03 at 14 42 57" src="https://github.com/medusajs/medusa/assets/5105988/a89eaed5-04a4-4efb-a2e9-ca480f1eaa6e">
2024-07-03 13:53:59 +00:00
Riqwan Thamir fdee0bd55a chore: use campaign http types from types package (#7922) 2024-07-03 14:13:44 +02:00
Riqwan Thamir 40dbaf890f fix: only showcase tooltip when currency is not set (#7920)
* fix: only showcase tooltip when currency is not set

* chore: scope tooltip only if of type spend
2024-07-03 13:34:39 +02:00
Riqwan Thamir 00ba74c71f fix: user email is set to a unique index (#7917) 2024-07-03 12:32:30 +02:00
Riqwan Thamir b25c6ab54f chore(promotion): toast error messages on promotion errors (#7897) 2024-07-01 20:52:39 +02:00
Riqwan Thamir d58a626d0a fix: fix tabs + required fields (#7892) 2024-07-01 17:23:45 +02:00
Riqwan Thamir 789d545b9e feat(utils,types): infer keys in query builder from schema (#7861) 2024-06-27 20:38:06 +02:00
Riqwan Thamir 91098877c2 fix(utils): always apply default indexes (#7858)
what:

- fixes default indexes not being applied always
2024-06-27 16:05:28 +00:00
Riqwan Thamir 91faa5ffdb feat(utils): DML generates foreign key indexes by default (#7855)
**what:**

- adds default indexes on foreign keys when belongs to relationship is present

RESOLVES CORE-2404
2024-06-27 14:45:27 +00:00
Riqwan Thamir 3f16b011fa feat(utils,types): DML Index can generate where SQL from a query builder (#7849)
what:

- introduces a simple query builder
- uses the query builder to tranform an object in where to SQL when applying indexes

```
Examples:
  { where: { column: null } } -> column IS NULL
  { where: { column: { $ne: null } } } -> column IS NOT NULL
  { where: { boolean_column: true } } -> boolean_column IS TRUE
  { where: { column: "value", another_column: { $ne: 30 } } } -> column = "value" AND another_column != 30
```

```
const user = model
  .define("user", {
    email: model.text(),
    account: model.text(),
    organization: model.text(),
  })
  .indexes([
    {
      on: ["organization", "account"],
      where: { email: { $ne: null } },
    },
    {
      name: "IDX-email-account-special",
      on: ["organization", "account"],
      where: {
        email: { $ne: null },
        account: null,
      },
    },
```

RESOLVES CORE-2392
2024-06-27 10:24:34 +00:00
Riqwan Thamir 5ee97d0e97 feat(utils,types): DML can apply composite indexes (#7842)
**what:**

- DML can apply composite indexes
- Where clause is currently a string, QB version will come as a follow up

```
model.define("user", {
  email: model.text(),
  account: model.text(),
}).indexes([
  {
    name: "IDX-unique-name",
    unique: true,
    on: ["email", "account"],
    where: "email is NOT NULL",
  },
])
```

RESOLVES CORE-2391
2024-06-26 15:39:04 +00:00
Riqwan Thamir 4945c79818 feat(utils): infer primaryKeys from a DML model (#7839)
what:

- depending on other properties in a DML model, we infer primaryKeys between id properties and primaryKey-able properties. 

```
Example:
  Model 1:
    id: model.id() -> primary key
    code: model.text()

  Model 2:
    id: model.id()
    code: model.text().primaryKey() -> primary key

  Model 3:
    id: model.id()
    code: model.text().primaryKey() -> composite primary key
    name: model.text().primaryKey() -> composite primary key
```
2024-06-26 09:26:09 +00:00
Riqwan Thamir bea3e669e1 chore: promotion UI spacing fixes (#7826) 2024-06-25 16:50:07 +02:00
Riqwan Thamir 96fb7a962e feat(utils,currency): Migrate currency to use DML (#7807) 2024-06-24 19:07:26 +02:00
Riqwan Thamir 7414034ac4 chore: scope campaign identifier index with deleted at (#7821) 2024-06-24 18:06:14 +02:00
Riqwan Thamir 5c944ae5d0 feat(types,utils): DML can create a bigNumber property (#7801)
what:

- adds bigNumber as a property to DML
- creates a bigNumber options field (`raw_{{ field }}`) as a part of the schema

RESOLVES CORE-2375
2024-06-24 08:29:18 +00:00
Riqwan Thamir 8ac74c1357 feat(core-flows,types,pricing,medusa): Products API can create prices with rules (#7796)
* chore: Products API can create prices with rules

* chore: fix tests

* chore: cleanup

* chore: address comments
2024-06-21 15:30:36 +02:00
Riqwan Thamir 03924a4ff6 chore: move to swc/jest (#7739)
* chore: move to swc

* chore: fix tax rate tests

* chore: undo failed test

* chore: fix unit tests script

* chore: use node 20

* Update scripts/run-workspace-unit-tests-in-chunks.sh
2024-06-20 12:59:33 +02:00
Riqwan Thamir f61557712c chore: make apis nullable (#7763)
what:

- makes top level attributes of each object an optional field in the http layer where possible

RESOLVES CORE-2229
2024-06-20 10:10:59 +00:00
Riqwan Thamir 33c4cd34cc chore: export DML builders + fix default undefined values in SQL (#7776)
* chore: export dml builders through utils

* chore: fix undefined sql error

* chore: upgrade to ts 5

* chore: use isDefined
2024-06-20 10:45:49 +02:00
Riqwan Thamir 0d04c548f5 feat(dashboard,types,promotion,medusa): hide fields on promotions depending on templates (#7746)
**what:**

- hides different fields depending on the chosen template
- remove operator values API
- fixes to edit promotion rules
- make currency optional for promotion

RESOLVES CORE-2297
2024-06-18 16:47:42 +00:00
Riqwan Thamir 288e41856b fix(core-flows): delete existing payment session before creating new (#7751)
what:

Multiple active sessions are used for split payments. We don't currently support split payments. Until we have that implemented, this change is to ensure that whenever we create a new payment session, we delete an existing session if present. 

RESOLVES CORE-2284
2024-06-18 11:51:20 +00:00
Riqwan Thamir 4c962b97b1 chore: extend timeout on flaky spec (#7760) 2024-06-18 12:01:12 +02:00
Riqwan Thamir 263d9d0f22 feat(core-flows,utils): add payment + shipment workflow events (#7749) 2024-06-17 18:05:05 +02:00
Riqwan Thamir 3d33f06e77 chore: upgrade jest everywhere (#7703) 2024-06-14 07:35:30 +02:00
Riqwan Thamir 41528ddecf fix: ability to update price list status on admin (#7699) 2024-06-13 21:29:02 +02:00
Riqwan Thamir c57223a3a2 chore: price list prices of a product can be deleted (#7700) 2024-06-13 12:19:09 +02:00
Riqwan Thamir 129fb447d0 chore: allow calculating prices without explicit fields (#7691) 2024-06-12 20:04:53 +02:00
Riqwan ThamirandAdrien de Peretti 39ddba2491 chore: ability to group events on redis event bus (#7655)
* chore: ability to group events on redis event bus

* chore: fix tests

* Update packages/modules/event-bus-redis/src/services/event-bus-redis.ts

Co-authored-by: Adrien de Peretti <adrien.deperetti@gmail.com>

* chore: change shape of input and body data

* chore: fix builds

* chore: address comments

* chore: fix unit test

---------

Co-authored-by: Adrien de Peretti <adrien.deperetti@gmail.com>
2024-06-10 22:15:43 +02:00
Riqwan Thamir fbb00f3863 chore: group & release events for local eventbus (#7649)
* chore: stage & release events for local eventbus

* chore: address review

* chore: mock emitter correctly
2024-06-07 15:31:16 +02:00
Riqwan Thamir 1f1b996f63 chore: buyget templates add default target + buy rules (#7500)
* chore: buyget templates add default target + buy rules

* chore: reposition

* chore: address comments

* chore: added fixes

* chore: fix typo

* chore: fix strictness checks
2024-06-07 09:47:31 +02:00
Riqwan Thamir 0507dbe027 chore(core-flows,inventory,types,medusa): add fixes to inventory module + location levels api (#7629)
what:

- santizes inputs to prevent reserved_quantity from being updated directly
- inventory items create api can create location levels
- add validation to update quantity of reservation items
- general cleanup

RESOLVES CORE-2254
2024-06-06 12:58:17 +00:00
Riqwan Thamir 0a5b2b5fa7 chore: fix inventory items specs (#7620) 2024-06-05 15:27:54 +02:00
Riqwan Thamir e7005a0aac feat(core-flows,medusa): adds inventory kit creation to variants endpoint (#7599)
what:

When creating a variant, we can now create inventory as a part of the product and variants create endpoint.

This applies only to variants where `manage_inventory=true`. 2 cases present itself:

1. When inventory_items are present
  - Link an inventory item with required_quantity to the variant
  - the inventory item already needs to be present
2. When inventory_items are not present
  - A default inventory item will be created
  - links the created item to the variant with a default required_quantity
  
  
RESOLVES CORE-2220
2024-06-04 13:49:31 +00:00
Riqwan Thamir ecfbfcc707 feat(core-flows,modules-sdk,types,medusa,link-modules): adds variant <> inventory item link endpoints (#7576)
what:

- adds variant inventory link management endpoints:
```
Link inventory item to variant
POST /products/:id/variants/:vid/inventory-items

Update variant's inventory item link
POST /products/:id/variants/:vid/inventory-items/:iid

Unlink variant's inventory item
DELETE /products/:id/variants/:vid/inventory-items/:iid
```

- a batch endpoint that does the above 3 across variants
```
POST /products/:id/variants/inventory-items
```
2024-06-03 18:23:29 +00:00
Riqwan Thamir 2d956931b3 chore: append variants to created products on workflow (#7560) 2024-05-30 22:23:43 +02:00
Riqwan Thamir 22891060f9 chore: use product variant workflow in product create workflow (#7548)
what:

- reuses the product variant create workflow inside product create workflow
2024-05-30 14:04:59 +00:00
Riqwan Thamir 15e9787465 feat(types,medusa): add inventory quantity to products endpoint (#7541)
what:

- when inventory_quantity is requested through the API, we calculate the inventory based on sales channels + stock locations and return the total available inventory.

A variant can have multiple inventory items. As an example:

Table: (variant)
  - 4 (required_quantity via link) x legs (inventory item)
  - 2 x table top

Only if all individual inventory items of a variant are available, do we mark the variant as available as a single unit. 

RESOLVES CORE-2187
2024-05-30 13:20:06 +00:00
Riqwan Thamir f0b9d5534e chore: query inventory items by location id (#7524)
what:

- allows querying inventory items by the correct location_id
2024-05-29 14:14:10 +00:00
Riqwan Thamir 916f0cb6d0 fix(dashboard): Set default tax region as parent if no province is chosen (#7484)
* chore: allow tax region to be optional if no province is chosen

* chore: fallback region
2024-05-28 08:48:00 +02:00
Riqwan Thamir 7baedf73d5 feat(core-flows,types,utils,medusa): Update existing line items when adding the same variant to cart (#7470)
* feat(core-flows,types,utils,medusa): Update existing line items when adding the same variant to cart

* chore: split steps into 2 for add-to-cart

* chore: split steps into 2 for add-to-cart

* chore: iterate safely

* chore: parallelize upsert
2024-05-27 17:54:11 +02:00
Riqwan Thamir ff870482bb feat(medusa,core-flows,types): fix bugs with cart promotions (#7438)
what:

The true source of promotions applied are present in the adjustments, previously we had links as the source of truth, but some issues popped up when you're trying to delete a line item as it was holding onto stale promotion data.

For this to truly work properly in the current form, we would have to pass data from the deleted line item step to the refresh promotion step and mutate the links twice to get the correct promotions for a cart. Additionally, the final list of codes to apply, comes from computeAction, because some previously applied codes could no longer be valid. The combination of passing codes from adjustments to computeActions and the codes returned from the computedActions are how we can accurately calculate the right promotions to apply. 

With this change, the promotions step always look at the latest line item adjustments of the cart, pass them to compute actions, pick the correct codes to apply from the compute actions and then mutate the links based on the final result. This way, we perform the correct calculations for a cart and have promotion links that are correct.
2024-05-24 09:48:14 +00:00
Riqwan Thamir e3beaf5a29 chore: add cart links to promotions/product (#7428) 2024-05-23 16:54:09 +02:00