@medusajs/loyalty-plugin 0.0.2 → 0.0.4
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.
- package/.medusa/server/src/admin/index.js +2436 -2373
- package/.medusa/server/src/admin/index.mjs +2439 -2376
- package/.medusa/server/src/api/store/carts/[id]/store-credits/route.js +24 -0
- package/.medusa/server/src/api/store/carts/middlewares.js +9 -1
- package/.medusa/server/src/api/store/carts/validators.js +5 -2
- package/.medusa/server/src/links/customer-gift-card-link.js +2 -2
- package/.medusa/server/src/links/customer-store-credit-account-link.js +2 -2
- package/.medusa/server/src/links/order-line-item-gift-card-link.js +2 -2
- package/.medusa/server/src/workflows/carts/workflows/add-store-credits-to-cart.js +104 -0
- package/.medusa/server/src/workflows/hooks/after-order-created.js +2 -2
- package/.medusa/server/src/workflows/hooks/after-order-credit-lines-created.js +3 -3
- package/.medusa/server/src/workflows/hooks/before-payment-collection-refresh.js +1 -1
- package/.medusa/server/src/workflows/hooks/complete-cart-before-payment-authorization.js +1 -1
- package/.medusa/server/src/workflows/orders/workflows/refund-credit-lines.js +115 -0
- package/package.json +8 -8
- package/.medusa/server/src/workflows/orders/workflows/refund-gift-card-credit-lines.js +0 -96
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.POST = void 0;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const add_store_credits_to_cart_1 = require("../../../../../workflows/carts/workflows/add-store-credits-to-cart");
|
|
6
|
+
const POST = async (req, res) => {
|
|
7
|
+
const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.REMOTE_QUERY);
|
|
8
|
+
const { id } = req.params;
|
|
9
|
+
await add_store_credits_to_cart_1.addStoreCreditsToCartWorkflow.run({
|
|
10
|
+
input: {
|
|
11
|
+
cart_id: id,
|
|
12
|
+
...req.validatedBody,
|
|
13
|
+
},
|
|
14
|
+
container: req.scope,
|
|
15
|
+
});
|
|
16
|
+
const { data: [cart], } = await query.graph({
|
|
17
|
+
entity: "cart",
|
|
18
|
+
fields: req.queryConfig.fields,
|
|
19
|
+
filters: { id },
|
|
20
|
+
}, { throwIfKeyNotFound: true });
|
|
21
|
+
res.json({ cart });
|
|
22
|
+
};
|
|
23
|
+
exports.POST = POST;
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2NhcnRzL1tpZF0vc3RvcmUtY3JlZGl0cy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSxxREFBc0U7QUFDdEUsa0hBQW1IO0FBRzVHLE1BQU0sSUFBSSxHQUFHLEtBQUssRUFDdkIsR0FBK0QsRUFDL0QsR0FBbUIsRUFDbkIsRUFBRTtJQUNGLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3hFLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO0lBRTFCLE1BQU0seURBQTZCLENBQUMsR0FBRyxDQUFDO1FBQ3RDLEtBQUssRUFBRTtZQUNMLE9BQU8sRUFBRSxFQUFFO1lBQ1gsR0FBRyxHQUFHLENBQUMsYUFBYTtTQUNyQjtRQUNELFNBQVMsRUFBRSxHQUFHLENBQUMsS0FBSztLQUNyQixDQUFDLENBQUM7SUFFSCxNQUFNLEVBQ0osSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQ2IsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQ25CO1FBQ0UsTUFBTSxFQUFFLE1BQU07UUFDZCxNQUFNLEVBQUUsR0FBRyxDQUFDLFdBQVcsQ0FBQyxNQUFNO1FBQzlCLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRTtLQUNoQixFQUNELEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxFQUFFLENBQzdCLENBQUM7SUFFRixHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUNyQixDQUFDLENBQUM7QUEzQlcsUUFBQSxJQUFJLFFBMkJmIn0=
|
|
@@ -22,5 +22,13 @@ exports.storeCartMiddlewares = [
|
|
|
22
22
|
(0, framework_1.validateAndTransformQuery)(validators_1.StoreGetCartsCart, query_config_1.retrieveTransformQueryConfig),
|
|
23
23
|
],
|
|
24
24
|
},
|
|
25
|
+
{
|
|
26
|
+
method: ["POST"],
|
|
27
|
+
matcher: "/store/carts/:id/store-credits",
|
|
28
|
+
middlewares: [
|
|
29
|
+
(0, framework_1.validateAndTransformBody)(validators_2.StoreAddStoreCreditsToCart),
|
|
30
|
+
(0, framework_1.validateAndTransformQuery)(validators_1.StoreGetCartsCart, query_config_1.retrieveTransformQueryConfig),
|
|
31
|
+
],
|
|
32
|
+
},
|
|
25
33
|
];
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2NhcnRzL21pZGRsZXdhcmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1EQUc2QjtBQUU3Qiw0RUFBZ0Y7QUFDaEYsaURBQThEO0FBQzlELDZDQUlzQjtBQUVULFFBQUEsb0JBQW9CLEdBQXNCO0lBQ3JEO1FBQ0UsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDO1FBQ2hCLE9BQU8sRUFBRSw2QkFBNkI7UUFDdEMsV0FBVyxFQUFFO1lBQ1gsSUFBQSxvQ0FBd0IsRUFBQyxtQ0FBc0IsQ0FBQztZQUNoRCxJQUFBLHFDQUF5QixFQUN2Qiw4QkFBaUIsRUFDakIsMkNBQTRCLENBQzdCO1NBQ0Y7S0FDRjtJQUNEO1FBQ0UsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDO1FBQ2xCLE9BQU8sRUFBRSw2QkFBNkI7UUFDdEMsV0FBVyxFQUFFO1lBQ1gsSUFBQSxvQ0FBd0IsRUFBQyx3Q0FBMkIsQ0FBQztZQUNyRCxJQUFBLHFDQUF5QixFQUN2Qiw4QkFBaUIsRUFDakIsMkNBQTRCLENBQzdCO1NBQ0Y7S0FDRjtJQUNEO1FBQ0UsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDO1FBQ2hCLE9BQU8sRUFBRSxnQ0FBZ0M7UUFDekMsV0FBVyxFQUFFO1lBQ1gsSUFBQSxvQ0FBd0IsRUFBQyx1Q0FBMEIsQ0FBQztZQUNwRCxJQUFBLHFDQUF5QixFQUN2Qiw4QkFBaUIsRUFDakIsMkNBQTRCLENBQzdCO1NBQ0Y7S0FDRjtDQUNGLENBQUMifQ==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.StoreRemoveGiftCardFromCart = exports.StoreAddGiftCardToCart = void 0;
|
|
3
|
+
exports.StoreAddStoreCreditsToCart = exports.StoreRemoveGiftCardFromCart = exports.StoreAddGiftCardToCart = void 0;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
5
|
exports.StoreAddGiftCardToCart = zod_1.z
|
|
6
6
|
.object({
|
|
@@ -12,4 +12,7 @@ exports.StoreRemoveGiftCardFromCart = zod_1.z
|
|
|
12
12
|
code: zod_1.z.string(),
|
|
13
13
|
})
|
|
14
14
|
.strict();
|
|
15
|
-
|
|
15
|
+
exports.StoreAddStoreCreditsToCart = zod_1.z.object({
|
|
16
|
+
amount: zod_1.z.number().optional(),
|
|
17
|
+
});
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvc3RvcmUvY2FydHMvdmFsaWRhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2QkFBd0I7QUFHWCxRQUFBLHNCQUFzQixHQUFHLE9BQUM7S0FDcEMsTUFBTSxDQUFDO0lBQ04sSUFBSSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUU7Q0FDakIsQ0FBQztLQUNELE1BQU0sRUFBRSxDQUFDO0FBS0MsUUFBQSwyQkFBMkIsR0FBRyxPQUFDO0tBQ3pDLE1BQU0sQ0FBQztJQUNOLElBQUksRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFO0NBQ2pCLENBQUM7S0FDRCxNQUFNLEVBQUUsQ0FBQztBQUtDLFFBQUEsMEJBQTBCLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNqRCxNQUFNLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtDQUM5QixDQUFDLENBQUMifQ==
|
|
@@ -9,5 +9,5 @@ const loyalty_1 = __importDefault(require("../modules/loyalty"));
|
|
|
9
9
|
(0, utils_1.defineLink)({
|
|
10
10
|
linkable: loyalty_1.default.linkable.giftCard,
|
|
11
11
|
field: "customer_id",
|
|
12
|
-
}, customer_1.default.linkable.customer, { readOnly: true });
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
}, customer_1.default.linkable.customer, { readOnly: true, isList: false });
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItZ2lmdC1jYXJkLWxpbmsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGlua3MvY3VzdG9tZXItZ2lmdC1jYXJkLWxpbmsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxxREFBdUQ7QUFDdkQseUVBQXVEO0FBQ3ZELGlFQUErQztBQUUvQyxJQUFBLGtCQUFVLEVBQ1I7SUFDRSxRQUFRLEVBQUUsaUJBQWEsQ0FBQyxRQUFRLENBQUMsUUFBUTtJQUN6QyxLQUFLLEVBQUUsYUFBYTtDQUNyQixFQUNELGtCQUFjLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFDaEMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FDbEMsQ0FBQyJ9
|
|
@@ -9,5 +9,5 @@ const store_credit_1 = __importDefault(require("../modules/store-credit"));
|
|
|
9
9
|
(0, utils_1.defineLink)({
|
|
10
10
|
linkable: store_credit_1.default.linkable.storeCreditAccount,
|
|
11
11
|
field: "customer_id",
|
|
12
|
-
}, customer_1.default.linkable.customer, { readOnly: true });
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
}, customer_1.default.linkable.customer, { readOnly: true, isList: false });
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItc3RvcmUtY3JlZGl0LWFjY291bnQtbGluay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saW5rcy9jdXN0b21lci1zdG9yZS1jcmVkaXQtYWNjb3VudC1saW5rLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEscURBQXVEO0FBQ3ZELHlFQUF1RDtBQUN2RCwyRUFBd0Q7QUFFeEQsSUFBQSxrQkFBVSxFQUNSO0lBQ0UsUUFBUSxFQUFFLHNCQUFpQixDQUFDLFFBQVEsQ0FBQyxrQkFBa0I7SUFDdkQsS0FBSyxFQUFFLGFBQWE7Q0FDckIsRUFDRCxrQkFBYyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQ2hDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQ2xDLENBQUMifQ==
|
|
@@ -15,5 +15,5 @@ const loyalty_1 = __importDefault(require("../modules/loyalty"));
|
|
|
15
15
|
field: "id",
|
|
16
16
|
linkable: "OrderLineItem",
|
|
17
17
|
primaryKey: "id",
|
|
18
|
-
}, { readOnly: true });
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
}, { readOnly: true, isList: false });
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItbGluZS1pdGVtLWdpZnQtY2FyZC1saW5rLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpbmtzL29yZGVyLWxpbmUtaXRlbS1naWZ0LWNhcmQtbGluay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHFEQUF1RDtBQUN2RCxpRUFBK0M7QUFFL0MsSUFBQSxrQkFBVSxFQUNSO0lBQ0UsUUFBUSxFQUFFLGlCQUFhLENBQUMsUUFBUSxDQUFDLFFBQVE7SUFDekMsS0FBSyxFQUFFLGNBQWM7Q0FDdEIsRUFDRDtJQUNFLFdBQVcsRUFBRSxPQUFPO0lBQ3BCLE1BQU0sRUFBRSxlQUFlO0lBQ3ZCLEtBQUssRUFBRSxXQUFXO0lBQ2xCLEtBQUssRUFBRSxJQUFJO0lBQ1gsUUFBUSxFQUFFLGVBQWU7SUFDekIsVUFBVSxFQUFFLElBQUk7Q0FDakIsRUFDRCxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUNsQyxDQUFDIn0=
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addStoreCreditsToCartWorkflow = exports.validateCartStep = exports.validateStoreCreditAccountStep = exports.retrieveGiftCardsBalanceStep = void 0;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const core_flows_1 = require("@medusajs/medusa/core-flows");
|
|
6
|
+
const workflows_sdk_1 = require("@medusajs/workflows-sdk");
|
|
7
|
+
const types_1 = require("../../../types");
|
|
8
|
+
exports.retrieveGiftCardsBalanceStep = (0, workflows_sdk_1.createStep)("retrieve-gift-cards-balance", async function ({ storeCreditAccount, giftCards, }, { container }) {
|
|
9
|
+
const accountBalanceMap = {};
|
|
10
|
+
const module = container.resolve(types_1.PluginModule.STORE_CREDIT);
|
|
11
|
+
const giftCardCodes = giftCards.map((gc) => gc.code);
|
|
12
|
+
const transactionGroups = await module.listTransactionGroups({
|
|
13
|
+
code: giftCardCodes,
|
|
14
|
+
});
|
|
15
|
+
const transactionGroupMap = {};
|
|
16
|
+
for (const transactionGroup of transactionGroups) {
|
|
17
|
+
transactionGroupMap[transactionGroup.code] = transactionGroup;
|
|
18
|
+
}
|
|
19
|
+
for (const giftCardCode of giftCardCodes) {
|
|
20
|
+
const transactionGroup = transactionGroupMap[giftCardCode];
|
|
21
|
+
const giftCardBalance = await module.retrieveAccountStats({
|
|
22
|
+
account_id: storeCreditAccount.id,
|
|
23
|
+
transaction_group_id: transactionGroup.id,
|
|
24
|
+
});
|
|
25
|
+
accountBalanceMap[giftCardCode] = giftCardBalance;
|
|
26
|
+
}
|
|
27
|
+
return new workflows_sdk_1.StepResponse(accountBalanceMap);
|
|
28
|
+
});
|
|
29
|
+
exports.validateStoreCreditAccountStep = (0, workflows_sdk_1.createStep)("validate-store-credit-account", async function ({ storeCreditAccount, }) {
|
|
30
|
+
if (utils_1.MathBN.convert(storeCreditAccount.balance).lte(0)) {
|
|
31
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, `Store credit account has no balance`);
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
exports.validateCartStep = (0, workflows_sdk_1.createStep)("validate-cart", async function ({ cart, input, }) {
|
|
35
|
+
if (!cart) {
|
|
36
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, `Cart with id ${input.cart_id} not found`);
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
/*
|
|
40
|
+
A workflow that adds store credits to a cart
|
|
41
|
+
*/
|
|
42
|
+
exports.addStoreCreditsToCartWorkflow = (0, workflows_sdk_1.createWorkflow)("add-store-credits-to-cart", function (input) {
|
|
43
|
+
const cartQuery = (0, core_flows_1.useQueryGraphStep)({
|
|
44
|
+
entity: "cart",
|
|
45
|
+
filters: { id: input.cart_id },
|
|
46
|
+
fields: ["id", "currency_code", "total", "customer_id", "credit_lines.*"],
|
|
47
|
+
}).config({ name: "get-cart-query" });
|
|
48
|
+
const cart = (0, workflows_sdk_1.transform)({ cartQuery }, ({ cartQuery }) => {
|
|
49
|
+
return cartQuery.data[0];
|
|
50
|
+
});
|
|
51
|
+
(0, exports.validateCartStep)({ cart, input });
|
|
52
|
+
const storeCreditAccountQuery = (0, core_flows_1.useQueryGraphStep)({
|
|
53
|
+
entity: "store_credit_account",
|
|
54
|
+
filters: {
|
|
55
|
+
customer_id: cart.customer_id,
|
|
56
|
+
currency_code: cart.currency_code,
|
|
57
|
+
},
|
|
58
|
+
fields: ["id", "balance"],
|
|
59
|
+
}).config({ name: "get-store-credit-account-query" });
|
|
60
|
+
const storeCreditAccount = (0, workflows_sdk_1.transform)({ storeCreditAccountQuery }, ({ storeCreditAccountQuery }) => {
|
|
61
|
+
return storeCreditAccountQuery.data[0];
|
|
62
|
+
});
|
|
63
|
+
(0, exports.validateStoreCreditAccountStep)({
|
|
64
|
+
storeCreditAccount,
|
|
65
|
+
});
|
|
66
|
+
const creditLineActions = (0, workflows_sdk_1.transform)({ storeCreditAccount, cart, input }, ({ storeCreditAccount, cart, input }) => {
|
|
67
|
+
const creditLinesToCreate = [];
|
|
68
|
+
const creditLinesToDelete = (cart.credit_lines ?? [])
|
|
69
|
+
.filter((creditLine) => creditLine.reference === "store-credit")
|
|
70
|
+
.map((creditLine) => creditLine.id);
|
|
71
|
+
let amount = input.amount
|
|
72
|
+
? utils_1.MathBN.convert(input.amount)
|
|
73
|
+
: utils_1.MathBN.convert(storeCreditAccount.balance);
|
|
74
|
+
if ((0, utils_1.isDefined)(input.amount) &&
|
|
75
|
+
utils_1.MathBN.convert(amount).gt(utils_1.MathBN.convert(storeCreditAccount.balance))) {
|
|
76
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, `Amount is greater than the store credit account balance`);
|
|
77
|
+
}
|
|
78
|
+
if (amount.gt(0)) {
|
|
79
|
+
creditLinesToCreate.push({
|
|
80
|
+
cart_id: cart.id,
|
|
81
|
+
amount: utils_1.MathBN.min(amount, cart.total).toNumber(),
|
|
82
|
+
reference: "store-credit",
|
|
83
|
+
reference_id: storeCreditAccount.id,
|
|
84
|
+
metadata: {},
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
return {
|
|
88
|
+
creditLinesToCreate,
|
|
89
|
+
creditLinesToDelete,
|
|
90
|
+
};
|
|
91
|
+
});
|
|
92
|
+
const [_deletedCreditLines, createdCreditLines] = (0, workflows_sdk_1.parallelize)(core_flows_1.deleteCartCreditLinesWorkflow.runAsStep({
|
|
93
|
+
input: {
|
|
94
|
+
id: creditLineActions.creditLinesToDelete,
|
|
95
|
+
},
|
|
96
|
+
}), core_flows_1.createCartCreditLinesWorkflow.runAsStep({
|
|
97
|
+
input: creditLineActions.creditLinesToCreate,
|
|
98
|
+
}));
|
|
99
|
+
core_flows_1.refreshCartItemsWorkflow.runAsStep({
|
|
100
|
+
input: { cart_id: input.cart_id },
|
|
101
|
+
});
|
|
102
|
+
return new workflows_sdk_1.WorkflowResponse(createdCreditLines);
|
|
103
|
+
});
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXN0b3JlLWNyZWRpdHMtdG8tY2FydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvY2FydHMvd29ya2Zsb3dzL2FkZC1zdG9yZS1jcmVkaXRzLXRvLWNhcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EscURBQTJFO0FBQzNFLDREQUtxQztBQUNyQywyREFPaUM7QUFFakMsMENBQThDO0FBUWpDLFFBQUEsNEJBQTRCLEdBQUcsSUFBQSwwQkFBVSxFQUNwRCw2QkFBNkIsRUFDN0IsS0FBSyxXQUNILEVBQ0Usa0JBQWtCLEVBQ2xCLFNBQVMsR0FJVixFQUNELEVBQUUsU0FBUyxFQUFFO0lBRWIsTUFBTSxpQkFBaUIsR0FBdUMsRUFBRSxDQUFDO0lBQ2pFLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQzlCLG9CQUFZLENBQUMsWUFBWSxDQUMxQixDQUFDO0lBRUYsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXJELE1BQU0saUJBQWlCLEdBQUcsTUFBTSxNQUFNLENBQUMscUJBQXFCLENBQUM7UUFDM0QsSUFBSSxFQUFFLGFBQWE7S0FDcEIsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxtQkFBbUIsR0FBMkMsRUFBRSxDQUFDO0lBRXZFLEtBQUssTUFBTSxnQkFBZ0IsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1FBQ2pELG1CQUFtQixDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLGdCQUFnQixDQUFDO0lBQ2hFLENBQUM7SUFFRCxLQUFLLE1BQU0sWUFBWSxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ3pDLE1BQU0sZ0JBQWdCLEdBQUcsbUJBQW1CLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFM0QsTUFBTSxlQUFlLEdBQUcsTUFBTSxNQUFNLENBQUMsb0JB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
|
|
@@ -4,7 +4,7 @@ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
|
4
4
|
const core_flows_1 = require("@medusajs/medusa/core-flows");
|
|
5
5
|
const confirm_cart_credit_lines_1 = require("../carts/workflows/confirm-cart-credit-lines");
|
|
6
6
|
const link_gift_cards_to_order_1 = require("../orders/workflows/link-gift-cards-to-order");
|
|
7
|
-
core_flows_1.completeCartWorkflow.hooks.
|
|
7
|
+
core_flows_1.completeCartWorkflow.hooks.orderCreated(async (data, stepContext) => {
|
|
8
8
|
const { container, ...sharedContext } = stepContext;
|
|
9
9
|
const { order_id, cart_id } = data;
|
|
10
10
|
const transaction = await link_gift_cards_to_order_1.cloneCartGiftCardsToOrderWorkflow.run({
|
|
@@ -28,4 +28,4 @@ core_flows_1.completeCartWorkflow.hooks.afterOrderCreated(async (data, stepConte
|
|
|
28
28
|
context: { ...sharedContext },
|
|
29
29
|
});
|
|
30
30
|
});
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWZ0ZXItb3JkZXItY3JlYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvaG9va3MvYWZ0ZXItb3JkZXItY3JlYXRlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHFFQUFpRTtBQUNqRSw0REFBbUU7QUFDbkUsNEZBQThGO0FBQzlGLDJGQUFpRztBQUVoRyxpQ0FBb0IsQ0FBQyxLQUFhLENBQUMsWUFBWSxDQUM5QyxLQUFLLEVBQUUsSUFBMkMsRUFBRSxXQUFXLEVBQUUsRUFBRTtJQUNqRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsYUFBYSxFQUFFLEdBQUcsV0FBVyxDQUFDO0lBQ3BELE1BQU0sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDO0lBRW5DLE1BQU0sV0FBVyxHQUFHLE1BQU0sNERBQWlDLENBQUMsR0FBRyxDQUFDO1FBQzlELEtBQUssRUFBRTtZQUNMLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLE9BQU8sRUFBRSxPQUFPO1NBQ2pCO1FBQ0QsU0FBUztRQUNULE9BQU8sRUFBRSxFQUFFLEdBQUcsYUFBYSxFQUFFO0tBQzlCLENBQUMsQ0FBQztJQUVILE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxXQUFXLENBQUM7SUFFL0IsT0FBTyxJQUFJLDRCQUFZLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUM3RCxDQUFDLEVBQ0QsS0FBSyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsRUFBRTtJQUNuQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDbkIsT0FBTztJQUNULENBQUM7SUFFRCxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsYUFBYSxFQUFFLEdBQUcsV0FBVyxDQUFDO0lBRXBELE1BQU0sSUFBQSwwREFBOEIsRUFBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDckQsYUFBYTtRQUNiLFNBQVM7UUFDVCxPQUFPLEVBQUUsRUFBRSxHQUFHLGFBQWEsRUFBRTtLQUM5QixDQUFDLENBQUM7QUFDTCxDQUFDLENBQ0YsQ0FBQyJ9
|
|
@@ -3,11 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
4
4
|
const core_flows_1 = require("@medusajs/medusa/core-flows");
|
|
5
5
|
const confirm_cart_credit_lines_1 = require("../carts/workflows/confirm-cart-credit-lines");
|
|
6
|
-
const
|
|
6
|
+
const refund_credit_lines_1 = require("../orders/workflows/refund-credit-lines");
|
|
7
7
|
core_flows_1.createOrderCreditLinesWorkflow.hooks.creditLinesCreated(async (data, stepContext) => {
|
|
8
8
|
const { container, ...sharedContext } = stepContext;
|
|
9
9
|
const { credit_lines: createdCreditLines } = data;
|
|
10
|
-
const transaction = await
|
|
10
|
+
const transaction = await refund_credit_lines_1.refundCreditLinesWorkflow.run({
|
|
11
11
|
input: {
|
|
12
12
|
order_id: data.order_id,
|
|
13
13
|
credit_lines: createdCreditLines,
|
|
@@ -28,4 +28,4 @@ core_flows_1.createOrderCreditLinesWorkflow.hooks.creditLinesCreated(async (data
|
|
|
28
28
|
context: { ...sharedContext },
|
|
29
29
|
});
|
|
30
30
|
});
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWZ0ZXItb3JkZXItY3JlZGl0LWxpbmVzLWNyZWF0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2hvb2tzL2FmdGVyLW9yZGVyLWNyZWRpdC1saW5lcy1jcmVhdGVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEscUVBQWlFO0FBQ2pFLDREQUE2RTtBQUM3RSw0RkFBOEY7QUFDOUYsaUZBQW9GO0FBRW5GLDJDQUE4QixDQUFDLEtBQWEsQ0FBQyxrQkFBa0IsQ0FDOUQsS0FBSyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsRUFBRTtJQUMxQixNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsYUFBYSxFQUFFLEdBQUcsV0FBVyxDQUFDO0lBQ3BELE1BQU0sRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsR0FBRyxJQUFJLENBQUM7SUFFbEQsTUFBTSxXQUFXLEdBQUcsTUFBTSwrQ0FBeUIsQ0FBQyxHQUFHLENBQUM7UUFDdEQsS0FBSyxFQUFFO1lBQ0wsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFlBQVksRUFBRSxrQkFBa0I7U0FDakM7UUFDRCxTQUFTO1FBQ1QsT0FBTyxFQUFFLEVBQUUsR0FBRyxhQUFhLEVBQUU7S0FDOUIsQ0FBQyxDQUFDO0lBRUgsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLFdBQVcsQ0FBQztJQUUvQixPQUFPLElBQUksNEJBQVksQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQzdELENBQUMsRUFDRCxLQUFLLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxFQUFFO0lBQ25DLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNuQixPQUFPO0lBQ1QsQ0FBQztJQUVELE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxhQUFhLEVBQUUsR0FBRyxXQUFXLENBQUM7SUFFcEQsTUFBTSxJQUFBLDBEQUE4QixFQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNyRCxhQUFhO1FBQ2IsU0FBUztRQUNULE9BQU8sRUFBRSxFQUFFLEdBQUcsYUFBYSxFQUFFO0tBQzlCLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FDRixDQUFDIn0=
|
|
@@ -23,4 +23,4 @@ core_flows_1.refreshCartItemsWorkflow.hooks.beforeRefreshingPaymentCollection(as
|
|
|
23
23
|
context: { ...sharedContext },
|
|
24
24
|
});
|
|
25
25
|
});
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVmb3JlLXBheW1lbnQtY29sbGVjdGlvbi1yZWZyZXNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9ob29rcy9iZWZvcmUtcGF5bWVudC1jb2xsZWN0aW9uLXJlZnJlc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw0REFBdUU7QUFDdkUsMkRBQXVEO0FBQ3ZELHdGQUEwRjtBQUV6RixxQ0FBd0IsQ0FBQyxLQUFhLENBQUMsaUNBQWlDLENBQ3ZFLEtBQUssRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEVBQUU7SUFDMUIsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLGFBQWEsRUFBRSxHQUFHLFdBQVcsQ0FBQztJQUVwRCxNQUFNLFdBQVcsR0FBRyxNQUFNLHNEQUE0QixDQUFDLEdBQUcsQ0FBQztRQUN6RCxLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUU7UUFDdEMsU0FBUztRQUNULE9BQU8sRUFBRSxFQUFFLEdBQUcsYUFBYSxFQUFFO0tBQzlCLENBQUMsQ0FBQztJQUVILE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxXQUFXLENBQUM7SUFFL0IsT0FBTyxJQUFJLDRCQUFZLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUM3RCxDQUFDLEVBQ0QsS0FBSyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsRUFBRTtJQUNuQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDbkIsT0FBTztJQUNULENBQUM7SUFFRCxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsYUFBYSxFQUFFLEdBQUcsV0FBVyxDQUFDO0lBRXBELE1BQU0sSUFBQSxzREFBNEIsRUFBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDbkQsYUFBYTtRQUNiLFNBQVM7UUFDVCxPQUFPLEVBQUUsRUFBRSxHQUFHLGFBQWEsRUFBRTtLQUM5QixDQUFDLENBQUM7QUFDTCxDQUFDLENBQ0YsQ0FBQyJ9
|
|
@@ -24,4 +24,4 @@ core_flows_1.completeCartWorkflow.hooks.beforePaymentAuthorization(async (data,
|
|
|
24
24
|
context: { ...sharedContext },
|
|
25
25
|
});
|
|
26
26
|
});
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGxldGUtY2FydC1iZWZvcmUtcGF5bWVudC1hdXRob3JpemF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9ob29rcy9jb21wbGV0ZS1jYXJ0LWJlZm9yZS1wYXltZW50LWF1dGhvcml6YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxxRUFBaUU7QUFDakUsNERBQW1FO0FBQ25FLDRGQUE4RjtBQUU3RixpQ0FBb0IsQ0FBQyxLQUFhLENBQUMsMEJBQTBCLENBQzVELEtBQUssRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEVBQUU7SUFDMUIsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLGFBQWEsRUFBRSxHQUFHLFdBQVcsQ0FBQztJQUNwRCxNQUFNLEVBQ0osS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxHQUN2QixHQUFHLElBQWlDLENBQUM7SUFFdEMsTUFBTSxXQUFXLEdBQUcsTUFBTSwwREFBOEIsQ0FBQyxHQUFHLENBQUM7UUFDM0QsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFO1FBQ2xCLFNBQVM7UUFDVCxPQUFPLEVBQUUsRUFBRSxHQUFHLGFBQWEsRUFBRTtLQUM5QixDQUFDLENBQUM7SUFFSCxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsV0FBVyxDQUFDO0lBRS9CLE9BQU8sSUFBSSw0QkFBWSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDN0QsQ0FBQyxFQUNELEtBQUssRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLEVBQUU7SUFDbkMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ25CLE9BQU87SUFDVCxDQUFDO0lBRUQsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLGFBQWEsRUFBRSxHQUFHLFdBQVcsQ0FBQztJQUVwRCxNQUFNLElBQUEsMERBQThCLEVBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ3JELGFBQWE7UUFDYixTQUFTO1FBQ1QsT0FBTyxFQUFFLEVBQUUsR0FBRyxhQUFhLEVBQUU7S0FDOUIsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUNGLENBQUMifQ==
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.refundCreditLinesWorkflow = exports.creditAccountTransactionsStep = void 0;
|
|
7
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
8
|
+
const core_flows_1 = require("@medusajs/medusa/core-flows");
|
|
9
|
+
const workflows_sdk_1 = require("@medusajs/workflows-sdk");
|
|
10
|
+
const crypto_1 = __importDefault(require("crypto"));
|
|
11
|
+
const types_1 = require("../../../types");
|
|
12
|
+
const credit_accounts_1 = require("../../../workflows/store-credit/workflows/credit-accounts");
|
|
13
|
+
exports.creditAccountTransactionsStep = (0, workflows_sdk_1.createStep)("credit-account-transactions", async function ({ giftCards, order, creditLines, }, { container }) {
|
|
14
|
+
const module = container.resolve(types_1.PluginModule.STORE_CREDIT);
|
|
15
|
+
const transactionGroupsMap = {};
|
|
16
|
+
const giftCardCodes = giftCards.map((giftCard) => giftCard.code);
|
|
17
|
+
const negativeCreditLines = creditLines.filter((creditLine) => utils_1.MathBN.convert(creditLine.amount).lt(0));
|
|
18
|
+
let totalCreditAmount = negativeCreditLines.reduce((acc, creditLine) => utils_1.MathBN.add(acc, utils_1.MathBN.convert(creditLine.amount).multipliedBy(-1)), utils_1.MathBN.convert(0));
|
|
19
|
+
const [storeCreditAccount] = await module.listStoreCreditAccounts({
|
|
20
|
+
customer_id: order.customer_id,
|
|
21
|
+
currency_code: order.currency_code,
|
|
22
|
+
});
|
|
23
|
+
if (!storeCreditAccount) {
|
|
24
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Store credit account not found");
|
|
25
|
+
}
|
|
26
|
+
const transactionGroups = await module.listTransactionGroups({
|
|
27
|
+
code: giftCardCodes,
|
|
28
|
+
});
|
|
29
|
+
for (const transactionGroup of transactionGroups) {
|
|
30
|
+
transactionGroupsMap[transactionGroup.code] = transactionGroup;
|
|
31
|
+
}
|
|
32
|
+
const creditTransactions = [];
|
|
33
|
+
for (const giftCard of giftCards) {
|
|
34
|
+
const transactionGroup = transactionGroupsMap[giftCard.code];
|
|
35
|
+
if (!transactionGroup) {
|
|
36
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, `Transaction group not found for gift card ${giftCard.code}`);
|
|
37
|
+
}
|
|
38
|
+
const stats = await module.retrieveAccountStats({
|
|
39
|
+
account_id: storeCreditAccount.id,
|
|
40
|
+
transaction_group_id: transactionGroup.id,
|
|
41
|
+
});
|
|
42
|
+
const giftCardValueDelta = utils_1.MathBN.convert(giftCard.value).minus(utils_1.MathBN.convert(stats.balance));
|
|
43
|
+
const maxCreditAmount = utils_1.MathBN.min(giftCardValueDelta, totalCreditAmount);
|
|
44
|
+
if (utils_1.MathBN.convert(maxCreditAmount).gt(0)) {
|
|
45
|
+
creditTransactions.push({
|
|
46
|
+
account_id: storeCreditAccount.id,
|
|
47
|
+
transaction_group_id: transactionGroup.id,
|
|
48
|
+
amount: maxCreditAmount,
|
|
49
|
+
reference: "gift-card",
|
|
50
|
+
reference_id: giftCard.code,
|
|
51
|
+
});
|
|
52
|
+
totalCreditAmount = utils_1.MathBN.sub(totalCreditAmount, maxCreditAmount);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
if (totalCreditAmount.gt(0)) {
|
|
56
|
+
const transactionGroup = await module.createTransactionGroups({
|
|
57
|
+
account_id: storeCreditAccount.id,
|
|
58
|
+
code: crypto_1.default.randomBytes(64).toString("base64url"),
|
|
59
|
+
});
|
|
60
|
+
creditTransactions.push({
|
|
61
|
+
account_id: storeCreditAccount.id,
|
|
62
|
+
transaction_group_id: transactionGroup.id,
|
|
63
|
+
amount: totalCreditAmount,
|
|
64
|
+
reference: "order",
|
|
65
|
+
reference_id: order.id,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
return new workflows_sdk_1.StepResponse(creditTransactions);
|
|
69
|
+
});
|
|
70
|
+
/*
|
|
71
|
+
A workflow that debits from a store credit account
|
|
72
|
+
*/
|
|
73
|
+
exports.refundCreditLinesWorkflow = (0, workflows_sdk_1.createWorkflow)("refund-credit-lines", function (input) {
|
|
74
|
+
const orderQuery = (0, core_flows_1.useQueryGraphStep)({
|
|
75
|
+
entity: "order",
|
|
76
|
+
filters: { id: input.order_id },
|
|
77
|
+
fields: [
|
|
78
|
+
"id",
|
|
79
|
+
"customer.*",
|
|
80
|
+
"gift_cards.*",
|
|
81
|
+
"customer_id",
|
|
82
|
+
"currency_code",
|
|
83
|
+
],
|
|
84
|
+
}).config({ name: "get-cart-query" });
|
|
85
|
+
const order = (0, workflows_sdk_1.transform)({ orderQuery }, ({ orderQuery }) => {
|
|
86
|
+
return orderQuery.data[0];
|
|
87
|
+
});
|
|
88
|
+
const giftCardCodes = (0, workflows_sdk_1.transform)({ order }, ({ order }) => {
|
|
89
|
+
return order.gift_cards.map((giftCard) => giftCard.code);
|
|
90
|
+
});
|
|
91
|
+
const giftCardQuery = (0, core_flows_1.useQueryGraphStep)({
|
|
92
|
+
entity: "gift_card",
|
|
93
|
+
filters: { code: giftCardCodes },
|
|
94
|
+
fields: ["id", "code", "status", "customer_id", "currency_code", "value"],
|
|
95
|
+
}).config({ name: "get-gift-card-query" });
|
|
96
|
+
const giftCards = (0, workflows_sdk_1.transform)({ giftCardQuery }, ({ giftCardQuery }) => {
|
|
97
|
+
return giftCardQuery.data;
|
|
98
|
+
});
|
|
99
|
+
const negativeCreditLines = (0, workflows_sdk_1.transform)({ input }, ({ input }) => {
|
|
100
|
+
return (input.credit_lines ?? []).filter((creditLine) => utils_1.MathBN.convert(creditLine.amount).lt(0));
|
|
101
|
+
});
|
|
102
|
+
(0, workflows_sdk_1.when)({ negativeCreditLines }, ({ negativeCreditLines }) => {
|
|
103
|
+
return negativeCreditLines.length > 0;
|
|
104
|
+
}).then(() => {
|
|
105
|
+
const creditTransactions = (0, exports.creditAccountTransactionsStep)({
|
|
106
|
+
giftCards,
|
|
107
|
+
order,
|
|
108
|
+
creditLines: negativeCreditLines,
|
|
109
|
+
});
|
|
110
|
+
credit_accounts_1.creditAccountsWorkflow.runAsStep({
|
|
111
|
+
input: creditTransactions,
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmdW5kLWNyZWRpdC1saW5lcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3Mvb3JkZXJzL3dvcmtmbG93cy9yZWZ1bmQtY3JlZGl0LWxpbmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLHFEQUFnRTtBQUNoRSw0REFBZ0U7QUFDaEUsMkRBTWlDO0FBQ2pDLG9EQUE0QjtBQUM1QiwwQ0FLd0I7QUFFeEIsK0ZBQW1HO0FBRXRGLFFBQUEsNkJBQTZCLEdBQUcsSUFBQSwwQkFBVSxFQUNyRCw2QkFBNkIsRUFDN0IsS0FBSyxXQUNILEVBQ0UsU0FBUyxFQUNULEtBQUssRUFDTCxXQUFXLEdBS1osRUFDRCxFQUFFLFNBQVMsRUFBRTtJQUViLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQzlCLG9CQUFZLENBQUMsWUFBWSxDQUMxQixDQUFDO0lBRUYsTUFBTSxvQkFBb0IsR0FBMkMsRUFBRSxDQUFDO0lBQ3hFLE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqRSxNQUFNLG1CQUFtQixHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUM1RCxjQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQ3hDLENBQUM7SUFDRixJQUFJLGlCQUFpQixHQUFHLG1CQUFtQixDQUFDLE1BQU0sQ0FDaEQsQ0FBQyxHQUFHLEVBQUUsVUFBVSxFQUFFLEVBQUUsQ0FDbEIsY0FBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsY0FBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDckUs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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@medusajs/loyalty-plugin",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.4",
|
|
4
4
|
"description": "Medusa Plugin: Loyalty - Gift Cards",
|
|
5
5
|
"author": "Medusa (https://medusajs.com)",
|
|
6
6
|
"license": "MIT",
|
|
@@ -38,13 +38,13 @@
|
|
|
38
38
|
"test": "NODE_OPTIONS=--experimental-vm-modules jest --silent=false --runInBand --forceExit"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
|
-
"@medusajs/admin-sdk": "2.6.2-snapshot-
|
|
42
|
-
"@medusajs/cli": "2.6.2-snapshot-
|
|
43
|
-
"@medusajs/framework": "2.6.2-snapshot-
|
|
44
|
-
"@medusajs/icons": "2.6.2-snapshot-
|
|
45
|
-
"@medusajs/js-sdk": "2.6.2-snapshot-
|
|
46
|
-
"@medusajs/medusa": "2.6.2-snapshot-
|
|
47
|
-
"@medusajs/test-utils": "2.6.2-snapshot-
|
|
41
|
+
"@medusajs/admin-sdk": "2.6.2-snapshot-20250318091043",
|
|
42
|
+
"@medusajs/cli": "2.6.2-snapshot-20250318091043",
|
|
43
|
+
"@medusajs/framework": "2.6.2-snapshot-20250318091043",
|
|
44
|
+
"@medusajs/icons": "2.6.2-snapshot-20250318091043",
|
|
45
|
+
"@medusajs/js-sdk": "2.6.2-snapshot-20250318091043",
|
|
46
|
+
"@medusajs/medusa": "2.6.2-snapshot-20250318091043",
|
|
47
|
+
"@medusajs/test-utils": "2.6.2-snapshot-20250318091043",
|
|
48
48
|
"@medusajs/ui": "latest",
|
|
49
49
|
"@mikro-orm/cli": "6.4.3",
|
|
50
50
|
"@mikro-orm/core": "6.4.3",
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.refundGiftCardCreditLinesWorkflow = exports.creditAccountTransactionsStep = void 0;
|
|
4
|
-
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
-
const core_flows_1 = require("@medusajs/medusa/core-flows");
|
|
6
|
-
const workflows_sdk_1 = require("@medusajs/workflows-sdk");
|
|
7
|
-
const types_1 = require("../../../types");
|
|
8
|
-
const credit_accounts_1 = require("../../../workflows/store-credit/workflows/credit-accounts");
|
|
9
|
-
exports.creditAccountTransactionsStep = (0, workflows_sdk_1.createStep)("credit-account-transactions", async function ({ giftCards, order, creditLines, }, { container }) {
|
|
10
|
-
const module = container.resolve(types_1.PluginModule.STORE_CREDIT);
|
|
11
|
-
const transactionGroupsMap = {};
|
|
12
|
-
const giftCardCodes = giftCards.map((giftCard) => giftCard.code);
|
|
13
|
-
const negativeCreditLines = creditLines.filter((creditLine) => utils_1.MathBN.convert(creditLine.amount).lt(0));
|
|
14
|
-
let totalCreditAmount = negativeCreditLines.reduce((acc, creditLine) => utils_1.MathBN.add(acc, utils_1.MathBN.convert(creditLine.amount).multipliedBy(-1)), utils_1.MathBN.convert(0));
|
|
15
|
-
const [storeCreditAccount] = await module.listStoreCreditAccounts({
|
|
16
|
-
customer_id: order.customer_id,
|
|
17
|
-
currency_code: order.currency_code,
|
|
18
|
-
});
|
|
19
|
-
if (!storeCreditAccount) {
|
|
20
|
-
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Store credit account not found");
|
|
21
|
-
}
|
|
22
|
-
const transactionGroups = await module.listTransactionGroups({
|
|
23
|
-
code: giftCardCodes,
|
|
24
|
-
});
|
|
25
|
-
for (const transactionGroup of transactionGroups) {
|
|
26
|
-
transactionGroupsMap[transactionGroup.code] = transactionGroup;
|
|
27
|
-
}
|
|
28
|
-
const creditTransactions = [];
|
|
29
|
-
for (const giftCard of giftCards) {
|
|
30
|
-
const transactionGroup = transactionGroupsMap[giftCard.code];
|
|
31
|
-
if (!transactionGroup) {
|
|
32
|
-
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, `Transaction group not found for gift card ${giftCard.code}`);
|
|
33
|
-
}
|
|
34
|
-
const stats = await module.retrieveAccountStats({
|
|
35
|
-
account_id: storeCreditAccount.id,
|
|
36
|
-
transaction_group_id: transactionGroup.id,
|
|
37
|
-
});
|
|
38
|
-
const giftCardValueDelta = utils_1.MathBN.convert(giftCard.value).minus(utils_1.MathBN.convert(stats.balance));
|
|
39
|
-
const maxCreditAmount = utils_1.MathBN.min(giftCardValueDelta, totalCreditAmount);
|
|
40
|
-
if (utils_1.MathBN.convert(maxCreditAmount).gt(0)) {
|
|
41
|
-
creditTransactions.push({
|
|
42
|
-
account_id: storeCreditAccount.id,
|
|
43
|
-
transaction_group_id: transactionGroup.id,
|
|
44
|
-
amount: maxCreditAmount,
|
|
45
|
-
reference: "gift-card",
|
|
46
|
-
reference_id: giftCard.code,
|
|
47
|
-
});
|
|
48
|
-
totalCreditAmount = utils_1.MathBN.sub(totalCreditAmount, maxCreditAmount);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
return new workflows_sdk_1.StepResponse(creditTransactions);
|
|
52
|
-
});
|
|
53
|
-
/*
|
|
54
|
-
A workflow that debits from a store credit account
|
|
55
|
-
*/
|
|
56
|
-
exports.refundGiftCardCreditLinesWorkflow = (0, workflows_sdk_1.createWorkflow)("refund-gift-card-credit-lines", function (input) {
|
|
57
|
-
const orderQuery = (0, core_flows_1.useQueryGraphStep)({
|
|
58
|
-
entity: "order",
|
|
59
|
-
filters: { id: input.order_id },
|
|
60
|
-
fields: [
|
|
61
|
-
"id",
|
|
62
|
-
"customer.*",
|
|
63
|
-
"gift_cards.*",
|
|
64
|
-
"customer_id",
|
|
65
|
-
"currency_code",
|
|
66
|
-
],
|
|
67
|
-
}).config({ name: "get-cart-query" });
|
|
68
|
-
const order = (0, workflows_sdk_1.transform)({ orderQuery }, ({ orderQuery }) => {
|
|
69
|
-
return orderQuery.data[0];
|
|
70
|
-
});
|
|
71
|
-
const giftCardCodes = (0, workflows_sdk_1.transform)({ order }, ({ order }) => {
|
|
72
|
-
return order.gift_cards.map((giftCard) => giftCard.code);
|
|
73
|
-
});
|
|
74
|
-
const giftCardQuery = (0, core_flows_1.useQueryGraphStep)({
|
|
75
|
-
entity: "gift_card",
|
|
76
|
-
filters: { code: giftCardCodes },
|
|
77
|
-
fields: ["id", "code", "status", "customer_id", "currency_code", "value"],
|
|
78
|
-
}).config({ name: "get-gift-card-query" });
|
|
79
|
-
const giftCards = (0, workflows_sdk_1.transform)({ giftCardQuery }, ({ giftCardQuery }) => {
|
|
80
|
-
return giftCardQuery.data;
|
|
81
|
-
});
|
|
82
|
-
(0, workflows_sdk_1.when)({ giftCards, creditLines: input.credit_lines }, ({ giftCards, creditLines }) => {
|
|
83
|
-
const negativeCreditLines = creditLines.filter((creditLine) => utils_1.MathBN.convert(creditLine.amount).lt(0));
|
|
84
|
-
return giftCards.length > 0 && negativeCreditLines.length > 0;
|
|
85
|
-
}).then(() => {
|
|
86
|
-
const creditTransactions = (0, exports.creditAccountTransactionsStep)({
|
|
87
|
-
giftCards,
|
|
88
|
-
order,
|
|
89
|
-
creditLines: input.credit_lines,
|
|
90
|
-
});
|
|
91
|
-
credit_accounts_1.creditAccountsWorkflow.runAsStep({
|
|
92
|
-
input: creditTransactions,
|
|
93
|
-
});
|
|
94
|
-
});
|
|
95
|
-
});
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmdW5kLWdpZnQtY2FyZC1jcmVkaXQtbGluZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL29yZGVycy93b3JrZmxvd3MvcmVmdW5kLWdpZnQtY2FyZC1jcmVkaXQtbGluZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EscURBQWdFO0FBQ2hFLDREQUFnRTtBQUNoRSwyREFNaUM7QUFDakMsMENBS3dCO0FBRXhCLCtGQUFtRztBQUV0RixRQUFBLDZCQUE2QixHQUFHLElBQUEsMEJBQVUsRUFDckQsNkJBQTZCLEVBQzdCLEtBQUssV0FDSCxFQUNFLFNBQVMsRUFDVCxLQUFLLEVBQ0wsV0FBVyxHQUtaLEVBQ0QsRUFBRSxTQUFTLEVBQUU7SUFFYixNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsT0FBTyxDQUM5QixvQkFBWSxDQUFDLFlBQVksQ0FDMUIsQ0FBQztJQUVGLE1BQU0sb0JBQW9CLEdBQTJDLEVBQUUsQ0FBQztJQUN4RSxNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakUsTUFBTSxtQkFBbUIsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FDNUQsY0FBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUN4QyxDQUFDO0lBQ0YsSUFBSSxpQkFBaUIsR0FBRyxtQkFBbUIsQ0FBQyxNQUFNLENBQ2hELENBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxFQUFFLENBQ2xCLGNBQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLGNBQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVB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
|