order-management 0.0.18 → 0.0.20

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.
@@ -5,16 +5,7 @@ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
5
  const swap_1 = require("../steps/swap");
6
6
  exports.approveSwapWorkflow = (0, workflows_sdk_1.createWorkflow)("approve-swap", (input) => {
7
7
  const { swap_id, admin_id } = input;
8
- // Step 1: Retrieve swap
9
- const { swap: retrievedSwap } = (0, swap_1.retrieveSwapStep)({
10
- swap_id,
11
- });
12
- const swapData = retrievedSwap;
13
- // Step 2: Validate status is "requested"
14
- if (swapData.status !== "requested") {
15
- throw new Error(`Swap cannot be approved. Current status: ${swapData.status}`);
16
- }
17
- // Step 3: Update to "approved"
8
+ // Update to "approved" (validation happens in updateSwapStatusStep)
18
9
  const { swap: approvedSwap } = (0, swap_1.updateSwapStatusStep)({
19
10
  swap_id,
20
11
  status: "approved",
@@ -23,16 +14,9 @@ exports.approveSwapWorkflow = (0, workflows_sdk_1.createWorkflow)("approve-swap"
23
14
  approved_by: admin_id,
24
15
  },
25
16
  });
26
- // Step 4: Update to "return_started" (after return label is created)
27
- // This would typically happen after creating a return shipping label
28
- // For now, we'll just approve - return_started can be set manually later
29
- // const { swap: returnStartedSwap } = updateSwapStatusStep({
30
- // swap_id,
31
- // status: "return_started",
32
- // })
33
17
  return new workflows_sdk_1.WorkflowResponse({
34
18
  swap: approvedSwap,
35
19
  });
36
20
  });
37
21
  exports.default = exports.approveSwapWorkflow;
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcm92ZS1zd2FwLXdvcmtmbG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9zd2Fwcy9hcHByb3ZlLXN3YXAtd29ya2Zsb3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBRzBDO0FBQzFDLHdDQUdzQjtBQU1ULFFBQUEsbUJBQW1CLEdBQUcsSUFBQSw4QkFBYyxFQUMvQyxjQUFjLEVBQ2QsQ0FDRSxLQUErQixFQUNjLEVBQUU7SUFDL0MsTUFBTSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsR0FBRyxLQUFLLENBQUE7SUFFbkMsd0JBQXdCO0lBQ3hCLE1BQU0sRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLEdBQUcsSUFBQSx1QkFBZ0IsRUFBQztRQUMvQyxPQUFPO0tBQ1IsQ0FBQyxDQUFBO0lBRUYsTUFBTSxRQUFRLEdBQUcsYUFBbUMsQ0FBQTtJQUVwRCx5Q0FBeUM7SUFDekMsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLFdBQVcsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sSUFBSSxLQUFLLENBQ2IsNENBQTRDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FDOUQsQ0FBQTtJQUNILENBQUM7SUFFRCwrQkFBK0I7SUFDL0IsTUFBTSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsR0FBRyxJQUFBLDJCQUFvQixFQUFDO1FBQ2xELE9BQU87UUFDUCxNQUFNLEVBQUUsVUFBVTtRQUNsQixRQUFRLEVBQUU7WUFDUixXQUFXLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUU7WUFDckMsV0FBVyxFQUFFLFFBQVE7U0FDdEI7S0FDRixDQUFDLENBQUE7SUFFRixxRUFBcUU7SUFDckUscUVBQXFFO0lBQ3JFLHlFQUF5RTtJQUN6RSw2REFBNkQ7SUFDN0QsYUFBYTtJQUNiLDhCQUE4QjtJQUM5QixLQUFLO0lBRUwsT0FBTyxJQUFJLGdDQUFnQixDQUE0QjtRQUNyRCxJQUFJLEVBQUUsWUFBWTtLQUNuQixDQUFDLENBQUE7QUFDSixDQUFDLENBQ0YsQ0FBQTtBQUVELGtCQUFlLDJCQUFtQixDQUFBIn0=
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcm92ZS1zd2FwLXdvcmtmbG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9zd2Fwcy9hcHByb3ZlLXN3YXAtd29ya2Zsb3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBRzBDO0FBQzFDLHdDQUVzQjtBQU1ULFFBQUEsbUJBQW1CLEdBQUcsSUFBQSw4QkFBYyxFQUMvQyxjQUFjLEVBQ2QsQ0FDRSxLQUErQixFQUNjLEVBQUU7SUFDL0MsTUFBTSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsR0FBRyxLQUFLLENBQUE7SUFFbkMsb0VBQW9FO0lBQ3BFLE1BQU0sRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLEdBQUcsSUFBQSwyQkFBb0IsRUFBQztRQUNsRCxPQUFPO1FBQ1AsTUFBTSxFQUFFLFVBQVU7UUFDbEIsUUFBUSxFQUFFO1lBQ1IsV0FBVyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFO1lBQ3JDLFdBQVcsRUFBRSxRQUFRO1NBQ3RCO0tBQ0YsQ0FBQyxDQUFBO0lBRUYsT0FBTyxJQUFJLGdDQUFnQixDQUE0QjtRQUNyRCxJQUFJLEVBQUUsWUFBWTtLQUNuQixDQUFDLENBQUE7QUFDSixDQUFDLENBQ0YsQ0FBQTtBQUVELGtCQUFlLDJCQUFtQixDQUFBIn0=
@@ -16,6 +16,12 @@ exports.createSwapWorkflow = (0, workflows_sdk_1.createWorkflow)("create-swap",
16
16
  return_items,
17
17
  new_items,
18
18
  });
19
+ // Step 2.5: Validate eligibility and rate limits
20
+ (0, swap_1.validateEligibilityStep)({
21
+ order,
22
+ return_items: validatedReturnItems,
23
+ customer_id,
24
+ });
19
25
  // Step 3: Calculate price difference
20
26
  const { difference_due } = (0, swap_1.calculateDifferenceStep)({
21
27
  order,
@@ -43,4 +49,4 @@ exports.createSwapWorkflow = (0, workflows_sdk_1.createWorkflow)("create-swap",
43
49
  });
44
50
  });
45
51
  exports.default = exports.createSwapWorkflow;
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXN3YXAtd29ya2Zsb3cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3N3YXBzL2NyZWF0ZS1zd2FwLXdvcmtmbG93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUcwQztBQUMxQyx3Q0FLc0I7QUFPVCxRQUFBLGtCQUFrQixHQUFHLElBQUEsOEJBQWMsRUFDOUMsYUFBYSxFQUNiLENBQ0UsS0FBd0QsRUFDWixFQUFFO0lBQzlDLE1BQU0sRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxHQUFHLEtBQUssQ0FBQTtJQUU5RSx3REFBd0Q7SUFDeEQsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUEsd0JBQWlCLEVBQUM7UUFDbEMsUUFBUTtRQUNSLFdBQVc7S0FDWixDQUFDLENBQUE7SUFFRiw4QkFBOEI7SUFDOUIsTUFBTSxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsR0FDeEUsSUFBQSw0QkFBcUIsRUFBQztRQUNwQixLQUFLO1FBQ0wsWUFBWTtRQUNaLFNBQVM7S0FDVixDQUFDLENBQUE7SUFFSixxQ0FBcUM7SUFDckMsTUFBTSxFQUFFLGNBQWMsRUFBRSxHQUFHLElBQUEsOEJBQXVCLEVBQUM7UUFDakQsS0FBSztRQUNMLFlBQVksRUFBRSxvQkFBb0I7UUFDbEMsU0FBUyxFQUFFLGlCQUFpQjtLQUM3QixDQUFDLENBQUE7SUFFRiw2QkFBNkI7SUFDN0IsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUEscUJBQWMsRUFBQztRQUM5QixRQUFRO1FBQ1IsWUFBWSxFQUFFLG9CQUFvQjtRQUNsQyxTQUFTLEVBQUUsaUJBQWlCO1FBQzVCLGNBQWM7UUFDZCxNQUFNO1FBQ04sSUFBSTtLQUNMLENBQUMsQ0FBQTtJQUVGLDZFQUE2RTtJQUM3RSx5QkFBeUI7SUFDekIsMkJBQTJCO0lBQzNCLHFDQUFxQztJQUNyQyx3REFBd0Q7SUFDeEQsc0JBQXNCO0lBQ3RCLEtBQUs7SUFFTCxPQUFPLElBQUksZ0NBQWdCLENBQTJCO1FBQ3BELElBQUk7S0FDTCxDQUFDLENBQUE7QUFDSixDQUFDLENBQ0YsQ0FBQTtBQUVELGtCQUFlLDBCQUFrQixDQUFBIn0=
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXN3YXAtd29ya2Zsb3cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3N3YXBzL2NyZWF0ZS1zd2FwLXdvcmtmbG93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUcwQztBQUMxQyx3Q0FNc0I7QUFPVCxRQUFBLGtCQUFrQixHQUFHLElBQUEsOEJBQWMsRUFDOUMsYUFBYSxFQUNiLENBQ0UsS0FBd0QsRUFDWixFQUFFO0lBQzlDLE1BQU0sRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxHQUFHLEtBQUssQ0FBQTtJQUU5RSx3REFBd0Q7SUFDeEQsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUEsd0JBQWlCLEVBQUM7UUFDbEMsUUFBUTtRQUNSLFdBQVc7S0FDWixDQUFDLENBQUE7SUFFRiw4QkFBOEI7SUFDOUIsTUFBTSxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsR0FDeEUsSUFBQSw0QkFBcUIsRUFBQztRQUNwQixLQUFLO1FBQ0wsWUFBWTtRQUNaLFNBQVM7S0FDVixDQUFDLENBQUE7SUFFSixpREFBaUQ7SUFDakQsSUFBQSw4QkFBdUIsRUFBQztRQUN0QixLQUFLO1FBQ0wsWUFBWSxFQUFFLG9CQUFvQjtRQUNsQyxXQUFXO0tBQ1osQ0FBQyxDQUFBO0lBRUYscUNBQXFDO0lBQ3JDLE1BQU0sRUFBRSxjQUFjLEVBQUUsR0FBRyxJQUFBLDhCQUF1QixFQUFDO1FBQ2pELEtBQUs7UUFDTCxZQUFZLEVBQUUsb0JBQW9CO1FBQ2xDLFNBQVMsRUFBRSxpQkFBaUI7S0FDN0IsQ0FBQyxDQUFBO0lBRUYsNkJBQTZCO0lBQzdCLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFBLHFCQUFjLEVBQUM7UUFDOUIsUUFBUTtRQUNSLFlBQVksRUFBRSxvQkFBb0I7UUFDbEMsU0FBUyxFQUFFLGlCQUFpQjtRQUM1QixjQUFjO1FBQ2QsTUFBTTtRQUNOLElBQUk7S0FDTCxDQUFDLENBQUE7SUFFRiw2RUFBNkU7SUFDN0UseUJBQXlCO0lBQ3pCLDJCQUEyQjtJQUMzQixxQ0FBcUM7SUFDckMsd0RBQXdEO0lBQ3hELHNCQUFzQjtJQUN0QixLQUFLO0lBRUwsT0FBTyxJQUFJLGdDQUFnQixDQUEyQjtRQUNwRCxJQUFJO0tBQ0wsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUNGLENBQUE7QUFFRCxrQkFBZSwwQkFBa0IsQ0FBQSJ9
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.executeSwapWorkflow = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const swap_1 = require("../steps/swap");
6
+ exports.executeSwapWorkflow = (0, workflows_sdk_1.createWorkflow)("execute-swap", (input) => {
7
+ const { swap_id } = input;
8
+ // Step 1: Retrieve swap to validate it's approved
9
+ const { swap: retrievedSwap } = (0, swap_1.retrieveSwapStep)({
10
+ swap_id,
11
+ });
12
+ // Step 2: Create Medusa Return
13
+ const { return_id, swap: swapWithReturn } = (0, swap_1.createMedusaReturnStep)({
14
+ swap_id,
15
+ });
16
+ // Step 3: Create Medusa Exchange linked to return
17
+ const { exchange_id, swap: swapWithExchange } = (0, swap_1.createMedusaExchangeStep)({
18
+ swap_id,
19
+ return_id,
20
+ });
21
+ // Step 4: Update swap status to return_started
22
+ const { swap: finalSwap } = (0, swap_1.updateSwapStatusStep)({
23
+ swap_id,
24
+ status: "return_started",
25
+ metadata: {
26
+ medusa_integration_completed_at: new Date().toISOString(),
27
+ },
28
+ });
29
+ return new workflows_sdk_1.WorkflowResponse({
30
+ swap: finalSwap,
31
+ return_id,
32
+ exchange_id,
33
+ });
34
+ });
35
+ exports.default = exports.executeSwapWorkflow;
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0ZS1zd2FwLXdvcmtmbG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9zd2Fwcy9leGVjdXRlLXN3YXAtd29ya2Zsb3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBRzBDO0FBQzFDLHdDQUtzQjtBQU1ULFFBQUEsbUJBQW1CLEdBQUcsSUFBQSw4QkFBYyxFQUMvQyxjQUFjLEVBQ2QsQ0FDRSxLQUErQixFQUNjLEVBQUU7SUFDL0MsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLEtBQUssQ0FBQTtJQUV6QixrREFBa0Q7SUFDbEQsTUFBTSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsR0FBRyxJQUFBLHVCQUFnQixFQUFDO1FBQy9DLE9BQU87S0FDUixDQUFDLENBQUE7SUFFRiwrQkFBK0I7SUFDL0IsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLEdBQUcsSUFBQSw2QkFBc0IsRUFBQztRQUNqRSxPQUFPO0tBQ1IsQ0FBQyxDQUFBO0lBRUYsa0RBQWtEO0lBQ2xELE1BQU0sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLEdBQUcsSUFBQSwrQkFBd0IsRUFBQztRQUN2RSxPQUFPO1FBQ1AsU0FBUztLQUNWLENBQUMsQ0FBQTtJQUVGLCtDQUErQztJQUMvQyxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUEsMkJBQW9CLEVBQUM7UUFDL0MsT0FBTztRQUNQLE1BQU0sRUFBRSxnQkFBZ0I7UUFDeEIsUUFBUSxFQUFFO1lBQ1IsK0JBQStCLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUU7U0FDMUQ7S0FDRixDQUFDLENBQUE7SUFFRixPQUFPLElBQUksZ0NBQWdCLENBQTRCO1FBQ3JELElBQUksRUFBRSxTQUFTO1FBQ2YsU0FBUztRQUNULFdBQVc7S0FDWixDQUFDLENBQUE7QUFDSixDQUFDLENBQ0YsQ0FBQTtBQUVELGtCQUFlLDJCQUFtQixDQUFBIn0=
package/README.md CHANGED
@@ -265,6 +265,16 @@ requested → approved → return_started → return_shipped → return_received
265
265
  ↘ cancelled (from any status except completed)
266
266
  ```
267
267
 
268
+ ### Storefront Implementation Guide
269
+
270
+ For detailed implementation instructions on integrating exchange functionality into your storefront, see the [Storefront Exchange Implementation Guide](./docs/STOREFRONT_EXCHANGE_IMPLEMENTATION.md). This guide includes:
271
+
272
+ - Complete API documentation with request/response examples
273
+ - React/TypeScript implementation examples
274
+ - Error handling best practices
275
+ - Status flow diagrams
276
+ - Integration checklist
277
+
268
278
  ### Storefront API Endpoints
269
279
 
270
280
  #### Create Swap Request
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "order-management",
3
- "version": "0.0.18",
3
+ "version": "0.0.20",
4
4
  "description": "A starter for Medusa plugins.",
5
5
  "author": "Medusa (https://medusajs.com)",
6
6
  "license": "MIT",