feat: List shipping options for cart (#6677)

This commit is contained in:
Oli Juhl authored and GitHub committed 2024-03-13 09:08:47 +00:00
1 parent db26dafa85
commit 25d176b851
23 files changed
+855 -142

No files matched your search

@@ -0,0 +1,42 @@
import { listShippingOptionsForCartWorkflow } from "@medusajs/core-flows"
import { ModuleRegistrationName } from "@medusajs/modules-sdk"
import { ICartModuleService } from "@medusajs/types"
import { MedusaRequest, MedusaResponse } from "../../../../types/routing"
export const GET = async (req: MedusaRequest, res: MedusaResponse) => {
const { cart_id } = req.params
const cartService = req.scope.resolve<ICartModuleService>(
ModuleRegistrationName.CART
)
const cart = await cartService.retrieve(cart_id, {
select: [
"id",
"sales_channel_id",
"subtotal",
"currency_code",
"shipping_address.city",
"shipping_address.country_code",
"shipping_address.province",
],
relations: ["shipping_address"],
})
const shippingOptions = await listShippingOptionsForCartWorkflow(
req.scope
).run({
input: {
cart_id: cart.id,
sales_channel_id: cart.sales_channel_id,
currency_code: cart.currency_code,
shipping_address: {
city: cart.shipping_address?.city,
country_code: cart.shipping_address?.country_code,
province: cart.shipping_address?.province,
},
},
})
res.json({ shipping_options: shippingOptions })
}
@@ -0,0 +1,9 @@
import { MiddlewareRoute } from "../../../loaders/helpers/routing/types"
export const storeShippingOptionRoutesMiddlewares: MiddlewareRoute[] = [
{
method: ["GET"],
matcher: "/store/shipping-options/:cart_id",
middlewares: [],
},
]
@@ -0,0 +1,14 @@
export const defaultStoreShippingOptionsFields = [
"id",
"name",
"price_type",
"service_zone_id",
"shipping_profile_id",
"fulfillment_provider_id",
"shipping_option_type_id",
]
export const listTransformQueryConfig = {
defaultLimit: 20,
isList: true,
}