fix(pricing, types): update calculatePrices return type to match actual type (#5709)
* initial type fix * add changeset * update changeset * update tsdocs --------- Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com> Co-authored-by: Riqwan Thamir <rmthamir@gmail.com>
This commit is contained in:
co-authored by
Oli Juhl
Riqwan Thamir
parent
ffb0c7b4cd
commit
0df1c7d427
@@ -14,12 +14,12 @@ import {
|
||||
RuleTypeDTO,
|
||||
} from "@medusajs/types"
|
||||
import {
|
||||
groupBy,
|
||||
InjectManager,
|
||||
InjectTransactionManager,
|
||||
MedusaContext,
|
||||
MedusaError,
|
||||
PriceListType,
|
||||
groupBy,
|
||||
removeNullish,
|
||||
} from "@medusajs/utils"
|
||||
|
||||
@@ -140,7 +140,7 @@ export default class PricingModuleService<
|
||||
pricingFilters: PricingFilters,
|
||||
pricingContext: PricingContext = { context: {} },
|
||||
@MedusaContext() sharedContext: Context = {}
|
||||
): Promise<PricingTypes.CalculatedPriceSetDTO> {
|
||||
): Promise<PricingTypes.CalculatedPriceSet[]> {
|
||||
const results = await this.pricingRepository_.calculatePrices(
|
||||
pricingFilters,
|
||||
pricingContext,
|
||||
@@ -149,55 +149,58 @@ export default class PricingModuleService<
|
||||
|
||||
const pricesSetPricesMap = groupBy(results, "price_set_id")
|
||||
|
||||
const calculatedPrices = pricingFilters.id.map(
|
||||
(priceSetId: string): PricingTypes.CalculatedPriceSet => {
|
||||
// This is where we select prices, for now we just do a first match based on the database results
|
||||
// which is prioritized by number_rules first for exact match and then deafult_priority of the rule_type
|
||||
// inject custom price selection here
|
||||
const prices = pricesSetPricesMap.get(priceSetId) || []
|
||||
const priceListPrice = prices.find((p) => p.price_list_id)
|
||||
const calculatedPrices: PricingTypes.CalculatedPriceSet[] =
|
||||
pricingFilters.id.map(
|
||||
(priceSetId: string): PricingTypes.CalculatedPriceSet => {
|
||||
// This is where we select prices, for now we just do a first match based on the database results
|
||||
// which is prioritized by number_rules first for exact match and then deafult_priority of the rule_type
|
||||
// inject custom price selection here
|
||||
const prices = pricesSetPricesMap.get(priceSetId) || []
|
||||
const priceListPrice = prices.find((p) => p.price_list_id)
|
||||
|
||||
const defaultPrice = prices?.find((p) => !p.price_list_id)
|
||||
const defaultPrice = prices?.find((p) => !p.price_list_id)
|
||||
|
||||
let calculatedPrice: PricingTypes.CalculatedPriceSetDTO = defaultPrice
|
||||
let originalPrice: PricingTypes.CalculatedPriceSetDTO = defaultPrice
|
||||
let calculatedPrice: PricingTypes.CalculatedPriceSetDTO = defaultPrice
|
||||
let originalPrice: PricingTypes.CalculatedPriceSetDTO = defaultPrice
|
||||
|
||||
if (priceListPrice) {
|
||||
calculatedPrice = priceListPrice
|
||||
if (priceListPrice) {
|
||||
calculatedPrice = priceListPrice
|
||||
|
||||
if (priceListPrice.price_list_type === PriceListType.OVERRIDE) {
|
||||
originalPrice = priceListPrice
|
||||
if (priceListPrice.price_list_type === PriceListType.OVERRIDE) {
|
||||
originalPrice = priceListPrice
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
id: priceSetId,
|
||||
is_calculated_price_price_list: !!calculatedPrice?.price_list_id,
|
||||
calculated_amount: parseInt(calculatedPrice?.amount || "") || null,
|
||||
|
||||
is_original_price_price_list: !!originalPrice?.price_list_id,
|
||||
original_amount: parseInt(originalPrice?.amount || "") || null,
|
||||
|
||||
currency_code: calculatedPrice?.currency_code || null,
|
||||
|
||||
calculated_price: {
|
||||
money_amount_id: calculatedPrice?.id || null,
|
||||
price_list_id: calculatedPrice?.price_list_id || null,
|
||||
price_list_type: calculatedPrice?.price_list_type || null,
|
||||
min_quantity:
|
||||
parseInt(calculatedPrice?.min_quantity || "") || null,
|
||||
max_quantity:
|
||||
parseInt(calculatedPrice?.max_quantity || "") || null,
|
||||
},
|
||||
|
||||
original_price: {
|
||||
money_amount_id: originalPrice?.id || null,
|
||||
price_list_id: originalPrice?.price_list_id || null,
|
||||
price_list_type: originalPrice?.price_list_type || null,
|
||||
min_quantity: parseInt(originalPrice?.min_quantity || "") || null,
|
||||
max_quantity: parseInt(originalPrice?.max_quantity || "") || null,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
id: priceSetId,
|
||||
is_calculated_price_price_list: !!calculatedPrice?.price_list_id,
|
||||
calculated_amount: parseInt(calculatedPrice?.amount || "") || null,
|
||||
|
||||
is_original_price_price_list: !!originalPrice?.price_list_id,
|
||||
original_amount: parseInt(originalPrice?.amount || "") || null,
|
||||
|
||||
currency_code: calculatedPrice?.currency_code || null,
|
||||
|
||||
calculated_price: {
|
||||
money_amount_id: calculatedPrice?.id || null,
|
||||
price_list_id: calculatedPrice?.price_list_id || null,
|
||||
price_list_type: calculatedPrice?.price_list_type || null,
|
||||
min_quantity: parseInt(calculatedPrice?.min_quantity || "") || null,
|
||||
max_quantity: parseInt(calculatedPrice?.max_quantity || "") || null,
|
||||
},
|
||||
|
||||
original_price: {
|
||||
money_amount_id: originalPrice?.id || null,
|
||||
price_list_id: originalPrice?.price_list_id || null,
|
||||
price_list_type: originalPrice?.price_list_type || null,
|
||||
min_quantity: parseInt(originalPrice?.min_quantity || "") || null,
|
||||
max_quantity: parseInt(originalPrice?.max_quantity || "") || null,
|
||||
},
|
||||
}
|
||||
}
|
||||
)
|
||||
)
|
||||
|
||||
return JSON.parse(JSON.stringify(calculatedPrices))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user