order-management 0.0.17 → 0.0.19

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 (48) hide show
  1. package/.medusa/server/src/admin/index.js +644 -11
  2. package/.medusa/server/src/admin/index.mjs +644 -11
  3. package/.medusa/server/src/api/admin/swaps/[id]/approve/route.js +74 -0
  4. package/.medusa/server/src/api/admin/swaps/[id]/process-payment/route.js +152 -0
  5. package/.medusa/server/src/api/admin/swaps/[id]/reject/route.js +43 -0
  6. package/.medusa/server/src/api/admin/swaps/[id]/route.js +70 -0
  7. package/.medusa/server/src/api/admin/swaps/[id]/status/route.js +45 -0
  8. package/.medusa/server/src/api/admin/swaps/[id]/sync/route.js +148 -0
  9. package/.medusa/server/src/api/admin/swaps/route.js +51 -0
  10. package/.medusa/server/src/api/admin/swaps/validators.js +22 -0
  11. package/.medusa/server/src/api/store/guest-orders/[id]/invoice/route.js +17 -5
  12. package/.medusa/server/src/api/store/guest-orders/[id]/returns/route.js +17 -5
  13. package/.medusa/server/src/api/store/guest-orders/[id]/route.js +17 -5
  14. package/.medusa/server/src/api/store/guest-orders/route.js +17 -5
  15. package/.medusa/server/src/api/store/orders/[order_id]/swaps/route.js +107 -0
  16. package/.medusa/server/src/api/store/otp/request/route.js +12 -5
  17. package/.medusa/server/src/api/store/swaps/[id]/cancel/route.js +64 -0
  18. package/.medusa/server/src/api/store/swaps/[id]/route.js +112 -0
  19. package/.medusa/server/src/api/store/swaps/route.js +117 -0
  20. package/.medusa/server/src/helpers/index.js +18 -0
  21. package/.medusa/server/src/helpers/swaps.js +88 -0
  22. package/.medusa/server/src/modules/swap/index.js +13 -0
  23. package/.medusa/server/src/modules/swap/migrations/Migration20260121164326.js +49 -0
  24. package/.medusa/server/src/modules/swap/models/swap.js +21 -0
  25. package/.medusa/server/src/modules/swap/service.js +224 -0
  26. package/.medusa/server/src/services/otp-service.js +16 -5
  27. package/.medusa/server/src/subscribers/send-order-email.js +27 -8
  28. package/.medusa/server/src/workflows/index.js +8 -2
  29. package/.medusa/server/src/workflows/steps/swap/calculate-difference-step.js +56 -0
  30. package/.medusa/server/src/workflows/steps/swap/create-medusa-exchange-step.js +71 -0
  31. package/.medusa/server/src/workflows/steps/swap/create-medusa-return-step.js +79 -0
  32. package/.medusa/server/src/workflows/steps/swap/create-swap-step.js +29 -0
  33. package/.medusa/server/src/workflows/steps/swap/handle-payment-difference-step.js +102 -0
  34. package/.medusa/server/src/workflows/steps/swap/index.js +26 -0
  35. package/.medusa/server/src/workflows/steps/swap/retrieve-swap-step.js +26 -0
  36. package/.medusa/server/src/workflows/steps/swap/sync-medusa-status-step.js +132 -0
  37. package/.medusa/server/src/workflows/steps/swap/update-swap-status-step.js +25 -0
  38. package/.medusa/server/src/workflows/steps/swap/validate-eligibility-step.js +25 -0
  39. package/.medusa/server/src/workflows/steps/swap/validate-order-step.js +69 -0
  40. package/.medusa/server/src/workflows/steps/swap/validate-swap-items-step.js +41 -0
  41. package/.medusa/server/src/workflows/swaps/approve-swap-workflow.js +22 -0
  42. package/.medusa/server/src/workflows/swaps/create-swap-workflow.js +52 -0
  43. package/.medusa/server/src/workflows/swaps/execute-swap-workflow.js +36 -0
  44. package/.medusa/server/src/workflows/swaps/types.js +3 -0
  45. package/.medusa/server/src/workflows/swaps/update-swap-status-workflow.js +23 -0
  46. package/README.md +208 -0
  47. package/package.json +1 -1
  48. package/.medusa/server/src/utils/resolve-options.js +0 -101
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.config = void 0;
4
4
  exports.default = sendOrderEmailHandler;
5
5
  const utils_1 = require("@medusajs/framework/utils");
6
- const resolve_options_1 = require("../utils/resolve-options");
7
6
  const template_1 = require("../utils/template");
8
7
  const send_notification_step_1 = require("../workflows/steps/send-notification-step");
9
8
  /**
@@ -16,9 +15,17 @@ async function sendOrderEmailHandler({ event: { data }, container, }) {
16
15
  let templatePath = null;
17
16
  try {
18
17
  const configModule = container.resolve(utils_1.ContainerRegistrationKeys.CONFIG_MODULE);
19
- const pluginOptions = (0, resolve_options_1.extractOrderManagementOptions)(configModule);
20
- const options = (0, resolve_options_1.resolveOrderManagementOptions)(pluginOptions);
21
- templatePath = options.email.orderConfirmTemplate;
18
+ const plugins = configModule
19
+ ?.projectConfig?.plugins ?? [];
20
+ for (const plugin of plugins) {
21
+ if (typeof plugin === "object" && plugin !== null && plugin?.resolve === "order-management") {
22
+ const options = plugin?.options;
23
+ if (options?.email?.orderConfirmTemplate) {
24
+ templatePath = options.email.orderConfirmTemplate;
25
+ break;
26
+ }
27
+ }
28
+ }
22
29
  if (!templatePath) {
23
30
  console.log("[Order Email Subscriber] Email template path not configured, skipping email");
24
31
  return;
@@ -91,9 +98,21 @@ async function sendOrderEmailHandler({ event: { data }, container, }) {
91
98
  const isRegistered = customers.length > 0;
92
99
  // Get plugin options for storefront URL
93
100
  const configModule = container.resolve(utils_1.ContainerRegistrationKeys.CONFIG_MODULE);
94
- const rawOptions = (0, resolve_options_1.extractOrderManagementOptions)(configModule);
95
- const options = (0, resolve_options_1.resolveOrderManagementOptions)(rawOptions);
96
- const claimLink = `${options.storefrontUrl}/account/orders/claim?order_id=${orderData.id}`;
101
+ const plugins = configModule
102
+ ?.projectConfig?.plugins ?? [];
103
+ let storefrontUrl;
104
+ for (const plugin of plugins) {
105
+ if (typeof plugin === "object" && plugin !== null && plugin?.resolve === "order-management") {
106
+ const options = plugin?.options;
107
+ if (options?.storefrontUrl) {
108
+ storefrontUrl = options.storefrontUrl;
109
+ break;
110
+ }
111
+ }
112
+ }
113
+ const claimLink = storefrontUrl
114
+ ? `${storefrontUrl}/account/orders/claim?order_id=${orderData.id}`
115
+ : undefined;
97
116
  const templateData = {
98
117
  order_id: orderData.id || "N/A",
99
118
  order_status: orderData.status || "N/A",
@@ -141,4 +160,4 @@ async function sendOrderEmailHandler({ event: { data }, container, }) {
141
160
  exports.config = {
142
161
  event: "order.placed",
143
162
  };
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZC1vcmRlci1lbWFpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zdWJzY3JpYmVycy9zZW5kLW9yZGVyLWVtYWlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQW9CQSx3Q0FvSkM7QUF2S0QscURBQXFFO0FBRXJFLDhEQUdpQztBQUNqQyxnREFBaUY7QUFDakYsc0ZBQTRFO0FBUTVFOzs7R0FHRztBQUNZLEtBQUssVUFBVSxxQkFBcUIsQ0FBQyxFQUNsRCxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFDZixTQUFTLEdBQzRCO0lBQ3JDLElBQUksQ0FBQztRQUNILHdDQUF3QztRQUN4QyxJQUFJLFlBQVksR0FBa0IsSUFBSSxDQUFBO1FBQ3RDLElBQUksQ0FBQztZQUNILE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsYUFBYSxDQUFDLENBQUE7WUFDL0UsTUFBTSxhQUFhLEdBQUcsSUFBQSwrQ0FBNkIsRUFBQyxZQUFZLENBQUMsQ0FBQTtZQUNqRSxNQUFNLE9BQU8sR0FBRyxJQUFBLCtDQUE2QixFQUFDLGFBQWEsQ0FBQyxDQUFBO1lBRTVELFlBQVksR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFBO1lBRWpELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDbEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyw2RUFBNkUsQ0FBQyxDQUFBO2dCQUMxRixPQUFNO1lBQ1IsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsaURBQWlEO1lBQ2pELE9BQU8sQ0FBQyxLQUFLLENBQUMsbUVBQW1FLENBQUMsQ0FBQTtZQUNsRixPQUFNO1FBQ1IsQ0FBQztRQUVELG1DQUFtQztRQUNuQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFBO1FBRXZCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNiLE9BQU8sQ0FB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
163
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZC1vcmRlci1lbWFpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zdWJzY3JpYmVycy9zZW5kLW9yZGVyLWVtYWlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWdCQSx3Q0EwS0M7QUF6TEQscURBQXFFO0FBRXJFLGdEQUFpRjtBQUNqRixzRkFBNEU7QUFRNUU7OztHQUdHO0FBQ1ksS0FBSyxVQUFVLHFCQUFxQixDQUFDLEVBQ2xELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxFQUNmLFNBQVMsR0FDNEI7SUFDckMsSUFBSSxDQUFDO1FBQ0gsd0NBQXdDO1FBQ3hDLElBQUksWUFBWSxHQUFrQixJQUFJLENBQUE7UUFDdEMsSUFBSSxDQUFDO1lBQ0gsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxhQUFhLENBQUMsQ0FBQTtZQUMvRSxNQUFNLE9BQU8sR0FBSSxZQUE0RDtnQkFDM0UsRUFBRSxhQUFhLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQTtZQUVoQyxLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUM3QixJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsSUFBSSxNQUFNLEtBQUssSUFBSSxJQUFLLE1BQStCLEVBQUUsT0FBTyxLQUFLLGtCQUFrQixFQUFFLENBQUM7b0JBQ3RILE1BQU0sT0FBTyxHQUFJLE1BQTZFLEVBQUUsT0FBTyxDQUFBO29CQUN2RyxJQUFJLE9BQU8sRUFBRSxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQzt3QkFDekMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUE7d0JBQ2pELE1BQUs7b0JBQ1AsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztZQUVELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDbEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyw2RUFBNkUsQ0FBQyxDQUFBO2dCQUMxRixP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
@@ -1,8 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.cancelOrderWorkflow = exports.reorderWorkflow = void 0;
3
+ exports.updateSwapStatusWorkflow = exports.approveSwapWorkflow = exports.createSwapWorkflow = exports.cancelOrderWorkflow = exports.reorderWorkflow = void 0;
4
4
  var reorder_workflow_1 = require("./reorder-workflow");
5
5
  Object.defineProperty(exports, "reorderWorkflow", { enumerable: true, get: function () { return reorder_workflow_1.reorderWorkflow; } });
6
6
  var cancel_order_workflow_1 = require("./cancel-order-workflow");
7
7
  Object.defineProperty(exports, "cancelOrderWorkflow", { enumerable: true, get: function () { return cancel_order_workflow_1.cancelOrderWorkflow; } });
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHVEQUFvRDtBQUEzQyxtSEFBQSxlQUFlLE9BQUE7QUFDeEIsaUVBQTZEO0FBQXBELDRIQUFBLG1CQUFtQixPQUFBIn0=
8
+ var create_swap_workflow_1 = require("./swaps/create-swap-workflow");
9
+ Object.defineProperty(exports, "createSwapWorkflow", { enumerable: true, get: function () { return create_swap_workflow_1.createSwapWorkflow; } });
10
+ var approve_swap_workflow_1 = require("./swaps/approve-swap-workflow");
11
+ Object.defineProperty(exports, "approveSwapWorkflow", { enumerable: true, get: function () { return approve_swap_workflow_1.approveSwapWorkflow; } });
12
+ var update_swap_status_workflow_1 = require("./swaps/update-swap-status-workflow");
13
+ Object.defineProperty(exports, "updateSwapStatusWorkflow", { enumerable: true, get: function () { return update_swap_status_workflow_1.updateSwapStatusWorkflow; } });
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHVEQUFvRDtBQUEzQyxtSEFBQSxlQUFlLE9BQUE7QUFDeEIsaUVBQTZEO0FBQXBELDRIQUFBLG1CQUFtQixPQUFBO0FBQzVCLHFFQUFpRTtBQUF4RCwwSEFBQSxrQkFBa0IsT0FBQTtBQUMzQix1RUFBbUU7QUFBMUQsNEhBQUEsbUJBQW1CLE9BQUE7QUFDNUIsbUZBQThFO0FBQXJFLHVJQUFBLHdCQUF3QixPQUFBIn0=
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.calculateDifferenceStep = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
6
+ const utils_2 = require("@medusajs/framework/utils");
7
+ exports.calculateDifferenceStep = (0, workflows_sdk_1.createStep)("calculate-difference", async (input, { container }) => {
8
+ const { order, return_items, new_items } = input;
9
+ const remoteQuery = container.resolve(utils_2.ContainerRegistrationKeys.REMOTE_QUERY);
10
+ // Calculate return items total
11
+ let returnTotal = 0;
12
+ for (const returnItem of return_items) {
13
+ const orderItem = order.items.find((item) => item.id === returnItem.id);
14
+ if (orderItem) {
15
+ const orderItemData = orderItem;
16
+ const unitPrice = orderItemData.unit_price || 0;
17
+ returnTotal += unitPrice * returnItem.quantity;
18
+ }
19
+ }
20
+ // Calculate new items total
21
+ let newTotal = 0;
22
+ for (const newItem of new_items) {
23
+ try {
24
+ const queryObject = (0, utils_2.remoteQueryObjectFromString)({
25
+ entryPoint: "product_variant",
26
+ fields: ["id", "calculated_price"],
27
+ filters: {
28
+ id: [newItem.variant_id],
29
+ },
30
+ });
31
+ const variants = await remoteQuery(queryObject);
32
+ const variantArray = Array.isArray(variants) ? variants : variants ? [variants] : [];
33
+ const variant = variantArray.find((v) => {
34
+ const vData = v;
35
+ return vData?.id === newItem.variant_id;
36
+ });
37
+ if (!variant) {
38
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, `Variant with id ${newItem.variant_id} not found`);
39
+ }
40
+ const variantData = variant;
41
+ const price = variantData.calculated_price || 0;
42
+ newTotal += price * newItem.quantity;
43
+ }
44
+ catch (error) {
45
+ // If variant lookup fails, throw error
46
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, `Failed to fetch variant ${newItem.variant_id}: ${error instanceof Error ? error.message : "Unknown error"}`);
47
+ }
48
+ }
49
+ // Difference = new_total - return_total
50
+ // Positive = customer owes money, negative = refund
51
+ const difference_due = newTotal - returnTotal;
52
+ return new workflows_sdk_1.StepResponse({
53
+ difference_due,
54
+ });
55
+ });
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlLWRpZmZlcmVuY2Utc3RlcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3Mvc3RlcHMvc3dhcC9jYWxjdWxhdGUtZGlmZmVyZW5jZS1zdGVwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFEQUF1RDtBQUN2RCxxRUFBNEU7QUFDNUUscURBQWtHO0FBZXJGLFFBQUEsdUJBQXVCLEdBQUcsSUFBQSwwQkFBVSxFQUMvQyxzQkFBc0IsRUFDdEIsS0FBSyxFQUNILEtBQW1DLEVBQ25DLEVBQUUsU0FBUyxFQUFFLEVBQ3lDLEVBQUU7SUFDeEQsTUFBTSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLEdBQUcsS0FBSyxDQUFBO0lBRWhELE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQ25DLGlDQUF5QixDQUFDLFlBQVksQ0FDdkMsQ0FBQTtJQUVELCtCQUErQjtJQUMvQixJQUFJLFdBQVcsR0FBRyxDQUFDLENBQUE7SUFDbkIsS0FBSyxNQUFNLFVBQVUsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN0QyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDaEMsQ0FBQyxJQUFxQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLFVBQVUsQ0FBQyxFQUFFLENBQ3JELENBQUE7UUFDRCxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2QsTUFBTSxhQUFhLEdBQUcsU0FBb0MsQ0FBQTtZQUMxRCxNQUFNLFNBQVMsR0FBRyxhQUFhLENBQUMsVUFBVSxJQUFJLENBQUMsQ0FBQTtZQUMvQyxXQUFXLElBQUksU0FBUyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUE7UUFDaEQsQ0FBQztJQUNILENBQUM7SUFFRCw0QkFBNEI7SUFDNUIsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFBO0lBQ2hCLEtBQUssTUFBTSxPQUFPLElBQUksU0FBUyxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDO1lBQ0gsTUFBTSxXQUFXLEdBQUcsSUFBQSxtQ0FBMkIsRUFBQztnQkFDOUMsVUFBVSxFQUFFLGlCQUFpQjtnQkFDN0IsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLGtCQUFrQixDQUFDO2dCQUNsQyxPQUFPLEVBQUU7b0JBQ1AsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztpQkFDekI7YUFDRixDQUFDLENBQUE7WUFFRixNQUFNLFFBQVEsR0FBRyxNQUFNLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQTtZQUMvQyxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO1lBQ3BGLE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQy9CLENBQUMsQ0FBVSxFQUFFLEVBQUU7Z0JBQ2IsTUFBTSxLQUFLLEdBQUcsQ0FBb0IsQ0FBQTtnQkFDbEMsT0FBTyxLQUFLLEVBQUUsRUFBRSxLQUFLLE9BQU8sQ0FBQyxVQUFVLENBQUE7WUFDekMsQ0FBQyxDQUNGLENBQUE7WUFFRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2IsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFDM0IsbUJBQW1CLE9BQU8sQ0FBQyxVQUFVLFlBQVksQ0FDbEQsQ0FBQTtZQUNILENBQUM7WUFFRCxNQUFNLFdBQVcsR0FBRyxPQUF3QyxDQUFBO1lBQzVELE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLENBQUE7WUFDL0MsUUFBUSxJQUFJLEtBQUssR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFBO1FBQ3RDLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsdUNBQXVDO1lBQ3ZDLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQzNCLDJCQUEyQixPQUFPLENBQUMsVUFBVSxLQUFLLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUM3RyxDQUFBO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCx3Q0FBd0M7SUFDeEMsb0RBQW9EO0lBQ3BELE1BQU0sY0FBYyxHQUFHLFFBQVEsR0FBRyxXQUFXLENBQUE7SUFFN0MsT0FBTyxJQUFJLDRCQUFZLENBQWdDO1FBQ3JELGNBQWM7S0FDZixDQUFDLENBQUE7QUFDSixDQUFDLENBQ0YsQ0FBQSJ9
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createMedusaExchangeStep = 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.createMedusaExchangeStep = (0, workflows_sdk_1.createStep)("create-medusa-exchange", async (input, { container }) => {
8
+ const { swap_id, return_id } = input;
9
+ if (!swap_id) {
10
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "swap_id is required");
11
+ }
12
+ if (!return_id) {
13
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "return_id is required to create exchange");
14
+ }
15
+ const swapService = container.resolve(swap_1.SWAP_MODULE);
16
+ const swap = await swapService.retrieveSwap(swap_id);
17
+ const swapData = swap;
18
+ if (swapData.exchange_id) {
19
+ // Exchange already created
20
+ return new workflows_sdk_1.StepResponse({
21
+ exchange_id: swapData.exchange_id || "",
22
+ swap,
23
+ });
24
+ }
25
+ const newItems = swapData.new_items || [];
26
+ if (newItems.length === 0) {
27
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Swap must have new items to create exchange");
28
+ }
29
+ // Resolve order service
30
+ const orderService = container.resolve("order");
31
+ if (!orderService) {
32
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Order service is not available");
33
+ }
34
+ // Create exchange using Medusa's Order Module
35
+ let exchangeId;
36
+ if (orderService.createExchange) {
37
+ const exchange = await orderService.createExchange({
38
+ return_id,
39
+ items: newItems,
40
+ });
41
+ exchangeId = exchange.id;
42
+ }
43
+ else {
44
+ // Fallback: Use remote query or workflow
45
+ // In production, you'd use Medusa's exchange workflow or API
46
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.UNKNOWN_MODULES, "Exchange creation via Order Module is not directly available. Please use Medusa's exchange workflow.");
47
+ }
48
+ // Update swap with exchange_id
49
+ const swapMetadata = swapData.metadata || {};
50
+ const medusaIntegration = swapMetadata.medusa_integration || {};
51
+ const updatedSwap = await swapService.updateSwaps({
52
+ selector: { id: swap_id },
53
+ data: {
54
+ exchange_id: exchangeId,
55
+ metadata: {
56
+ ...swapMetadata,
57
+ medusa_integration: {
58
+ ...medusaIntegration,
59
+ exchange_id: exchangeId,
60
+ exchange_created_at: new Date().toISOString(),
61
+ },
62
+ },
63
+ },
64
+ });
65
+ const finalSwap = Array.isArray(updatedSwap) ? updatedSwap[0] : updatedSwap;
66
+ return new workflows_sdk_1.StepResponse({
67
+ exchange_id: exchangeId,
68
+ swap: finalSwap || swap,
69
+ });
70
+ });
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW1lZHVzYS1leGNoYW5nZS1zdGVwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9zdGVwcy9zd2FwL2NyZWF0ZS1tZWR1c2EtZXhjaGFuZ2Utc3RlcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxREFBdUQ7QUFDdkQscUVBQTRFO0FBQzVFLGdEQUFtRDtBQWN0QyxRQUFBLHdCQUF3QixHQUFHLElBQUEsMEJBQVUsRUFDaEQsd0JBQXdCLEVBQ3hCLEtBQUssRUFDSCxLQUFvQyxFQUNwQyxFQUFFLFNBQVMsRUFBRSxFQUMwQyxFQUFFO0lBQ3pELE1BQU0sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsS0FBSyxDQUFBO0lBRXBDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNiLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLHFCQUFxQixDQUN0QixDQUFBO0lBQ0gsQ0FBQztJQUVELElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNmLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLDBDQUEwQyxDQUMzQyxDQUFBO0lBQ0gsQ0FBQztJQUVELE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQWMsa0JBQVcsQ0FBQyxDQUFBO0lBQy9ELE1BQU0sSUFBSSxHQUFHLE1BQU0sV0FBVyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUNwRCxNQUFNLFFBQVEsR0FBRyxJQUlOLENBQUE7SUFFWCxJQUFLLFFBQXFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdkQsMkJBQTJCO1FBQzNCLE9BQU8sSUFBSSw0QkFBWSxDQUFpQztZQUN0RCxXQUFXLEVBQUcsUUFBcUMsQ0FBQyxXQUFXLElBQUksRUFBRTtZQUNyRSxJQUFJO1NBQ0wsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELE1BQU0sUUFBUSxHQUFJLFFBQTRFLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQTtJQUU5RyxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDMUIsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDOUIsNkNBQTZDLENBQzlDLENBQUE7SUFDSCxDQUFDO0lBRUQsd0JBQXdCO0lBQ3hCLE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBS25DLE9BQU8sQ0FBQyxDQUFBO0lBRVgsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ2xCLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLGdDQUFnQyxDQUNqQyxDQUFBO0lBQ0gsQ0FBQztJQUVELDhDQUE4QztJQUM5QyxJQUFJLFVBQWtCLENBQUE7SUFFdEIsSUFBSSxZQUFZLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDaEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxZQUFZLENBQUMsY0FBYyxDQUFDO1lBQ2pELFNBQVM7WUFDVCxLQUFLLEVBQUUsUUFBUTtTQUNoQixDQUFDLENBQUE7UUFFRixVQUFVLEdBQUcsUUFBUSxDQUFDLEVBQUUsQ0FBQTtJQUMxQixDQUFDO1NBQU0sQ0FBQztRQUNOLHlDQUF5QztRQUN6Qyw2REFBNkQ7UUFDN0QsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFDakMsc0dBQXNHLENBQ3ZHLENBQUE7SUFDSCxDQUFDO0lBRUQsK0JBQStCO0lBQy9CLE1BQU0sWUFBWSxHQUFJLFFBQW1ELENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQTtJQUN4RixNQUFNLGlCQUFpQixHQUFJLFlBQVksQ0FBQyxrQkFBOEMsSUFBSSxFQUFFLENBQUE7SUFFNUYsTUFBTSxXQUFXLEdBQUcsTUFBTSxXQUFXLENBQUMsV0FBVyxDQUFDO1FBQ2hELFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUU7UUFDekIsSUFBSSxFQUFFO1lBQ0osV0FBVyxFQUFFLFVBQVU7WUFDdkIsUUFBUSxFQUFFO2dCQUNSLEdBQUcsWUFBWTtnQkFDZixrQkFBa0IsRUFBRTtvQkFDbEIsR0FBRyxpQkFBaUI7b0JBQ3BCLFdBQVcsRUFBRSxVQUFVO29CQUN2QixtQkFBbUIsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRTtpQkFDOUM7YUFDRjtTQUNGO0tBQ0YsQ0FBQyxDQUFBO0lBRUYsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUE7SUFFM0UsT0FBTyxJQUFJLDRCQUFZLENBQWlDO1FBQ3RELFdBQVcsRUFBRSxVQUFVO1FBQ3ZCLElBQUksRUFBRSxTQUFTLElBQUksSUFBSTtLQUN4QixDQUFDLENBQUE7QUFDSixDQUFDLENBQ0YsQ0FBQSJ9
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createMedusaReturnStep = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
6
+ const utils_2 = require("@medusajs/framework/utils");
7
+ const swap_1 = require("../../../modules/swap");
8
+ exports.createMedusaReturnStep = (0, workflows_sdk_1.createStep)("create-medusa-return", async (input, { container }) => {
9
+ const { swap_id } = input;
10
+ if (!swap_id) {
11
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "swap_id is required");
12
+ }
13
+ const swapService = container.resolve(swap_1.SWAP_MODULE);
14
+ const swap = await swapService.retrieveSwap(swap_id);
15
+ const swapData = swap;
16
+ if (!swapData.order_id) {
17
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Swap must have an order_id");
18
+ }
19
+ if (swapData.return_id) {
20
+ // Return already created
21
+ return new workflows_sdk_1.StepResponse({
22
+ return_id: swapData.return_id,
23
+ swap,
24
+ });
25
+ }
26
+ if (swapData.status !== "approved") {
27
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, `Swap must be approved before creating Medusa return. Current status: ${swapData.status}`);
28
+ }
29
+ const returnItems = swapData.return_items || [];
30
+ if (returnItems.length === 0) {
31
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Swap must have return items");
32
+ }
33
+ // Resolve order service
34
+ const orderService = container.resolve("order");
35
+ if (!orderService) {
36
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Order service is not available");
37
+ }
38
+ // Create return using Medusa's Order Module
39
+ let returnId;
40
+ if (orderService.createReturn) {
41
+ const returnItemsForMedusa = returnItems.map((item) => ({
42
+ item_id: item.item_id,
43
+ quantity: item.quantity,
44
+ reason_id: item.reason_id,
45
+ }));
46
+ const medusaReturn = await orderService.createReturn({
47
+ order_id: swapData.order_id,
48
+ items: returnItemsForMedusa,
49
+ });
50
+ returnId = medusaReturn.id;
51
+ }
52
+ else {
53
+ // Fallback: Use remote query to create return via API
54
+ // This is a workaround if createReturn is not directly available
55
+ const remoteQuery = container.resolve(utils_2.ContainerRegistrationKeys.REMOTE_QUERY);
56
+ // For now, we'll use a placeholder approach
57
+ // In production, you'd use Medusa's return workflow or API
58
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.UNKNOWN_MODULES, "Return creation via Order Module is not directly available. Please use Medusa's return workflow.");
59
+ }
60
+ // Update swap with return_id
61
+ const updatedSwap = await swapService.updateSwaps({
62
+ selector: { id: swap_id },
63
+ data: {
64
+ return_id: returnId,
65
+ metadata: {
66
+ medusa_integration: {
67
+ return_id: returnId,
68
+ return_created_at: new Date().toISOString(),
69
+ },
70
+ },
71
+ },
72
+ });
73
+ const finalSwap = Array.isArray(updatedSwap) ? updatedSwap[0] : updatedSwap;
74
+ return new workflows_sdk_1.StepResponse({
75
+ return_id: returnId,
76
+ swap: finalSwap || swap,
77
+ });
78
+ });
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW1lZHVzYS1yZXR1cm4tc3RlcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3Mvc3RlcHMvc3dhcC9jcmVhdGUtbWVkdXNhLXJldHVybi1zdGVwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFEQUF1RDtBQUN2RCxxRUFBNEU7QUFDNUUscURBQWtHO0FBRWxHLGdEQUFtRDtBQWF0QyxRQUFBLHNCQUFzQixHQUFHLElBQUEsMEJBQVUsRUFDOUMsc0JBQXNCLEVBQ3RCLEtBQUssRUFDSCxLQUFrQyxFQUNsQyxFQUFFLFNBQVMsRUFBRSxFQUN3QyxFQUFFO0lBQ3ZELE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxLQUFLLENBQUE7SUFFekIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2IsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDOUIscUJBQXFCLENBQ3RCLENBQUE7SUFDSCxDQUFDO0lBRUQsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBYyxrQkFBVyxDQUFDLENBQUE7SUFDL0QsTUFBTSxJQUFJLEdBQUcsTUFBTSxXQUFXLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ3BELE1BQU0sUUFBUSxHQUFHLElBS2hCLENBQUE7SUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLDRCQUE0QixDQUM3QixDQUFBO0lBQ0gsQ0FBQztJQUVELElBQUksUUFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3ZCLHlCQUF5QjtRQUN6QixPQUFPLElBQUksNEJBQVksQ0FBK0I7WUFDcEQsU0FBUyxFQUFFLFFBQVEsQ0FBQyxTQUFTO1lBQzdCLElBQUk7U0FDTCxDQUFDLENBQUE7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
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createSwapStep = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const swap_1 = require("../../../modules/swap");
6
+ exports.createSwapStep = (0, workflows_sdk_1.createStep)("create-swap", async (input, { container }) => {
7
+ const { order_id, return_items, new_items, difference_due, reason, note } = input;
8
+ const swapService = container.resolve(swap_1.SWAP_MODULE);
9
+ const swap = await swapService.createSwap({
10
+ order_id,
11
+ return_items,
12
+ new_items,
13
+ reason,
14
+ note,
15
+ });
16
+ // Update difference_due after creation
17
+ const swapData = swap;
18
+ await swapService.updateSwaps({
19
+ selector: { id: swapData.id },
20
+ data: {
21
+ difference_due,
22
+ },
23
+ });
24
+ const updatedSwap = await swapService.retrieveSwap(swapData.id);
25
+ return new workflows_sdk_1.StepResponse({
26
+ swap: updatedSwap,
27
+ });
28
+ });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXN3YXAtc3RlcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3Mvc3RlcHMvc3dhcC9jcmVhdGUtc3dhcC1zdGVwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHFFQUE0RTtBQUM1RSxnREFBbUQ7QUFrQnRDLFFBQUEsY0FBYyxHQUFHLElBQUEsMEJBQVUsRUFDdEMsYUFBYSxFQUNiLEtBQUssRUFDSCxLQUEwQixFQUMxQixFQUFFLFNBQVMsRUFBRSxFQUNnQyxFQUFFO0lBQy9DLE1BQU0sRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQTtJQUVqRixNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFjLGtCQUFXLENBQUMsQ0FBQTtJQUUvRCxNQUFNLElBQUksR0FBRyxNQUFNLFdBQVcsQ0FBQyxVQUFVLENBQUM7UUFDeEMsUUFBUTtRQUNSLFlBQVk7UUFDWixTQUFTO1FBQ1QsTUFBTTtRQUNOLElBQUk7S0FDTCxDQUFDLENBQUE7SUFFRix1Q0FBdUM7SUFDdkMsTUFBTSxRQUFRLEdBQUcsSUFBc0IsQ0FBQTtJQUN2QyxNQUFNLFdBQVcsQ0FBQyxXQUFXLENBQUM7UUFDNUIsUUFBUSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUU7UUFDN0IsSUFBSSxFQUFFO1lBQ0osY0FBYztTQUNmO0tBQ0YsQ0FBQyxDQUFBO0lBRUYsTUFBTSxXQUFXLEdBQUcsTUFBTSxXQUFXLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUUvRCxPQUFPLElBQUksNEJBQVksQ0FBdUI7UUFDNUMsSUFBSSxFQUFFLFdBQVc7S0FDbEIsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUNGLENBQUEifQ==
@@ -0,0 +1,102 @@
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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
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.syncMedusaStatusStep = exports.handlePaymentDifferenceStep = exports.createMedusaExchangeStep = exports.createMedusaReturnStep = exports.validateEligibilityStep = exports.updateSwapStatusStep = exports.retrieveSwapStep = exports.createSwapStep = exports.calculateDifferenceStep = exports.validateSwapItemsStep = exports.validateOrderStep = void 0;
4
+ var validate_order_step_1 = require("./validate-order-step");
5
+ Object.defineProperty(exports, "validateOrderStep", { enumerable: true, get: function () { return validate_order_step_1.validateOrderStep; } });
6
+ var validate_swap_items_step_1 = require("./validate-swap-items-step");
7
+ Object.defineProperty(exports, "validateSwapItemsStep", { enumerable: true, get: function () { return validate_swap_items_step_1.validateSwapItemsStep; } });
8
+ var calculate_difference_step_1 = require("./calculate-difference-step");
9
+ Object.defineProperty(exports, "calculateDifferenceStep", { enumerable: true, get: function () { return calculate_difference_step_1.calculateDifferenceStep; } });
10
+ var create_swap_step_1 = require("./create-swap-step");
11
+ Object.defineProperty(exports, "createSwapStep", { enumerable: true, get: function () { return create_swap_step_1.createSwapStep; } });
12
+ var retrieve_swap_step_1 = require("./retrieve-swap-step");
13
+ Object.defineProperty(exports, "retrieveSwapStep", { enumerable: true, get: function () { return retrieve_swap_step_1.retrieveSwapStep; } });
14
+ var update_swap_status_step_1 = require("./update-swap-status-step");
15
+ Object.defineProperty(exports, "updateSwapStatusStep", { enumerable: true, get: function () { return update_swap_status_step_1.updateSwapStatusStep; } });
16
+ var validate_eligibility_step_1 = require("./validate-eligibility-step");
17
+ Object.defineProperty(exports, "validateEligibilityStep", { enumerable: true, get: function () { return validate_eligibility_step_1.validateEligibilityStep; } });
18
+ var create_medusa_return_step_1 = require("./create-medusa-return-step");
19
+ Object.defineProperty(exports, "createMedusaReturnStep", { enumerable: true, get: function () { return create_medusa_return_step_1.createMedusaReturnStep; } });
20
+ var create_medusa_exchange_step_1 = require("./create-medusa-exchange-step");
21
+ Object.defineProperty(exports, "createMedusaExchangeStep", { enumerable: true, get: function () { return create_medusa_exchange_step_1.createMedusaExchangeStep; } });
22
+ var handle_payment_difference_step_1 = require("./handle-payment-difference-step");
23
+ Object.defineProperty(exports, "handlePaymentDifferenceStep", { enumerable: true, get: function () { return handle_payment_difference_step_1.handlePaymentDifferenceStep; } });
24
+ var sync_medusa_status_step_1 = require("./sync-medusa-status-step");
25
+ Object.defineProperty(exports, "syncMedusaStatusStep", { enumerable: true, get: function () { return sync_medusa_status_step_1.syncMedusaStatusStep; } });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3N0ZXBzL3N3YXAvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkRBQXlEO0FBQWhELHdIQUFBLGlCQUFpQixPQUFBO0FBRzFCLHVFQUFrRTtBQUF6RCxpSUFBQSxxQkFBcUIsT0FBQTtBQUc5Qix5RUFBcUU7QUFBNUQsb0lBQUEsdUJBQXVCLE9BQUE7QUFHaEMsdURBQW1EO0FBQTFDLGtIQUFBLGNBQWMsT0FBQTtBQUd2QiwyREFBdUQ7QUFBOUMsc0hBQUEsZ0JBQWdCLE9BQUE7QUFHekIscUVBQWdFO0FBQXZELCtIQUFBLG9CQUFvQixPQUFBO0FBRzdCLHlFQUFxRTtBQUE1RCxvSUFBQSx1QkFBdUIsT0FBQTtBQUdoQyx5RUFBb0U7QUFBM0QsbUlBQUEsc0JBQXNCLE9BQUE7QUFHL0IsNkVBQXdFO0FBQS9ELHVJQUFBLHdCQUF3QixPQUFBO0FBR2pDLG1GQUE4RTtBQUFyRSw2SUFBQSwyQkFBMkIsT0FBQTtBQUdwQyxxRUFBZ0U7QUFBdkQsK0hBQUEsb0JBQW9CLE9BQUEifQ==
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.retrieveSwapStep = 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.retrieveSwapStep = (0, workflows_sdk_1.createStep)("retrieve-swap", 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
+ try {
14
+ const swap = await swapService.retrieveSwap(swap_id);
15
+ return new workflows_sdk_1.StepResponse({
16
+ swap,
17
+ });
18
+ }
19
+ catch (error) {
20
+ if (error instanceof utils_1.MedusaError && error.type === utils_1.MedusaError.Types.NOT_FOUND) {
21
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, `Swap with id ${swap_id} not found`);
22
+ }
23
+ throw error;
24
+ }
25
+ });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0cmlldmUtc3dhcC1zdGVwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9zdGVwcy9zd2FwL3JldHJpZXZlLXN3YXAtc3RlcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxREFBdUQ7QUFDdkQscUVBQTRFO0FBQzVFLGdEQUFtRDtBQVd0QyxRQUFBLGdCQUFnQixHQUFHLElBQUEsMEJBQVUsRUFDeEMsZUFBZSxFQUNmLEtBQUssRUFDSCxLQUE0QixFQUM1QixFQUFFLFNBQVMsRUFBRSxFQUNrQyxFQUFFO0lBQ2pELE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxLQUFLLENBQUE7SUFFekIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2IsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDOUIscUJBQXFCLENBQ3RCLENBQUE7SUFDSCxDQUFDO0lBRUQsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBYyxrQkFBVyxDQUFDLENBQUE7SUFFL0QsSUFBSSxDQUFDO1FBQ0gsTUFBTSxJQUFJLEdBQUcsTUFBTSxXQUFXLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBRXBELE9BQU8sSUFBSSw0QkFBWSxDQUF5QjtZQUM5QyxJQUFJO1NBQ0wsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixJQUFJLEtBQUssWUFBWSxtQkFBVyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssbUJBQVcsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDL0UsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFDM0IsZ0JBQWdCLE9BQU8sWUFBWSxDQUNwQyxDQUFBO1FBQ0gsQ0FBQztRQUNELE1BQU0sS0FBSyxDQUFBO0lBQ2IsQ0FBQztBQUNILENBQUMsQ0FDRixDQUFBIn0=