Commit Graph
844 Commits
Author SHA1 Message Date
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
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
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 OrsayandOli Juhl 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
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
github-actions[bot]andgithub-actions[bot] <github-actions[bot]@users.noreply.github.com> 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
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
olivermrbl aecae5705d chore(changesets): Change minor bump to patch 2023-09-07 20:17:46 +02:00
olivermrbl 9f16c90f99 chore(changesets): Change minor bump to patch 2023-09-07 17:33:09 +02:00
Josip MatićandOli Juhl 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
olivermrbl 09d97fd05e chore(changesets): Add changeset minor-bumping @medusajs/product 2023-09-07 10:41:20 +02: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
Riqwan ThamirandOli Juhl 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ćandOli Juhl 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
zulianrizkiandzulian-coconutlab 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
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. RodriguesandRiqwan Thamir 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
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 PeveyandOli Juhl 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
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
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
Riqwan Thamir a1110b3438 fix(medusa): category_id and q params for list products endpoint ld work (#4889)
Looks like during an earlier refactor, some of the categories logic wasn't ported over to the handler that works with q params. 

what:

- adds a fix that allows queries to be made on category_id when q param is passed.

Fixes https://github.com/medusajs/medusa/issues/4885
2023-08-28 11:46:55 +00:00
github-actions[bot]andgithub-actions[bot] <github-actions[bot]@users.noreply.github.com> 81904762b0 chore: Version Packages (#4867)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-08-25 16:49:02 +02:00
olivermrbl e91bd9e1c1 chore(changesets): Minor bump file plugins 2023-08-25 16:36:54 +02:00
github-actions[bot]andgithub-actions[bot] <github-actions[bot]@users.noreply.github.com> 362abdfad7 chore: Version Packages (#4826)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-08-25 16:15:33 +02:00
Frane Polić 0c7c2eeeab feat(admin-ui): refresh products when a BatchJob is completed (#4840) 2023-08-25 07:34:48 +00:00
Rares Stefan f4bf9ee169 fix(admin-ui): Fix variant creation when no stock locations provided (#4843)
* Update check on variant creation, whether to create stock locations

* Create spicy-shoes-type.md
2023-08-24 08:51:12 +02:00
Rares Stefan 57e199ef52 fix(admin-ui): Fix sign out in admin panel not redirecting correctly (#4837) 2023-08-23 21:54:45 +02:00
Frane Polić 8b860416d2 feat(medusa): PriceListImportStrategy descriptive errors (#4842) 2023-08-23 21:39:34 +02:00
Shahed Nasser c58588904c fix(medusa-telemetry): added missing babel dependencies (#4817) 2023-08-23 14:26:06 +02:00
Frane Polić d8a6e3e0d8 feat(medusa-file-local): implement missing streaming methods (#4788) 2023-08-23 13:05:04 +02:00
olivermrbl 8a43a6bc1d chore: Bump @medusajs/utils + @medusajs/product 2023-08-22 15:46:59 +02:00