order-management 0.0.22 → 0.0.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.medusa/server/src/admin/index.js +602 -491
- package/.medusa/server/src/admin/index.mjs +602 -491
- package/.medusa/server/src/api/admin/swaps/[id]/approve/route.js +45 -12
- package/.medusa/server/src/api/admin/swaps/[id]/confirm-exchange/route.js +145 -0
- package/.medusa/server/src/api/admin/swaps/[id]/route.js +10 -1
- package/.medusa/server/src/helpers/index.js +2 -1
- package/.medusa/server/src/helpers/order-exchange-data.js +59 -0
- package/.medusa/server/src/subscribers/exchange-created.js +43 -7
- package/.medusa/server/src/workflows/steps/swap/create-medusa-exchange-step.js +22 -7
- package/.medusa/server/src/workflows/steps/swap/create-medusa-return-step.js +48 -32
- package/.medusa/server/src/workflows/swaps/approve-swap-workflow.js +5 -3
- package/.medusa/server/src/workflows/swaps/confirm-exchange-workflow.js +51 -0
- package/package.json +1 -1
|
@@ -4,6 +4,8 @@ exports.POST = void 0;
|
|
|
4
4
|
const utils_1 = require("@medusajs/framework/utils");
|
|
5
5
|
const approve_swap_workflow_1 = require("../../../../../workflows/swaps/approve-swap-workflow");
|
|
6
6
|
const validators_1 = require("../../validators");
|
|
7
|
+
const swap_1 = require("../../../../../modules/swap");
|
|
8
|
+
const order_exchange_data_1 = require("../../../../../helpers/order-exchange-data");
|
|
7
9
|
const zod_1 = require("zod");
|
|
8
10
|
const POST = async (req, res) => {
|
|
9
11
|
const { id } = req.params;
|
|
@@ -15,27 +17,58 @@ const POST = async (req, res) => {
|
|
|
15
17
|
const authContext = req.auth_context;
|
|
16
18
|
const adminId = authContext?.actor_id || authContext?.user_id || "admin";
|
|
17
19
|
try {
|
|
18
|
-
// Parse and validate request body for exchange details
|
|
20
|
+
// Parse and validate request body for exchange details (all fields optional now)
|
|
19
21
|
const exchangeDetails = validators_1.ApproveSwapSchema.parse(req.body || {});
|
|
20
|
-
//
|
|
21
|
-
|
|
22
|
-
|
|
22
|
+
// Get swap to retrieve order_id
|
|
23
|
+
const swapService = req.scope.resolve(swap_1.SWAP_MODULE);
|
|
24
|
+
const swap = await swapService.retrieveSwap(id);
|
|
25
|
+
const swapData = swap;
|
|
26
|
+
// Auto-populate location and shipping methods from order data
|
|
27
|
+
let returnLocationId = exchangeDetails.return_location_id;
|
|
28
|
+
let returnShippingMethodId = exchangeDetails.return_shipping_method_id;
|
|
29
|
+
let outboundShippingMethodId = exchangeDetails.outbound_shipping_method_id;
|
|
30
|
+
if (swapData.order_id) {
|
|
31
|
+
try {
|
|
32
|
+
const orderExchangeData = await (0, order_exchange_data_1.getOrderExchangeData)(swapData.order_id, req.scope);
|
|
33
|
+
// Use order's fulfillment location if not provided
|
|
34
|
+
if (!returnLocationId && orderExchangeData.location_id) {
|
|
35
|
+
returnLocationId = orderExchangeData.location_id;
|
|
36
|
+
}
|
|
37
|
+
// Use Standard Shipping for return if not provided
|
|
38
|
+
if (!returnShippingMethodId && orderExchangeData.standard_shipping_method_id) {
|
|
39
|
+
returnShippingMethodId = orderExchangeData.standard_shipping_method_id;
|
|
40
|
+
}
|
|
41
|
+
// Use last shipping method for outbound (or Standard if last was Standard)
|
|
42
|
+
if (!outboundShippingMethodId) {
|
|
43
|
+
if (orderExchangeData.last_shipping_method_id) {
|
|
44
|
+
outboundShippingMethodId = orderExchangeData.last_shipping_method_id;
|
|
45
|
+
}
|
|
46
|
+
else if (orderExchangeData.standard_shipping_method_id) {
|
|
47
|
+
// Fallback to Standard Shipping if no last shipping method found
|
|
48
|
+
outboundShippingMethodId = orderExchangeData.standard_shipping_method_id;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
// Log warning but continue - use provided values or null
|
|
54
|
+
console.warn("[Approve Swap] Failed to fetch order exchange data:", error);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
// Store exchange details and approve swap
|
|
23
58
|
const { result: approvalResult } = await (0, approve_swap_workflow_1.approveSwapWorkflow)(req.scope).run({
|
|
24
59
|
input: {
|
|
25
60
|
swap_id: id,
|
|
26
61
|
admin_id: adminId,
|
|
27
|
-
return_location_id:
|
|
28
|
-
return_shipping_method_id:
|
|
29
|
-
outbound_shipping_method_id:
|
|
62
|
+
return_location_id: returnLocationId,
|
|
63
|
+
return_shipping_method_id: returnShippingMethodId,
|
|
64
|
+
outbound_shipping_method_id: outboundShippingMethodId,
|
|
30
65
|
send_notification: exchangeDetails.send_notification,
|
|
31
66
|
},
|
|
32
67
|
});
|
|
33
|
-
// Return
|
|
34
|
-
// Exchange will be created manually by admin and linked automatically via subscriber
|
|
68
|
+
// Return response with swap data
|
|
35
69
|
res.json({
|
|
36
70
|
swap: approvalResult.swap,
|
|
37
|
-
message: "Swap approved successfully.
|
|
38
|
-
note: "The exchange will be automatically linked to this swap once created.",
|
|
71
|
+
message: "Swap approved successfully. You can now create the exchange.",
|
|
39
72
|
});
|
|
40
73
|
}
|
|
41
74
|
catch (error) {
|
|
@@ -109,4 +142,4 @@ const POST = async (req, res) => {
|
|
|
109
142
|
}
|
|
110
143
|
};
|
|
111
144
|
exports.POST = POST;
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3N3YXBzL1tpZF0vYXBwcm92ZS9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxxREFBdUQ7QUFDdkQsZ0dBQTBGO0FBQzFGLGlEQUFvRDtBQUNwRCxzREFBeUQ7QUFFekQsb0ZBQWlGO0FBQ2pGLDZCQUF1QjtBQUVoQixNQUFNLElBQUksR0FBRyxLQUFLLEVBQ3ZCLEdBQWtCLEVBQ2xCLEdBQW1CLEVBQ0osRUFBRTtJQUNqQixNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQTtJQUV6QixJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDUixHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxDQUFDLENBQUE7UUFDeEQsT0FBTTtJQUNSLENBQUM7SUFFRCxtQ0FBbUM7SUFDbkMsTUFBTSxXQUFXLEdBQUksR0FFbkIsQ0FBQyxZQUFZLENBQUE7SUFFZixNQUFNLE9BQU8sR0FBRyxXQUFXLEVBQUUsUUFBUSxJQUFJLFdBQVcsRUFBRSxPQUFPLElBQUksT0FBTyxDQUFBO0lBRXhFLElBQUksQ0FBQztRQUNILGlGQUFpRjtRQUNqRixNQUFNLGVBQWUsR0FBRyw4QkFBaUIsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQTtRQUUvRCxnQ0FBZ0M7UUFDaEMsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQWMsa0JBQVcsQ0FBQyxDQUFBO1FBQy9ELE1BQU0sSUFBSSxHQUFHLE1BQU0sV0FBVyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUMvQyxNQUFNLFFBQVEsR0FBRyxJQUloQixDQUFBO1FBRUQsOERBQThEO1FBQzlELElBQUksZ0JBQWdCLEdBQUcsZUFBZSxDQUFDLGtCQUFrQixDQUFBO1FBQ3pELElBQUksc0JBQXNCLEdBQUcsZUFBZSxDQUFDLHlCQUF5QixDQUFBO1FBQ3RFLElBQUksd0JBQXdCLEdBQUcsZUFBZSxDQUFDLDJCQUEyQixDQUFBO1FBRTFFLElBQUksUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQztnQkFDSCxNQUFNLGlCQUFpQixHQUFHLE1BQU0sSUFBQSwwQ0FBb0IsRUFBQyxRQUFRLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtnQkFFbEYsbURBQW1EO2dCQUNuRCxJQUFJLENBQUMsZ0JBQWdCLElBQUksaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUM7b0JBQ3ZELGdCQUFnQixHQUFHLGlCQUFpQixDQUFDLFdBQVcsQ0FBQTtnQkFDbEQsQ0FBQztnQkFFRCxtREFBbUQ7Z0JBQ25ELElBQUksQ0FBQyxzQkFBc0IsSUFBSSxpQkFBaUIsQ0FBQywyQkFBMkIsRUFBRSxDQUFDO29CQUM3RSxzQkFBc0IsR0FBRyxpQkFBaUIsQ0FBQywyQkFBMkIsQ0FBQTtnQkFDeEUsQ0FBQztnQkFFRCwyRUFBMkU7Z0JBQzNFLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO29CQUM5QixJQUFJLGlCQUFpQixDQUFDLHVCQUF1QixFQUFFLENBQUM7d0JBQzlDLHdCQUF3QixHQUFHLGlCQUFpQixDQUFDLHVCQUF1QixDQUFBO29CQUN0RSxDQUFDO3lCQUFNLElBQUksaUJBQWlCLENBQUMsMkJBQTJCLEVBQUUsQ0FBQzt3QkFDekQsaUVBQWlFO3dCQUNqRSx3QkFBd0IsR0FBRyxpQkFBaUIsQ0FBQywyQkFBMkIsQ0FBQTtvQkFDMUUsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztZQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7Z0JBQ2YseURBQXlEO2dCQUN6RCxPQUFPLENBQUMsSUFBSSxDQUFDLHFEQUFxRCxFQUFFLEtBQUssQ0FBQyxDQUFBO1lBQzVFLENBQUM7UUFDSCxDQUFDO1FBRUQsMENBQTBDO1FBQzFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLEdBQUcsTUFBTSxJQUFBLDJDQUFtQixFQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUM7WUFDMUUsS0FBSyxFQUFFO2dCQUNMLE9BQU8sRUFBRSxFQUFFO2dCQUNYLFFBQVEsRUFBRSxPQUFPO2dCQUNqQixrQkFBa0IsRUFBRSxnQkFBZ0I7Z0JBQ3BDLHlCQUF5QixFQUFFLHNCQUFzQjtnQkFDakQsMkJBQTJCLEVBQUUsd0JBQXdCO2dCQUNyRCxpQkFBaUIsRUFBRSxlQUFlLENBQUMsaUJBQWlCO2FBQ3JEO1NBQ0YsQ0FBQyxDQUFBO1FBRUYsaUNBQWlDO1FBQ2pDLEdBQUcsQ0FBQyxJQUFJLENBQUM7WUFDUCxJQUFJLEVBQUUsY0FBYyxDQUFDLElBQUk7WUFDekIsT0FBTyxFQUFFLDhEQUE4RDtTQUN4RSxDQUFDLENBQUE7SUFDSixDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLCtCQUErQjtRQUMvQixJQUFJLEtBQUssWUFBWSxPQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQ25CLE9BQU8sRUFBRSxzQkFBc0I7Z0JBQy9CLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTthQUNyQixDQUFDLENBQUE7WUFDRixPQUFNO1FBQ1IsQ0FBQztRQUVELHVEQUF1RDtRQUN2RCxJQUFJLFlBQVksR0FBRyxlQUFlLENBQUE7UUFDbEMsSUFBSSxVQUE4QixDQUFBO1FBQ2xDLElBQUksU0FBNkIsQ0FBQTtRQUVqQyxJQUFJLEtBQUssWUFBWSxLQUFLLEVBQUUsQ0FBQztZQUMzQixZQUFZLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQTtZQUM1QixVQUFVLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQTtZQUN4QixTQUFTLEdBQUksS0FBMkIsQ0FBQyxJQUFJLENBQUE7UUFDL0MsQ0FBQzthQUFNLElBQUksS0FBSyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzlDLE1BQU0sUUFBUSxHQUFHLEtBQWdDLENBQUE7WUFDakQsWUFBWSxHQUFHLE1BQU0sQ0FDbkIsUUFBUSxDQUFDLE9BQU87Z0JBQ2hCLFFBQVEsQ0FBQyxLQUFLO2dCQUNkLFFBQVEsQ0FBQyxNQUFNO2dCQUNmLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQ3pCLENBQUE7WUFDRCxVQUFVLEdBQUcsUUFBUSxDQUFDLEtBQTJCLENBQUE7WUFDakQsU0FBUyxHQUFHLFFBQVEsQ0FBQyxJQUEwQixDQUFBO1FBQ2pELENBQUM7YUFBTSxDQUFDO1lBQ04sWUFBWSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUM5QixDQUFDO1FBRUQseUJBQXlCO1FBQ3pCLElBQUksZ0JBQWdCLEdBQUcscUJBQXFCLENBQUE7UUFDNUMsSUFBSSxDQUFDO1lBQ0gsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQ3RELElBQUksR0FBRyxLQUFLLFFBQVEsSUFBSSxHQUFHLEtBQUssVUFBVSxJQUFJLEdBQUcsS0FBSyxXQUFXLEVBQUUsQ0FBQztvQkFDbEUsT0FBTyxZQUFZLENBQUE7Z0JBQ3JCLENBQUM7Z0JBQ0QsT0FBTyxLQUFLLENBQUE7WUFDZCxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDUCxDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsZ0JBQWdCLEdBQUcsa0JBQWtCLENBQUE7UUFDdkMsQ0FBQztRQUVELE9BQU8sQ0FBQyxLQUFLLENBQUMsdUJBQXVCLEVBQUU7WUFDckMsT0FBTyxFQUFFLEVBQUU7WUFDWCxhQUFhLEVBQUUsWUFBWTtZQUMzQixVQUFVLEVBQUUsU0FBUztZQUNyQixXQUFXLEVBQUUsVUFBVTtZQUN2QixpQkFBaUIsRUFBRSxnQkFBZ0I7WUFDbkMsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxJQUFJO1lBQzNDLFVBQVUsRUFBRSxLQUFLLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1NBQ3pFLENBQUMsQ0FBQTtRQUVGLElBQUksS0FBSyxZQUFZLG1CQUFXLEVBQUUsQ0FBQztZQUNqQyxNQUFNLFVBQVUsR0FDZCxLQUFLLENBQUMsSUFBSSxLQUFLLG1CQUFXLENBQUMsS0FBSyxDQUFDLFNBQVM7Z0JBQ3hDLENBQUMsQ0FBQyxHQUFHO2dCQUNMLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVk7b0JBQy9DLENBQUMsQ0FBQyxHQUFHO29CQUNMLENBQUMsQ0FBQyxHQUFHLENBQUE7WUFFVCxHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDMUIsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO2dCQUN0QixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7YUFDakIsQ0FBQyxDQUFBO1lBQ0YsT0FBTTtRQUNSLENBQUM7UUFFRCxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNuQixPQUFPLEVBQUUsd0JBQXdCO1lBQ2pDLEtBQUssRUFBRSxZQUFZO1NBQ3BCLENBQUMsQ0FBQTtJQUNKLENBQUM7QUFDSCxDQUFDLENBQUE7QUE5SlksUUFBQSxJQUFJLFFBOEpoQiJ9
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.POST = void 0;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const confirm_exchange_workflow_1 = require("../../../../../workflows/swaps/confirm-exchange-workflow");
|
|
6
|
+
const swap_1 = require("../../../../../modules/swap");
|
|
7
|
+
const zod_1 = require("zod");
|
|
8
|
+
const ConfirmExchangeSchema = zod_1.z.object({
|
|
9
|
+
return_items: zod_1.z.array(zod_1.z.object({
|
|
10
|
+
item_id: zod_1.z.string(),
|
|
11
|
+
quantity: zod_1.z.number().positive(),
|
|
12
|
+
reason_id: zod_1.z.string().optional(),
|
|
13
|
+
})).optional(),
|
|
14
|
+
new_items: zod_1.z.array(zod_1.z.object({
|
|
15
|
+
variant_id: zod_1.z.string(),
|
|
16
|
+
quantity: zod_1.z.number().positive(),
|
|
17
|
+
})).optional(),
|
|
18
|
+
return_location_id: zod_1.z.string().optional(),
|
|
19
|
+
return_shipping_method_id: zod_1.z.string().optional(),
|
|
20
|
+
outbound_shipping_method_id: zod_1.z.string().optional(),
|
|
21
|
+
send_notification: zod_1.z.boolean().optional().default(false),
|
|
22
|
+
});
|
|
23
|
+
const POST = async (req, res) => {
|
|
24
|
+
const { id } = req.params;
|
|
25
|
+
if (!id) {
|
|
26
|
+
res.status(400).json({ message: "Swap ID is required" });
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
// Type-safe access to auth_context
|
|
30
|
+
const authContext = req.auth_context;
|
|
31
|
+
const adminId = authContext?.actor_id || authContext?.user_id || "admin";
|
|
32
|
+
try {
|
|
33
|
+
// Parse and validate request body (items are now optional - will use swap data)
|
|
34
|
+
const exchangeData = ConfirmExchangeSchema.parse(req.body || {});
|
|
35
|
+
// Retrieve swap to get stored items and shipping details
|
|
36
|
+
const swapService = req.scope.resolve(swap_1.SWAP_MODULE);
|
|
37
|
+
const swap = await swapService.retrieveSwap(id);
|
|
38
|
+
const swapData = swap;
|
|
39
|
+
// Convert swap return_items to ConfirmExchange format if needed
|
|
40
|
+
let returnItems = exchangeData.return_items;
|
|
41
|
+
if (!returnItems && swapData.return_items) {
|
|
42
|
+
if (Array.isArray(swapData.return_items)) {
|
|
43
|
+
returnItems = swapData.return_items.map((item) => {
|
|
44
|
+
const itemData = item;
|
|
45
|
+
return {
|
|
46
|
+
item_id: itemData.id || itemData.item_id || "",
|
|
47
|
+
quantity: itemData.quantity || 0,
|
|
48
|
+
reason_id: itemData.reason_id || itemData.reason,
|
|
49
|
+
};
|
|
50
|
+
}).filter(item => item.item_id && item.quantity > 0);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
// Convert swap new_items to ConfirmExchange format if needed
|
|
54
|
+
let newItems = exchangeData.new_items;
|
|
55
|
+
if (!newItems && swapData.new_items) {
|
|
56
|
+
if (Array.isArray(swapData.new_items)) {
|
|
57
|
+
newItems = swapData.new_items.map((item) => {
|
|
58
|
+
const itemData = item;
|
|
59
|
+
return {
|
|
60
|
+
variant_id: itemData.variant_id || "",
|
|
61
|
+
quantity: itemData.quantity || 0,
|
|
62
|
+
};
|
|
63
|
+
}).filter(item => item.variant_id && item.quantity > 0);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
// Always use swap's location and shipping method IDs (ignore form input)
|
|
67
|
+
const returnLocationId = swapData.return_location_id || exchangeData.return_location_id;
|
|
68
|
+
const returnShippingMethodId = swapData.return_shipping_method_id || exchangeData.return_shipping_method_id;
|
|
69
|
+
const outboundShippingMethodId = swapData.outbound_shipping_method_id || exchangeData.outbound_shipping_method_id;
|
|
70
|
+
// Create exchange and approve swap using swap data
|
|
71
|
+
const { result } = await (0, confirm_exchange_workflow_1.confirmExchangeWorkflow)(req.scope).run({
|
|
72
|
+
input: {
|
|
73
|
+
swap_id: id,
|
|
74
|
+
admin_id: adminId,
|
|
75
|
+
return_items: returnItems,
|
|
76
|
+
new_items: newItems,
|
|
77
|
+
return_location_id: returnLocationId,
|
|
78
|
+
return_shipping_method_id: returnShippingMethodId,
|
|
79
|
+
outbound_shipping_method_id: outboundShippingMethodId,
|
|
80
|
+
send_notification: exchangeData.send_notification,
|
|
81
|
+
},
|
|
82
|
+
});
|
|
83
|
+
res.json({
|
|
84
|
+
swap: result.swap,
|
|
85
|
+
return_id: result.return_id,
|
|
86
|
+
exchange_id: result.exchange_id,
|
|
87
|
+
message: "Exchange created and swap approved successfully.",
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
// Handle Zod validation errors
|
|
92
|
+
if (error instanceof zod_1.z.ZodError) {
|
|
93
|
+
res.status(400).json({
|
|
94
|
+
message: "Invalid request data",
|
|
95
|
+
errors: error.errors,
|
|
96
|
+
});
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
// Extract error message - handle various error formats
|
|
100
|
+
let errorMessage = "Unknown error";
|
|
101
|
+
let errorStack;
|
|
102
|
+
let errorType;
|
|
103
|
+
if (error instanceof Error) {
|
|
104
|
+
errorMessage = error.message;
|
|
105
|
+
errorStack = error.stack;
|
|
106
|
+
errorType = error.type;
|
|
107
|
+
}
|
|
108
|
+
else if (error && typeof error === "object") {
|
|
109
|
+
const errorObj = error;
|
|
110
|
+
errorMessage = String(errorObj.message ||
|
|
111
|
+
errorObj.error ||
|
|
112
|
+
errorObj.reason ||
|
|
113
|
+
JSON.stringify(errorObj));
|
|
114
|
+
errorStack = errorObj.stack;
|
|
115
|
+
errorType = errorObj.type;
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
errorMessage = String(error);
|
|
119
|
+
}
|
|
120
|
+
console.error("[Confirm Exchange] Error:", {
|
|
121
|
+
swap_id: id,
|
|
122
|
+
error_message: errorMessage,
|
|
123
|
+
error_type: errorType,
|
|
124
|
+
error_stack: errorStack,
|
|
125
|
+
});
|
|
126
|
+
if (error instanceof utils_1.MedusaError) {
|
|
127
|
+
const statusCode = error.type === utils_1.MedusaError.Types.NOT_FOUND
|
|
128
|
+
? 404
|
|
129
|
+
: error.type === utils_1.MedusaError.Types.INVALID_DATA
|
|
130
|
+
? 400
|
|
131
|
+
: 500;
|
|
132
|
+
res.status(statusCode).json({
|
|
133
|
+
message: error.message,
|
|
134
|
+
type: error.type,
|
|
135
|
+
});
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
res.status(500).json({
|
|
139
|
+
message: "Failed to confirm exchange",
|
|
140
|
+
error: errorMessage,
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
};
|
|
144
|
+
exports.POST = POST;
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3N3YXBzL1tpZF0vY29uZmlybS1leGNoYW5nZS9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxxREFBdUQ7QUFDdkQsd0dBQWtHO0FBQ2xHLHNEQUF5RDtBQUV6RCw2QkFBdUI7QUFFdkIsTUFBTSxxQkFBcUIsR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3JDLFlBQVksRUFBRSxPQUFDLENBQUMsS0FBSyxDQUNuQixPQUFDLENBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUU7UUFDbkIsUUFBUSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7UUFDL0IsU0FBUyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7S0FDakMsQ0FBQyxDQUNILENBQUMsUUFBUSxFQUFFO0lBQ1osU0FBUyxFQUFFLE9BQUMsQ0FBQyxLQUFLLENBQ2hCLE9BQUMsQ0FBQyxNQUFNLENBQUM7UUFDUCxVQUFVLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRTtRQUN0QixRQUFRLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtLQUNoQyxDQUFDLENBQ0gsQ0FBQyxRQUFRLEVBQUU7SUFDWixrQkFBa0IsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3pDLHlCQUF5QixFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDaEQsMkJBQTJCLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNsRCxpQkFBaUIsRUFBRSxPQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztDQUN6RCxDQUFD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
|
|
@@ -28,9 +28,18 @@ const GET = async (req, res) => {
|
|
|
28
28
|
"customer_id",
|
|
29
29
|
"customer.*",
|
|
30
30
|
"items.*",
|
|
31
|
+
"items.id",
|
|
32
|
+
"items.title",
|
|
33
|
+
"items.variant_id",
|
|
34
|
+
"items.quantity",
|
|
31
35
|
"total",
|
|
32
36
|
"currency_code",
|
|
33
37
|
"created_at",
|
|
38
|
+
"fulfillments.*",
|
|
39
|
+
"fulfillments.location_id",
|
|
40
|
+
"shipping_methods.*",
|
|
41
|
+
"shipping_methods.id",
|
|
42
|
+
"shipping_methods.name",
|
|
34
43
|
],
|
|
35
44
|
filters: {
|
|
36
45
|
id: [swapData.order_id],
|
|
@@ -67,4 +76,4 @@ const GET = async (req, res) => {
|
|
|
67
76
|
}
|
|
68
77
|
};
|
|
69
78
|
exports.GET = GET;
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3N3YXBzL1tpZF0vcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EscURBQXVEO0FBQ3ZELHFEQUFrRztBQUVsRyxtREFBc0Q7QUFHL0MsTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUN0QixHQUFrQixFQUNsQixHQUFtQixFQUNKLEVBQUU7SUFDakIsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUE7SUFFekIsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ1IsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsQ0FBQyxDQUFBO1FBQ3hELE9BQU07SUFDUixDQUFDO0lBRUQsSUFBSSxDQUFDO1FBQ0gsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQWMsa0JBQVcsQ0FBQyxDQUFBO1FBRS9ELE1BQU0sSUFBSSxHQUFHLE1BQU0sV0FBVyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUMvQyxNQUFNLFFBQVEsR0FBRyxJQUE2QixDQUFBO1FBRTlDLGtDQUFrQztRQUNsQyxJQUFJLEtBQUssR0FBWSxJQUFJLENBQUE7UUFDekIsSUFBSSxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDO2dCQUNILE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUNuQyxpQ0FBeUIsQ0FBQyxZQUFZLENBQ3ZDLENBQUE7Z0JBRUQsTUFBTSxXQUFXLEdBQUcsSUFBQSxtQ0FBMkIsRUFBQztvQkFDOUMsVUFBVSxFQUFFLE9BQU87b0JBQ25CLE1BQU0sRUFBRTt3QkFDTixJQUFJO3dCQUNKLFlBQVk7d0JBQ1osT0FBTzt3QkFDUCxhQUFhO3dCQUNiLFlBQVk7d0JBQ1osU0FBUzt3QkFDVCxVQUFVO3dCQUNWLGFBQWE7d0JBQ2Isa0JBQWtCO3dCQUNsQixnQkFBZ0I7d0JBQ2hCLE9BQU87d0JBQ1AsZUFBZTt3QkFDZixZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsMEJBQTBCO3dCQUMxQixvQkFBb0I7d0JBQ3BCLHFCQUFxQjt3QkFDckIsdUJBQXVCO3FCQUN4QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztxQkFDeEI7aUJBQ0YsQ0FBQyxDQUFBO2dCQUVGLE1BQU0sTUFBTSxHQUFHLE1BQU0sV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFBO2dCQUM3QyxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO2dCQUMxRSxLQUFLLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQTtZQUMvQixDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDZixzREFBc0Q7Z0JBQ3RELE9BQU8sQ0FBQyxJQUFJLENBQUMsaUNBQWlDLEVBQUUsS0FBSyxDQUFDLENBQUE7WUFDeEQsQ0FBQztRQUNILENBQUM7UUFFRCxHQUFHLENBQUMsSUFBSSxDQUFDO1lBQ1AsSUFBSTtZQUNKLEtBQUs7U0FDTixDQUFDLENBQUE7SUFDSixDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLElBQUksS0FBSyxZQUFZLG1CQUFXLEVBQUUsQ0FBQztZQUNqQyxNQUFNLFVBQVUsR0FDZCxLQUFLLENBQUMsSUFBSSxLQUFLLG1CQUFXLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUE7WUFFeEQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQzFCLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztnQkFDdEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO2FBQ2pCLENBQUMsQ0FBQTtZQUNGLE9BQU07UUFDUixDQUFDO1FBRUQsTUFBTSxZQUFZLEdBQUcsS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFBO1FBQzdFLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ25CLE9BQU8sRUFBRSx5QkFBeUI7WUFDbEMsS0FBSyxFQUFFLFlBQVk7U0FDcEIsQ0FBQyxDQUFBO0lBQ0osQ0FBQztBQUNILENBQUMsQ0FBQTtBQW5GWSxRQUFBLEdBQUcsT0FtRmYifQ==
|
|
@@ -15,4 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./swaps"), exports);
|
|
18
|
-
|
|
18
|
+
__exportStar(require("./order-exchange-data"), exports);
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaGVscGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMENBQXVCO0FBQ3ZCLHdEQUFxQyJ9
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getOrderExchangeData = getOrderExchangeData;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
/**
|
|
6
|
+
* Retrieves order exchange data including location and shipping methods
|
|
7
|
+
* @param order_id - The order ID to retrieve data for
|
|
8
|
+
* @param container - The Medusa container for resolving services
|
|
9
|
+
* @returns Order exchange data with location_id, standard_shipping_method_id, and last_shipping_method_id
|
|
10
|
+
*/
|
|
11
|
+
async function getOrderExchangeData(order_id, container) {
|
|
12
|
+
const remoteQuery = container.resolve(utils_1.ContainerRegistrationKeys.REMOTE_QUERY);
|
|
13
|
+
const queryObject = (0, utils_1.remoteQueryObjectFromString)({
|
|
14
|
+
entryPoint: "order",
|
|
15
|
+
fields: [
|
|
16
|
+
"id",
|
|
17
|
+
"fulfillments.*",
|
|
18
|
+
"fulfillments.location_id",
|
|
19
|
+
"shipping_methods.*",
|
|
20
|
+
"shipping_methods.id",
|
|
21
|
+
"shipping_methods.name",
|
|
22
|
+
],
|
|
23
|
+
filters: {
|
|
24
|
+
id: [order_id],
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
const orders = await remoteQuery(queryObject);
|
|
28
|
+
const orderArray = Array.isArray(orders) ? orders : orders ? [orders] : [];
|
|
29
|
+
const order = orderArray[0];
|
|
30
|
+
if (!order) {
|
|
31
|
+
return {};
|
|
32
|
+
}
|
|
33
|
+
const result = {};
|
|
34
|
+
// Extract location_id from first fulfillment
|
|
35
|
+
if (order.fulfillments && order.fulfillments.length > 0) {
|
|
36
|
+
const firstFulfillment = order.fulfillments[0];
|
|
37
|
+
if (firstFulfillment.location_id) {
|
|
38
|
+
result.location_id = firstFulfillment.location_id;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
// Find Standard Shipping method and get last shipping method
|
|
42
|
+
if (order.shipping_methods && order.shipping_methods.length > 0) {
|
|
43
|
+
// Get last shipping method (most recent)
|
|
44
|
+
const lastShippingMethod = order.shipping_methods[order.shipping_methods.length - 1];
|
|
45
|
+
if (lastShippingMethod?.id) {
|
|
46
|
+
result.last_shipping_method_id = lastShippingMethod.id;
|
|
47
|
+
}
|
|
48
|
+
// Find Standard Shipping method (case-insensitive search)
|
|
49
|
+
const standardShipping = order.shipping_methods.find((method) => {
|
|
50
|
+
const name = method.name?.toLowerCase() || "";
|
|
51
|
+
return name.includes("standard");
|
|
52
|
+
});
|
|
53
|
+
if (standardShipping?.id) {
|
|
54
|
+
result.standard_shipping_method_id = standardShipping.id;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return result;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItZXhjaGFuZ2UtZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9oZWxwZXJzL29yZGVyLWV4Y2hhbmdlLWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFnQkEsb0RBZ0VDO0FBaEZELHFEQUFrRztBQVVsRzs7Ozs7R0FLRztBQUNJLEtBQUssVUFBVSxvQkFBb0IsQ0FDeEMsUUFBZ0IsRUFDaEIsU0FBd0I7SUFFeEIsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FDbkMsaUNBQXlCLENBQUMsWUFBWSxDQUN2QyxDQUFBO0lBRUQsTUFBTSxXQUFXLEdBQUcsSUFBQSxtQ0FBMkIsRUFBQztRQUM5QyxVQUFVLEVBQUUsT0FBTztRQUNuQixNQUFNLEVBQUU7WUFDTixJQUFJO1lBQ0osZ0JBQWdCO1lBQ2hCLDBCQUEwQjtZQUMxQixvQkFBb0I7WUFDcEIscUJBQXFCO1lBQ3JCLHVCQUF1QjtTQUN4QjtRQUNELE9BQU8sRUFBRTtZQUNQLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQztTQUNmO0tBQ0YsQ0FBQyxDQUFBO0lBRUYsTUFBTSxNQUFNLEdBQUcsTUFBTSxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDN0MsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtJQUMxRSxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUdsQixDQUFBO0lBRVIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ1gsT0FBTyxFQUFFLENBQUE7SUFDWCxDQUFDO0lBRUQsTUFBTSxNQUFNLEdBQXNCLEVBQUUsQ0FBQTtJQUVwQyw2Q0FBNkM7SUFDN0MsSUFBSSxLQUFLLENBQUMsWUFBWSxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3hELE1BQU0sZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUM5QyxJQUFJLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sQ0FBQyxXQUFXLEdBQUcsZ0JBQWdCLENBQUMsV0FBVyxDQUFBO1FBQ25ELENBQUM7SUFDSCxDQUFDO0lBRUQsNkRBQTZEO0lBQzdELElBQUksS0FBSyxDQUFDLGdCQUFnQixJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDaEUseUNBQXlDO1FBQ3pDLE1BQU0sa0JBQWtCLEdBQUcsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUE7UUFDcEYsSUFBSSxrQkFBa0IsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUMzQixNQUFNLENBQUMsdUJBQXVCLEdBQUcsa0JBQWtCLENBQUMsRUFBRSxDQUFBO1FBQ3hELENBQUM7UUFFRCwwREFBMEQ7UUFDMUQsTUFBTSxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDOUQsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUE7WUFDN0MsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQ2xDLENBQUMsQ0FBQyxDQUFBO1FBRUYsSUFBSSxnQkFBZ0IsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUN6QixNQUFNLENBQUMsMkJBQTJCLEdBQUcsZ0JBQWdCLENBQUMsRUFBRSxDQUFBO1FBQzFELENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxNQUFNLENBQUE7QUFDZixDQUFDIn0=
|
|
@@ -64,20 +64,38 @@ async function exchangeCreatedHandler({ event: { data }, container, }) {
|
|
|
64
64
|
console.warn(`[Exchange Created Subscriber] Failed to validate exchange ${exchangeId}: ${validationErrorMessage}`);
|
|
65
65
|
// Continue processing even if validation fails (might be transient)
|
|
66
66
|
}
|
|
67
|
-
// Find swap by order_id where
|
|
67
|
+
// Find swap by order_id where:
|
|
68
|
+
// - status is "approved" OR ("requested" with pending_exchange_creation flag)
|
|
69
|
+
// - exchange_id is null
|
|
68
70
|
let swaps;
|
|
69
71
|
let swap = null;
|
|
70
72
|
try {
|
|
73
|
+
// First try to find approved swaps
|
|
71
74
|
swaps = await swapService.listSwaps({
|
|
72
75
|
order_id: orderId,
|
|
73
76
|
status: "approved",
|
|
74
77
|
}, { take: 10 });
|
|
75
|
-
|
|
78
|
+
let swapsArray = Array.isArray(swaps) ? swaps : swaps ? [swaps] : [];
|
|
76
79
|
// Find swap without exchange_id (not yet linked)
|
|
77
80
|
swap = swapsArray.find((s) => {
|
|
78
81
|
const swapData = s;
|
|
79
82
|
return !swapData.exchange_id;
|
|
80
83
|
}) || null;
|
|
84
|
+
// If no approved swap found, try to find requested swap with pending_exchange_creation
|
|
85
|
+
if (!swap) {
|
|
86
|
+
swaps = await swapService.listSwaps({
|
|
87
|
+
order_id: orderId,
|
|
88
|
+
status: "requested",
|
|
89
|
+
}, { take: 10 });
|
|
90
|
+
swapsArray = Array.isArray(swaps) ? swaps : swaps ? [swaps] : [];
|
|
91
|
+
// Find swap with pending_exchange_creation flag and no exchange_id
|
|
92
|
+
swap = swapsArray.find((s) => {
|
|
93
|
+
const swapData = s;
|
|
94
|
+
const metadata = swapData.metadata || {};
|
|
95
|
+
const pendingExchangeCreation = metadata.pending_exchange_creation === true;
|
|
96
|
+
return !swapData.exchange_id && pendingExchangeCreation;
|
|
97
|
+
}) || null;
|
|
98
|
+
}
|
|
81
99
|
}
|
|
82
100
|
catch (filterError) {
|
|
83
101
|
const errorMessage = filterError instanceof Error ? filterError.message : String(filterError);
|
|
@@ -85,12 +103,12 @@ async function exchangeCreatedHandler({ event: { data }, container, }) {
|
|
|
85
103
|
return;
|
|
86
104
|
}
|
|
87
105
|
if (!swap) {
|
|
88
|
-
// No unlinked
|
|
106
|
+
// No unlinked swap found for this order
|
|
89
107
|
// This is expected if:
|
|
90
108
|
// - Exchange was created manually without a swap request
|
|
91
|
-
// - Swap
|
|
109
|
+
// - Swap doesn't have pending_exchange_creation flag
|
|
92
110
|
// - Swap already has an exchange_id
|
|
93
|
-
console.debug(`[Exchange Created Subscriber] No unlinked
|
|
111
|
+
console.debug(`[Exchange Created Subscriber] No unlinked swap found for order ${orderId} and exchange ${exchangeId}`);
|
|
94
112
|
return;
|
|
95
113
|
}
|
|
96
114
|
const swapData = swap;
|
|
@@ -98,13 +116,18 @@ async function exchangeCreatedHandler({ event: { data }, container, }) {
|
|
|
98
116
|
console.error("[Exchange Created Subscriber] Swap found but missing ID");
|
|
99
117
|
return;
|
|
100
118
|
}
|
|
101
|
-
//
|
|
119
|
+
// Check if swap needs to be approved (status is "requested" with pending flag)
|
|
102
120
|
const swapMetadata = swapData.metadata || {};
|
|
121
|
+
const pendingExchangeCreation = swapMetadata.pending_exchange_creation === true;
|
|
122
|
+
const shouldApprove = swapData.status === "requested" && pendingExchangeCreation;
|
|
123
|
+
// Link exchange to swap and approve if needed
|
|
103
124
|
const linkingHistory = swapMetadata.exchange_linking_history || [];
|
|
125
|
+
const statusHistory = swapMetadata.status_history || [];
|
|
104
126
|
await swapService.updateSwaps({
|
|
105
127
|
selector: { id: swapData.id },
|
|
106
128
|
data: {
|
|
107
129
|
exchange_id: exchangeId,
|
|
130
|
+
status: shouldApprove ? "approved" : swapData.status,
|
|
108
131
|
metadata: {
|
|
109
132
|
...swapMetadata,
|
|
110
133
|
exchange_linking_history: [
|
|
@@ -113,9 +136,22 @@ async function exchangeCreatedHandler({ event: { data }, container, }) {
|
|
|
113
136
|
exchange_id: exchangeId,
|
|
114
137
|
linked_at: new Date().toISOString(),
|
|
115
138
|
linked_by: "exchange_created_subscriber",
|
|
139
|
+
auto_approved: shouldApprove,
|
|
116
140
|
},
|
|
117
141
|
],
|
|
118
142
|
exchange_linked_at: new Date().toISOString(),
|
|
143
|
+
pending_exchange_creation: false,
|
|
144
|
+
...(shouldApprove ? {
|
|
145
|
+
status_history: [
|
|
146
|
+
...statusHistory,
|
|
147
|
+
{
|
|
148
|
+
status: "approved",
|
|
149
|
+
timestamp: new Date().toISOString(),
|
|
150
|
+
auto_approved: true,
|
|
151
|
+
approved_via: "exchange_created_subscriber",
|
|
152
|
+
},
|
|
153
|
+
],
|
|
154
|
+
} : {}),
|
|
119
155
|
},
|
|
120
156
|
},
|
|
121
157
|
});
|
|
@@ -168,4 +204,4 @@ async function exchangeCreatedHandler({ event: { data }, container, }) {
|
|
|
168
204
|
exports.config = {
|
|
169
205
|
event: "exchange.created",
|
|
170
206
|
};
|
|
171
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
207
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjaGFuZ2UtY3JlYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zdWJzY3JpYmVycy9leGNoYW5nZS1jcmVhdGVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQXFCQSx5Q0FtT0M7QUF2UEQscURBQWtHO0FBRWxHLDBDQUE2QztBQVM3Qzs7Ozs7Ozs7R0FRRztBQUNZLEtBQUssVUFBVSxzQkFBc0IsQ0FBQyxFQUNuRCxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFDZixTQUFTLEdBQ2dDO0lBQ3pDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQTtJQUM1QixJQUFJLFVBQVUsR0FBRyxDQUFDLENBQUE7SUFDbEIsTUFBTSxVQUFVLEdBQUcsQ0FBQyxDQUFBO0lBQ3BCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQSxDQUFDLHNCQUFzQjtJQUU5QyxzQ0FBc0M7SUFDdEMsT0FBTyxDQUFDLEdBQUcsQ0FBQywrQ0FBK0MsRUFBRTtRQUMzRCxVQUFVLEVBQUUsa0JBQWtCO1FBQzlCLFdBQVcsRUFBRSxJQUFJLENBQUMsRUFBRTtRQUNwQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7UUFDdkIsU0FBUyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFO0tBQ3BDLENBQUMsQ0FBQTtJQUVGLE1BQU0sZ0JBQWdCLEdBQUcsS0FBSyxJQUFtQixFQUFFO1FBQ2pELElBQUksQ0FBQztZQUNILE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUE7WUFDMUIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQTtZQUU3QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ2hCLE9BQU8sQ0FBQyxLQUFLLENBQUMsa0VBQWtFLENBQUMsQ0FBQTtnQkFDakYsT0FBTTtZQUNSLENBQUM7WUFFRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2IsT0FBTyxD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
|
|
@@ -5,7 +5,7 @@ const utils_1 = require("@medusajs/framework/utils");
|
|
|
5
5
|
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
6
6
|
const swap_1 = require("../../../modules/swap");
|
|
7
7
|
exports.createMedusaExchangeStep = (0, workflows_sdk_1.createStep)("create-medusa-exchange", async (input, { container }) => {
|
|
8
|
-
const { swap_id, return_id, outbound_shipping_method_id, send_notification } = input;
|
|
8
|
+
const { swap_id, return_id, outbound_shipping_method_id, send_notification, new_items: inputNewItems } = input;
|
|
9
9
|
if (!swap_id) {
|
|
10
10
|
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "swap_id is required");
|
|
11
11
|
}
|
|
@@ -22,7 +22,19 @@ exports.createMedusaExchangeStep = (0, workflows_sdk_1.createStep)("create-medus
|
|
|
22
22
|
swap,
|
|
23
23
|
});
|
|
24
24
|
}
|
|
25
|
-
|
|
25
|
+
// Use new_items from input if provided, otherwise use from swap model
|
|
26
|
+
let newItems = [];
|
|
27
|
+
if (inputNewItems && inputNewItems.length > 0) {
|
|
28
|
+
// Use items from input (from exchange form)
|
|
29
|
+
newItems = inputNewItems;
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
// Use items from swap model
|
|
33
|
+
const swapNewItems = swapData.new_items || [];
|
|
34
|
+
if (Array.isArray(swapNewItems)) {
|
|
35
|
+
newItems = swapNewItems;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
26
38
|
if (newItems.length === 0) {
|
|
27
39
|
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Swap must have new items to create exchange");
|
|
28
40
|
}
|
|
@@ -112,16 +124,19 @@ exports.createMedusaExchangeStep = (0, workflows_sdk_1.createStep)("create-medus
|
|
|
112
124
|
throw new utils_1.MedusaError(utils_1.MedusaError.Types.UNKNOWN_MODULES, `Failed to create exchange via workflow and service: Workflow error: ${errorMessage}, Service error: ${serviceErrorMessage}`);
|
|
113
125
|
}
|
|
114
126
|
}
|
|
127
|
+
// Use swap's outbound_shipping_method_id as fallback if not provided in input
|
|
128
|
+
const finalOutboundShippingMethodId = outbound_shipping_method_id ||
|
|
129
|
+
(swapData.outbound_shipping_method_id);
|
|
115
130
|
// Add outbound shipping method if provided
|
|
116
131
|
// Note: This may need to be done via Medusa's exchange API after creation
|
|
117
132
|
// depending on Medusa v2 API structure
|
|
118
|
-
if (
|
|
133
|
+
if (finalOutboundShippingMethodId) {
|
|
119
134
|
try {
|
|
120
135
|
const exchangeService = container.resolve("exchange");
|
|
121
136
|
if (exchangeService?.addShippingMethod) {
|
|
122
137
|
await exchangeService.addShippingMethod({
|
|
123
138
|
exchange_id: exchangeId,
|
|
124
|
-
shipping_method_id:
|
|
139
|
+
shipping_method_id: finalOutboundShippingMethodId,
|
|
125
140
|
});
|
|
126
141
|
}
|
|
127
142
|
}
|
|
@@ -181,7 +196,7 @@ exports.createMedusaExchangeStep = (0, workflows_sdk_1.createStep)("create-medus
|
|
|
181
196
|
selector: { id: swap_id },
|
|
182
197
|
data: {
|
|
183
198
|
exchange_id: exchangeId,
|
|
184
|
-
outbound_shipping_method_id:
|
|
199
|
+
outbound_shipping_method_id: finalOutboundShippingMethodId || null,
|
|
185
200
|
send_notification: send_notification || false,
|
|
186
201
|
metadata: {
|
|
187
202
|
...swapMetadata,
|
|
@@ -190,7 +205,7 @@ exports.createMedusaExchangeStep = (0, workflows_sdk_1.createStep)("create-medus
|
|
|
190
205
|
exchange_id: exchangeId,
|
|
191
206
|
exchange_created_at: new Date().toISOString(),
|
|
192
207
|
exchange_creation_method: creationMethod,
|
|
193
|
-
outbound_shipping_method_id,
|
|
208
|
+
outbound_shipping_method_id: finalOutboundShippingMethodId,
|
|
194
209
|
notification_sent: send_notification || false,
|
|
195
210
|
},
|
|
196
211
|
},
|
|
@@ -202,4 +217,4 @@ exports.createMedusaExchangeStep = (0, workflows_sdk_1.createStep)("create-medus
|
|
|
202
217
|
swap: finalSwap || swap,
|
|
203
218
|
});
|
|
204
219
|
});
|
|
205
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
220
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW1lZHVzYS1leGNoYW5nZS1zdGVwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9zdGVwcy9zd2FwL2NyZWF0ZS1tZWR1c2EtZXhjaGFuZ2Utc3RlcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxREFBK0c7QUFDL0cscUVBQTRFO0FBRTVFLGdEQUFtRDtBQWlCdEMsUUFBQSx3QkFBd0IsR0FBRyxJQUFBLDBCQUFVLEVBQ2hELHdCQUF3QixFQUN4QixLQUFLLEVBQ0gsS0FBb0MsRUFDcEMsRUFBRSxTQUFTLEVBQUUsRUFDMEMsRUFBRTtJQUN6RCxNQUFNLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSwyQkFBMkIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLEdBQUcsS0FBSyxDQUFBO0lBRTlHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNiLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLHFCQUFxQixDQUN0QixDQUFBO0lBQ0gsQ0FBQztJQUVELElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNmLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLDBDQUEwQyxDQUMzQyxDQUFBO0lBQ0gsQ0FBQztJQUVELE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQWMsa0JBQVcsQ0FBQyxDQUFBO0lBQy9ELE1BQU0sSUFBSSxHQUFHLE1BQU0sV0FBVyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUNwRCxNQUFNLFFBQVEsR0FBRyxJQUtOLENBQUE7SUFFWCxJQUFLLFFBQXFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdkQsMkJBQTJCO1FBQzNCLE9BQU8sSUFBSSw0QkFBWSxDQUFpQztZQUN0RCxXQUFXLEVBQUcsUUFBcUMs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
|