fix: add shipping taxes (#1759)

**What**
Adds taxes to the shipping prices when listing in admin. Allows store operators to see correct prices when processing returns.
This commit is contained in:
Sebastian Rindom
2022-07-02 10:35:16 +00:00
committed by GitHub
parent f7e300e8ce
commit fee0f88a62
11 changed files with 248 additions and 27 deletions
@@ -1,6 +1,7 @@
import { Transform } from "class-transformer"
import { IsBoolean, IsOptional, IsString } from "class-validator"
import { defaultFields, defaultRelations } from "."
import { PricingService } from "../../../../services"
import { validator } from "../../../../utils/validator"
import { optionalBooleanMapper } from "../../../../utils/validators/is-boolean"
@@ -50,12 +51,15 @@ export default async (req, res) => {
)
const optionService = req.scope.resolve("shippingOptionService")
const pricingService: PricingService = req.scope.resolve("pricingService")
const [data, count] = await optionService.listAndCount(validatedParams, {
select: defaultFields,
relations: defaultRelations,
})
res.status(200).json({ shipping_options: data, count })
const options = await pricingService.setShippingOptionPrices(data)
res.status(200).json({ shipping_options: options, count })
}
export class AdminGetShippingOptionsParams {
@@ -1,5 +1,5 @@
import { IsBooleanString, IsOptional, IsString } from "class-validator"
import ProductService from "../../../../services/product"
import { PricingService, ProductService } from "../../../../services"
import ShippingOptionService from "../../../../services/shipping-option"
import { validator } from "../../../../utils/validator"
@@ -33,6 +33,7 @@ export default async (req, res) => {
(validated.product_ids && validated.product_ids.split(",")) || []
const regionId = validated.region_id
const productService: ProductService = req.scope.resolve("productService")
const pricingService: PricingService = req.scope.resolve("pricingService")
const shippingOptionService: ShippingOptionService = req.scope.resolve(
"shippingOptionService"
)
@@ -59,7 +60,9 @@ export default async (req, res) => {
relations: ["requirements"],
})
res.status(200).json({ shipping_options: options })
const data = await pricingService.setShippingOptionPrices(options)
res.status(200).json({ shipping_options: data })
}
export class StoreGetShippingOptionsParams {
@@ -1,4 +1,4 @@
import CartService from "../../../../services/cart"
import { CartService, PricingService } from "../../../../services"
import ShippingProfileService from "../../../../services/shipping-profile"
/**
@@ -26,6 +26,7 @@ export default async (req, res) => {
const { cart_id } = req.params
const cartService: CartService = req.scope.resolve("cartService")
const pricingService: PricingService = req.scope.resolve("pricingService")
const shippingProfileService: ShippingProfileService = req.scope.resolve(
"shippingProfileService"
)
@@ -36,6 +37,9 @@ export default async (req, res) => {
})
const options = await shippingProfileService.fetchCartOptions(cart)
const data = await pricingService.setShippingOptionPrices(options, {
cart_id,
})
res.status(200).json({ shipping_options: options })
res.status(200).json({ shipping_options: data })
}