diff --git a/.changeset/ten-pumpkins-sleep.md b/.changeset/ten-pumpkins-sleep.md new file mode 100644 index 0000000000..f7bbd205a8 --- /dev/null +++ b/.changeset/ten-pumpkins-sleep.md @@ -0,0 +1,6 @@ +--- +"@medusajs/medusa": patch +"integration-tests-api": patch +--- + +feat(medusa): Revert pricing service setVariantPrices API diff --git a/integration-tests/api/__tests__/store/cart/cart.js b/integration-tests/api/__tests__/store/cart/cart.js index 50d84c3964..762aa551b0 100644 --- a/integration-tests/api/__tests__/store/cart/cart.js +++ b/integration-tests/api/__tests__/store/cart/cart.js @@ -33,7 +33,7 @@ const { simpleCustomerGroupFactory, } = require("../../../factories/simple-customer-group-factory") -jest.setTimeout(3000000) +jest.setTimeout(30000) describe("/store/carts", () => { let medusaProcess diff --git a/packages/medusa/src/api/routes/admin/variants/get-variant.ts b/packages/medusa/src/api/routes/admin/variants/get-variant.ts index 0d3f2d39f1..9bb0e86091 100644 --- a/packages/medusa/src/api/routes/admin/variants/get-variant.ts +++ b/packages/medusa/src/api/routes/admin/variants/get-variant.ts @@ -69,9 +69,7 @@ export default async (req, res) => { req.retrieveConfig ) - const [variant] = await pricingService.setVariantPrices([ - { variant: rawVariant }, - ]) + const [variant] = await pricingService.setVariantPrices([rawVariant]) res.status(200).json({ variant }) } diff --git a/packages/medusa/src/api/routes/admin/variants/list-variants.ts b/packages/medusa/src/api/routes/admin/variants/list-variants.ts index 0f072a4d26..9467ec2e52 100644 --- a/packages/medusa/src/api/routes/admin/variants/list-variants.ts +++ b/packages/medusa/src/api/routes/admin/variants/list-variants.ts @@ -147,17 +147,14 @@ export default async (req, res) => { currencyCode = region.currency_code } - let variants = await pricingService.setVariantPrices( - rawVariants.map((v) => ({ variant: v })), - { - cart_id: req.validatedQuery.cart_id, - region_id: regionId, - currency_code: currencyCode, - customer_id: req.validatedQuery.customer_id, - include_discount_prices: true, - ignore_cache: true, - } - ) + let variants = await pricingService.setVariantPrices(rawVariants, { + cart_id: req.validatedQuery.cart_id, + region_id: regionId, + currency_code: currencyCode, + customer_id: req.validatedQuery.customer_id, + include_discount_prices: true, + ignore_cache: true, + }) const inventoryService: IInventoryService | undefined = req.scope.resolve("inventoryService") diff --git a/packages/medusa/src/api/routes/store/variants/get-variant.ts b/packages/medusa/src/api/routes/store/variants/get-variant.ts index e064a0e591..da83ff4aed 100644 --- a/packages/medusa/src/api/routes/store/variants/get-variant.ts +++ b/packages/medusa/src/api/routes/store/variants/get-variant.ts @@ -97,16 +97,13 @@ export default async (req, res) => { currencyCode = region.currency_code } - const variantRes = await pricingService.setVariantPrices( - [{ variant: rawVariant }], - { - cart_id: validated.cart_id, - customer_id: customer_id, - region_id: regionId, - currency_code: currencyCode, - include_discount_prices: true, - } - ) + const variantRes = await pricingService.setVariantPrices([rawVariant], { + cart_id: validated.cart_id, + customer_id: customer_id, + region_id: regionId, + currency_code: currencyCode, + include_discount_prices: true, + }) const [variant] = await productVariantInventoryService.setVariantAvailability( variantRes, diff --git a/packages/medusa/src/api/routes/store/variants/list-variants.ts b/packages/medusa/src/api/routes/store/variants/list-variants.ts index 9c876ef793..6c9bc4a764 100644 --- a/packages/medusa/src/api/routes/store/variants/list-variants.ts +++ b/packages/medusa/src/api/routes/store/variants/list-variants.ts @@ -156,16 +156,13 @@ export default async (req, res) => { currencyCode = region.currency_code } - const pricedVariants = await pricingService.setVariantPrices( - rawVariants.map((v) => ({ variant: v })), - { - cart_id: validated.cart_id, - region_id: regionId, - currency_code: currencyCode, - customer_id: customer_id, - include_discount_prices: true, - } - ) + const pricedVariants = await pricingService.setVariantPrices(rawVariants, { + cart_id: validated.cart_id, + region_id: regionId, + currency_code: currencyCode, + customer_id: customer_id, + include_discount_prices: true, + }) const variants = await productVariantInventoryService.setVariantAvailability( pricedVariants, diff --git a/packages/medusa/src/services/__mocks__/pricing.js b/packages/medusa/src/services/__mocks__/pricing.js index d235e03b6b..1783c79216 100644 --- a/packages/medusa/src/services/__mocks__/pricing.js +++ b/packages/medusa/src/services/__mocks__/pricing.js @@ -5,7 +5,7 @@ export const PricingServiceMock = { setProductPrices: jest.fn().mockImplementation((prod) => { return Promise.resolve(prod) }), - setVariantPrices: jest.fn().mockImplementation(([{ variant }]) => { + setVariantPrices: jest.fn().mockImplementation(([variant]) => { return Promise.resolve([variant]) }), setShippingOptionPrices: jest.fn().mockImplementation((opts) => { diff --git a/packages/medusa/src/services/pricing.ts b/packages/medusa/src/services/pricing.ts index 442f2d5cd6..e8226616d1 100644 --- a/packages/medusa/src/services/pricing.ts +++ b/packages/medusa/src/services/pricing.ts @@ -451,61 +451,26 @@ class PricingService extends TransactionBaseService { } /** - * @deprecated + * Set additional prices on a list of product variants. * @param variants - * @param context + * @param context - the price selection context to use + * @return A list of products with variants decorated with prices */ async setVariantPrices( variants: ProductVariant[], - context?: PriceSelectionContext - ): Promise - - /** - * Set additional prices on a list of product variants. - * @param variantsData - * @param context - the price selection context to use - * @return A list of products with variants decorated with prices - */ - async setVariantPrices( - variantsData: { variant: ProductVariant; quantity?: number }[], - context?: PriceSelectionContext - ): Promise - - /** - * Set additional prices on a list of product variants. - * @param variantsData - * @param context - the price selection context to use - * @return A list of products with variants decorated with prices - */ - async setVariantPrices( - variantsData: - | ProductVariant[] - | { variant: ProductVariant; quantity?: number }[], context: PriceSelectionContext = {} ): Promise { const pricingContext = await this.collectPricingContext(context) - let data = variantsData as { - variant: ProductVariant - quantity?: number - }[] - - if ("id" in variantsData) { - data = (variantsData as ProductVariant[]).map((v) => ({ - variant: v, - quantity: pricingContext.price_selection.quantity, - })) - } - const variantsPricingMap = await this.getProductVariantsPricing( - data.map((v) => ({ - variantId: v.variant.id, - quantity: v.quantity, + variants.map((v) => ({ + variantId: v.id, + quantity: context.quantity, })), pricingContext ) - return data.map(({ variant }) => { + return variants.map((variant) => { const variantPricing = variantsPricingMap[variant.id] Object.assign(variant, variantPricing) return variant as unknown as PricedVariant