order-management 0.0.20 → 0.0.22

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.
Files changed (34) hide show
  1. package/.medusa/server/src/admin/index.js +439 -413
  2. package/.medusa/server/src/admin/index.mjs +439 -413
  3. package/.medusa/server/src/api/admin/swaps/[id]/approve/route.js +69 -31
  4. package/.medusa/server/src/api/admin/swaps/health/route.js +150 -0
  5. package/.medusa/server/src/api/admin/swaps/route.js +6 -12
  6. package/.medusa/server/src/api/admin/swaps/validators.js +9 -13
  7. package/.medusa/server/src/api/store/orders/[order_id]/swaps/route.js +47 -2
  8. package/.medusa/server/src/api/store/swaps/[id]/cancel/route.js +8 -1
  9. package/.medusa/server/src/api/store/swaps/[id]/route.js +15 -4
  10. package/.medusa/server/src/api/store/swaps/route.js +53 -10
  11. package/.medusa/server/src/helpers/swaps.js +1 -1
  12. package/.medusa/server/src/modules/swap/migrations/Migration20260123144734.js +29 -0
  13. package/.medusa/server/src/modules/swap/migrations/Migration20260123162423.js +48 -0
  14. package/.medusa/server/src/modules/swap/migrations/Migration20260126114640.js +48 -0
  15. package/.medusa/server/src/modules/swap/models/swap.js +7 -2
  16. package/.medusa/server/src/modules/swap/service.js +259 -32
  17. package/.medusa/server/src/subscribers/exchange-created.js +171 -0
  18. package/.medusa/server/src/workflows/steps/swap/create-medusa-exchange-step.js +153 -19
  19. package/.medusa/server/src/workflows/steps/swap/create-medusa-return-step.js +62 -6
  20. package/.medusa/server/src/workflows/steps/swap/create-swap-step.js +7 -12
  21. package/.medusa/server/src/workflows/steps/swap/index.js +6 -4
  22. package/.medusa/server/src/workflows/steps/swap/rollback-return-step.js +70 -0
  23. package/.medusa/server/src/workflows/steps/swap/sync-medusa-status-step.js +49 -3
  24. package/.medusa/server/src/workflows/steps/swap/update-swap-exchange-details-step.js +27 -0
  25. package/.medusa/server/src/workflows/steps/swap/validate-eligibility-step.js +9 -4
  26. package/.medusa/server/src/workflows/steps/swap/validate-order-step.js +24 -1
  27. package/.medusa/server/src/workflows/swaps/approve-swap-workflow.js +19 -3
  28. package/.medusa/server/src/workflows/swaps/create-swap-workflow.js +3 -1
  29. package/.medusa/server/src/workflows/swaps/execute-swap-workflow.js +26 -4
  30. package/package.json +1 -1
  31. package/.medusa/server/src/api/admin/swaps/[id]/process-payment/route.js +0 -152
  32. package/.medusa/server/src/api/admin/swaps/[id]/status/route.js +0 -45
  33. package/.medusa/server/src/api/admin/swaps/[id]/sync/route.js +0 -148
  34. package/.medusa/server/src/workflows/steps/swap/handle-payment-difference-step.js +0 -102
@@ -1,102 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.handlePaymentDifferenceStep = void 0;
4
- const utils_1 = require("@medusajs/framework/utils");
5
- const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
6
- const swap_1 = require("../../../modules/swap");
7
- exports.handlePaymentDifferenceStep = (0, workflows_sdk_1.createStep)("handle-payment-difference", async (input, { container }) => {
8
- const { swap_id } = input;
9
- if (!swap_id) {
10
- throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "swap_id is required");
11
- }
12
- const swapService = container.resolve(swap_1.SWAP_MODULE);
13
- const swap = await swapService.retrieveSwap(swap_id);
14
- const swapData = swap;
15
- const differenceDue = swapData.difference_due || 0;
16
- let paymentStatus = swapData.payment_status || "pending";
17
- let paymentIntentId;
18
- let refundId;
19
- // Resolve payment service (if available)
20
- const paymentService = container.resolve("payment");
21
- if (differenceDue > 0) {
22
- // Customer owes money - create payment intent (requires admin approval)
23
- paymentStatus = "pending";
24
- // Store payment intent creation in metadata
25
- // Actual payment capture will be done via admin endpoint after review
26
- const swapMetadata = swapData.metadata || {};
27
- const medusaIntegration = swapMetadata.medusa_integration || {};
28
- await swapService.updateSwaps({
29
- selector: { id: swap_id },
30
- data: {
31
- payment_status: "pending",
32
- metadata: {
33
- ...swapMetadata,
34
- medusa_integration: {
35
- ...medusaIntegration,
36
- payment_difference: differenceDue,
37
- payment_requires_review: true,
38
- payment_created_at: new Date().toISOString(),
39
- },
40
- },
41
- },
42
- });
43
- }
44
- else if (differenceDue < 0) {
45
- // Customer gets refund - schedule refund
46
- paymentStatus = "refund_pending";
47
- if (paymentService?.createRefund && swapData.order_id) {
48
- try {
49
- const refund = await paymentService.createRefund({
50
- order_id: swapData.order_id,
51
- amount: Math.abs(differenceDue),
52
- });
53
- refundId = refund.id;
54
- paymentStatus = "refunded";
55
- }
56
- catch (error) {
57
- // If refund creation fails, mark as pending manual review
58
- paymentStatus = "refund_pending";
59
- // Log error would be handled by workflow error handling
60
- }
61
- }
62
- else {
63
- // Mark for manual refund processing
64
- paymentStatus = "refund_pending";
65
- }
66
- const swapMetadata = swapData.metadata || {};
67
- const medusaIntegration = swapMetadata.medusa_integration || {};
68
- await swapService.updateSwaps({
69
- selector: { id: swap_id },
70
- data: {
71
- payment_status: paymentStatus,
72
- metadata: {
73
- ...swapMetadata,
74
- medusa_integration: {
75
- ...medusaIntegration,
76
- refund_id: refundId,
77
- refund_amount: Math.abs(differenceDue),
78
- refund_created_at: refundId ? new Date().toISOString() : undefined,
79
- },
80
- },
81
- },
82
- });
83
- }
84
- else {
85
- // No payment difference
86
- paymentStatus = "no_payment_required";
87
- await swapService.updateSwaps({
88
- selector: { id: swap_id },
89
- data: {
90
- payment_status: paymentStatus,
91
- },
92
- });
93
- }
94
- const updatedSwap = await swapService.retrieveSwap(swap_id);
95
- return new workflows_sdk_1.StepResponse({
96
- payment_status: paymentStatus,
97
- payment_intent_id: paymentIntentId,
98
- refund_id: refundId,
99
- swap: updatedSwap,
100
- });
101
- });
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlLXBheW1lbnQtZGlmZmVyZW5jZS1zdGVwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9zdGVwcy9zd2FwL2hhbmRsZS1wYXltZW50LWRpZmZlcmVuY2Utc3RlcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxREFBdUQ7QUFDdkQscUVBQTRFO0FBQzVFLGdEQUFtRDtBQWV0QyxRQUFBLDJCQUEyQixHQUFHLElBQUEsMEJBQVUsRUFDbkQsMkJBQTJCLEVBQzNCLEtBQUssRUFDSCxLQUF1QyxFQUN2QyxFQUFFLFNBQVMsRUFBRSxFQUM2QyxFQUFFO0lBQzVELE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxLQUFLLENBQUE7SUFFekIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2IsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDOUIscUJBQXFCLENBQ3RCLENBQUE7SUFDSCxDQUFDO0lBRUQsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBYyxrQkFBVyxDQUFDLENBQUE7SUFDL0QsTUFBTSxJQUFJLEdBQUcsTUFBTSxXQUFXLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ3BELE1BQU0sUUFBUSxHQUFHLElBSWhCLENBQUE7SUFFRCxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsY0FBYyxJQUFJLENBQUMsQ0FBQTtJQUNsRCxJQUFJLGFBQWEsR0FBRyxRQUFRLENBQUMsY0FBYyxJQUFJLFNBQVMsQ0FBQTtJQUN4RCxJQUFJLGVBQW1DLENBQUE7SUFDdkMsSUFBSSxRQUE0QixDQUFBO0lBRWhDLHlDQUF5QztJQUN6QyxNQUFNLGNBQWMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQVNyQyxTQUFTLENBQUMsQ0FBQTtJQUViLElBQUksYUFBYSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3RCLHdFQUF3RTtR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