feat(medusa): Revert pricing service setVariantPrices API (#4130)
This commit is contained in:
@@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
"@medusajs/medusa": patch
|
||||||
|
"integration-tests-api": patch
|
||||||
|
---
|
||||||
|
|
||||||
|
feat(medusa): Revert pricing service setVariantPrices API
|
||||||
@@ -33,7 +33,7 @@ const {
|
|||||||
simpleCustomerGroupFactory,
|
simpleCustomerGroupFactory,
|
||||||
} = require("../../../factories/simple-customer-group-factory")
|
} = require("../../../factories/simple-customer-group-factory")
|
||||||
|
|
||||||
jest.setTimeout(3000000)
|
jest.setTimeout(30000)
|
||||||
|
|
||||||
describe("/store/carts", () => {
|
describe("/store/carts", () => {
|
||||||
let medusaProcess
|
let medusaProcess
|
||||||
|
|||||||
@@ -69,9 +69,7 @@ export default async (req, res) => {
|
|||||||
req.retrieveConfig
|
req.retrieveConfig
|
||||||
)
|
)
|
||||||
|
|
||||||
const [variant] = await pricingService.setVariantPrices([
|
const [variant] = await pricingService.setVariantPrices([rawVariant])
|
||||||
{ variant: rawVariant },
|
|
||||||
])
|
|
||||||
|
|
||||||
res.status(200).json({ variant })
|
res.status(200).json({ variant })
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -147,17 +147,14 @@ export default async (req, res) => {
|
|||||||
currencyCode = region.currency_code
|
currencyCode = region.currency_code
|
||||||
}
|
}
|
||||||
|
|
||||||
let variants = await pricingService.setVariantPrices(
|
let variants = await pricingService.setVariantPrices(rawVariants, {
|
||||||
rawVariants.map((v) => ({ variant: v })),
|
cart_id: req.validatedQuery.cart_id,
|
||||||
{
|
region_id: regionId,
|
||||||
cart_id: req.validatedQuery.cart_id,
|
currency_code: currencyCode,
|
||||||
region_id: regionId,
|
customer_id: req.validatedQuery.customer_id,
|
||||||
currency_code: currencyCode,
|
include_discount_prices: true,
|
||||||
customer_id: req.validatedQuery.customer_id,
|
ignore_cache: true,
|
||||||
include_discount_prices: true,
|
})
|
||||||
ignore_cache: true,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
const inventoryService: IInventoryService | undefined =
|
const inventoryService: IInventoryService | undefined =
|
||||||
req.scope.resolve("inventoryService")
|
req.scope.resolve("inventoryService")
|
||||||
|
|||||||
@@ -97,16 +97,13 @@ export default async (req, res) => {
|
|||||||
currencyCode = region.currency_code
|
currencyCode = region.currency_code
|
||||||
}
|
}
|
||||||
|
|
||||||
const variantRes = await pricingService.setVariantPrices(
|
const variantRes = await pricingService.setVariantPrices([rawVariant], {
|
||||||
[{ variant: rawVariant }],
|
cart_id: validated.cart_id,
|
||||||
{
|
customer_id: customer_id,
|
||||||
cart_id: validated.cart_id,
|
region_id: regionId,
|
||||||
customer_id: customer_id,
|
currency_code: currencyCode,
|
||||||
region_id: regionId,
|
include_discount_prices: true,
|
||||||
currency_code: currencyCode,
|
})
|
||||||
include_discount_prices: true,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
const [variant] = await productVariantInventoryService.setVariantAvailability(
|
const [variant] = await productVariantInventoryService.setVariantAvailability(
|
||||||
variantRes,
|
variantRes,
|
||||||
|
|||||||
@@ -156,16 +156,13 @@ export default async (req, res) => {
|
|||||||
currencyCode = region.currency_code
|
currencyCode = region.currency_code
|
||||||
}
|
}
|
||||||
|
|
||||||
const pricedVariants = await pricingService.setVariantPrices(
|
const pricedVariants = await pricingService.setVariantPrices(rawVariants, {
|
||||||
rawVariants.map((v) => ({ variant: v })),
|
cart_id: validated.cart_id,
|
||||||
{
|
region_id: regionId,
|
||||||
cart_id: validated.cart_id,
|
currency_code: currencyCode,
|
||||||
region_id: regionId,
|
customer_id: customer_id,
|
||||||
currency_code: currencyCode,
|
include_discount_prices: true,
|
||||||
customer_id: customer_id,
|
})
|
||||||
include_discount_prices: true,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
const variants = await productVariantInventoryService.setVariantAvailability(
|
const variants = await productVariantInventoryService.setVariantAvailability(
|
||||||
pricedVariants,
|
pricedVariants,
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ export const PricingServiceMock = {
|
|||||||
setProductPrices: jest.fn().mockImplementation((prod) => {
|
setProductPrices: jest.fn().mockImplementation((prod) => {
|
||||||
return Promise.resolve(prod)
|
return Promise.resolve(prod)
|
||||||
}),
|
}),
|
||||||
setVariantPrices: jest.fn().mockImplementation(([{ variant }]) => {
|
setVariantPrices: jest.fn().mockImplementation(([variant]) => {
|
||||||
return Promise.resolve([variant])
|
return Promise.resolve([variant])
|
||||||
}),
|
}),
|
||||||
setShippingOptionPrices: jest.fn().mockImplementation((opts) => {
|
setShippingOptionPrices: jest.fn().mockImplementation((opts) => {
|
||||||
|
|||||||
@@ -451,61 +451,26 @@ class PricingService extends TransactionBaseService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @deprecated
|
* Set additional prices on a list of product variants.
|
||||||
* @param 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(
|
async setVariantPrices(
|
||||||
variants: ProductVariant[],
|
variants: ProductVariant[],
|
||||||
context?: PriceSelectionContext
|
|
||||||
): Promise<PricedVariant[]>
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 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<PricedVariant[]>
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 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 = {}
|
context: PriceSelectionContext = {}
|
||||||
): Promise<PricedVariant[]> {
|
): Promise<PricedVariant[]> {
|
||||||
const pricingContext = await this.collectPricingContext(context)
|
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(
|
const variantsPricingMap = await this.getProductVariantsPricing(
|
||||||
data.map((v) => ({
|
variants.map((v) => ({
|
||||||
variantId: v.variant.id,
|
variantId: v.id,
|
||||||
quantity: v.quantity,
|
quantity: context.quantity,
|
||||||
})),
|
})),
|
||||||
pricingContext
|
pricingContext
|
||||||
)
|
)
|
||||||
|
|
||||||
return data.map(({ variant }) => {
|
return variants.map((variant) => {
|
||||||
const variantPricing = variantsPricingMap[variant.id]
|
const variantPricing = variantsPricingMap[variant.id]
|
||||||
Object.assign(variant, variantPricing)
|
Object.assign(variant, variantPricing)
|
||||||
return variant as unknown as PricedVariant
|
return variant as unknown as PricedVariant
|
||||||
|
|||||||
Reference in New Issue
Block a user