fix(types,order,medusa): Create credit lines + hooks (#11569)

what:

- api/workflows to create credit lines
- hooks to enable extending credit lines
This commit is contained in:
Riqwan Thamir
2025-03-17 15:20:59 +00:00
committed by GitHub
parent 0625f76cd4
commit cb6249320e
31 changed files with 630 additions and 111 deletions
@@ -0,0 +1,33 @@
import { createOrderCreditLinesWorkflow } from "@medusajs/core-flows"
import {
AuthenticatedMedusaRequest,
MedusaResponse,
} from "@medusajs/framework/http"
import { HttpTypes } from "@medusajs/framework/types"
import { ContainerRegistrationKeys } from "@medusajs/framework/utils"
import { AdminCreateOrderCreditLinesType } from "../../validators"
export const POST = async (
req: AuthenticatedMedusaRequest<AdminCreateOrderCreditLinesType>,
res: MedusaResponse<HttpTypes.AdminOrderResponse>
) => {
const query = req.scope.resolve(ContainerRegistrationKeys.QUERY)
const { id } = req.params
await createOrderCreditLinesWorkflow(req.scope).run({
input: { credit_lines: [req.validatedBody], id },
})
const {
data: [order],
} = await query.graph(
{
entity: "orders",
fields: req.queryConfig.fields,
filters: { id },
},
{ throwIfKeyNotFound: true }
)
res.status(200).json({ order })
}
@@ -7,6 +7,7 @@ import * as QueryConfig from "./query-config"
import {
AdminCancelOrderTransferRequest,
AdminCompleteOrder,
AdminCreateOrderCreditLines,
AdminGetOrdersOrderItemsParams,
AdminGetOrdersOrderParams,
AdminGetOrdersParams,
@@ -113,7 +114,17 @@ export const adminOrderRoutesMiddlewares: MiddlewareRoute[] = [
),
],
},
{
method: ["POST"],
matcher: "/admin/orders/:id/credit-lines",
middlewares: [
validateAndTransformBody(AdminCreateOrderCreditLines),
validateAndTransformQuery(
AdminGetOrdersOrderParams,
QueryConfig.retrieveTransformQueryConfig
),
],
},
{
method: ["POST"],
matcher: "/admin/orders/:id/fulfillments",
@@ -32,7 +32,11 @@ export const defaultAdminRetrieveOrderFields = [
"original_shipping_tax_total",
"original_shipping_subtotal",
"original_shipping_total",
"credit_line_total",
"credit_line_subtotal",
"credit_line_tax_total",
"*items",
"*credit_lines",
"*items.tax_lines",
"*items.adjustments",
"*items.variant",
@@ -144,3 +144,13 @@ export const AdminUpdateOrder = z.object({
billing_address: AddressPayload.optional(),
metadata: z.record(z.unknown()).nullish(),
})
export type AdminCreateOrderCreditLinesType = z.infer<
typeof AdminCreateOrderCreditLines
>
export const AdminCreateOrderCreditLines = z.object({
amount: z.number(),
reference: z.string(),
reference_id: z.string(),
metadata: z.record(z.unknown()).nullish(),
})