@easypayment/medusa-paypal 0.6.5 → 0.6.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.
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.config = void 0;
4
+ exports.default = paypalOrderInvoiceSubscriber;
5
+ const paypal_auth_1 = require("../modules/paypal/utils/paypal-auth");
6
+ const provider_ids_1 = require("../modules/paypal/utils/provider-ids");
7
+ async function paypalOrderInvoiceSubscriber({ event, container, }) {
8
+ const orderId = event?.data?.id;
9
+ if (!orderId)
10
+ return;
11
+ try {
12
+ const query = container.resolve("query");
13
+ const paypal = container.resolve("paypal_onboarding");
14
+ // Fetch the order with payment session data
15
+ const { data: orders } = await query.graph({
16
+ entity: "order",
17
+ fields: [
18
+ "id",
19
+ "display_id",
20
+ "payment_collections.payment_sessions.id",
21
+ "payment_collections.payment_sessions.data",
22
+ "payment_collections.payment_sessions.provider_id",
23
+ "payment_collections.payment_sessions.status",
24
+ ],
25
+ filters: { id: orderId },
26
+ });
27
+ const order = orders?.[0];
28
+ if (!order)
29
+ return;
30
+ // Find the PayPal session
31
+ const sessions = order.payment_collections?.flatMap((pc) => pc.payment_sessions || []) || [];
32
+ const paypalSession = sessions
33
+ .filter((s) => (0, provider_ids_1.isPayPalProviderId)(s.provider_id))
34
+ .sort((a, b) => new Date(b.created_at || 0).getTime() - new Date(a.created_at || 0).getTime())[0];
35
+ if (!paypalSession)
36
+ return;
37
+ const paypalData = (paypalSession.data?.paypal || {});
38
+ const paypalOrderId = String(paypalData.order_id || "");
39
+ if (!paypalOrderId)
40
+ return;
41
+ // Get invoice prefix from settings
42
+ const settings = await paypal.getSettings().catch(() => ({}));
43
+ const settingsData = settings && typeof settings === "object" && "data" in settings
44
+ ? (settings.data ?? {})
45
+ : {};
46
+ const additionalSettings = (settingsData.additional_settings || {});
47
+ const invoicePrefix = typeof additionalSettings.invoicePrefix === "string"
48
+ ? additionalSettings.invoicePrefix
49
+ : "";
50
+ // Build industry-standard invoice ID: prefix + order display_id
51
+ // e.g. "WC-139" or "ORD-139"
52
+ const displayId = String(order.display_id || "");
53
+ const invoiceId = `${invoicePrefix}${displayId}`.trim();
54
+ if (!invoiceId)
55
+ return;
56
+ // Patch the PayPal order with the correct invoice_id
57
+ const creds = await paypal.getActiveCredentials();
58
+ const { accessToken, base } = await (0, paypal_auth_1.getPayPalAccessToken)(creds);
59
+ const patchResp = await fetch(`${base}/v2/checkout/orders/${paypalOrderId}`, {
60
+ method: "PATCH",
61
+ headers: {
62
+ Authorization: `Bearer ${accessToken}`,
63
+ "Content-Type": "application/json",
64
+ },
65
+ body: JSON.stringify([
66
+ {
67
+ op: "replace",
68
+ path: "/purchase_units/@reference_id=='default'/invoice_id",
69
+ value: invoiceId,
70
+ },
71
+ ]),
72
+ });
73
+ if (patchResp.ok || patchResp.status === 204) {
74
+ console.info(`[PayPal] invoice_id updated to "${invoiceId}" for PayPal order ${paypalOrderId} (Medusa order ${orderId})`);
75
+ }
76
+ else {
77
+ const text = await patchResp.text().catch(() => "");
78
+ console.warn(`[PayPal] invoice_id patch failed (${patchResp.status}) for order ${paypalOrderId}: ${text}`);
79
+ }
80
+ }
81
+ catch (e) {
82
+ // Non-fatal — never block order placement
83
+ console.warn("[PayPal] paypalOrderInvoiceSubscriber error:", e?.message || e);
84
+ }
85
+ }
86
+ exports.config = {
87
+ event: "order.placed",
88
+ };
89
+ //# sourceMappingURL=paypal-order-invoice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paypal-order-invoice.js","sourceRoot":"","sources":["../../../../src/subscribers/paypal-order-invoice.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@easypayment/medusa-paypal",
3
- "version": "0.6.5",
3
+ "version": "0.6.7",
4
4
  "description": "Industry-standard PayPal integration for Medusa v2",
5
5
  "license": "MIT",
6
6
  "main": "./.medusa/server/src/index.js",