diff --git a/.changeset/tricky-pears-walk.md b/.changeset/tricky-pears-walk.md new file mode 100644 index 0000000000..1ee95d73de --- /dev/null +++ b/.changeset/tricky-pears-walk.md @@ -0,0 +1,5 @@ +--- +"@medusajs/medusa": patch +--- + +fix(medusa): In product isolation, throw if product not found diff --git a/packages/medusa/src/api/routes/admin/products/get-product.ts b/packages/medusa/src/api/routes/admin/products/get-product.ts index 4270547e32..174231ea2f 100644 --- a/packages/medusa/src/api/routes/admin/products/get-product.ts +++ b/packages/medusa/src/api/routes/admin/products/get-product.ts @@ -1,6 +1,7 @@ import { PricingService, ProductService } from "../../../../services" import IsolateProductDomainFeatureFlag from "../../../../loaders/feature-flags/isolate-product-domain" import { defaultAdminProductRemoteQueryObject } from "./index" +import { MedusaError } from "@medusajs/utils" /** * @oas [get] /admin/products/{id} @@ -100,6 +101,13 @@ async function getProductWithIsolatedProductModule(req, id, retrieveConfig) { const [product] = await remoteQuery(query) + if (!product) { + throw new MedusaError( + MedusaError.Types.NOT_FOUND, + `Product with id: ${id} not found` + ) + } + product.profile_id = product.profile?.id return product diff --git a/packages/medusa/src/api/routes/store/products/get-product.ts b/packages/medusa/src/api/routes/store/products/get-product.ts index 2f79a62ece..18f136fa85 100644 --- a/packages/medusa/src/api/routes/store/products/get-product.ts +++ b/packages/medusa/src/api/routes/store/products/get-product.ts @@ -11,6 +11,7 @@ import { PriceSelectionParams } from "../../../../types/price-selection" import { cleanResponseData } from "../../../../utils" import IsolateProductDomain from "../../../../loaders/feature-flags/isolate-product-domain" import { defaultStoreProductRemoteQueryObject } from "./index" +import { MedusaError } from "@medusajs/utils" /** * @oas [get] /store/products/{id} @@ -176,6 +177,13 @@ async function getProductWithIsolatedProductModule(req, id: string) { const [product] = await remoteQuery(query) + if (!product) { + throw new MedusaError( + MedusaError.Types.NOT_FOUND, + `Product with id: ${id} not found` + ) + } + product.profile_id = product.profile?.id return product