Commit Graph

2540 Commits

Author SHA1 Message Date
Geoffroy Empain ab754a4cc2 feat(admin-ui): Add French translations (#5031)
* feat(admin-ui): add fr translations

* chore: register french in available languages

* chore: apply suggestions

---------

Co-authored-by: Geoffroy Empain <geoffroy@charlie-bravo.be>
2023-09-14 14:19:11 +02:00
Adrien de Peretti 05a32683a3 feat(medusa): Get product with isolated product module (#5010) 2023-09-13 14:39:59 +02:00
Adrien de Peretti 4fa675ec25 chore(medusa, modules-sdk, types): Refactor modules loading from medusa (#5018) 2023-09-13 14:26:54 +02:00
Carlos R. L. Rodrigues 5362bfc348 feat(medusa): Drop FKs to isolate products (#5042)
What:
Remove FKs related to product domain tables
2023-09-13 12:05:37 +00:00
Philip Korsholm 5d10c46bb1 feat(medusa): Separate money amount and variant (#4906)
* initial changes

* working test

* final changes to product tests

* update integration tests

* update price list integration tests

* update integration tests

* update unit tests

* update plugin integration tests

* remove catch from integration test

* undo change

* add andWhere

* update upsertCurrencyMoneyAmount method

* undo line item changes

* undo changes

* update deprecated method

* Update packages/medusa/src/migrations/1692953518123-drop_money_amount_constraints_for_pricing_module.ts

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

* rename joinTable

* update with joinTable entity

* update load methods

* remove await create

* re-add context test

* update price list behavior for prices

* update price list snapshots

* re-add admin seeder

* pr feedback

* fix unit tests

* fix plugin integration tests

* initial review changes

* redo changes to variant creation

---------

Co-authored-by: Carlos R. L. Rodrigues <37986729+carlos-r-l-rodrigues@users.noreply.github.com>
Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
2023-09-13 13:26:20 +02:00
Riqwan Thamir 3d68be2b6b fix(orchestration,link-modules,pricing,types): fix shippingprofile errror outside of core + change link alias name (#5025)
* fix(orchestration,link-modules,pricing,types): fix shippingprofile error outside of core + change link alias name

* chore: scope relationships and move condition inside

* chore: remove islist

* chore: fix merge conflict

* chore: reverted serviceName scoping

* chore: change shape to make methodOverride compatible

* chore: added methodOverride to remote query

* chore: revert override
2023-09-13 12:16:00 +02:00
Adrien de Peretti 7231f65833 feat(medusa): Prevent default SC to be assign if the isolated product flag is enabled (#5037)
* feat(medusa): Prevent default SC to be assign if the isolated product flag is enabled

* Create breezy-fans-accept.md
2023-09-13 10:36:55 +02:00
Oli Juhl d4432dd183 feat(admin-ui): Add display name + pull supported languages from config (#5028) 2023-09-13 09:45:26 +02:00
Carlos R. L. Rodrigues 05fcfd803e Fix(medusa): duplicated migration (#5029)
Fix duplicated migration class name
2023-09-12 20:15:47 +00:00
Adrien de Peretti 30863fee52 feat(medusa): List products with Remote Query (#4969)
**What**
- includes some type fixes in the DAL layer
- List products including their prices and filtered by the sales channel as well as q parameter and category scope and all other filters
- Assign shipping profile
- ordering
- Add missing columns in the product module
- update product module migrations

**Comment**
-  In regards to the fields, we can pass whatever we want the module will only return the one that exists (default behavior), but on the other hand, that is not possible for the relations.

**question**
- To simplify usage, should we expose the fields/relations available from the module to simplify building a query for the user and be aware of what the module provides

**todo**
- Add back the support for the user to ask for fields/relations
2023-09-12 15:55:05 +00:00
Geoffroy Empain afd4e72cdf feat(admin-ui): Multi-language support (#4962) 2023-09-12 14:53:48 +02:00
Adrien de Peretti 107aaa371c fix(orchestration): Infinite loop by reference update (#5023)
* fix(orchestration): Infinite loop by reference update

* fix

* handle conflict alias config

* rm field alias

* Create wet-gorillas-laugh.md
2023-09-12 13:24:35 +02:00
Carlos R. L. Rodrigues 0953bdfe84 feat(orchestration): Remote Joiner field aliases (#5013)
* initial commit

* chore: unit tests and forward arguments
2023-09-12 08:43:25 +02:00
Riqwan Thamir 834da5c41a feat(pricing, types): PriceSets as entry point to pricing module (#4978)
What:
- Adds PriceSet, PriceSetMoneyAmount, updates schema
- Adds service/repo for PriceSet
- Shifts entry point to use PriceSet
- Updates link/joiner config

RESOLVES CORE-1495
2023-09-11 17:24:31 +00:00
tekloon 03398f91f6 feat(admin): add ProductCollectionDetailsWidgetProps type (#5012)
Co-authored-by: Tek Loon <tekloon.1991@gmail.com>
2023-09-11 16:29:36 +02:00
Riqwan Thamir d3ebb42cb8 fix(link-modules): fix link configuration for product shipping profile (#5014) 2023-09-11 14:36:45 +02:00
Philip Korsholm 2b078f06d9 fix(medusa): default sales channel for store variant endpoints (#4556)
* add changeset

* include default sales channel when querying variant endpoints

* make parameter optional

* update default values

* add integraiton tests
2023-09-11 14:05:47 +02:00
Juan Pablo Orsay 87e3a7d06a fix(admin-ui): disabling analytics when opted out (#4939)
* fixes #4423 by either using the `useAnalytics` hook or using an ErrorBoundary specific instance

Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
2023-09-11 12:40:15 +02:00
Adrien de Peretti 6273b4b160 feat(utils, module-sdk, medusa): Extract pg connection utils to utils package (#4961) 2023-09-11 12:10:40 +02:00
Adrien de Peretti a87d07655b fix(link-modules): Fix link module initialization (#4990)
**What**
Add a new configuration on the relationship to specify if the relation is consumed from an internal service (from medusa core). In that case do not check if the service is part of the loaded modules
2023-09-11 08:49:23 +00:00
pepijn-vanvlaanderen c78e7df502 fix(medusa): Type in AbstractFulfillmentService (#5003) 2023-09-10 16:23:06 +02:00
Carlos R. L. Rodrigues d8649bacaa chore(modules-sdk,orchestration): to remote joiner query (#4974)
Helper function to transform js/json object into RemoteJoinerQuery format.

```typescript
toRemoteJoinerQuery({
  product: {
    fields: ["id", "title"],
    __args: {
      skip: 0,
    },
    variants: {
      fields: ["id", "title", "handle", "sku"],
      shipping_profile: {
        profile: {
          fields: ["id", "name"],
        },
      },
    },
    collections: {
      fields: ["id", "title"],
    },
  },
})
```

outputs:
```
{
  alias: "product",
  fields: ["id", "title"],
  expands: [
    {
      property: "product.variants",
      fields: ["id", "title", "handle", "sku"],
    },
    {
      property: "product.variants.shipping_profile",
    },
    {
      property: "product.variants.shipping_profile.profile",
      fields: ["id", "name"],
    },
    {
      property: "product.collections",
      fields: ["id", "title"],
    },
  ],
  args: [
    {
      name: "skip",
      value: 0,
    },
  ],
};
```
2023-09-10 13:26:50 +00:00
Shahed Nasser 1a1fc6c968 docs: add documentation for remaining plugins (#4994)
* docs: add documentation for remaining plugins

* fix eslint errors
2023-09-08 19:18:48 +03:00
Carlos R. L. Rodrigues 4b0e3fb2a7 feat(medusa,orchestration): Decouple Product in Cart domain (#4945) 2023-09-08 17:24:46 +02:00
github-actions[bot] 98b91d1137 chore: Version Packages (#4891)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-09-08 14:09:39 +02:00
Oli Juhl d3d8f0bf58 chore(admin, medusa-payment-stripe): Fix deps (#4987) 2023-09-08 13:55:03 +02:00
Shahed Nasser 240b038006 feat(create-medusa-app): add install Next.js storefront option (#4968)
* feat(create-medusa-app): add install Next.js storefront option

* added config for yes option

* added more instructions to exit message

* handle duplicate directories and next errors

* use next.js branch

* add line break in storefront question

* pass next.js directory name as env variable

* change question message

* address PR feedback

* fix(medusa-cli): remove .git directory in `new` command

* fix deleting a directory error
2023-09-08 12:17:48 +02:00
mortenengel 11fb523051 feat(medusa, admin-ui): Improve gift card application (#4944)
Fix for the problems identified in issue #4892 

Bugfix: admin-ui order summary no longer uses gift card total from order when displaying how much has been withdrawn from each giftcard.

Bugfix(?): no longer keep applying gift cards (at 0 value) when sufficient balance has been reached

Feature: multiple giftcards are now applied in ordered fashion. First by end_date (supports null), then by remaining balance. In order to ensure that customers ends up with as long lasting and few remaining gift cards as possible after the transaction.
2023-09-07 16:56:36 +00:00
Josip Matić 5890d3b313 fix(medusa-plugin-brightpearl): Inventory sync for OOS items in brightpearl (#4966) 2023-09-07 11:29:48 +00:00
Josip Matić c7b149a7bc feat(medusa-fulfillment-webshipper): Create webshipper return order (#4846)
Adds option to create a webshipper return order if return_portal is defined through webshipper options. Return order allows additional features in webshipper, such as marking the return as "Arrived" or "Processed" which enables us to create a webhook and automatically mark return as received in medusa.

Note:
Return portal is a "required" relationship in webshipper when doing a return order POST request, hence it should be defined in options prior to using this feature.

Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
2023-09-07 10:21:03 +00:00
Riqwan Thamir c3dba06948 fix(modules-sdk, orchestration): add missing dependencies + fix default handling in medusa-app & remote query (#4930) 2023-09-07 07:53:46 +00:00
Adrien de Peretti 86f4ca369f fix(orchestration): Fix remote joiner filtering fields (#4970)
* fix(orchestration): Fix remote joiner filtering fields

* cleanup test
2023-09-07 09:10:16 +02:00
Riqwan Thamir 66bd9a835c feat(products,types,pricing): allow scoping products by collection_id + pricing by currency_code (#4965)
* chore: allow scoping products by collection_id

* chore: scope money amounts by currency code + change category_ids to category_id

* chore: add an extra product to test without collection

---------

Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
2023-09-07 09:06:50 +02:00
Adrien de Peretti b71776738c feat(medusa): Event bus db failure handling (#4963)
* feat(medusa): Event bus db failure handling

* naming

* Create olive-years-heal.md
2023-09-06 17:07:29 +02:00
Shahed Nasser 9781089ca3 chore(oas): Update OAS for upload endpoints (#4953)
* chore(oas): Update OAS for upload endpoints

* added changeset

* address pr feedback
2023-09-06 17:39:19 +03:00
Kasper Fabricius Kristensen 545022145b fix(admin): Export RouteProps and SettingProps (#4950)
* fix: export SettingProps and RouteProps from admin package

* add changeset
2023-09-05 19:22:52 +02:00
Josip Matić bb5ea9d5ca fix(medusa): Double tax issue on return refund amount (#4899)
Closes #4686 

Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
2023-09-05 08:14:45 +00:00
Carlos R. L. Rodrigues a4906d0ac0 chore(medusa,orchestration,link-modules,modules-sdk): internal services as modules (#4925) 2023-09-04 11:36:05 -03:00
Oli Juhl 17d91c276a feat(medusa): Add AbstractFulfillmentService (#4922)
* feat(medusa): Add abstract fulfillment service

* add data types

* add loaders

* Create nine-glasses-allow.md

* address pr comments
2023-09-03 20:05:36 +02:00
zulianrizki c348263fdb fix(medusa-payment-stripe): api endpoint for getStripePayments (#4928)
fixes https://github.com/medusajs/medusa/issues/4927

Co-authored-by: zulian-coconutlab <73976574+zulian-coconutlab@users.noreply.github.com>
2023-09-01 10:38:03 +00:00
Riqwan Thamir fcb6b4f510 feat(pricing, utils, types): adds money amount to pricing module (#4909)
What:

- Adds money amount service / repo / model
- Adds money amount to entry service
- Adds tests for services
- Refreshes schema
- Update joiner config to include money amounts


RESOLVES CORE-1478
RESOLVES CORE-1479

Co-authored-by: Shahed Nasser <27354907+shahednasser@users.noreply.github.com>
Co-authored-by: Carlos R. L. Rodrigues <37986729+carlos-r-l-rodrigues@users.noreply.github.com>
2023-08-31 13:03:10 +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
Riqwan Thamir 87bade096e fix(utils, product, pricing, link-modules): add missing dependencies for utils + fix migration path issue (#4915)
* fix: add missing dependencies for utils

* chore: migration path is set from the calling package

* chore: update changeset
2023-08-31 09:16:02 +02:00
Carlos R. L. Rodrigues 4d16acf5f0 feat(link-modules,modules-sdk, utils, types, products) - Remote Link and Link modules (#4695)
What:
- Definition of all Modules links
- `link-modules` package to manage the creation of all pre-defined link or custom ones

```typescript
import { initialize as iniInventory } from "@medusajs/inventory";
import { initialize as iniProduct } from "@medusajs/product";

import {
  initialize as iniLinks,
  runMigrations as migrateLinks
} from "@medusajs/link-modules";

await Promise.all([iniInventory(), iniProduct()]);


await migrateLinks(); // create tables based on previous loaded modules

await iniLinks(); // load link based on previous loaded modules

await iniLinks(undefined, [
  {
    serviceName: "product_custom_translation_service_link",
    isLink: true,
    databaseConfig: {
      tableName: "product_transalations",
    },
    alias: [
      {
        name: "translations",
      },
    ],
    primaryKeys: ["id", "product_id", "translation_id"],
    relationships: [
      {
        serviceName: Modules.PRODUCT,
        primaryKey: "id",
        foreignKey: "product_id",
        alias: "product",
      },
      {
        serviceName: "custom_translation_service",
        primaryKey: "id",
        foreignKey: "translation_id",
        alias: "transalation",
        deleteCascade: true,
      },
    ],
    extends: [
      {
        serviceName: Modules.PRODUCT,
        relationship: {
          serviceName: "product_custom_translation_service_link",
          primaryKey: "product_id",
          foreignKey: "id",
          alias: "translations",
          isList: true,
        },
      },
      {
        serviceName: "custom_translation_service",
        relationship: {
          serviceName: "product_custom_translation_service_link",
          primaryKey: "product_id",
          foreignKey: "id",
          alias: "product_link",
        },
      },
    ],
  },
]); // custom links
```

Remote Link

```typescript
import { RemoteLink, Modules } from "@medusajs/modules-sdk";

// [...] initialize modules and links

const remoteLink = new RemoteLink();

// upsert the relationship
await remoteLink.create({ // one (object) or many (array)
  [Modules.PRODUCT]: {
    variant_id: "var_abc",
  },
  [Modules.INVENTORY]: {
    inventory_item_id: "iitem_abc",
  },
  data: { // optional additional fields
    required_quantity: 5
  }
});

// dismiss (doesn't cascade)
await remoteLink.dismiss({ // one (object) or many (array)
  [Modules.PRODUCT]: {
    variant_id: "var_abc",
  },
  [Modules.INVENTORY]: {
    inventory_item_id: "iitem_abc",
  },
});

// delete
await remoteLink.delete({
  // every key is a module
  [Modules.PRODUCT]: {
    // every key is a linkable field
    variant_id: "var_abc", // single or multiple values
  },
});

// restore
await remoteLink.restore({
  // every key is a module
  [Modules.PRODUCT]: {
    // every key is a linkable field
    variant_id: "var_abc", // single or multiple values
  },
});

```

Co-authored-by: Riqwan Thamir <5105988+riqwan@users.noreply.github.com>
2023-08-30 14:31:32 +00:00
Andreas Deininger a0bbc1893b chore: fix typos (#4877)
* Chore: Fix typos

* Add generated resources

---------

Co-authored-by: Shahed Nasser <shahednasser@gmail.com>
2023-08-30 13:27:46 +03:00
Riqwan Thamir 460161a69f feat(pricing, types, utils, medusa-sdk): Pricing Module Setup + Currency (#4860)
What:

- Setups the skeleton for pricing module
- Creates service/model/repository for currency model
- Setups types
- Setups DB
- Moved some utils to a common place

RESOLVES CORE-1477
RESOLVES CORE-1476
2023-08-29 21:58:34 +00:00
Rares Stefan 470379e631 fix(medusa, admin-ui): Add deleted_at to Return Reason unique constraint (#4834)
* Update return reason create to upsert

* Create strange-wombats-invite.md

* Revert upsert, make value index only apply on non-deleted entities
2023-08-29 19:26:58 +02:00
Lacey Pevey 046b0dcfa5 chore(medusa-file-s3): Add cache-control option + update to sdk v3 (#4884)
* add cache-control option, fix delete function, update to sdk v3

* Create cool-pears-trade.md

* reformat throw line, remove dev comment

* remove console.log debugging statement

---------

Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
2023-08-29 19:25:17 +02:00
Micky Jittjana 4d439bed38 fix(medusa): Make event enqueuer reconnect the database when it lost the connection (#4855)
* Try to periodically reconnect database from enqueuer

* Create great-months-train.md

---------

Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
Co-authored-by: Carlos R. L. Rodrigues <37986729+carlos-r-l-rodrigues@users.noreply.github.com>
2023-08-29 13:03:11 +02:00
Frane Polić b7de679e9b feat(admin-ui): batch job completed notification (#4886) 2023-08-28 20:21:42 +02:00