order-management 0.0.90 → 0.0.91
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 +452 -395
- package/.medusa/server/src/admin/index.mjs +454 -397
- package/.medusa/server/src/api/admin/orders/[order_id]/refund-context/route.js +18 -1
- package/.medusa/server/src/api/admin/return/[id]/route.js +9 -2
- package/.medusa/server/src/api/admin/return/route.js +43 -3
- package/.medusa/server/src/api/store/orders/[order_id]/refund-payment-mappings/route.js +4 -2
- package/.medusa/server/src/api/store/returns/[id]/route.js +13 -3
- package/.medusa/server/src/api/store/returns/route.js +36 -3
- package/.medusa/server/src/helpers/index.js +2 -1
- package/.medusa/server/src/helpers/refund-calculation.js +274 -0
- package/.medusa/server/src/helpers/returns.js +2 -1
- package/README.md +29 -11
- package/package.json +1 -1
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.REFUND_BREAKDOWN_TOLERANCE = void 0;
|
|
4
|
+
exports.toRefundNumber = toRefundNumber;
|
|
5
|
+
exports.sumReturnedMerchandise = sumReturnedMerchandise;
|
|
6
|
+
exports.sumReturnCharge = sumReturnCharge;
|
|
7
|
+
exports.resolveDestinationLabel = resolveDestinationLabel;
|
|
8
|
+
exports.buildRefundCalculation = buildRefundCalculation;
|
|
9
|
+
exports.sumProcessedRefundsForOrders = sumProcessedRefundsForOrders;
|
|
10
|
+
exports.loadRefundCalculation = loadRefundCalculation;
|
|
11
|
+
exports.loadRefundCalculationsForReturns = loadRefundCalculationsForReturns;
|
|
12
|
+
exports.loadOrderMerchandiseByIds = loadOrderMerchandiseByIds;
|
|
13
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
14
|
+
const refund_payment_mapping_1 = require("../modules/refund-payment-mapping");
|
|
15
|
+
exports.REFUND_BREAKDOWN_TOLERANCE = 0.01;
|
|
16
|
+
/**
|
|
17
|
+
* Normalize Medusa BigNumber-like values to a major-unit number.
|
|
18
|
+
*/
|
|
19
|
+
function toRefundNumber(value) {
|
|
20
|
+
if (typeof value === "number" && !Number.isNaN(value)) {
|
|
21
|
+
return value;
|
|
22
|
+
}
|
|
23
|
+
if (typeof value === "string") {
|
|
24
|
+
const n = Number(value);
|
|
25
|
+
return Number.isNaN(n) ? 0 : n;
|
|
26
|
+
}
|
|
27
|
+
if (value && typeof value === "object") {
|
|
28
|
+
const o = value;
|
|
29
|
+
if (typeof o.numeric === "number") {
|
|
30
|
+
return o.numeric;
|
|
31
|
+
}
|
|
32
|
+
if (typeof o.value === "number") {
|
|
33
|
+
return o.value;
|
|
34
|
+
}
|
|
35
|
+
if (typeof o.value === "string") {
|
|
36
|
+
const n = Number(o.value);
|
|
37
|
+
return Number.isNaN(n) ? 0 : n;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return 0;
|
|
41
|
+
}
|
|
42
|
+
function sumReturnedMerchandise(returnItems, orderItems) {
|
|
43
|
+
let sum = 0;
|
|
44
|
+
for (const returnItem of returnItems) {
|
|
45
|
+
const itemId = returnItem.item_id ?? returnItem.id;
|
|
46
|
+
if (!itemId) {
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
const orderItem = orderItems.find((item) => item.id === itemId);
|
|
50
|
+
if (!orderItem) {
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
sum += toRefundNumber(orderItem.unit_price) * toRefundNumber(returnItem.quantity);
|
|
54
|
+
}
|
|
55
|
+
return sum;
|
|
56
|
+
}
|
|
57
|
+
function sumReturnCharge(shippingMethods) {
|
|
58
|
+
return shippingMethods.reduce((sum, method) => {
|
|
59
|
+
const amount = toRefundNumber(method.total ?? method.amount);
|
|
60
|
+
return sum + Math.max(0, amount);
|
|
61
|
+
}, 0);
|
|
62
|
+
}
|
|
63
|
+
function resolveDestinationLabel(input) {
|
|
64
|
+
const type = (input.payment_type ?? "").trim().toLowerCase();
|
|
65
|
+
if (type === "upi") {
|
|
66
|
+
return "UPI";
|
|
67
|
+
}
|
|
68
|
+
if (type === "bank") {
|
|
69
|
+
return "bank account";
|
|
70
|
+
}
|
|
71
|
+
if (type === "card") {
|
|
72
|
+
return "card";
|
|
73
|
+
}
|
|
74
|
+
if (input.is_cod) {
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
return "original payment method";
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Build the refund breakdown. `final_refund_amount` is the processed refund
|
|
81
|
+
* (or COD/offline `return.refund_amount` after mark-refunded). Never derived
|
|
82
|
+
* from product_amount - return_charge.
|
|
83
|
+
*/
|
|
84
|
+
function buildRefundCalculation(input) {
|
|
85
|
+
const product_amount = Math.max(0, toRefundNumber(input.product_amount));
|
|
86
|
+
const return_charge = Math.max(0, toRefundNumber(input.return_charge));
|
|
87
|
+
const expected_net_amount = Math.max(0, product_amount - return_charge);
|
|
88
|
+
const currency_code = typeof input.currency_code === "string" && input.currency_code.trim()
|
|
89
|
+
? input.currency_code.trim().toLowerCase()
|
|
90
|
+
: "inr";
|
|
91
|
+
let final_refund_amount = null;
|
|
92
|
+
if (input.processed_refund_amount !== null &&
|
|
93
|
+
input.processed_refund_amount !== undefined &&
|
|
94
|
+
!Number.isNaN(Number(input.processed_refund_amount))) {
|
|
95
|
+
final_refund_amount = toRefundNumber(input.processed_refund_amount);
|
|
96
|
+
}
|
|
97
|
+
else if (input.is_offline_refunded &&
|
|
98
|
+
input.offline_refund_amount !== null &&
|
|
99
|
+
input.offline_refund_amount !== undefined) {
|
|
100
|
+
final_refund_amount = toRefundNumber(input.offline_refund_amount);
|
|
101
|
+
}
|
|
102
|
+
const is_processed = final_refund_amount !== null;
|
|
103
|
+
const breakdown_matches = is_processed
|
|
104
|
+
? Math.abs(expected_net_amount - (final_refund_amount ?? 0)) <= exports.REFUND_BREAKDOWN_TOLERANCE
|
|
105
|
+
: null;
|
|
106
|
+
return {
|
|
107
|
+
product_amount,
|
|
108
|
+
return_charge,
|
|
109
|
+
expected_net_amount,
|
|
110
|
+
final_refund_amount,
|
|
111
|
+
currency_code,
|
|
112
|
+
is_processed,
|
|
113
|
+
breakdown_matches,
|
|
114
|
+
destination_label: input.destination_label ?? null,
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
function extractPaymentIds(order) {
|
|
118
|
+
const collections = order?.payment_collections;
|
|
119
|
+
return (collections?.flatMap((pc) => (pc.payments || []).map((p) => p.id).filter((id) => !!id)) ?? []);
|
|
120
|
+
}
|
|
121
|
+
async function sumProcessedRefundsForOrders(orderIds, container) {
|
|
122
|
+
const totals = new Map();
|
|
123
|
+
const uniqueIds = [...new Set(orderIds.filter(Boolean))];
|
|
124
|
+
if (uniqueIds.length === 0) {
|
|
125
|
+
return totals;
|
|
126
|
+
}
|
|
127
|
+
const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
128
|
+
const paymentModule = container.resolve(utils_1.Modules.PAYMENT);
|
|
129
|
+
const { data: orders = [] } = await query
|
|
130
|
+
.graph({
|
|
131
|
+
entity: "order",
|
|
132
|
+
fields: ["id", "payment_collections.payments.id"],
|
|
133
|
+
filters: { id: uniqueIds },
|
|
134
|
+
})
|
|
135
|
+
.catch(() => ({ data: [] }));
|
|
136
|
+
const paymentToOrder = new Map();
|
|
137
|
+
for (const order of orders) {
|
|
138
|
+
const orderId = typeof order.id === "string" ? order.id : "";
|
|
139
|
+
if (!orderId) {
|
|
140
|
+
continue;
|
|
141
|
+
}
|
|
142
|
+
for (const paymentId of extractPaymentIds(order)) {
|
|
143
|
+
paymentToOrder.set(paymentId, orderId);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
const paymentIds = [...paymentToOrder.keys()];
|
|
147
|
+
if (paymentIds.length === 0) {
|
|
148
|
+
return totals;
|
|
149
|
+
}
|
|
150
|
+
const refunds = await paymentModule
|
|
151
|
+
.listRefunds({ payment_id: paymentIds }, { take: 1000 })
|
|
152
|
+
.catch(() => []);
|
|
153
|
+
for (const refund of Array.isArray(refunds) ? refunds : []) {
|
|
154
|
+
const paymentId = refund.payment_id;
|
|
155
|
+
if (!paymentId) {
|
|
156
|
+
continue;
|
|
157
|
+
}
|
|
158
|
+
const orderId = paymentToOrder.get(paymentId);
|
|
159
|
+
if (!orderId) {
|
|
160
|
+
continue;
|
|
161
|
+
}
|
|
162
|
+
totals.set(orderId, (totals.get(orderId) ?? 0) + toRefundNumber(refund.amount));
|
|
163
|
+
}
|
|
164
|
+
return totals;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Load refund calculation for an order (latest return, or a specific returnId).
|
|
168
|
+
*/
|
|
169
|
+
async function loadRefundCalculation(orderId, container, options = {}) {
|
|
170
|
+
const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
171
|
+
const { data: returns = [] } = await query
|
|
172
|
+
.graph({
|
|
173
|
+
entity: "return",
|
|
174
|
+
fields: [
|
|
175
|
+
"id",
|
|
176
|
+
"order_id",
|
|
177
|
+
"refund_amount",
|
|
178
|
+
"status",
|
|
179
|
+
"items.*",
|
|
180
|
+
"items.item_id",
|
|
181
|
+
"items.quantity",
|
|
182
|
+
"shipping_methods.*",
|
|
183
|
+
"shipping_methods.amount",
|
|
184
|
+
"shipping_methods.total",
|
|
185
|
+
],
|
|
186
|
+
filters: options.returnId
|
|
187
|
+
? { id: options.returnId }
|
|
188
|
+
: { order_id: orderId },
|
|
189
|
+
})
|
|
190
|
+
.catch(() => ({ data: [] }));
|
|
191
|
+
const returnRow = (Array.isArray(returns) ? returns[0] : null);
|
|
192
|
+
if (!returnRow?.id) {
|
|
193
|
+
return null;
|
|
194
|
+
}
|
|
195
|
+
const { data: orders = [] } = await query
|
|
196
|
+
.graph({
|
|
197
|
+
entity: "order",
|
|
198
|
+
fields: ["id", "currency_code", "items.id", "items.unit_price"],
|
|
199
|
+
filters: { id: orderId },
|
|
200
|
+
})
|
|
201
|
+
.catch(() => ({ data: [] }));
|
|
202
|
+
const order = (Array.isArray(orders) ? orders[0] : null);
|
|
203
|
+
const processedByOrder = await sumProcessedRefundsForOrders([orderId], container);
|
|
204
|
+
const processed = processedByOrder.get(orderId);
|
|
205
|
+
let isOfflineRefunded = false;
|
|
206
|
+
try {
|
|
207
|
+
const mappingService = container.resolve(refund_payment_mapping_1.REFUND_PAYMENT_MAPPING_MODULE);
|
|
208
|
+
const mapping = await mappingService.getByReturnId(returnRow.id);
|
|
209
|
+
isOfflineRefunded = Boolean(mapping?.is_refunded);
|
|
210
|
+
}
|
|
211
|
+
catch {
|
|
212
|
+
isOfflineRefunded = false;
|
|
213
|
+
}
|
|
214
|
+
return buildRefundCalculation({
|
|
215
|
+
product_amount: sumReturnedMerchandise(returnRow.items ?? [], order?.items ?? []),
|
|
216
|
+
return_charge: sumReturnCharge(returnRow.shipping_methods ?? []),
|
|
217
|
+
processed_refund_amount: processed !== undefined ? processed : null,
|
|
218
|
+
offline_refund_amount: returnRow.refund_amount != null ? toRefundNumber(returnRow.refund_amount) : null,
|
|
219
|
+
is_offline_refunded: isOfflineRefunded,
|
|
220
|
+
currency_code: order?.currency_code,
|
|
221
|
+
destination_label: options.destinationLabel ?? null,
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Batch-build refund calculations for a page of returns.
|
|
226
|
+
*/
|
|
227
|
+
async function loadRefundCalculationsForReturns(returns, container, orderItemsByOrderId) {
|
|
228
|
+
const result = new Map();
|
|
229
|
+
const orderIds = returns
|
|
230
|
+
.map((row) => row.order_id)
|
|
231
|
+
.filter((id) => typeof id === "string" && id.length > 0);
|
|
232
|
+
const processedByOrder = await sumProcessedRefundsForOrders(orderIds, container);
|
|
233
|
+
for (const row of returns) {
|
|
234
|
+
const orderId = row.order_id ?? "";
|
|
235
|
+
const order = orderItemsByOrderId.get(orderId);
|
|
236
|
+
const processed = orderId ? processedByOrder.get(orderId) : undefined;
|
|
237
|
+
result.set(row.id, buildRefundCalculation({
|
|
238
|
+
product_amount: sumReturnedMerchandise(row.items ?? [], order?.items ?? []),
|
|
239
|
+
return_charge: sumReturnCharge(row.shipping_methods ?? []),
|
|
240
|
+
processed_refund_amount: processed !== undefined ? processed : null,
|
|
241
|
+
offline_refund_amount: row.refund_amount != null ? toRefundNumber(row.refund_amount) : null,
|
|
242
|
+
is_offline_refunded: Boolean(row.is_refunded),
|
|
243
|
+
currency_code: order?.currency_code,
|
|
244
|
+
}));
|
|
245
|
+
}
|
|
246
|
+
return result;
|
|
247
|
+
}
|
|
248
|
+
async function loadOrderMerchandiseByIds(orderIds, container) {
|
|
249
|
+
const map = new Map();
|
|
250
|
+
const uniqueIds = [...new Set(orderIds.filter(Boolean))];
|
|
251
|
+
if (uniqueIds.length === 0) {
|
|
252
|
+
return map;
|
|
253
|
+
}
|
|
254
|
+
const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
255
|
+
const { data: orders = [] } = await query
|
|
256
|
+
.graph({
|
|
257
|
+
entity: "order",
|
|
258
|
+
fields: ["id", "currency_code", "items.id", "items.unit_price"],
|
|
259
|
+
filters: { id: uniqueIds },
|
|
260
|
+
})
|
|
261
|
+
.catch(() => ({ data: [] }));
|
|
262
|
+
for (const order of orders) {
|
|
263
|
+
const id = typeof order.id === "string" ? order.id : "";
|
|
264
|
+
if (!id) {
|
|
265
|
+
continue;
|
|
266
|
+
}
|
|
267
|
+
map.set(id, {
|
|
268
|
+
currency_code: typeof order.currency_code === "string" ? order.currency_code : undefined,
|
|
269
|
+
items: Array.isArray(order.items) ? order.items : [],
|
|
270
|
+
});
|
|
271
|
+
}
|
|
272
|
+
return map;
|
|
273
|
+
}
|
|
274
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmdW5kLWNhbGN1bGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2hlbHBlcnMvcmVmdW5kLWNhbGN1bGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQStDQSx3Q0FzQkM7QUFFRCx3REFpQkM7QUFFRCwwQ0FLQztBQUVELDBEQWtCQztBQU9ELHdEQXlDQztBQThCRCxvRUFzREM7QUFrQkQsc0RBcUVDO0FBY0QsNEVBNkJDO0FBRUQsOERBZ0NDO0FBMVpELHFEQUE4RTtBQUM5RSw4RUFBaUY7QUFHcEUsUUFBQSwwQkFBMEIsR0FBRyxJQUFJLENBQUE7QUF1QzlDOztHQUVHO0FBQ0gsU0FBZ0IsY0FBYyxDQUFDLEtBQWM7SUFDM0MsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDdEQsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0lBQ0QsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUM5QixNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDdkIsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNoQyxDQUFDO0lBQ0QsSUFBSSxLQUFLLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDdkMsTUFBTSxDQUFDLEdBQUcsS0FBc0QsQ0FBQTtRQUNoRSxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNsQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUE7UUFDbEIsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLENBQUMsS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ2hDLE9BQU8sQ0FBQyxDQUFDLEtBQUss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
|
|
@@ -235,7 +235,8 @@ function normalizeOrderModuleReturnForDashboard(r) {
|
|
|
235
235
|
canceled_at: r.canceled_at ? new Date(r.canceled_at).toISOString() : undefined,
|
|
236
236
|
requested_at: r.requested_at ? new Date(r.requested_at).toISOString() : undefined,
|
|
237
237
|
received_at: r.received_at ? new Date(r.received_at).toISOString() : undefined,
|
|
238
|
+
refund_amount: r.refund_amount ?? null,
|
|
238
239
|
items,
|
|
239
240
|
};
|
|
240
241
|
}
|
|
241
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0dXJucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9oZWxwZXJzL3JldHVybnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUEwQkEsOERBNkRDO0FBS0QsZ0RBNENDO0FBS0Qsb0RBU0M7QUFLRCxzREFxQkM7QUFLRCxnREFLQztBQUtELDBDQUVDO0FBUUQsNEVBNkJDO0FBbUJELHNFQUlDO0FBc0NELDRFQW1DQztBQUVELHdGQW1DQztBQTFXRCxxREFBOEU7QUFFOUUsTUFBTSxtQ0FBbUMsR0FBRyxDQUFDLENBQUE7QUF1QnRDLEtBQUssVUFBVSx5QkFBeUIsQ0FDN0MsT0FBZSxFQUNmLGFBQXFCLG1DQUFtQyxFQUN4RCxTQUF3QixFQUN4QixjQUFxQyxRQUFRO0lBRTdDLDZEQUE2RDtJQUM3RCw4REFBOEQ7SUFDOUQsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBYSxpQ0FBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUU1RSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sS0FBSztTQUNqQyxLQUFLLENBQUM7UUFDTCxNQUFNLEVBQUUsT0FBTztRQUNmLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRSwyQkFBMkIsQ0FBQztRQUM5RCxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFO0tBQ3pCLENBQUM7U0FDRCxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFFOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNuQixPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFBO0lBQzFCLENBQUM7SUFHRCxNQUFNLFlBQVksR0FBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBaUMsSUFBSSxFQUFFLENBQUE7SUFFdkUsSUFB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
|
|
242
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0dXJucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9oZWxwZXJzL3JldHVybnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUEwQkEsOERBNkRDO0FBS0QsZ0RBNENDO0FBS0Qsb0RBU0M7QUFLRCxzREFxQkM7QUFLRCxnREFLQztBQUtELDBDQUVDO0FBUUQsNEVBNkJDO0FBbUJELHNFQUlDO0FBc0NELDRFQW1DQztBQUVELHdGQXNDQztBQTdXRCxxREFBOEU7QUFFOUUsTUFBTSxtQ0FBbUMsR0FBRyxDQUFDLENBQUE7QUF1QnRDLEtBQUssVUFBVSx5QkFBeUIsQ0FDN0MsT0FBZSxFQUNmLGFBQXFCLG1DQUFtQyxFQUN4RCxTQUF3QixFQUN4QixjQUFxQyxRQUFRO0lBRTdDLDZEQUE2RDtJQUM3RCw4REFBOEQ7SUFDOUQsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBYSxpQ0FBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUU1RSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sS0FBSztTQUNqQyxLQUFLLENBQUM7UUFDTCxNQUFNLEVBQUUsT0FBTztRQUNmLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRSwyQkFBMkIsQ0FBQztRQUM5RCxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFO0tBQ3pCLENBQUM7U0FDRCxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFFOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNuQixPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFBO0lBQzFCLENBQUM7SUFHRCxNQUFNLFlBQVksR0FBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBaUMsSUFBSSxFQUFFLENBQUE7SUFFdkUsSUFB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
|
package/README.md
CHANGED
|
@@ -243,7 +243,7 @@ curl "http://localhost:9000/admin/orders/order_123/refund-context" \
|
|
|
243
243
|
| Swaps routes | `/swaps`, `/swaps/:id` | Exchange listing/detail pages | Search, filters, reject/cancel exchange; uses `/admin/swaps*`. |
|
|
244
244
|
| Payments routes | `/payments`, `/payments/:id` | Transaction list + detail pages | Filter transactions and inspect gateway payload. |
|
|
245
245
|
| Refunds routes | `/refunds`, `/refunds/:id` | Refund list + detail pages | Filter by status/provider/date/amount; view computed refund context. |
|
|
246
|
-
| `order-refund-context-widget` | `order.details.after` | Refund context panel |
|
|
246
|
+
| `order-refund-context-widget` | `order.details.after` | Refund context panel | Refund calculation (product amount, return charge, processed final refund), edit refund mode/details/images, upload images, mark refunded. |
|
|
247
247
|
| `order-gift-items-widget` | `order.details.side.after` | Gift item widget | Reads gift metadata and downloads generated gift card image. |
|
|
248
248
|
|
|
249
249
|
## Models & Entities
|
|
@@ -582,7 +582,8 @@ The plugin includes a `refund_payment_mapping` module: one row per return linkin
|
|
|
582
582
|
- **Admin API**:
|
|
583
583
|
- `PUT /admin/refund-payment-mapping/:return_id` — update admin-only fields. Body: `{ refund_mode?: "offline" | "online" | null, images?: string[], details?: string | null }` (partial; only provided keys are updated).
|
|
584
584
|
- `POST /admin/refund-payment-mapping/:return_id/mark-refunded` — set `is_refunded = true` (idempotent).
|
|
585
|
-
- **Order detail integration**: `GET /admin/orders/:order_id/refund-context` — aggregated read returning `return_id`, `refund_mapping` (id, payment_id, is_refunded, refund_mode, images, details),
|
|
585
|
+
- **Order detail integration**: `GET /admin/orders/:order_id/refund-context` — aggregated read returning `return_id`, `refund_mapping` (id, payment_id, is_refunded, refund_mode, images, details), `payment_detail` (id, type, detail_json, is_default) resolved from the customer's specified or default payment detail, and `refund` (product_amount, return_charge, expected_net_amount, final_refund_amount, currency_code, is_processed, breakdown_matches, destination_label). `final_refund_amount` is the processed payment refund (or COD/offline `return.refund_amount` after mark-refunded), not `product_amount - return_charge`. Returns null blocks when no return or mapping exists. An admin widget at `order.details.after` shows **Refund calculation**, refund payment method, **Refund mode** (Offline/Online), **Details**, **Images** (with upload via Medusa `POST /admin/uploads`), and **Mark refunded** (when `is_refunded = false`). Only admin can change refund_mode, images, and details.
|
|
586
|
+
- **Store return payload**: `GET /store/returns` and `GET /store/returns/:id` attach the same `refund` object so the storefront can render the breakdown. `GET /store/orders/:order_id/refund-payment-mappings` includes `refund` per mapping.
|
|
586
587
|
- **Registration**: Add the module in `medusa-config.js` (e.g. `orderManagement.modules["refund-payment-mapping"]`) and run migrations.
|
|
587
588
|
|
|
588
589
|
|
|
@@ -1435,16 +1436,29 @@ The return flow includes automatic event handling:
|
|
|
1435
1436
|
|
|
1436
1437
|
### Refund Calculation
|
|
1437
1438
|
|
|
1438
|
-
Refund
|
|
1439
|
-
- Item unit prices at time of order
|
|
1440
|
-
- Quantity of items being returned
|
|
1441
|
-
- Stored in `refund_amount` field (in cents)
|
|
1439
|
+
Order Details, return APIs, and refund invoices expose a **Refund calculation** breakdown. Amounts are major units (₹100 is `100`).
|
|
1442
1440
|
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
|
|
1441
|
+
```ts
|
|
1442
|
+
{
|
|
1443
|
+
refund: {
|
|
1444
|
+
product_amount: 100, // returned merchandise (unit_price × qty)
|
|
1445
|
+
return_charge: 20, // return shipping / return fee
|
|
1446
|
+
expected_net_amount: 80, // product_amount - return_charge (explanatory only)
|
|
1447
|
+
final_refund_amount: 80, // processed payment refund (source of truth)
|
|
1448
|
+
currency_code: "inr",
|
|
1449
|
+
is_processed: true,
|
|
1450
|
+
breakdown_matches: true
|
|
1451
|
+
}
|
|
1452
|
+
}
|
|
1446
1453
|
```
|
|
1447
1454
|
|
|
1455
|
+
- **product_amount**: returned line totals from original unit prices (still correct after Medusa zeroes received return lines).
|
|
1456
|
+
- **return_charge**: sum of the return’s shipping methods, not outbound order shipping.
|
|
1457
|
+
- **final_refund_amount**: sum of Payment module refunds for the order. If none exist and `refund_payment_mapping.is_refunded` (COD/offline), Medusa `return.refund_amount` is used. Otherwise `null` (pending).
|
|
1458
|
+
- **expected_net_amount** is never displayed as the final refund. `breakdown_matches` is true when `|expected_net_amount - final_refund_amount| <= 0.01`.
|
|
1459
|
+
|
|
1460
|
+
Helper: `buildRefundCalculation` / `loadRefundCalculation` from `order-management/helpers`.
|
|
1461
|
+
|
|
1448
1462
|
### Eligibility and Validation
|
|
1449
1463
|
|
|
1450
1464
|
Returns are validated for:
|
|
@@ -1481,8 +1495,12 @@ const returnData = await getOrderReturnData("order_123", container)
|
|
|
1481
1495
|
// Validate return window
|
|
1482
1496
|
const isValid = validateReturnWindow(order.created_at, 30) // 30 days
|
|
1483
1497
|
|
|
1484
|
-
//
|
|
1485
|
-
const
|
|
1498
|
+
// Item-only merchandise total (not the displayed final refund)
|
|
1499
|
+
const merchandise = calculateRefundAmount(returnItems, orderItems)
|
|
1500
|
+
|
|
1501
|
+
// Displayed breakdown: processed refund is the source of truth
|
|
1502
|
+
import { buildRefundCalculation, loadRefundCalculation } from "order-management/helpers"
|
|
1503
|
+
const refund = await loadRefundCalculation(orderId, container)
|
|
1486
1504
|
|
|
1487
1505
|
// Check status permissions
|
|
1488
1506
|
const canApprove = canApproveReturn(return.status)
|