@webbers/pay-payments-medusa 2.2.52 → 2.2.53

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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@webbers/pay-payments-medusa",
3
3
  "displayName": "Medusa v2 Pay. Plugin",
4
- "version": "2.2.52",
4
+ "version": "2.2.53",
5
5
  "description": "The Pay.nl payment provider plugin for Medusa v2",
6
6
  "author": "Webbers B.V. <development@webbers.com>",
7
7
  "license": "MIT",
@@ -128,6 +128,64 @@ const PayDirectDebitSimulatorWidget = ({
128
128
  adminSdk.defineWidgetConfig({
129
129
  zone: "order.details.side.after"
130
130
  });
131
+ const KIND_LABELS = {
132
+ chargeback: "Chargeback",
133
+ storno: "Storno",
134
+ failure: "Failed collection"
135
+ };
136
+ const formatAmount = (amount, currency) => {
137
+ if (!currency) {
138
+ return amount.toFixed(2);
139
+ }
140
+ try {
141
+ return new Intl.NumberFormat(void 0, {
142
+ style: "currency",
143
+ currency: currency.toUpperCase()
144
+ }).format(amount);
145
+ } catch {
146
+ return `${amount.toFixed(2)} ${currency.toUpperCase()}`;
147
+ }
148
+ };
149
+ const formatDate = (iso) => iso ? new Intl.DateTimeFormat(void 0, {
150
+ dateStyle: "medium",
151
+ timeStyle: "short"
152
+ }).format(new Date(iso)) : null;
153
+ const PayPaymentReversedWidget = ({
154
+ data: order
155
+ }) => {
156
+ const { data: reversal } = reactQuery.useQuery({
157
+ queryKey: ["pay-payment-reversal", order.id],
158
+ queryFn: () => sdk.client.fetch(`/admin/pay/orders/${order.id}/reversal`)
159
+ });
160
+ if (!(reversal == null ? void 0 : reversal.reversed)) {
161
+ return null;
162
+ }
163
+ const kindLabel = reversal.kind ? KIND_LABELS[reversal.kind] : "Reversal";
164
+ const when = formatDate(reversal.at);
165
+ const returned = formatAmount(reversal.amount, reversal.currency_code);
166
+ const outstanding = formatAmount(reversal.outstanding, reversal.currency_code);
167
+ const stillOwed = reversal.outstanding > 0;
168
+ return /* @__PURE__ */ jsxRuntime.jsx(ui.Alert, { variant: "warning", className: "items-start", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-y-2", children: [
169
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-x-2 gap-y-1", children: [
170
+ /* @__PURE__ */ jsxRuntime.jsx(ui.Text, { size: "small", leading: "compact", weight: "plus", children: "Payment reversed, action required" }),
171
+ /* @__PURE__ */ jsxRuntime.jsx(ui.Badge, { size: "2xsmall", color: "orange", children: kindLabel }),
172
+ reversal.statusCode !== null && /* @__PURE__ */ jsxRuntime.jsxs(ui.Badge, { size: "2xsmall", color: "grey", children: [
173
+ "Pay. status ",
174
+ reversal.statusCode
175
+ ] })
176
+ ] }),
177
+ /* @__PURE__ */ jsxRuntime.jsxs(ui.Text, { size: "small", leading: "compact", className: "text-ui-fg-subtle", children: [
178
+ reversal.kind === "chargeback" ? `The customer charged back the Pay. payment${when ? ` on ${when}` : ""}: ${returned} went back to them.` : reversal.kind === "storno" ? `The customer reversed the direct debit${when ? ` on ${when}` : ""}: ${returned} went back to them.` : `The bank did not collect the direct debit${when ? ` (${when})` : ""}: ${returned} was never received.`,
179
+ " ",
180
+ stillOwed ? `This order is not paid, ${outstanding} is still outstanding.${reversal.payable ? ' Use "Copy payment link" in the summary to let the customer pay again, or mark it as paid once the money arrived another way.' : ""}` : "The outstanding amount has since been settled.",
181
+ " ",
182
+ `The "Refunded" payment status is Medusa's wording for the reversal, no refund was sent by the shop.`
183
+ ] })
184
+ ] }) });
185
+ };
186
+ adminSdk.defineWidgetConfig({
187
+ zone: "order.details.before"
188
+ });
131
189
  const PayLogo = ({}) => {
132
190
  return /* @__PURE__ */ jsxRuntime.jsxs("svg", { width: "64", height: "40", viewBox: "0 0 64 40", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
133
191
  /* @__PURE__ */ jsxRuntime.jsxs("g", { clipPath: "url(#clip0_596_748)", children: [
@@ -171,7 +229,7 @@ const PayLogo = ({}) => {
171
229
  ] });
172
230
  };
173
231
  const displayName = "Medusa v2 Pay. Plugin";
174
- const version = "2.2.52";
232
+ const version = "2.2.53";
175
233
  function getSortedPaymentMethods(data) {
176
234
  const { checkoutOptions, checkoutSequence } = data;
177
235
  const { primary } = checkoutSequence.default;
@@ -356,6 +414,10 @@ const widgetModule = { widgets: [
356
414
  {
357
415
  Component: PayDirectDebitSimulatorWidget,
358
416
  zone: ["order.details.side.after"]
417
+ },
418
+ {
419
+ Component: PayPaymentReversedWidget,
420
+ zone: ["order.details.before"]
359
421
  }
360
422
  ] };
361
423
  const routeModule = {
@@ -1,6 +1,6 @@
1
1
  import { jsxs, jsx } from "react/jsx-runtime";
2
2
  import { defineWidgetConfig, defineRouteConfig } from "@medusajs/admin-sdk";
3
- import { toast, Container, Text, Badge, Button, createDataTableColumnHelper, useDataTable, Heading, Switch, DataTable } from "@medusajs/ui";
3
+ import { toast, Container, Text, Badge, Button, Alert, createDataTableColumnHelper, useDataTable, Heading, Switch, DataTable } from "@medusajs/ui";
4
4
  import { useQueryClient, useQuery, useMutation } from "@tanstack/react-query";
5
5
  import Medusa from "@medusajs/js-sdk";
6
6
  import { useMemo } from "react";
@@ -125,6 +125,64 @@ const PayDirectDebitSimulatorWidget = ({
125
125
  defineWidgetConfig({
126
126
  zone: "order.details.side.after"
127
127
  });
128
+ const KIND_LABELS = {
129
+ chargeback: "Chargeback",
130
+ storno: "Storno",
131
+ failure: "Failed collection"
132
+ };
133
+ const formatAmount = (amount, currency) => {
134
+ if (!currency) {
135
+ return amount.toFixed(2);
136
+ }
137
+ try {
138
+ return new Intl.NumberFormat(void 0, {
139
+ style: "currency",
140
+ currency: currency.toUpperCase()
141
+ }).format(amount);
142
+ } catch {
143
+ return `${amount.toFixed(2)} ${currency.toUpperCase()}`;
144
+ }
145
+ };
146
+ const formatDate = (iso) => iso ? new Intl.DateTimeFormat(void 0, {
147
+ dateStyle: "medium",
148
+ timeStyle: "short"
149
+ }).format(new Date(iso)) : null;
150
+ const PayPaymentReversedWidget = ({
151
+ data: order
152
+ }) => {
153
+ const { data: reversal } = useQuery({
154
+ queryKey: ["pay-payment-reversal", order.id],
155
+ queryFn: () => sdk.client.fetch(`/admin/pay/orders/${order.id}/reversal`)
156
+ });
157
+ if (!(reversal == null ? void 0 : reversal.reversed)) {
158
+ return null;
159
+ }
160
+ const kindLabel = reversal.kind ? KIND_LABELS[reversal.kind] : "Reversal";
161
+ const when = formatDate(reversal.at);
162
+ const returned = formatAmount(reversal.amount, reversal.currency_code);
163
+ const outstanding = formatAmount(reversal.outstanding, reversal.currency_code);
164
+ const stillOwed = reversal.outstanding > 0;
165
+ return /* @__PURE__ */ jsx(Alert, { variant: "warning", className: "items-start", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-y-2", children: [
166
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center gap-x-2 gap-y-1", children: [
167
+ /* @__PURE__ */ jsx(Text, { size: "small", leading: "compact", weight: "plus", children: "Payment reversed, action required" }),
168
+ /* @__PURE__ */ jsx(Badge, { size: "2xsmall", color: "orange", children: kindLabel }),
169
+ reversal.statusCode !== null && /* @__PURE__ */ jsxs(Badge, { size: "2xsmall", color: "grey", children: [
170
+ "Pay. status ",
171
+ reversal.statusCode
172
+ ] })
173
+ ] }),
174
+ /* @__PURE__ */ jsxs(Text, { size: "small", leading: "compact", className: "text-ui-fg-subtle", children: [
175
+ reversal.kind === "chargeback" ? `The customer charged back the Pay. payment${when ? ` on ${when}` : ""}: ${returned} went back to them.` : reversal.kind === "storno" ? `The customer reversed the direct debit${when ? ` on ${when}` : ""}: ${returned} went back to them.` : `The bank did not collect the direct debit${when ? ` (${when})` : ""}: ${returned} was never received.`,
176
+ " ",
177
+ stillOwed ? `This order is not paid, ${outstanding} is still outstanding.${reversal.payable ? ' Use "Copy payment link" in the summary to let the customer pay again, or mark it as paid once the money arrived another way.' : ""}` : "The outstanding amount has since been settled.",
178
+ " ",
179
+ `The "Refunded" payment status is Medusa's wording for the reversal, no refund was sent by the shop.`
180
+ ] })
181
+ ] }) });
182
+ };
183
+ defineWidgetConfig({
184
+ zone: "order.details.before"
185
+ });
128
186
  const PayLogo = ({}) => {
129
187
  return /* @__PURE__ */ jsxs("svg", { width: "64", height: "40", viewBox: "0 0 64 40", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
130
188
  /* @__PURE__ */ jsxs("g", { clipPath: "url(#clip0_596_748)", children: [
@@ -168,7 +226,7 @@ const PayLogo = ({}) => {
168
226
  ] });
169
227
  };
170
228
  const displayName = "Medusa v2 Pay. Plugin";
171
- const version = "2.2.52";
229
+ const version = "2.2.53";
172
230
  function getSortedPaymentMethods(data) {
173
231
  const { checkoutOptions, checkoutSequence } = data;
174
232
  const { primary } = checkoutSequence.default;
@@ -353,6 +411,10 @@ const widgetModule = { widgets: [
353
411
  {
354
412
  Component: PayDirectDebitSimulatorWidget,
355
413
  zone: ["order.details.side.after"]
414
+ },
415
+ {
416
+ Component: PayPaymentReversedWidget,
417
+ zone: ["order.details.before"]
356
418
  }
357
419
  ] };
358
420
  const routeModule = {
@@ -0,0 +1,7 @@
1
+ import { AuthenticatedMedusaRequest, MedusaResponse } from "@medusajs/framework/http";
2
+ /**
3
+ * Whether a Pay. chargeback / storno reversed this order's payment, for the
4
+ * "payment reversed" banner on the order detail page.
5
+ */
6
+ export declare const GET: (req: AuthenticatedMedusaRequest, res: MedusaResponse) => Promise<MedusaResponse>;
7
+ //# sourceMappingURL=route.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/api/admin/pay/orders/[id]/reversal/route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,0BAA0B,EAAE,cAAc,EAAC,MAAM,0BAA0B,CAAA;AAGnF;;;GAGG;AACH,eAAO,MAAM,GAAG,GACd,KAAK,0BAA0B,EAC/B,KAAK,cAAc,4BASpB,CAAA"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GET = void 0;
4
+ const paymentReversal_1 = require("../../../../../../utils/paymentReversal");
5
+ /**
6
+ * Whether a Pay. chargeback / storno reversed this order's payment, for the
7
+ * "payment reversed" banner on the order detail page.
8
+ */
9
+ const GET = async (req, res) => {
10
+ const reversal = await (0, paymentReversal_1.getPaymentReversal)(req.scope, req.params.id);
11
+ if (!reversal) {
12
+ return res.status(404).json({ message: "Order not found" });
13
+ }
14
+ return res.json(reversal);
15
+ };
16
+ exports.GET = GET;
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3BheS9vcmRlcnMvW2lkXS9yZXZlcnNhbC9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSw2RUFBMEU7QUFFMUU7OztHQUdHO0FBQ0ksTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUN0QixHQUErQixFQUMvQixHQUFtQixFQUNuQixFQUFFO0lBQ0YsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFBLG9DQUFrQixFQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUVuRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDZCxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUMsT0FBTyxFQUFFLGlCQUFpQixFQUFDLENBQUMsQ0FBQTtJQUMzRCxDQUFDO0lBRUQsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0FBQzNCLENBQUMsQ0FBQTtBQVhZLFFBQUEsR0FBRyxPQVdmIn0=
@@ -213,10 +213,11 @@ async function payDirectDebitExchangeHandler({ event: { data }, container, }) {
213
213
  orderId: order.id,
214
214
  paymentId: payment.id,
215
215
  paymentCollectionId,
216
- reason: `Pay. direct debit ${statusCode === constants_1.PayDirectDebitStatusCode.STORNO ||
216
+ kind: statusCode === constants_1.PayDirectDebitStatusCode.STORNO ||
217
217
  statusAction === "storno"
218
218
  ? "storno"
219
- : "failure"} (status ${statusLabel})`,
219
+ : "failure",
220
+ statusCode: statusLabel,
220
221
  });
221
222
  }
222
223
  else {
@@ -252,4 +253,4 @@ async function payDirectDebitExchangeHandler({ event: { data }, container, }) {
252
253
  exports.config = {
253
254
  event: directDebitExchange_1.PAY_DIRECT_DEBIT_EXCHANGE_EVENT,
254
255
  };
255
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0LWRlYml0LWV4Y2hhbmdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3N1YnNjcmliZXJzL2RpcmVjdC1kZWJpdC1leGNoYW5nZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUE2R0EsZ0RBa1RDO0FBN1pELHFEQUlrQztBQUNsQyxxREFBMkQ7QUFPM0QseUZBQWdFO0FBQ2hFLDRFQUFzRTtBQUN0RSxrREFJK0I7QUFDL0IsaUVBQTBEO0FBRTFELCtEQUF3RTtBQUN4RSxzRUFnQnFDO0FBRXJDLE1BQU0sWUFBWSxHQUFHLENBQ25CLFNBQTBCLEVBQzFCLE1BQWMsRUFDd0MsRUFBRTtJQUN4RCxNQUFNLFlBQVksR0FBRyxTQUFTLENBQUMsT0FBTyxDQUNwQyxpQ0FBeUIsQ0FBQyxhQUFhLENBQ3hDLENBQUE7SUFFRCxNQUFNLGVBQWUsR0FBSSxZQUFZLENBQUMsT0FBTyxFQUFFLE9BQWUsRUFBRSxPQUFPO1FBQ3JFLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxLQUFLLENBQUMsQ0FBQTtJQUUxQyxJQUFJLENBQUMsZUFBZSxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQzlCLE1BQU0sQ0FBQyxJQUFJLENBQ1QsdUVBQXVFLENBQ3hFLENBQUE7UUFDRCxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFRCxNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsT0FBMEIsQ0FBQTtJQUUxRCxPQUFPLEVBQUMsTUFBTSxFQUFFLElBQUksc0JBQVMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFDLENBQUE7QUFDMUQsQ0FBQyxDQUFBO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0seUJBQXlCLEdBQUcsS0FBSyxFQUNyQyxTQUEwQixFQUMxQixPQUE0QixFQUM1QixTQUFpQixFQUNPLEVBQUU7SUFDMUIsTUFBTSxX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
256
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0LWRlYml0LWV4Y2hhbmdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3N1YnNjcmliZXJzL2RpcmVjdC1kZWJpdC1leGNoYW5nZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUE2R0EsZ0RBa1RDO0FBN1pELHFEQUlrQztBQUNsQyxxREFBMkQ7QUFPM0QseUZBQWdFO0FBQ2hFLDRFQUFzRTtBQUN0RSxrREFJK0I7QUFDL0IsaUVBQTBEO0FBRTFELCtEQUF3RTtBQUN4RSxzRUFnQnFDO0FBRXJDLE1BQU0sWUFBWSxHQUFHLENBQ25CLFNBQTBCLEVBQzFCLE1BQWMsRUFDd0MsRUFBRTtJQUN4RCxNQUFNLFlBQVksR0FBRyxTQUFTLENBQUMsT0FBTyxDQUNwQyxpQ0FBeUIsQ0FBQyxhQUFhLENBQ3hDLENBQUE7SUFFRCxNQUFNLGVBQWUsR0FBSSxZQUFZLENBQUMsT0FBTyxFQUFFLE9BQWUsRUFBRSxPQUFPO1FBQ3JFLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxLQUFLLENBQUMsQ0FBQTtJQUUxQyxJQUFJLENBQUMsZUFBZSxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQzlCLE1BQU0sQ0FBQyxJQUFJLENBQ1QsdUVBQXVFLENBQ3hFLENBQUE7UUFDRCxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFRCxNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsT0FBMEIsQ0FBQTtJQUUxRCxPQUFPLEVBQUMsTUFBTSxFQUFFLElBQUksc0JBQVMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFDLENBQUE7QUFDMUQsQ0FBQyxDQUFBO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0seUJBQXlCLEdBQUcsS0FBSyxFQUNyQyxTQUEwQixFQUMxQixPQUE0QixFQUM1QixTQUFpQixFQUNPLEVBQUU7SUFDMUIsTUFBTSxX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
@@ -1 +1 @@
1
- {"version":3,"file":"payment-failed.d.ts","sourceRoot":"","sources":["../../../../src/subscribers/payment-failed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAE,gBAAgB,EAAC,MAAM,qBAAqB,CAAA;AAapE,wBAA8B,uBAAuB,CAAC,EACpD,KAAK,EAAE,EAAC,IAAI,EAAC,EACb,SAAS,GACV,EAAE,cAAc,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAC,CAAC,iBAkFnD;AAED,eAAO,MAAM,MAAM,EAAE,gBAEpB,CAAA"}
1
+ {"version":3,"file":"payment-failed.d.ts","sourceRoot":"","sources":["../../../../src/subscribers/payment-failed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAE,gBAAgB,EAAC,MAAM,qBAAqB,CAAA;AAapE,wBAA8B,uBAAuB,CAAC,EACpD,KAAK,EAAE,EAAC,IAAI,EAAC,EACb,SAAS,GACV,EAAE,cAAc,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAC,CAAC,iBAmFnD;AAED,eAAO,MAAM,MAAM,EAAE,gBAEpB,CAAA"}
@@ -55,7 +55,8 @@ async function payPaymentFailedHandler({ event: { data }, container, }) {
55
55
  orderId: order.id,
56
56
  paymentId: capturedPayment.id,
57
57
  paymentCollectionId,
58
- reason: `Pay. chargeback (status ${data.statusCode})`,
58
+ kind: "chargeback",
59
+ statusCode: data.statusCode,
59
60
  });
60
61
  return;
61
62
  }
@@ -71,4 +72,4 @@ async function payPaymentFailedHandler({ event: { data }, container, }) {
71
72
  exports.config = {
72
73
  event: ["pay_payment.failed"],
73
74
  };
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC1mYWlsZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc3Vic2NyaWJlcnMvcGF5bWVudC1mYWlsZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBYUEsMENBcUZDO0FBaEdELHFEQUtrQztBQUVsQyx5RkFBZ0U7QUFDaEUsNEVBQXNFO0FBQ3RFLCtEQUFnRTtBQUVqRCxLQUFLLFVBQVUsdUJBQXVCLENBQUMsRUFDcEQsS0FBSyxFQUFFLEVBQUMsSUFBSSxFQUFDLEVBQ2IsU0FBUyxHQUN5QztJQUNsRCxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQzFDLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDaEUsTUFBTSxvQkFBb0IsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUM1QyxlQUFPLENBQUMsT0FBTyxDQUNoQixDQUFBO0lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxDQUFBO0lBRTFDLElBQUksQ0FBQztRQUNILE1BQU0sRUFDSixJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FDZCxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztZQUNwQixNQUFNLEVBQUUsT0FBTztZQUNmLE1BQU0sRUFBRTtnQkFDTixJQUFJO2dCQUNKLHVCQUF1QjtnQkFDdkIsMENBQTBDO2dCQUMxQyx3Q0FBd0M7Z0JBQ3hDLGlEQUFpRDtnQkFDakQsMERBQTBEO2FBQzNEO1lBQ0QsT0FBTyxFQUFFO2dCQUNQLFVBQVUsRUFBRSxJQUFJLENBQUMsRUFBRTthQUNwQjtTQUNGLENBQUMsQ0FBQTtRQUVGLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQzNCLHFDQUFxQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQy9DLENBQUE7UUFDSCxDQUFDO1FBRUQsMEVBQTBFO1FBQzFFLDhFQUE4RTtRQUM5RSxNQUFNLGtCQUFrQixHQUFHLENBQUMsS0FBSyxDQUFDLG1CQUFtQixJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDL0QsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUNMLEVBQUUsQ0FBQyxNQUFNLEtBQUssK0JBQXVCLENBQUMsU0FBUztZQUMvQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUMvRCxDQUFBO1FBRUQsSUFBSSxrQkFBa0IsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLDRCQUFnQixDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQzFFLE1BQU0sQ0FBQyxJQUFJLENBQ1Qsb0NBQW9DLEtBQUssQ0FBQyxFQUFFLDZCQUE2QixDQUMxRSxDQUFBO1lBQ0QsT0FBTTtRQUNSLENBQUM7UUFFRCxNQUFNLGlCQUFpQixHQUFHLElBQUEsOEJBQW9CLEVBQUMsS0FBSyxDQUFDLENBQUE7UUFFckQsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDdkIsTUFBTSxDQUFDLElBQUksQ0FDVCwyQ0FBMkMsS0FBSyxDQUFDLEVBQUUsMkJBQTJCLENBQy9FLENBQUE7WUFDRCxPQUFNO1FBQ1IsQ0FBQztRQUVELE1BQU0sbUJBQW1CLEdBQ3ZCLGlCQUFpQixDQUFDLHFCQUErQixDQUFBO1FBQ25ELE1BQU0sZUFBZSxHQUFHLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxXQUFXO1lBQzVELENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPO1lBQzNCLENBQUMsQ0FBQyxTQUFTLENBQUE7UUFFYixJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssNEJBQWdCLENBQUMsVUFBVSxJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQ3ZFLG9FQUFvRTtZQUNwRSxNQUFNLElBQUEsK0NBQXNCLEVBQUMsU0FBUyxFQUFFO2dCQUN0QyxPQUFPLEVBQUUsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLFNBQVMsRUFBRSxlQUFlLENBQUMsRUFBRTtnQkFDN0IsbUJBQW1CO2dCQUNuQixNQUFNLEVBQUUsMkJBQTJCLElBQUksQ0FBQyxVQUFVLEdBQUc7YUFDdEQsQ0FBQyxDQUFBO1lBQ0YsT0FBTTtRQUNSLENBQUM7UUFFRCxNQUFNLG9CQUFvQixDQUFDLHdCQUF3QixDQUFDLG1CQUFtQixFQUFFO1lBQ3ZFLE1BQU0sRUFBRSwrQkFBdUIsQ0FBQyxNQUFNO1NBQ3ZDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ1gsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNmLE1BQU0sQ0FBQyxDQUFBO0lBQ1QsQ0FBQztBQUNILENBQUM7QUFFWSxRQUFBLE1BQU0sR0FBcUI7SUFDdEMsS0FBSyxFQUFFLENBQUMsb0JBQW9CLENBQUM7Q0FDOUIsQ0FBQSJ9
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC1mYWlsZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc3Vic2NyaWJlcnMvcGF5bWVudC1mYWlsZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBYUEsMENBc0ZDO0FBakdELHFEQUtrQztBQUVsQyx5RkFBZ0U7QUFDaEUsNEVBQXNFO0FBQ3RFLCtEQUFnRTtBQUVqRCxLQUFLLFVBQVUsdUJBQXVCLENBQUMsRUFDcEQsS0FBSyxFQUFFLEVBQUMsSUFBSSxFQUFDLEVBQ2IsU0FBUyxHQUN5QztJQUNsRCxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQzFDLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDaEUsTUFBTSxvQkFBb0IsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUM1QyxlQUFPLENBQUMsT0FBTyxDQUNoQixDQUFBO0lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxDQUFBO0lBRTFDLElBQUksQ0FBQztRQUNILE1BQU0sRUFDSixJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FDZCxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztZQUNwQixNQUFNLEVBQUUsT0FBTztZQUNmLE1BQU0sRUFBRTtnQkFDTixJQUFJO2dCQUNKLHVCQUF1QjtnQkFDdkIsMENBQTBDO2dCQUMxQyx3Q0FBd0M7Z0JBQ3hDLGlEQUFpRDtnQkFDakQsMERBQTBEO2FBQzNEO1lBQ0QsT0FBTyxFQUFFO2dCQUNQLFVBQVUsRUFBRSxJQUFJLENBQUMsRUFBRTthQUNwQjtTQUNGLENBQUMsQ0FBQTtRQUVGLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQzNCLHFDQUFxQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQy9DLENBQUE7UUFDSCxDQUFDO1FBRUQsMEVBQTBFO1FBQzFFLDhFQUE4RTtRQUM5RSxNQUFNLGtCQUFrQixHQUFHLENBQUMsS0FBSyxDQUFDLG1CQUFtQixJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDL0QsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUNMLEVBQUUsQ0FBQyxNQUFNLEtBQUssK0JBQXVCLENBQUMsU0FBUztZQUMvQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUMvRCxDQUFBO1FBRUQsSUFBSSxrQkFBa0IsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLDRCQUFnQixDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQzFFLE1BQU0sQ0FBQyxJQUFJLENBQ1Qsb0NBQW9DLEtBQUssQ0FBQyxFQUFFLDZCQUE2QixDQUMxRSxDQUFBO1lBQ0QsT0FBTTtRQUNSLENBQUM7UUFFRCxNQUFNLGlCQUFpQixHQUFHLElBQUEsOEJBQW9CLEVBQUMsS0FBSyxDQUFDLENBQUE7UUFFckQsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDdkIsTUFBTSxDQUFDLElBQUksQ0FDVCwyQ0FBMkMsS0FBSyxDQUFDLEVBQUUsMkJBQTJCLENBQy9FLENBQUE7WUFDRCxPQUFNO1FBQ1IsQ0FBQztRQUVELE1BQU0sbUJBQW1CLEdBQ3ZCLGlCQUFpQixDQUFDLHFCQUErQixDQUFBO1FBQ25ELE1BQU0sZUFBZSxHQUFHLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxXQUFXO1lBQzVELENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPO1lBQzNCLENBQUMsQ0FBQyxTQUFTLENBQUE7UUFFYixJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssNEJBQWdCLENBQUMsVUFBVSxJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQ3ZFLG9FQUFvRTtZQUNwRSxNQUFNLElBQUEsK0NBQXNCLEVBQUMsU0FBUyxFQUFFO2dCQUN0QyxPQUFPLEVBQUUsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLFNBQVMsRUFBRSxlQUFlLENBQUMsRUFBRTtnQkFDN0IsbUJBQW1CO2dCQUNuQixJQUFJLEVBQUUsWUFBWTtnQkFDbEIsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO2FBQzVCLENBQUMsQ0FBQTtZQUNGLE9BQU07UUFDUixDQUFDO1FBRUQsTUFBTSxvQkFBb0IsQ0FBQyx3QkFBd0IsQ0FBQyxtQkFBbUIsRUFBRTtZQUN2RSxNQUFNLEVBQUUsK0JBQXVCLENBQUMsTUFBTTtTQUN2QyxDQUFDLENBQUE7SUFDSixDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDZixNQUFNLENBQUMsQ0FBQTtJQUNULENBQUM7QUFDSCxDQUFDO0FBRVksUUFBQSxNQUFNLEdBQXFCO0lBQ3RDLEtBQUssRUFBRSxDQUFDLG9CQUFvQixDQUFDO0NBQzlCLENBQUEifQ==
@@ -1,3 +1,4 @@
1
1
  export * from "./createPayOrder";
2
2
  export * from "./reverseCapturedPayment";
3
+ export * from "./paymentReversal";
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,0BAA0B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,0BAA0B,CAAA;AACxC,cAAc,mBAAmB,CAAA"}
@@ -16,4 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./createPayOrder"), exports);
18
18
  __exportStar(require("./reverseCapturedPayment"), exports);
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1EQUFnQztBQUNoQywyREFBd0MifQ==
19
+ __exportStar(require("./paymentReversal"), exports);
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1EQUFnQztBQUNoQywyREFBd0M7QUFDeEMsb0RBQWlDIn0=
@@ -0,0 +1,24 @@
1
+ import { MedusaContainer } from "@medusajs/types";
2
+ import { PaymentReversalKind } from "./reverseCapturedPayment";
3
+ export type PaymentReversal = {
4
+ /** Whether a Pay. chargeback / storno reversed a captured payment */
5
+ reversed: boolean;
6
+ kind: PaymentReversalKind | null;
7
+ statusCode: number | null;
8
+ /** When the (latest) reversal was recorded */
9
+ at: string | null;
10
+ /** Total amount that went back to the customer */
11
+ amount: number;
12
+ currency_code: string | null;
13
+ /** What the customer still owes on the order */
14
+ outstanding: number;
15
+ /** Whether a not_paid payment collection exists to collect it with */
16
+ payable: boolean;
17
+ };
18
+ /**
19
+ * Finds the reversal reverseCapturedPayment recorded on an order, recognised
20
+ * by the note on the refund. Used by the "payment reversed" order banner,
21
+ * since Medusa's own payment status can only say "refunded" for it.
22
+ */
23
+ export declare function getPaymentReversal(container: MedusaContainer, orderId: string): Promise<PaymentReversal | null>;
24
+ //# sourceMappingURL=paymentReversal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paymentReversal.d.ts","sourceRoot":"","sources":["../../../../src/utils/paymentReversal.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,eAAe,EAAC,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAEL,mBAAmB,EACpB,MAAM,0BAA0B,CAAA;AAEjC,MAAM,MAAM,eAAe,GAAG;IAC5B,qEAAqE;IACrE,QAAQ,EAAE,OAAO,CAAA;IACjB,IAAI,EAAE,mBAAmB,GAAG,IAAI,CAAA;IAChC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,8CAA8C;IAC9C,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;IACjB,kDAAkD;IAClD,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,gDAAgD;IAChD,WAAW,EAAE,MAAM,CAAA;IACnB,sEAAsE;IACtE,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAYD;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,eAAe,EAC1B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAkFjC"}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getPaymentReversal = getPaymentReversal;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const reverseCapturedPayment_1 = require("./reverseCapturedPayment");
6
+ const toNumber = (value) => {
7
+ if (value === null || value === undefined || value === "") {
8
+ return 0;
9
+ }
10
+ const numeric = Number(value);
11
+ return Number.isFinite(numeric) ? numeric : 0;
12
+ };
13
+ /**
14
+ * Finds the reversal reverseCapturedPayment recorded on an order, recognised
15
+ * by the note on the refund. Used by the "payment reversed" order banner,
16
+ * since Medusa's own payment status can only say "refunded" for it.
17
+ */
18
+ async function getPaymentReversal(container, orderId) {
19
+ const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
20
+ const { data: [order], } = await query.graph({
21
+ entity: "order",
22
+ fields: [
23
+ "id",
24
+ "currency_code",
25
+ "summary",
26
+ "payment_collections.id",
27
+ "payment_collections.status",
28
+ "payment_collections.payments.id",
29
+ "payment_collections.payments.refunds.id",
30
+ "payment_collections.payments.refunds.amount",
31
+ "payment_collections.payments.refunds.note",
32
+ "payment_collections.payments.refunds.created_at",
33
+ ],
34
+ filters: { id: orderId },
35
+ });
36
+ if (!order) {
37
+ return null;
38
+ }
39
+ const collections = (order.payment_collections ?? []);
40
+ const reversals = collections
41
+ .flatMap((collection) => collection?.payments ?? [])
42
+ .flatMap((payment) => payment?.refunds ?? [])
43
+ .map((refund) => ({
44
+ refund,
45
+ parsed: (0, reverseCapturedPayment_1.parsePayReversalNote)(refund?.note),
46
+ }))
47
+ .filter((entry) => entry.parsed !== null)
48
+ .sort((a, b) => new Date(b.refund.created_at ?? 0).getTime() -
49
+ new Date(a.refund.created_at ?? 0).getTime());
50
+ const summary = (order.summary ?? {});
51
+ const outstanding = toNumber(summary.pending_difference);
52
+ const payable = collections.some((collection) => collection?.status === "not_paid");
53
+ if (!reversals.length) {
54
+ return {
55
+ reversed: false,
56
+ kind: null,
57
+ statusCode: null,
58
+ at: null,
59
+ amount: 0,
60
+ currency_code: order.currency_code ?? null,
61
+ outstanding,
62
+ payable,
63
+ };
64
+ }
65
+ const latest = reversals[0];
66
+ const amount = reversals.reduce((total, entry) => utils_1.MathBN.add(total, entry.refund.amount ?? 0), utils_1.MathBN.convert(0));
67
+ return {
68
+ reversed: true,
69
+ kind: latest.parsed.kind,
70
+ statusCode: latest.parsed.statusCode,
71
+ at: latest.refund.created_at
72
+ ? new Date(latest.refund.created_at).toISOString()
73
+ : null,
74
+ amount: toNumber(amount.toString()),
75
+ currency_code: order.currency_code ?? null,
76
+ outstanding,
77
+ payable,
78
+ };
79
+ }
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudFJldmVyc2FsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWxzL3BheW1lbnRSZXZlcnNhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXNDQSxnREFxRkM7QUEzSEQscURBQTJFO0FBRTNFLHFFQUdpQztBQWtCakMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUFjLEVBQVUsRUFBRTtJQUMxQyxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDMUQsT0FBTyxDQUFDLENBQUE7SUFDVixDQUFDO0lBRUQsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBRTdCLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDL0MsQ0FBQyxDQUFBO0FBRUQ7Ozs7R0FJRztBQUNJLEtBQUssVUFBVSxrQkFBa0IsQ0FDdEMsU0FBMEIsRUFDMUIsT0FBZTtJQUVmLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFaEUsTUFBTSxFQUNKLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUNkLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3BCLE1BQU0sRUFBRSxPQUFPO1FBQ2YsTUFBTSxFQUFFO1lBQ04sSUFBSTtZQUNKLGVBQWU7WUFDZixTQUFTO1lBQ1Qsd0JBQXdCO1lBQ3hCLDRCQUE0QjtZQUM1QixpQ0FBaUM7WUFDakMseUNBQXlDO1lBQ3pDLDZDQUE2QztZQUM3QywyQ0FBMkM7WUFDM0MsaURBQWlEO1NBQ2xEO1FBQ0QsT0FBTyxFQUFFLEVBQUMsRUFBRSxFQUFFLE9BQU8sRUFBQztLQUN2QixDQUFDLENBQUE7SUFFRixJQUFJ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
@@ -1,11 +1,24 @@
1
1
  import { MedusaContainer } from "@medusajs/types";
2
+ export type PaymentReversalKind = "chargeback" | "storno" | "failure";
2
3
  export type ReverseCapturedPaymentInput = {
3
4
  orderId: string;
4
5
  paymentId: string;
5
6
  paymentCollectionId: string;
6
- /** Stored as the refund note, e.g. "Pay. chargeback (status -71)" */
7
- reason: string;
7
+ /** What reversed the payment, becomes the refund note */
8
+ kind: PaymentReversalKind;
9
+ /** The Pay. status code that reported it, when known */
10
+ statusCode?: number | string;
8
11
  };
12
+ /**
13
+ * The refund note that marks a reversal, e.g. "Pay. chargeback (status -71)"
14
+ * or "Pay. direct debit storno (status 127)". Medusa 2.11 refunds carry no
15
+ * metadata, so the note is what the admin banner recognises a reversal by.
16
+ */
17
+ export declare function formatPayReversalNote(kind: PaymentReversalKind, statusCode?: number | string): string;
18
+ export declare function parsePayReversalNote(note: unknown): {
19
+ kind: PaymentReversalKind;
20
+ statusCode: number | null;
21
+ } | null;
9
22
  /**
10
23
  * A chargeback or direct debit storno reverses a payment Medusa already
11
24
  * captured. Reflect that on the order so it shows as unpaid and can be paid
@@ -1 +1 @@
1
- {"version":3,"file":"reverseCapturedPayment.d.ts","sourceRoot":"","sources":["../../../../src/utils/reverseCapturedPayment.ts"],"names":[],"mappings":"AAQA,OAAO,EAKL,eAAe,EAChB,MAAM,iBAAiB,CAAA;AAExB,MAAM,MAAM,2BAA2B,GAAG;IACxC,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,qEAAqE;IACrE,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAQD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,eAAe,EAC1B,KAAK,EAAE,2BAA2B,GACjC,OAAO,CAAC,IAAI,CAAC,CA+Ef;AAED,eAAe,sBAAsB,CAAA"}
1
+ {"version":3,"file":"reverseCapturedPayment.d.ts","sourceRoot":"","sources":["../../../../src/utils/reverseCapturedPayment.ts"],"names":[],"mappings":"AAQA,OAAO,EAKL,eAAe,EAChB,MAAM,iBAAiB,CAAA;AAExB,MAAM,MAAM,mBAAmB,GAAG,YAAY,GAAG,QAAQ,GAAG,SAAS,CAAA;AAErE,MAAM,MAAM,2BAA2B,GAAG;IACxC,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,yDAAyD;IACzD,IAAI,EAAE,mBAAmB,CAAA;IACzB,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAC7B,CAAA;AAKD;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,mBAAmB,EACzB,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAC3B,MAAM,CAQR;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,OAAO,GACZ;IAAC,IAAI,EAAE,mBAAmB,CAAC;IAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAAC,GAAG,IAAI,CAe/D;AAQD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,eAAe,EAC1B,KAAK,EAAE,2BAA2B,GACjC,OAAO,CAAC,IAAI,CAAC,CAiFf;AAED,eAAe,sBAAsB,CAAA"}
@@ -1,8 +1,35 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formatPayReversalNote = formatPayReversalNote;
4
+ exports.parsePayReversalNote = parsePayReversalNote;
3
5
  exports.reverseCapturedPayment = reverseCapturedPayment;
4
6
  const core_flows_1 = require("@medusajs/core-flows");
5
7
  const utils_1 = require("@medusajs/framework/utils");
8
+ const REVERSAL_NOTE_PATTERN = /^Pay\. (chargeback|direct debit (?:storno|failure)) \(status (-?\d+|unknown)\)$/;
9
+ /**
10
+ * The refund note that marks a reversal, e.g. "Pay. chargeback (status -71)"
11
+ * or "Pay. direct debit storno (status 127)". Medusa 2.11 refunds carry no
12
+ * metadata, so the note is what the admin banner recognises a reversal by.
13
+ */
14
+ function formatPayReversalNote(kind, statusCode) {
15
+ const what = kind === "chargeback" ? "chargeback" : `direct debit ${kind}`;
16
+ const status = statusCode === undefined || statusCode === null || statusCode === ""
17
+ ? "unknown"
18
+ : String(statusCode);
19
+ return `Pay. ${what} (status ${status})`;
20
+ }
21
+ function parsePayReversalNote(note) {
22
+ if (typeof note !== "string") {
23
+ return null;
24
+ }
25
+ const match = note.trim().match(REVERSAL_NOTE_PATTERN);
26
+ if (!match) {
27
+ return null;
28
+ }
29
+ const kind = match[1].replace("direct debit ", "");
30
+ const statusCode = match[2] === "unknown" ? null : Number(match[2]);
31
+ return { kind, statusCode };
32
+ }
6
33
  const sumAmounts = (items) => (items ?? []).reduce((total, item) => utils_1.MathBN.add(total, item.amount), utils_1.MathBN.convert(0));
7
34
  /**
8
35
  * A chargeback or direct debit storno reverses a payment Medusa already
@@ -31,14 +58,15 @@ async function reverseCapturedPayment(container, input) {
31
58
  relations: ["captures", "refunds"],
32
59
  });
33
60
  const outstanding = utils_1.MathBN.sub(sumAmounts(payment.captures), sumAmounts(payment.refunds));
61
+ const note = formatPayReversalNote(input.kind, input.statusCode);
34
62
  if (utils_1.MathBN.gt(outstanding, 0)) {
35
63
  const amount = new utils_1.BigNumber(outstanding).numeric;
36
64
  payment = await paymentModuleService.refundPayment({
37
65
  payment_id: payment.id,
38
66
  amount,
39
- note: input.reason,
67
+ note,
40
68
  });
41
- logger.info(`Pay. - Recorded reversal of ${payment.currency_code} ${amount} on payment ${payment.id} for order ${input.orderId}: ${input.reason}`);
69
+ logger.info(`Pay. - Recorded reversal of ${payment.currency_code} ${amount} on payment ${payment.id} for order ${input.orderId}: ${note}`);
42
70
  }
43
71
  else {
44
72
  logger.info(`Pay. - Payment ${payment.id} for order ${input.orderId} is already fully reversed`);
@@ -69,4 +97,4 @@ async function reverseCapturedPayment(container, input) {
69
97
  logger.info(`Pay. - Order ${input.orderId} is payable again through payment collection ${collections.map((collection) => collection.id).join(", ") || "(none)"}`);
70
98
  }
71
99
  exports.default = reverseCapturedPayment;
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV2ZXJzZUNhcHR1cmVkUGF5bWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy91dGlscy9yZXZlcnNlQ2FwdHVyZWRQYXltZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBaURBLHdEQWtGQztBQW5JRCxxREFBaUY7QUFDakYscURBTWtDO0FBaUJsQyxNQUFNLFVBQVUsR0FBRyxDQUFDLEtBQTZDLEVBQUUsRUFBRSxDQUNuRSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQ2xCLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsY0FBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUMvQyxjQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUNsQixDQUFBO0FBRUg7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCRztBQUNJLEtBQUssVUFBVSxzQkFBc0IsQ0FDMUMsU0FBMEIsRUFDMUIsS0FBa0M7SUFFbEMsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBUyxpQ0FBeUIsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUMxRSxNQUFNLG9CQUFvQixHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQzVDLGVBQU8sQ0FBQyxPQUFPLENBQ2hCLENBQUE7SUFDRCxNQUFNLGtCQUFrQixHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQzFDLGVBQU8sQ0FBQyxLQUFLLENBQ2QsQ0FBQTtJQUVELElBQUksT0FBTyxHQUFHLE1BQU0sb0JBQW9CLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUU7UUFDeEUsU0FBUyxFQUFFLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQztLQUNuQyxDQUFDLENBQUE7SUFFRixNQUFNLFdBQVcsR0FBRyxjQUFNLENBQUMsR0FBRyxDQUM1QixVQUFVLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUM1QixVQUFVLENB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
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV2ZXJzZUNhcHR1cmVkUGF5bWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy91dGlscy9yZXZlcnNlQ2FwdHVyZWRQYXltZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBb0NBLHNEQVdDO0FBRUQsb0RBaUJDO0FBMkJELHdEQW9GQztBQWpMRCxxREFBaUY7QUFDakYscURBTWtDO0FBcUJsQyxNQUFNLHFCQUFxQixHQUN6QixpRkFBaUYsQ0FBQTtBQUVuRjs7OztHQUlHO0FBQ0gsU0FBZ0IscUJBQXFCLENBQ25DLElBQXlCLEVBQ3pCLFVBQTRCO0lBRTVCLE1BQU0sSUFBSSxHQUFHLElBQUksS0FBSyxZQUFZLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLElBQUksRUFBRSxDQUFBO0lBQzFFLE1BQU0sTUFBTSxHQUNWLFVBQVUsS0FBSyxTQUFTLElBQUksVUFBVSxLQUFLLElBQUksSUFBSSxVQUFVLEtBQUssRUFBRTtRQUNsRSxDQUFDLENBQUMsU0FBUztRQUNYLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUE7SUFFeEIsT0FBTyxRQUFRLElBQUksWUFBWSxNQUFNLEdBQUcsQ0FBQTtBQUMxQyxDQUFDO0FBRUQsU0FBZ0Isb0JBQW9CLENBQ2xDLElBQWE7SUFFYixJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzdCLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQTtJQUV0RCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDWCxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFRCxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQXdCLENB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
package/README.md CHANGED
@@ -274,6 +274,14 @@ resolved from the mandate code. The webhook route processes exchanges asynchrono
274
274
  the server a moment before checking the order. The payment link opens the regular Pay. hosted checkout, so the
275
275
  outstanding amount can be paid with any test payment method.
276
276
 
277
+ #### Reversed payments in the admin
278
+
279
+ When a chargeback or storno reverses a captured payment, the plugin refunds the payment in Medusa (without contacting
280
+ Pay.), books the amount as outstanding again and opens a new payment collection, so the order offers "Copy payment
281
+ link" and "Mark as paid". Medusa's own payment status can only call that "Refunded", so the plugin adds a
282
+ "Payment reversed, action required" banner on top of the order page that names the cause (chargeback, storno, failed
283
+ collection), the amount that went back to the customer and what is still outstanding.
284
+
277
285
  #### Simulator widget in the admin
278
286
 
279
287
  The same exchanges can be triggered from the order detail page. Switch on **SEPA testing** in Settings > Pay (off by
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@webbers/pay-payments-medusa",
3
3
  "displayName": "Medusa v2 Pay. Plugin",
4
- "version": "2.2.52",
4
+ "version": "2.2.53",
5
5
  "description": "The Pay.nl payment provider plugin for Medusa v2",
6
6
  "author": "Webbers B.V. <development@webbers.com>",
7
7
  "license": "MIT",