order-management 0.0.5 → 0.0.7
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/api/store/orders/cancel/[order_id]/route.js +83 -0
- package/.medusa/server/src/workflows/cancel-order-workflow.js +25 -0
- package/.medusa/server/src/workflows/index.js +4 -2
- package/.medusa/server/src/workflows/steps/cancel-order-step.js +59 -0
- package/.medusa/server/src/workflows/steps/index.js +4 -2
- package/.medusa/server/src/workflows/steps/retrieve-order-step.js +44 -5
- package/package.json +1 -1
|
@@ -0,0 +1,83 @@
|
|
|
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 cancel_order_workflow_1 = require("../../../../../workflows/cancel-order-workflow");
|
|
6
|
+
const POST = async (req, res) => {
|
|
7
|
+
const { order_id } = req.params;
|
|
8
|
+
if (!order_id) {
|
|
9
|
+
res.status(400).json({
|
|
10
|
+
message: "order_id is required in path parameter",
|
|
11
|
+
});
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
// Type-safe access to auth_context
|
|
15
|
+
const authContext = req.auth_context;
|
|
16
|
+
const customerId = authContext?.actor_id;
|
|
17
|
+
// Detailed logging: Authentication customer ID
|
|
18
|
+
console.log("[Order Management] Cancel order - Authentication check:", {
|
|
19
|
+
order_id,
|
|
20
|
+
auth_customer_id: customerId,
|
|
21
|
+
auth_actor_type: authContext?.actor_type,
|
|
22
|
+
has_auth_context: !!authContext,
|
|
23
|
+
timestamp: new Date().toISOString(),
|
|
24
|
+
});
|
|
25
|
+
if (!customerId || authContext?.actor_type !== "customer") {
|
|
26
|
+
console.warn("[Order Management] Cancel order - Authentication failed:", {
|
|
27
|
+
order_id,
|
|
28
|
+
customer_id: customerId,
|
|
29
|
+
actor_type: authContext?.actor_type,
|
|
30
|
+
reason: !customerId ? "Missing customer_id" : "Invalid actor_type",
|
|
31
|
+
});
|
|
32
|
+
res.status(401).json({
|
|
33
|
+
message: "Unauthorized: Customer authentication is required",
|
|
34
|
+
});
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
try {
|
|
38
|
+
const { result } = await (0, cancel_order_workflow_1.cancelOrderWorkflow)(req.scope).run({
|
|
39
|
+
input: {
|
|
40
|
+
order_id,
|
|
41
|
+
customer_id: customerId,
|
|
42
|
+
},
|
|
43
|
+
});
|
|
44
|
+
res.json(result);
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
// Log error for debugging
|
|
48
|
+
console.error("[Order Management] Cancel order workflow error:", {
|
|
49
|
+
order_id,
|
|
50
|
+
customer_id: customerId,
|
|
51
|
+
error: error instanceof Error ? error.message : String(error),
|
|
52
|
+
error_details: error instanceof Error ? {
|
|
53
|
+
name: error.name,
|
|
54
|
+
message: error.message,
|
|
55
|
+
stack: error.stack,
|
|
56
|
+
} : error,
|
|
57
|
+
error_stack: error instanceof Error ? error.stack : undefined,
|
|
58
|
+
});
|
|
59
|
+
if (error instanceof utils_1.MedusaError) {
|
|
60
|
+
const statusCode = error.type === utils_1.MedusaError.Types.NOT_FOUND
|
|
61
|
+
? 404
|
|
62
|
+
: error.type === utils_1.MedusaError.Types.NOT_ALLOWED
|
|
63
|
+
? 403
|
|
64
|
+
: error.type === utils_1.MedusaError.Types.UNAUTHORIZED
|
|
65
|
+
? 401
|
|
66
|
+
: 400;
|
|
67
|
+
res.status(statusCode).json({
|
|
68
|
+
message: error.message,
|
|
69
|
+
type: error.type,
|
|
70
|
+
});
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
// Return detailed error information
|
|
74
|
+
const errorMessage = error instanceof Error ? error.message : "An error occurred";
|
|
75
|
+
const errorStack = error instanceof Error ? error.stack : undefined;
|
|
76
|
+
res.status(500).json({
|
|
77
|
+
message: errorMessage,
|
|
78
|
+
...(process.env.NODE_ENV === "development" && { stack: errorStack }),
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
exports.POST = POST;
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL29yZGVycy9jYW5jZWwvW29yZGVyX2lkXS9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxxREFBdUQ7QUFDdkQsMEZBQW9GO0FBRTdFLE1BQU0sSUFBSSxHQUFHLEtBQUssRUFDdkIsR0FBa0IsRUFDbEIsR0FBbUIsRUFDbkIsRUFBRTtJQUNGLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFBO0lBRS9CLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNkLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ25CLE9BQU8sRUFBRSx3Q0FBd0M7U0FDbEQsQ0FBQyxDQUFBO1FBQ0YsT0FBTTtJQUNSLENBQUM7SUFFRCxtQ0FBbUM7SUFDbkMsTUFBTSxXQUFXLEdBQUksR0FFbkIsQ0FBQyxZQUFZLENBQUE7SUFFZixNQUFNLFVBQVUsR0FBRyxXQUFXLEVBQUUsUUFBUSxDQUFBO0lBRXhDLCtDQUErQztJQUMvQyxPQUFPLENBQUMsR0FBRyxDQUFDLHlEQUF5RCxFQUFFO1FBQ3JFLFFBQVE7UUFDUixnQkFBZ0IsRUFBRSxVQUFVO1FBQzVCLGVBQWUsRUFBRSxXQUFXLEVBQUUsVUFBVTtRQUN4QyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsV0FBVztRQUMvQixTQUFTLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUU7S0FDcEMsQ0FBQyxDQUFBO0lBRUYsSUFBSSxDQUFDLFVBQVUsSUFBSSxXQUFXLEVBQUUsVUFBVSxLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQzFELE9BQU8sQ0FBQyxJQUFJLENBQUMsMERBQTBELEVBQUU7WUFDdkUsUUFBUTtZQUNSLFdBQVcsRUFBRSxVQUFVO1lBQ3ZCLFVBQVUsRUFBRSxXQUFXLEVBQUUsVUFBVTtZ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
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cancelOrderWorkflow = void 0;
|
|
4
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
|
+
const steps_1 = require("./steps");
|
|
6
|
+
exports.cancelOrderWorkflow = (0, workflows_sdk_1.createWorkflow)("order-management-cancel-order", (input) => {
|
|
7
|
+
const { order_id, customer_id } = input;
|
|
8
|
+
// Step 1: Retrieve and validate order ownership
|
|
9
|
+
const { order } = (0, steps_1.retrieveOrderStep)({
|
|
10
|
+
order_id,
|
|
11
|
+
customer_id,
|
|
12
|
+
});
|
|
13
|
+
// Step 2: Cancel the order
|
|
14
|
+
const cancelResult = (0, steps_1.cancelOrderStep)({
|
|
15
|
+
order,
|
|
16
|
+
});
|
|
17
|
+
// Return cancellation result
|
|
18
|
+
return new workflows_sdk_1.WorkflowResponse({
|
|
19
|
+
order_id: cancelResult.order_id,
|
|
20
|
+
status: cancelResult.status,
|
|
21
|
+
message: cancelResult.message,
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
exports.default = exports.cancelOrderWorkflow;
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FuY2VsLW9yZGVyLXdvcmtmbG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9jYW5jZWwtb3JkZXItd29ya2Zsb3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBRzBDO0FBQzFDLG1DQUdnQjtBQWFILFFBQUEsbUJBQW1CLEdBQUcsSUFBQSw4QkFBYyxFQUMvQywrQkFBK0IsRUFDL0IsQ0FDRSxLQUErQixFQUNjLEVBQUU7SUFDL0MsTUFBTSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsR0FBRyxLQUFLLENBQUE7SUFFdkMsZ0RBQWdEO0lBQ2hELE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFBLHlCQUFpQixFQUFDO1FBQ2xDLFFBQVE7UUFDUixXQUFXO0tBQ1osQ0FBQyxDQUFBO0lBRUYsMkJBQTJCO0lBQzNCLE1BQU0sWUFBWSxHQUFHLElBQUEsdUJBQWUsRUFBQztRQUNuQyxLQUFLO0tBQ04sQ0FBQyxDQUFBO0lBRUYsNkJBQTZCO0lBQzdCLE9BQU8sSUFBSSxnQ0FBZ0IsQ0FBQztRQUMxQixRQUFRLEVBQUUsWUFBWSxDQUFDLFFBQVE7UUFDL0IsTUFBTSxFQUFFLFlBQVksQ0FBQyxNQUFNO1FBQzNCLE9BQU8sRUFBRSxZQUFZLENBQUMsT0FBTztLQUM5QixDQUFDLENBQUE7QUFDSixDQUFDLENBQ0YsQ0FBQTtBQUVELGtCQUFlLDJCQUFtQixDQUFBIn0=
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.reorderWorkflow = void 0;
|
|
3
|
+
exports.cancelOrderWorkflow = exports.reorderWorkflow = void 0;
|
|
4
4
|
var reorder_workflow_1 = require("./reorder-workflow");
|
|
5
5
|
Object.defineProperty(exports, "reorderWorkflow", { enumerable: true, get: function () { return reorder_workflow_1.reorderWorkflow; } });
|
|
6
|
-
|
|
6
|
+
var cancel_order_workflow_1 = require("./cancel-order-workflow");
|
|
7
|
+
Object.defineProperty(exports, "cancelOrderWorkflow", { enumerable: true, get: function () { return cancel_order_workflow_1.cancelOrderWorkflow; } });
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHVEQUFvRDtBQUEzQyxtSEFBQSxlQUFlLE9BQUE7QUFDeEIsaUVBQTZEO0FBQXBELDRIQUFBLG1CQUFtQixPQUFBIn0=
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cancelOrderStep = void 0;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
6
|
+
const core_flows_1 = require("@medusajs/medusa/core-flows");
|
|
7
|
+
exports.cancelOrderStep = (0, workflows_sdk_1.createStep)("cancel-order-step", async (input, { container }) => {
|
|
8
|
+
const { order } = input;
|
|
9
|
+
if (!order || !order.id) {
|
|
10
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Order is required to cancel");
|
|
11
|
+
}
|
|
12
|
+
// Check if order has fulfilled items
|
|
13
|
+
// Check order items' fulfilled_quantity directly from the order data
|
|
14
|
+
const orderItems = order.items || [];
|
|
15
|
+
const hasFulfilledItems = orderItems.some((item) => {
|
|
16
|
+
// Access detail field safely using the [key: string]: unknown type
|
|
17
|
+
const detail = item.detail;
|
|
18
|
+
const fulfilledQuantity = item.fulfilled_quantity;
|
|
19
|
+
// Check fulfilled_quantity from detail.raw_fulfilled_quantity or direct field
|
|
20
|
+
const fulfilledQty = detail?.raw_fulfilled_quantity?.value
|
|
21
|
+
? parseInt(detail.raw_fulfilled_quantity.value, 10)
|
|
22
|
+
: fulfilledQuantity || 0;
|
|
23
|
+
return fulfilledQty > 0;
|
|
24
|
+
});
|
|
25
|
+
if (hasFulfilledItems) {
|
|
26
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_ALLOWED, "Cannot cancel order: Some items have already been fulfilled");
|
|
27
|
+
}
|
|
28
|
+
try {
|
|
29
|
+
// Use Medusa's built-in cancel order workflow
|
|
30
|
+
const { result } = await (0, core_flows_1.cancelOrderWorkflow)(container).run({
|
|
31
|
+
input: {
|
|
32
|
+
order_id: order.id,
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
// The workflow result structure may vary, handle it safely
|
|
36
|
+
const workflowResult = result;
|
|
37
|
+
// Extract order ID and status from result (may be nested or direct)
|
|
38
|
+
const canceledOrderId = workflowResult?.order?.id || workflowResult?.id || order.id;
|
|
39
|
+
const canceledStatus = workflowResult?.order?.status || workflowResult?.status || "canceled";
|
|
40
|
+
return new workflows_sdk_1.StepResponse({
|
|
41
|
+
order_id: canceledOrderId,
|
|
42
|
+
status: canceledStatus,
|
|
43
|
+
message: "Order canceled successfully",
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
// Handle cancellation errors
|
|
48
|
+
if (error instanceof utils_1.MedusaError) {
|
|
49
|
+
throw error;
|
|
50
|
+
}
|
|
51
|
+
const errorMessage = error instanceof Error ? error.message : "Failed to cancel order";
|
|
52
|
+
// Check for common error scenarios
|
|
53
|
+
if (errorMessage.includes("fulfilled") || errorMessage.includes("shipped")) {
|
|
54
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_ALLOWED, "Cannot cancel order: Some items have already been fulfilled or shipped");
|
|
55
|
+
}
|
|
56
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.UNEXPECTED_STATE, `Failed to cancel order: ${errorMessage}`);
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FuY2VsLW9yZGVyLXN0ZXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3N0ZXBzL2NhbmNlbC1vcmRlci1zdGVwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFEQUErRztBQUMvRyxxRUFBNEU7QUFDNUUsNERBQWlFO0FBY3BELFFBQUEsZUFBZSxHQUFHLElBQUEsMEJBQVUsRUFDdkMsbUJBQW1CLEVBQ25CLEtBQUssRUFDSCxLQUEyQixFQUMzQixFQUFFLFNBQVMsRUFBRSxFQUNpQyxFQUFFO0lBQ2hELE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxLQUFLLENBQUE7SUFFdkIsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUN4QixNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUM5Qiw2QkFBNkIsQ0FDOUIsQ0FBQTtJQUNILENBQUM7SUFFRCxxQ0FBcUM7SUFDckMscUVBQXFFO0lBQ3JFLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFBO0lBQ3BDLE1BQU0saUJBQWlCLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ2pELG1FQUFtRTtRQUNuRSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBcUUsQ0FBQTtRQUN6RixNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxrQkFBd0MsQ0FBQTtRQUV2RSw4RUFBOEU7UUFDOUUsTUFBTSxZQUFZLEdBQUcsTUFBTSxFQUFFLHNCQUFzQixFQUFFLEtBQUs7WUFDeEQsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsc0JBQXNCLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNuRCxDQUFDLENBQUMsaUJBQWlCLElBQUksQ0FBQyxDQUFBO1FBRTFCLE9BQU8sWUFBWSxHQUFHLENBQUMsQ0FBQTtJQUN6QixDQUFDLENBQUMsQ0FBQTtJQUVGLElBQUksaUJBQWlCLEVBQUUsQ0FBQztRQUN0QixNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUM3Qiw2REFBNkQsQ0FDOUQsQ0FBQTtJQUNILENBQUM7SUFFRCxJQUFJLENBQUM7UUFDSCw4Q0FBOEM7UUFDOUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBQSxnQ0FBbUIsRUFBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUM7WUFDMUQsS0FBSyxFQUFFO2dCQUNMLFFBQVEsRUFBRSxLQUFLLENBQUMsRUFBRTthQUNuQjtTQUNGLENBQUMsQ0FBQTtRQUVGLDJEQUEyRDtRQUMzRCxNQUFNLGNBQWMsR0FBRyxNQUl0QixDQUFBO1FBRUQsb0VBQW9FO1FBQ3BFLE1BQU0sZUFBZSxHQUFHLGNBQWMsRUFBRSxLQUFLLEVBQUUsRUFBRSxJQUFJLGNBQWMsRUFBRSxFQUFFLElBQUksS0FBSyxDQUFDLEVBQUUsQ0FBQTtRQUNuRixNQUFNLGNBQWMsR0FBRyxjQUFjLEVBQUUsS0FBSyxFQUFFLE1BQU0sSUFBSSxjQUFjLEVBQUUsTUFBTSxJQUFJLFVBQVUsQ0FBQTtRQUU1RixPQUFPLElBQUksNEJBQVksQ0FBd0I7WUFDN0MsUUFBUSxFQUFFLGVBQWU7WUFDekIsTUFBTSxFQUFFLGNBQWM7WUFDdEIsT0FBTyxFQUFFLDZCQUE2QjtTQUN2QyxDQUFDLENBQUE7SUFDSixDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLDZCQUE2QjtRQUM3QixJQUFJLEtBQUssWUFBWSxtQkFBVyxFQUFFLENBQUM7WUFDakMsTUFBTSxLQUFLLENBQUE7UUFDYixDQUFDO1FBRUQsTUFBTSxZQUFZLEdBQ2hCLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFBO1FBRW5FLG1DQUFtQztRQUNuQyxJQUFJLFlBQVksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQzNFLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQzdCLHdFQUF3RSxDQUN6RSxDQUFBO1FBQ0gsQ0FBQztRQUVELE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFDbEMsMkJBQTJCLFlBQVksRUFBRSxDQUMxQyxDQUFBO0lBQ0gsQ0FBQztBQUNILENBQUMsQ0FDRixDQUFBIn0=
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createCartFromOrderStep = exports.transformOrderToCartStep = exports.retrieveOrderStep = void 0;
|
|
3
|
+
exports.cancelOrderStep = exports.createCartFromOrderStep = exports.transformOrderToCartStep = exports.retrieveOrderStep = void 0;
|
|
4
4
|
var retrieve_order_step_1 = require("./retrieve-order-step");
|
|
5
5
|
Object.defineProperty(exports, "retrieveOrderStep", { enumerable: true, get: function () { return retrieve_order_step_1.retrieveOrderStep; } });
|
|
6
6
|
var transform_order_to_cart_step_1 = require("./transform-order-to-cart-step");
|
|
7
7
|
Object.defineProperty(exports, "transformOrderToCartStep", { enumerable: true, get: function () { return transform_order_to_cart_step_1.transformOrderToCartStep; } });
|
|
8
8
|
var create_cart_from_order_step_1 = require("./create-cart-from-order-step");
|
|
9
9
|
Object.defineProperty(exports, "createCartFromOrderStep", { enumerable: true, get: function () { return create_cart_from_order_step_1.createCartFromOrderStep; } });
|
|
10
|
-
|
|
10
|
+
var cancel_order_step_1 = require("./cancel-order-step");
|
|
11
|
+
Object.defineProperty(exports, "cancelOrderStep", { enumerable: true, get: function () { return cancel_order_step_1.cancelOrderStep; } });
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3N0ZXBzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZEQUF5RDtBQUFoRCx3SEFBQSxpQkFBaUIsT0FBQTtBQUMxQiwrRUFBeUU7QUFBaEUsd0lBQUEsd0JBQXdCLE9BQUE7QUFDakMsNkVBQXVFO0FBQTlELHNJQUFBLHVCQUF1QixPQUFBO0FBQ2hDLHlEQUFxRDtBQUE1QyxvSEFBQSxlQUFlLE9BQUEifQ==
|
|
@@ -15,6 +15,7 @@ exports.retrieveOrderStep = (0, workflows_sdk_1.createStep)("retrieve-order", as
|
|
|
15
15
|
const remoteQuery = container.resolve(utils_2.ContainerRegistrationKeys.REMOTE_QUERY);
|
|
16
16
|
let orders;
|
|
17
17
|
try {
|
|
18
|
+
// Fix: Use array format for id filter to ensure proper filtering
|
|
18
19
|
const queryObject = (0, utils_2.remoteQueryObjectFromString)({
|
|
19
20
|
entryPoint: "order",
|
|
20
21
|
fields: [
|
|
@@ -28,17 +29,19 @@ exports.retrieveOrderStep = (0, workflows_sdk_1.createStep)("retrieve-order", as
|
|
|
28
29
|
"email",
|
|
29
30
|
],
|
|
30
31
|
filters: {
|
|
31
|
-
id: order_id,
|
|
32
|
+
id: [order_id], // Use array format for proper filtering
|
|
32
33
|
},
|
|
33
34
|
});
|
|
34
35
|
orders = await remoteQuery(queryObject);
|
|
35
36
|
// Detailed logging: Raw remoteQuery result
|
|
36
37
|
console.log("[Order Management] Raw remoteQuery result:", {
|
|
37
|
-
order_id,
|
|
38
|
+
order_id_requested: order_id,
|
|
38
39
|
orders_type: Array.isArray(orders) ? 'array' : typeof orders,
|
|
39
40
|
orders_length: Array.isArray(orders) ? orders.length : 'N/A',
|
|
40
41
|
orders_is_array: Array.isArray(orders),
|
|
41
42
|
first_order_exists: Array.isArray(orders) ? !!orders[0] : !!orders,
|
|
43
|
+
first_order_id: Array.isArray(orders) && orders[0] ? orders[0].id : orders?.id,
|
|
44
|
+
first_few_order_ids: Array.isArray(orders) ? orders.slice(0, 5).map((o) => o?.id) : 'N/A',
|
|
42
45
|
timestamp: new Date().toISOString(),
|
|
43
46
|
});
|
|
44
47
|
}
|
|
@@ -51,16 +54,52 @@ exports.retrieveOrderStep = (0, workflows_sdk_1.createStep)("retrieve-order", as
|
|
|
51
54
|
});
|
|
52
55
|
throw new utils_1.MedusaError(utils_1.MedusaError.Types.UNEXPECTED_STATE, `Failed to retrieve order: ${queryError instanceof Error ? queryError.message : "Unknown error"}`);
|
|
53
56
|
}
|
|
54
|
-
|
|
57
|
+
// Fix: Find the correct order from results, don't just take first one
|
|
58
|
+
let order = null;
|
|
59
|
+
if (Array.isArray(orders)) {
|
|
60
|
+
// If multiple orders returned, find the one matching our order_id
|
|
61
|
+
order = orders.find((o) => o && o.id === order_id);
|
|
62
|
+
if (!order && orders.length > 0) {
|
|
63
|
+
console.warn("[Order Management] Order ID mismatch - multiple orders returned:", {
|
|
64
|
+
order_id_requested: order_id,
|
|
65
|
+
orders_returned: orders.length,
|
|
66
|
+
first_order_id: orders[0]?.id,
|
|
67
|
+
first_few_order_ids: orders.slice(0, 5).map((o) => o?.id),
|
|
68
|
+
timestamp: new Date().toISOString(),
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
order = orders;
|
|
74
|
+
}
|
|
75
|
+
// Validate we got the correct order
|
|
55
76
|
if (!order) {
|
|
56
77
|
console.error("[Order Management] Order not found after query:", {
|
|
57
|
-
order_id,
|
|
78
|
+
order_id_requested: order_id,
|
|
58
79
|
orders_result: orders,
|
|
59
80
|
orders_type: typeof orders,
|
|
81
|
+
orders_count: Array.isArray(orders) ? orders.length : orders ? 1 : 0,
|
|
60
82
|
timestamp: new Date().toISOString(),
|
|
61
83
|
});
|
|
62
84
|
throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, `Order with id ${order_id} not found`);
|
|
63
85
|
}
|
|
86
|
+
// Critical validation: Ensure we got the correct order
|
|
87
|
+
if (order.id !== order_id) {
|
|
88
|
+
console.error("[Order Management] Order ID mismatch - wrong order returned:", {
|
|
89
|
+
order_id_requested: order_id,
|
|
90
|
+
order_id_received: order.id,
|
|
91
|
+
orders_count: Array.isArray(orders) ? orders.length : 1,
|
|
92
|
+
orders_array_ids: Array.isArray(orders) ? orders.map((o) => o?.id).slice(0, 10) : [order.id],
|
|
93
|
+
timestamp: new Date().toISOString(),
|
|
94
|
+
});
|
|
95
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, `Order with id ${order_id} not found. Query returned order ${order.id} instead.`);
|
|
96
|
+
}
|
|
97
|
+
console.log("[Order Management] Correct order found:", {
|
|
98
|
+
order_id_requested: order_id,
|
|
99
|
+
order_id_received: order.id,
|
|
100
|
+
order_ids_match: order.id === order_id,
|
|
101
|
+
timestamp: new Date().toISOString(),
|
|
102
|
+
});
|
|
64
103
|
// Detailed logging: Full order object structure
|
|
65
104
|
console.log("[Order Management] Full order object structure:", {
|
|
66
105
|
order_id,
|
|
@@ -144,4 +183,4 @@ exports.retrieveOrderStep = (0, workflows_sdk_1.createStep)("retrieve-order", as
|
|
|
144
183
|
order: order,
|
|
145
184
|
});
|
|
146
185
|
});
|
|
147
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
186
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0cmlldmUtb3JkZXItc3RlcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3Mvc3RlcHMvcmV0cmlldmUtb3JkZXItc3RlcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxREFBdUQ7QUFDdkQscUVBQTRFO0FBQzVFLHFEQUFrRztBQWtEckYsUUFBQSxpQkFBaUIsR0FBRyxJQUFBLDBCQUFVLEVBQ3pDLGdCQUFnQixFQUNoQixLQUFLLEVBQ0gsS0FBNkIsRUFDN0IsRUFBRSxTQUFTLEVBQUUsRUFDbUMsRUFBRTtJQUNsRCxNQUFNLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxHQUFHLEtBQUssQ0FBQTtJQUV2QyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDZCxNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUM5QixzQkFBc0IsQ0FDdkIsQ0FBQTtJQUNILENBQUM7SUFFRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDakIsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDOUIscUNBQXFDLENBQ3RDLENBQUE7SUFDSCxDQUFDO0lBRUQsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FDbkMsaUNBQXlCLENBQUMsWUFBWSxDQUN2QyxDQUFBO0lBRUQsSUFBSSxNQUFNLENBQUE7SUFDVixJQUFJLENBQUM7UUFDSCxpRUFBaUU7UUFDakUsTUFBTSxXQUFXLEdBQUcsSUFBQSxtQ0FBMkIsRUFBQztZQUM5QyxVQUFVLEVBQUUsT0FBTztZQUNuQixNQUFNLEVBQUU7Z0JBQ04sSUFBSTtnQkFDSixTQUFTO2dCQUNULG9CQUFvQjtnQkFDcEIsbUJBQW1CO2dCQUNuQixXQUFXO2dCQUNYLGtCQUFrQjtnQkFDbEIsYUFBYTtnQkFDYixPQUFPO2FBQ1I7WUFDRCxPQUFPLEVBQUU7Z0JBQ1As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
|