order-management 0.0.12 → 0.0.14

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.
@@ -123,7 +123,7 @@ const ReturnsPage = () => {
123
123
  className: "h-9 rounded-md border border-ui-border-base bg-transparent px-3 text-sm text-ui-fg-base outline-none transition focus:ring-2 focus:ring-ui-fg-interactive md:max-w-xs",
124
124
  children: [
125
125
  /* @__PURE__ */ jsxRuntime.jsx("option", { value: "all", children: "All Statuses" }),
126
- availableStatuses.map((status) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: status, children: status.replace("_", " ").toUpperCase() }, status))
126
+ availableStatuses.map((status) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: status, children: status.replace(/_/g, " ").toUpperCase() }, status))
127
127
  ]
128
128
  }
129
129
  ) })
@@ -166,11 +166,26 @@ const ReturnsPage = () => {
166
166
  {
167
167
  size: "2xsmall",
168
168
  className: `uppercase ${getStatusBadgeClass$1(returnOrder.status)}`,
169
- children: returnOrder.status.replace("_", " ")
169
+ children: returnOrder.status.replace(/_/g, " ")
170
170
  }
171
171
  ) }),
172
- /* @__PURE__ */ jsxRuntime.jsx("td", { className: "px-4 py-4 text-ui-fg-subtle", children: returnOrder.refund_amount ? `$${Number(returnOrder.refund_amount).toFixed(2)}` : "—" }),
173
- /* @__PURE__ */ jsxRuntime.jsx("td", { className: "px-4 py-4 text-ui-fg-subtle", children: new Date(returnOrder.created_at).toLocaleString() }),
172
+ /* @__PURE__ */ jsxRuntime.jsx("td", { className: "px-4 py-4 text-ui-fg-subtle", children: (() => {
173
+ const amount = returnOrder.refund_amount;
174
+ if (amount == null || amount === void 0) {
175
+ return "—";
176
+ }
177
+ const displayAmount = Number(amount) / 100;
178
+ const currency = returnOrder.currency_code || "$";
179
+ return `${currency}${displayAmount.toFixed(2)}`;
180
+ })() }),
181
+ /* @__PURE__ */ jsxRuntime.jsx("td", { className: "px-4 py-4 text-ui-fg-subtle", children: new Date(returnOrder.created_at).toLocaleDateString("en-US", {
182
+ year: "numeric",
183
+ month: "short",
184
+ day: "numeric",
185
+ hour: "numeric",
186
+ minute: "2-digit",
187
+ hour12: true
188
+ }) }),
174
189
  /* @__PURE__ */ jsxRuntime.jsx("td", { className: "px-4 py-4", children: /* @__PURE__ */ jsxRuntime.jsx(
175
190
  ui.Button,
176
191
  {
@@ -122,7 +122,7 @@ const ReturnsPage = () => {
122
122
  className: "h-9 rounded-md border border-ui-border-base bg-transparent px-3 text-sm text-ui-fg-base outline-none transition focus:ring-2 focus:ring-ui-fg-interactive md:max-w-xs",
123
123
  children: [
124
124
  /* @__PURE__ */ jsx("option", { value: "all", children: "All Statuses" }),
125
- availableStatuses.map((status) => /* @__PURE__ */ jsx("option", { value: status, children: status.replace("_", " ").toUpperCase() }, status))
125
+ availableStatuses.map((status) => /* @__PURE__ */ jsx("option", { value: status, children: status.replace(/_/g, " ").toUpperCase() }, status))
126
126
  ]
127
127
  }
128
128
  ) })
@@ -165,11 +165,26 @@ const ReturnsPage = () => {
165
165
  {
166
166
  size: "2xsmall",
167
167
  className: `uppercase ${getStatusBadgeClass$1(returnOrder.status)}`,
168
- children: returnOrder.status.replace("_", " ")
168
+ children: returnOrder.status.replace(/_/g, " ")
169
169
  }
170
170
  ) }),
171
- /* @__PURE__ */ jsx("td", { className: "px-4 py-4 text-ui-fg-subtle", children: returnOrder.refund_amount ? `$${Number(returnOrder.refund_amount).toFixed(2)}` : "—" }),
172
- /* @__PURE__ */ jsx("td", { className: "px-4 py-4 text-ui-fg-subtle", children: new Date(returnOrder.created_at).toLocaleString() }),
171
+ /* @__PURE__ */ jsx("td", { className: "px-4 py-4 text-ui-fg-subtle", children: (() => {
172
+ const amount = returnOrder.refund_amount;
173
+ if (amount == null || amount === void 0) {
174
+ return "—";
175
+ }
176
+ const displayAmount = Number(amount) / 100;
177
+ const currency = returnOrder.currency_code || "$";
178
+ return `${currency}${displayAmount.toFixed(2)}`;
179
+ })() }),
180
+ /* @__PURE__ */ jsx("td", { className: "px-4 py-4 text-ui-fg-subtle", children: new Date(returnOrder.created_at).toLocaleDateString("en-US", {
181
+ year: "numeric",
182
+ month: "short",
183
+ day: "numeric",
184
+ hour: "numeric",
185
+ minute: "2-digit",
186
+ hour12: true
187
+ }) }),
173
188
  /* @__PURE__ */ jsx("td", { className: "px-4 py-4", children: /* @__PURE__ */ jsx(
174
189
  Button,
175
190
  {
@@ -1,55 +1,56 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GET = void 0;
4
- const utils_1 = require("@medusajs/framework/utils");
5
4
  const GET = async (req, res) => {
6
5
  const { id } = req.params;
7
6
  if (!id) {
8
7
  res.status(400).json({ message: "Return ID is required" });
9
8
  return;
10
9
  }
11
- const remoteQuery = req.scope.resolve(utils_1.ContainerRegistrationKeys.REMOTE_QUERY);
12
10
  try {
13
- // Query orders with returns to find the specific return
14
- const queryObject = (0, utils_1.remoteQueryObjectFromString)({
15
- entryPoint: "order",
16
- fields: [
17
- "id",
18
- "email",
19
- "created_at",
20
- "updated_at",
21
- "status",
22
- "currency_code",
23
- "total",
24
- "subtotal",
25
- "tax_total",
26
- "shipping_total",
27
- "discount_total",
28
- "customer.id",
29
- "customer.email",
30
- "customer.first_name",
31
- "customer.last_name",
32
- "shipping_address.*",
33
- "billing_address.*",
34
- "returns.id",
35
- "returns.status",
36
- "returns.created_at",
37
- "returns.updated_at",
38
- "returns.items.*",
39
- "returns.items.item.*",
40
- "returns.shipping_method.*",
41
- "returns.refund_amount",
42
- "returns.metadata",
43
- "returns.reason",
44
- "returns.note",
45
- ],
46
- });
47
- const orders = await remoteQuery(queryObject);
48
- const orderArray = Array.isArray(orders) ? orders : [orders];
11
+ // Resolve OrderModuleService
12
+ const orderService = req.scope.resolve("order");
13
+ if (!orderService) {
14
+ res.status(500).json({
15
+ message: "Order service is not available. Please ensure the Medusa framework is properly configured.",
16
+ });
17
+ return;
18
+ }
19
+ // Fetch orders with returns relation using OrderService
20
+ // This avoids the MikroORM join strategy error
21
+ let orders = [];
22
+ // Try listOrders method (common in Medusa v2)
23
+ if (typeof orderService.listOrders === "function") {
24
+ const result = await orderService.listOrders({}, // No filters - we'll search through all orders
25
+ {
26
+ relations: ["returns", "returns.items"],
27
+ take: 1000, // Fetch a large batch to find the return
28
+ skip: 0,
29
+ });
30
+ // listOrders might return [orders, count] or just orders
31
+ if (Array.isArray(result) && result.length === 2 && typeof result[1] === "number") {
32
+ orders = Array.isArray(result[0]) ? result[0] : result[0] ? [result[0]] : [];
33
+ }
34
+ else {
35
+ orders = Array.isArray(result) ? result : result ? [result] : [];
36
+ }
37
+ }
38
+ else if (typeof orderService.listAndCount === "function") {
39
+ // Fallback to listAndCount if available
40
+ const result = await orderService.listAndCount({}, {
41
+ relations: ["returns", "returns.items"],
42
+ take: 1000,
43
+ skip: 0,
44
+ });
45
+ orders = Array.isArray(result[0]) ? result[0] : result[0] ? [result[0]] : [];
46
+ }
47
+ else {
48
+ throw new Error("OrderService does not have listOrders or listAndCount method");
49
+ }
49
50
  // Find the return in any order
50
51
  let foundReturn = null;
51
52
  let parentOrder = null;
52
- for (const order of orderArray) {
53
+ for (const order of orders) {
53
54
  if (order && typeof order === "object" && "returns" in order) {
54
55
  const orderReturns = Array.isArray(order.returns)
55
56
  ? order.returns
@@ -93,7 +94,7 @@ const GET = async (req, res) => {
93
94
  tax_total: orderData?.tax_total,
94
95
  shipping_total: orderData?.shipping_total,
95
96
  discount_total: orderData?.discount_total,
96
- customer: orderData?.customer,
97
+ customer_id: orderData?.customer_id,
97
98
  shipping_address: orderData?.shipping_address,
98
99
  billing_address: orderData?.billing_address,
99
100
  },
@@ -101,6 +102,7 @@ const GET = async (req, res) => {
101
102
  });
102
103
  }
103
104
  catch (error) {
105
+ console.error("Error retrieving return details:", error);
104
106
  res.status(500).json({
105
107
  message: error instanceof Error
106
108
  ? error.message
@@ -109,4 +111,4 @@ const GET = async (req, res) => {
109
111
  }
110
112
  };
111
113
  exports.GET = GET;
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3JldHVybnMvW2lkXS9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxxREFHa0M7QUFJM0IsTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUN0QixHQUFrQixFQUNsQixHQUFtQixFQUNuQixFQUFFO0lBQ0YsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUE7SUFFekIsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ1IsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsQ0FBQyxDQUFBO1FBQzFELE9BQU07SUFDUixDQUFDO0lBRUQsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQ25DLGlDQUF5QixDQUFDLFlBQVksQ0FDdkMsQ0FBQTtJQUVELElBQUksQ0FBQztRQUNILHdEQUF3RDtRQUN4RCxNQUFNLFdBQVcsR0FBRyxJQUFBLG1DQUEyQixFQUFDO1lBQzlDLFVBQVUsRUFBRSxPQUFPO1lBQ25CLE1BQU0sRUFBRTtnQkFDTixJQUFJO2dCQUNKLE9BQU87Z0JBQ1AsWUFBWTtnQkFDWixZQUFZO2dCQUNaLFFBQVE7Z0JBQ1IsZUFBZTtnQkFDZixPQUFPO2dCQUNQLFVBQVU7Z0JBQ1YsV0FBVztnQkFDWCxnQkFBZ0I7Z0JBQ2hCLGdCQUFnQjtnQkFDaEIsYUFBYTtnQkFDYixnQkFBZ0I7Z0JBQ2hCLHFCQUFxQjtnQkFDckIsb0JBQW9CO2dCQUNwQixvQkFBb0I7Z0JBQ3BCLG1CQUFtQjtnQkFDbkIsWUFBWTtnQkFDWixnQkFBZ0I7Z0JBQ2hCLG9CQUFvQjtnQkFDcEIsb0JBQW9CO2dCQUNwQixpQkFBaUI7Z0JBQ2pCLHNCQUFzQjtnQkFDdEIsMkJBQTJCO2dCQUMzQix1QkFB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
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3JldHVybnMvW2lkXS9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFTyxNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQ3RCLEdBQWtCLEVBQ2xCLEdBQW1CLEVBQ25CLEVBQUU7SUFDRixNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQTtJQUV6QixJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDUixHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxDQUFDLENBQUE7UUFDMUQsT0FBTTtJQUNSLENBQUM7SUFFRCxJQUFJLENBQUM7UUFDSCw2QkFBNkI7UUFDN0IsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUE7UUFFL0MsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ2xCLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUNuQixPQUFPLEVBQUUsNEZBQTRGO2FBQ3RHLENBQUMsQ0FBQTtZQUNGLE9BQU07UUFDUixDQUFDO1FBRUQsd0RBQXdEO1FBQ3hELCtDQUErQztRQUMvQyxJQUFJLE1BQU0sR0FBYyxFQUFFLENBQUE7UUFFMUIsOENBQThDO1FBQzlDLElBQUksT0FBUSxZQUF5QyxDQUFDLFVBQVUsS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUNoRixNQUFNLE1BQU0sR0FBRyxNQUFPLFlBS3BCLENBQUMsVUFBVSxDQUNYLEVBQUUsRUFBRSwrQ0FBK0M7WUFDbkQ7Z0JBQ0UsU0FBUyxFQUFFLENBQUMsU0FBUyxFQUFFLGVBQWUsQ0FBQztnQkFDdkMsSUFBSSxFQUFFLElBQUksRUFBRSx5Q0FBeUM7Z0JBQ3JE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
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GET = void 0;
4
- const utils_1 = require("@medusajs/framework/utils");
5
4
  const validators_1 = require("./validators");
6
5
  const GET = async (req, res) => {
7
6
  // Parse query - Medusa framework rejects order_direction, so we use default DESC
@@ -31,72 +30,71 @@ const GET = async (req, res) => {
31
30
  }
32
31
  // Use DESC as default sort direction (Medusa framework rejects order_direction parameter)
33
32
  const sortDirection = "DESC";
34
- const remoteQuery = req.scope.resolve(utils_1.ContainerRegistrationKeys.REMOTE_QUERY);
33
+ // Use OrderService to fetch orders with returns relation
34
+ // This is the recommended Medusa approach and avoids MikroORM join strategy errors
35
35
  try {
36
- // Build filters for orders
37
- // Note: We only filter by order_id directly. Customer email and other filters
38
- // are applied in post-processing because RemoteQuery doesn't support nested filters
39
- const filters = {};
40
- // Filter by order_id if provided
36
+ // Resolve OrderModuleService
37
+ const orderService = req.scope.resolve("order");
38
+ if (!orderService) {
39
+ res.status(500).json({
40
+ message: "Order service is not available. Please ensure the Medusa framework is properly configured.",
41
+ });
42
+ return;
43
+ }
44
+ // Build order-level filters (applied to OrderService query)
45
+ const orderFilters = {};
41
46
  if (query.order_id) {
42
- filters.id = [query.order_id];
47
+ orderFilters.id = query.order_id;
48
+ }
49
+ if (query.q?.startsWith("order_")) {
50
+ orderFilters.id = query.q;
43
51
  }
44
- // Search query - if it looks like an order ID, filter by it
45
- if (query.q) {
46
- const searchTerm = query.q.trim();
47
- if (searchTerm.startsWith("order_")) {
48
- filters.id = [searchTerm];
52
+ // Fetch orders with returns relation
53
+ // Note: We fetch more orders than needed since we filter returns after extraction
54
+ // This ensures we get enough returns after filtering
55
+ // Try different method names that OrderService might have
56
+ let orders = [];
57
+ let orderCount = 0;
58
+ // Try listOrders method (common in Medusa v2)
59
+ if (typeof orderService.listOrders === "function") {
60
+ const result = await orderService.listOrders(orderFilters, {
61
+ relations: ["returns", "returns.items"],
62
+ take: Math.max(query.limit * 3, 100),
63
+ skip: 0,
64
+ });
65
+ // listOrders might return [orders, count] or just orders
66
+ if (Array.isArray(result) && result.length === 2 && typeof result[1] === "number") {
67
+ orders = Array.isArray(result[0]) ? result[0] : result[0] ? [result[0]] : [];
68
+ orderCount = result[1];
69
+ }
70
+ else {
71
+ orders = Array.isArray(result) ? result : result ? [result] : [];
72
+ orderCount = orders.length;
49
73
  }
50
74
  }
51
- // Build the query object
52
- // Note: We query all orders with returns and filter returns in post-processing
53
- // because Medusa's RemoteQuery doesn't support nested filters like returns.status
54
- const queryObject = (0, utils_1.remoteQueryObjectFromString)({
55
- entryPoint: "order",
56
- fields: [
57
- "id",
58
- "email",
59
- "created_at",
60
- "updated_at",
61
- "customer.id",
62
- "customer.email",
63
- "returns.id",
64
- "returns.status",
65
- "returns.created_at",
66
- "returns.updated_at",
67
- "returns.items.*",
68
- "returns.shipping_method.*",
69
- "returns.refund_amount",
70
- "returns.metadata",
71
- "returns.reason",
72
- "returns.note",
73
- "returns.received_at",
74
- ],
75
- filters: Object.keys(filters).length > 0 ? filters : undefined,
76
- // Don't paginate at the order level - we'll paginate returns after filtering
77
- });
78
- // Execute query
79
- let orders;
80
- try {
81
- orders = await remoteQuery(queryObject);
75
+ else if (typeof orderService.listAndCount === "function") {
76
+ // Fallback to listAndCount if available
77
+ const result = await orderService.listAndCount(orderFilters, {
78
+ relations: ["returns", "returns.items"],
79
+ take: Math.max(query.limit * 3, 100),
80
+ skip: 0,
81
+ });
82
+ orders = Array.isArray(result[0]) ? result[0] : result[0] ? [result[0]] : [];
83
+ orderCount = result[1];
82
84
  }
83
- catch (queryError) {
84
- console.error("RemoteQuery error:", queryError);
85
- throw new Error(`Failed to query returns: ${queryError instanceof Error ? queryError.message : "Unknown error"}`);
85
+ else {
86
+ // If neither method exists, throw an error
87
+ throw new Error("OrderService does not have listOrders or listAndCount method. " +
88
+ "Available methods: " + Object.keys(orderService).join(", "));
86
89
  }
87
- // Extract returns from orders and flatten the structure
88
- const returns = [];
89
- const orderArray = Array.isArray(orders) ? orders : orders ? [orders] : [];
90
- for (const order of orderArray) {
91
- if (!order || typeof order !== "object") {
90
+ console.log(`[Returns API] Fetched ${orders.length} orders (${orderCount} total)`);
91
+ // Extract returns from orders and apply return-level filters
92
+ const allReturns = [];
93
+ for (const order of orders) {
94
+ if (!order || typeof order !== "object" || !("returns" in order)) {
92
95
  continue;
93
96
  }
94
- const orderData = order;
95
- // Check if order has returns - handle both array and single return cases
96
- if (!("returns" in orderData)) {
97
- continue;
98
- }
99
- const orderReturnsRaw = orderData.returns;
97
+ const orderReturnsRaw = order.returns;
100
98
  const orderReturns = Array.isArray(orderReturnsRaw)
101
99
  ? orderReturnsRaw
102
100
  : orderReturnsRaw
@@ -110,69 +108,71 @@ const GET = async (req, res) => {
110
108
  continue;
111
109
  }
112
110
  const returnData = returnItem;
113
- // Apply customer email filter if provided
114
- if (query.customer_email) {
115
- const customerData = orderData.customer;
116
- const orderEmail = orderData.email || "";
117
- const customerEmail = customerData?.email || orderEmail;
118
- if (!customerEmail
119
- .toLowerCase()
120
- .includes(query.customer_email.toLowerCase())) {
111
+ // Transform order to typed structure (needed for filters)
112
+ // Note: Order entity doesn't have direct 'customer' relation in Medusa v2
113
+ // Use customer_id and email fields instead
114
+ const orderData = order;
115
+ // Apply return-level filters
116
+ // Filter by return status
117
+ if (query.status && returnData.status !== query.status) {
118
+ continue;
119
+ }
120
+ // Filter by return ID if search query starts with "return_"
121
+ if (query.q?.startsWith("return_")) {
122
+ if (returnData.id !== query.q) {
121
123
  continue;
122
124
  }
123
125
  }
124
- // Apply search filter if provided
125
- if (query.q) {
126
+ else if (query.q && !query.q.startsWith("order_")) {
127
+ // General search: check return ID, order ID, and customer email
126
128
  const searchTerm = query.q.toLowerCase();
127
129
  const returnId = String(returnData.id || "").toLowerCase();
128
130
  const orderId = String(orderData.id || "").toLowerCase();
129
- const customerData = orderData.customer;
130
- const customerEmail = String(customerData?.email ||
131
- orderData.email ||
132
- "").toLowerCase();
131
+ const customerEmail = String(orderData.email || "").toLowerCase();
133
132
  if (!returnId.includes(searchTerm) &&
134
133
  !orderId.includes(searchTerm) &&
135
134
  !customerEmail.includes(searchTerm)) {
136
135
  continue;
137
136
  }
138
137
  }
139
- // Apply status filter
140
- if (query.status && returnData.status !== query.status) {
141
- continue;
138
+ // Filter by customer email
139
+ if (query.customer_email) {
140
+ const customerEmail = orderData.email || "";
141
+ if (!customerEmail.toLowerCase().includes(query.customer_email.toLowerCase())) {
142
+ continue;
143
+ }
142
144
  }
143
- // Apply date range filter
144
- if (query.created_at) {
145
- const returnCreatedAt = returnData.created_at
145
+ // Date filtering on return creation
146
+ if (query.created_at?.gte || query.created_at?.lte) {
147
+ const returnDate = returnData.created_at
146
148
  ? new Date(returnData.created_at)
147
149
  : null;
148
- if (query.created_at.gte && returnCreatedAt) {
149
- if (returnCreatedAt < new Date(query.created_at.gte)) {
150
+ if (query.created_at.gte && returnDate) {
151
+ if (returnDate < new Date(query.created_at.gte)) {
150
152
  continue;
151
153
  }
152
154
  }
153
- if (query.created_at.lte && returnCreatedAt) {
154
- if (returnCreatedAt > new Date(query.created_at.lte)) {
155
+ if (query.created_at.lte && returnDate) {
156
+ if (returnDate > new Date(query.created_at.lte)) {
155
157
  continue;
156
158
  }
157
159
  }
158
160
  }
159
- // Build return object with order context
160
- const customerData = orderData.customer;
161
- returns.push({
161
+ allReturns.push({
162
162
  ...returnData,
163
163
  order_id: orderData.id,
164
164
  order_email: orderData.email,
165
- customer_id: customerData?.id,
166
- customer_email: customerData?.email || orderData.email,
165
+ order_display_id: orderData.display_id,
166
+ customer_id: orderData.customer_id,
167
+ customer_email: orderData.email, // Use order email as customer email
168
+ currency_code: orderData.currency_code, // Include currency code from order
167
169
  });
168
170
  }
169
171
  }
172
+ console.log(`[Returns API] Extracted ${allReturns.length} returns after filtering`);
170
173
  // Sort returns
171
174
  const sortField = query.order || "created_at";
172
- returns.sort((a, b) => {
173
- if (typeof a !== "object" || a === null || typeof b !== "object" || b === null) {
174
- return 0;
175
- }
175
+ allReturns.sort((a, b) => {
176
176
  const aVal = a[sortField];
177
177
  const bVal = b[sortField];
178
178
  if (aVal === undefined && bVal === undefined)
@@ -181,20 +181,29 @@ const GET = async (req, res) => {
181
181
  return 1;
182
182
  if (bVal === undefined)
183
183
  return -1;
184
+ // Handle dates
184
185
  if (aVal instanceof Date && bVal instanceof Date) {
185
- // Always sort DESC (newest first) since Medusa framework rejects order_direction
186
- return bVal.getTime() - aVal.getTime();
186
+ return sortDirection === "DESC"
187
+ ? bVal.getTime() - aVal.getTime()
188
+ : aVal.getTime() - bVal.getTime();
187
189
  }
190
+ // Handle strings
188
191
  if (typeof aVal === "string" && typeof bVal === "string") {
189
- // Always sort DESC (newest first) since Medusa framework rejects order_direction
190
- return bVal.localeCompare(aVal);
192
+ return sortDirection === "DESC"
193
+ ? bVal.localeCompare(aVal)
194
+ : aVal.localeCompare(bVal);
195
+ }
196
+ // Handle numbers
197
+ if (typeof aVal === "number" && typeof bVal === "number") {
198
+ return sortDirection === "DESC" ? bVal - aVal : aVal - bVal;
191
199
  }
192
200
  return 0;
193
201
  });
194
- // Get total count before pagination
195
- const totalCount = returns.length;
202
+ // Get total count after filtering
203
+ const totalCount = allReturns.length;
196
204
  // Apply pagination
197
- const paginatedReturns = returns.slice(query.offset, query.offset + query.limit);
205
+ const paginatedReturns = allReturns.slice(query.offset, query.offset + query.limit);
206
+ console.log(`[Returns API] Returning ${paginatedReturns.length} returns (page ${Math.floor(query.offset / query.limit) + 1}, total: ${totalCount})`);
198
207
  res.status(200).json({
199
208
  returns: paginatedReturns,
200
209
  count: totalCount,
@@ -213,4 +222,4 @@ const GET = async (req, res) => {
213
222
  }
214
223
  };
215
224
  exports.GET = GET;
216
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3JldHVybnMvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EscURBR2tDO0FBRWxDLDZDQUFxRDtBQUU5QyxNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQUUsR0FBa0IsRUFBRSxHQUFtQixFQUFFLEVBQUU7SUFDbkUsaUZBQWlGO0lBQ2pGLE1BQU0sV0FBVyxHQUFHLG1DQUFzQixDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFBO0lBRXJFLElBQUksS0FVSCxDQUFBO0lBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN6QixvREFBb0Q7UUFDcEQsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUE7UUFDaEMsS0FBSyxHQUFHO1lBQ04sTUFBTSxFQUFFLE9BQU8sUUFBUSxDQUFDLE1BQU0sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDekUsUUFBUSxFQUFFLE9BQU8sUUFBUSxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDL0UsY0FBYyxFQUFFLE9BQU8sUUFBUSxDQUFDLGNBQWMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDakcsQ0FBQyxFQUFFLE9BQU8sUUFBUSxDQUFDLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDMUQsTUFBTSxFQUFFLE9BQU8sUUFBUSxDQUFDLE1BQU0sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEs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
225
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3JldHVybnMvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsNkNBQXFEO0FBRTlDLE1BQU0sR0FBRyxHQUFHLEtBQUssRUFBRSxHQUFrQixFQUFFLEdBQW1CLEVBQUUsRUFBRTtJQUNuRSxpRkFBaUY7SUFDakYsTUFBTSxXQUFXLEdBQUcsbUNBQXNCLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUE7SUFFckUsSUFBSSxLQVVILENBQUE7SUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3pCLG9EQUFvRDtRQUNwRCxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQTtRQUNoQyxLQUFLLEdBQUc7WUFDTixNQUFNLEVBQUUsT0FBTyxRQUFRLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUztZQUN6RSxRQUFRLEVBQUUsT0FBTyxRQUFRLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUztZQUMvRSxjQUFjLEVBQUUsT0FBTyxRQUFRLENBQUMsY0FBYyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsU0FBUztZQUNqRyxDQUFDLEVBQUUsT0FBTyxRQUFRLENBQUMsQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztZQUMxRCxNQUFNLEVBQUUsT0FBTyxRQUFRLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FB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