@medusajs/loyalty-plugin 0.0.7-preview.3 → 0.0.7-preview.5
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/medusa-config.d.ts +2 -0
- package/.medusa/server/src/admin/index.js +11071 -11053
- package/.medusa/server/src/admin/index.mjs +11073 -11055
- package/.medusa/server/src/api/admin/gift-cards/[id]/orders/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/gift-cards/[id]/orders/route.js +1 -1
- package/.medusa/server/src/api/admin/gift-cards/[id]/route.d.ts +4 -0
- package/.medusa/server/src/api/admin/gift-cards/[id]/route.js +1 -1
- package/.medusa/server/src/api/admin/gift-cards/middlewares.d.ts +2 -0
- package/.medusa/server/src/api/admin/gift-cards/middlewares.js +1 -9
- package/.medusa/server/src/api/admin/gift-cards/query-config.d.ts +14 -0
- package/.medusa/server/src/api/admin/gift-cards/route.d.ts +4 -0
- package/.medusa/server/src/api/admin/gift-cards/route.js +1 -1
- package/.medusa/server/src/api/admin/gift-cards/validators.d.ts +381 -0
- package/.medusa/server/src/api/admin/gift-cards/validators.js +2 -8
- package/.medusa/server/src/api/admin/store-credit-accounts/[id]/credit/route.d.ts +3 -0
- package/.medusa/server/src/api/admin/store-credit-accounts/[id]/credit/route.js +30 -0
- package/.medusa/server/src/api/admin/store-credit-accounts/[id]/route.d.ts +3 -0
- package/.medusa/server/src/api/admin/store-credit-accounts/[id]/route.js +1 -6
- package/.medusa/server/src/api/admin/store-credit-accounts/[id]/transactions/route.d.ts +3 -0
- package/.medusa/server/src/api/admin/store-credit-accounts/[id]/transactions/route.js +1 -1
- package/.medusa/server/src/api/admin/store-credit-accounts/middlewares.d.ts +2 -0
- package/.medusa/server/src/api/admin/store-credit-accounts/middlewares.js +9 -1
- package/.medusa/server/src/api/admin/store-credit-accounts/query-config.d.ts +18 -0
- package/.medusa/server/src/api/admin/store-credit-accounts/query-config.js +2 -1
- package/.medusa/server/src/api/admin/store-credit-accounts/route.d.ts +4 -0
- package/.medusa/server/src/api/admin/store-credit-accounts/route.js +1 -1
- package/.medusa/server/src/api/admin/store-credit-accounts/validators.d.ts +412 -0
- package/.medusa/server/src/api/admin/store-credit-accounts/validators.js +6 -8
- package/.medusa/server/src/api/middlewares.d.ts +2 -0
- package/.medusa/server/src/api/middlewares.js +7 -9
- package/.medusa/server/src/api/store/carts/[id]/gift-cards/route.d.ts +5 -0
- package/.medusa/server/src/api/store/carts/[id]/gift-cards/route.js +1 -1
- package/.medusa/server/src/api/store/carts/[id]/store-credits/route.d.ts +4 -0
- package/.medusa/server/src/api/store/carts/[id]/store-credits/route.js +1 -1
- package/.medusa/server/src/api/store/carts/middlewares.d.ts +2 -0
- package/.medusa/server/src/api/store/carts/query-config.d.ts +4 -0
- package/.medusa/server/src/api/store/carts/validators.d.ts +25 -0
- package/.medusa/server/src/api/store/gift-cards/[idOrCode]/route.d.ts +3 -0
- package/.medusa/server/src/api/store/gift-cards/[idOrCode]/route.js +1 -1
- package/.medusa/server/src/api/store/gift-cards/middlewares.d.ts +2 -0
- package/.medusa/server/src/api/store/gift-cards/middlewares.js +1 -10
- package/.medusa/server/src/api/store/gift-cards/query-config.d.ts +9 -0
- package/.medusa/server/src/api/store/gift-cards/validators.d.ts +11 -0
- package/.medusa/server/src/api/store/store-credit-accounts/[id]/route.d.ts +3 -0
- package/.medusa/server/src/api/store/store-credit-accounts/[id]/route.js +1 -1
- package/.medusa/server/src/api/store/store-credit-accounts/claim/route.d.ts +3 -0
- package/.medusa/server/src/api/store/store-credit-accounts/claim/route.js +25 -0
- package/.medusa/server/src/api/store/store-credit-accounts/middlewares.d.ts +2 -0
- package/.medusa/server/src/api/store/store-credit-accounts/middlewares.js +9 -1
- package/.medusa/server/src/api/store/store-credit-accounts/query-config.d.ts +9 -0
- package/.medusa/server/src/api/store/store-credit-accounts/route.d.ts +3 -0
- package/.medusa/server/src/api/store/store-credit-accounts/route.js +1 -1
- package/.medusa/server/src/api/store/store-credit-accounts/validators.d.ts +120 -0
- package/.medusa/server/src/api/store/store-credit-accounts/validators.js +5 -2
- package/.medusa/server/src/links/cart-gift-cards-link.d.ts +2 -0
- package/.medusa/server/src/links/customer-store-credit-account-link.d.ts +1 -0
- package/.medusa/server/src/links/gift-card-store-credit.d.ts +2 -0
- package/.medusa/server/src/links/order-gift-cards-link.d.ts +2 -0
- package/.medusa/server/src/links/order-line-item-gift-card-link.d.ts +1 -0
- package/.medusa/server/src/modules/loyalty/index.d.ts +21 -0
- package/.medusa/server/src/modules/loyalty/migrations/Migration20250123130553.d.ts +5 -0
- package/.medusa/server/src/modules/loyalty/migrations/Migration20250127174331.d.ts +5 -0
- package/.medusa/server/src/modules/loyalty/migrations/Migration20250206141026.d.ts +5 -0
- package/.medusa/server/src/modules/loyalty/migrations/Migration20250206141429.d.ts +5 -0
- package/.medusa/server/src/modules/loyalty/migrations/Migration20250206144714.d.ts +5 -0
- package/.medusa/server/src/modules/loyalty/migrations/Migration20250326095923.d.ts +5 -0
- package/.medusa/server/src/modules/loyalty/migrations/Migration20250617080328.d.ts +5 -0
- package/.medusa/server/src/modules/loyalty/models/gift-card.d.ts +18 -0
- package/.medusa/server/src/modules/loyalty/service.d.ts +21 -0
- package/.medusa/server/src/modules/store-credit/index.d.ts +5 -0
- package/.medusa/server/src/modules/store-credit/migrations/Migration20250129115518.d.ts +5 -0
- package/.medusa/server/src/modules/store-credit/migrations/Migration20250130213237.d.ts +5 -0
- package/.medusa/server/src/modules/store-credit/migrations/Migration20250130220640.d.ts +5 -0
- package/.medusa/server/src/modules/store-credit/migrations/Migration20250131205753.d.ts +5 -0
- package/.medusa/server/src/modules/store-credit/migrations/Migration20250520081315.d.ts +5 -0
- package/.medusa/server/src/modules/store-credit/migrations/Migration20250626081315.d.ts +5 -0
- package/.medusa/server/src/modules/store-credit/migrations/Migration20250626081315.js +16 -0
- package/.medusa/server/src/modules/store-credit/migrations/Migration20250722080351.d.ts +5 -0
- package/.medusa/server/src/modules/store-credit/migrations/Migration20250722080351.js +27 -0
- package/.medusa/server/src/modules/store-credit/models/account-transaction.d.ts +28 -0
- package/.medusa/server/src/modules/store-credit/models/account-transaction.js +1 -7
- package/.medusa/server/src/modules/store-credit/models/store-credit-account.d.ts +27 -0
- package/.medusa/server/src/modules/store-credit/models/store-credit-account.js +3 -6
- package/.medusa/server/src/modules/store-credit/service.d.ts +29 -0
- package/.medusa/server/src/modules/store-credit/service.js +19 -178
- package/.medusa/server/src/subscribers/create-gift-card.d.ts +5 -0
- package/.medusa/server/src/subscribers/create-gift-card.js +1 -3
- package/.medusa/server/src/types/cart/index.d.ts +6 -0
- package/.medusa/server/src/types/http/gift-card.d.ts +42 -0
- package/.medusa/server/src/types/http/index.d.ts +3 -0
- package/.medusa/server/src/types/http/index.js +1 -2
- package/.medusa/server/src/types/http/store-credit-account.d.ts +60 -0
- package/.medusa/server/src/types/http/transaction.d.ts +19 -0
- package/.medusa/server/src/types/index.d.ts +4 -0
- package/.medusa/server/src/types/loyalty/index.d.ts +3 -0
- package/.medusa/server/src/types/loyalty/module.d.ts +42 -0
- package/.medusa/server/src/types/loyalty/service.d.ts +24 -0
- package/.medusa/server/src/types/loyalty/workflows.d.ts +3 -0
- package/.medusa/server/src/types/modules.d.ts +6 -0
- package/.medusa/server/src/types/store-credit/index.d.ts +2 -0
- package/.medusa/server/src/types/store-credit/module.d.ts +82 -0
- package/.medusa/server/src/types/store-credit/module.js +1 -1
- package/.medusa/server/src/types/store-credit/service.d.ts +34 -0
- package/.medusa/server/src/utils/code-generator.d.ts +1 -0
- package/.medusa/server/src/utils/code-generator.js +32 -0
- package/.medusa/server/src/workflows/carts/index.d.ts +5 -0
- package/.medusa/server/src/workflows/carts/index.js +22 -0
- package/.medusa/server/src/workflows/carts/steps/validate-gift-card-balances.d.ts +5 -0
- package/.medusa/server/src/workflows/carts/steps/validate-gift-card-balances.js +14 -0
- package/.medusa/server/src/workflows/carts/workflows/add-gift-card-to-cart.d.ts +18 -0
- package/.medusa/server/src/workflows/carts/workflows/add-gift-card-to-cart.js +14 -56
- package/.medusa/server/src/workflows/carts/workflows/add-store-credits-to-cart.d.ts +15 -0
- package/.medusa/server/src/workflows/carts/workflows/add-store-credits-to-cart.js +12 -25
- package/.medusa/server/src/workflows/carts/workflows/confirm-cart-credit-lines.d.ts +9 -0
- package/.medusa/server/src/workflows/carts/workflows/confirm-cart-credit-lines.js +16 -34
- package/.medusa/server/src/workflows/carts/workflows/refresh-cart-gift-cards.d.ts +3 -0
- package/.medusa/server/src/workflows/carts/workflows/refresh-cart-gift-cards.js +5 -24
- package/.medusa/server/src/workflows/carts/workflows/remove-gift-cart-from-cart.d.ts +17 -0
- package/.medusa/server/src/workflows/carts/workflows/remove-gift-cart-from-cart.js +4 -4
- package/.medusa/server/src/workflows/common/steps/validate-presence-of.d.ts +5 -0
- package/.medusa/server/src/workflows/gift-cards/index.d.ts +9 -0
- package/.medusa/server/src/workflows/gift-cards/index.js +26 -0
- package/.medusa/server/src/workflows/gift-cards/steps/create-gift-cards.d.ts +2 -0
- package/.medusa/server/src/workflows/gift-cards/steps/create-gift-cards.js +3 -3
- package/.medusa/server/src/workflows/gift-cards/steps/delete-gift-cards.d.ts +3 -0
- package/.medusa/server/src/workflows/gift-cards/steps/retrieve-gift-card-balance.d.ts +6 -0
- package/.medusa/server/src/workflows/gift-cards/steps/retrieve-gift-card-balance.js +2 -3
- package/.medusa/server/src/workflows/gift-cards/steps/update-gift-cards.d.ts +2 -0
- package/.medusa/server/src/workflows/gift-cards/workflows/claim-gift-card.d.ts +23 -0
- package/.medusa/server/src/workflows/gift-cards/workflows/claim-gift-card.js +65 -0
- package/.medusa/server/src/workflows/gift-cards/workflows/create-gift-cards.d.ts +2 -0
- package/.medusa/server/src/workflows/gift-cards/workflows/create-gift-cards.js +51 -2
- package/.medusa/server/src/workflows/gift-cards/workflows/delete-gift-card.d.ts +3 -0
- package/.medusa/server/src/workflows/gift-cards/workflows/redeem-gift-card.d.ts +13 -0
- package/.medusa/server/src/workflows/gift-cards/workflows/redeem-gift-card.js +33 -64
- package/.medusa/server/src/workflows/gift-cards/workflows/update-gift-cards.d.ts +2 -0
- package/.medusa/server/src/workflows/hooks/after-order-created.d.ts +1 -0
- package/.medusa/server/src/workflows/hooks/after-order-credit-lines-created.d.ts +1 -0
- package/.medusa/server/src/workflows/hooks/before-payment-collection-refresh.d.ts +1 -0
- package/.medusa/server/src/workflows/hooks/complete-cart-before-payment-authorization.d.ts +1 -0
- package/.medusa/server/src/workflows/index.d.ts +3 -0
- package/.medusa/server/src/workflows/index.js +20 -0
- package/.medusa/server/src/workflows/orders/index.d.ts +2 -0
- package/.medusa/server/src/workflows/orders/index.js +19 -0
- package/.medusa/server/src/workflows/orders/workflows/link-gift-cards-to-order.d.ts +4 -0
- package/.medusa/server/src/workflows/orders/workflows/refund-credit-lines.d.ts +17 -0
- package/.medusa/server/src/workflows/orders/workflows/refund-credit-lines.js +2 -10
- package/.medusa/server/src/workflows/store-credit/index.d.ts +8 -0
- package/.medusa/server/src/workflows/store-credit/index.js +25 -0
- package/.medusa/server/src/workflows/store-credit/steps/create-store-credit-accounts.d.ts +2 -0
- package/.medusa/server/src/workflows/store-credit/steps/create-store-credit-accounts.js +8 -1
- package/.medusa/server/src/workflows/store-credit/steps/credit-account.d.ts +2 -0
- package/.medusa/server/src/workflows/store-credit/steps/debit-account.d.ts +2 -0
- package/.medusa/server/src/workflows/store-credit/workflows/claim-store-credit-account.d.ts +11 -0
- package/.medusa/server/src/workflows/store-credit/workflows/claim-store-credit-account.js +117 -0
- package/.medusa/server/src/workflows/store-credit/workflows/create-store-credit-accounts.d.ts +9 -0
- package/.medusa/server/src/workflows/store-credit/workflows/create-store-credit-accounts.js +1 -1
- package/.medusa/server/src/workflows/store-credit/workflows/credit-accounts.d.ts +2 -0
- package/.medusa/server/src/workflows/store-credit/workflows/credit-store-credit-account.d.ts +2 -0
- package/.medusa/server/src/workflows/store-credit/workflows/credit-store-credit-account.js +44 -0
- package/.medusa/server/src/workflows/store-credit/workflows/debit-accounts.d.ts +2 -0
- package/package.json +19 -10
- package/.medusa/server/src/api/admin/gift-cards/[id]/redeem/route.js +0 -24
- package/.medusa/server/src/api/admin/transaction-groups/middlewares.js +0 -16
- package/.medusa/server/src/api/admin/transaction-groups/query-config.js +0 -13
- package/.medusa/server/src/api/admin/transaction-groups/route.js +0 -27
- package/.medusa/server/src/api/admin/transaction-groups/validators.js +0 -19
- package/.medusa/server/src/api/store/gift-cards/[idOrCode]/redeem/route.js +0 -24
- package/.medusa/server/src/modules/store-credit/models/transaction-group.js +0 -28
- package/.medusa/server/src/types/http/transaction-group.js +0 -3
- package/.medusa/server/src/utils/gift-card.js +0 -32
- package/.medusa/server/src/workflows/store-credit/steps/create-transaction-groups.js +0 -17
- package/.medusa/server/src/workflows/store-credit/workflows/create-transaction-groups.js +0 -12
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { BigNumberValue } from "@medusajs/framework/types";
|
|
2
|
+
export type ModuleStoreCreditAccount = {
|
|
3
|
+
id: string;
|
|
4
|
+
customer_id?: string;
|
|
5
|
+
code?: string;
|
|
6
|
+
currency_code: string;
|
|
7
|
+
credits: BigNumberValue;
|
|
8
|
+
debits: BigNumberValue;
|
|
9
|
+
balance: BigNumberValue;
|
|
10
|
+
metadata: Record<string, unknown>;
|
|
11
|
+
created_at: string;
|
|
12
|
+
updated_at: string;
|
|
13
|
+
};
|
|
14
|
+
export type ModuleCreateStoreCreditAccount = {
|
|
15
|
+
code?: string;
|
|
16
|
+
customer_id?: string;
|
|
17
|
+
currency_code: string;
|
|
18
|
+
metadata?: Record<string, unknown>;
|
|
19
|
+
};
|
|
20
|
+
export type ModuleCreditStoreCreditAccount = {
|
|
21
|
+
account_id: string;
|
|
22
|
+
amount: number;
|
|
23
|
+
note?: string;
|
|
24
|
+
reference?: string;
|
|
25
|
+
reference_id?: string;
|
|
26
|
+
};
|
|
27
|
+
export type ModuleUpdateStoreCreditAccount = {
|
|
28
|
+
id: string;
|
|
29
|
+
customer_id?: string;
|
|
30
|
+
currency_code?: string;
|
|
31
|
+
metadata?: Record<string, unknown>;
|
|
32
|
+
};
|
|
33
|
+
export declare enum TransactionType {
|
|
34
|
+
CREDIT = "credit",
|
|
35
|
+
DEBIT = "debit"
|
|
36
|
+
}
|
|
37
|
+
export type TransactionTypeValues = TransactionType.CREDIT | TransactionType.DEBIT;
|
|
38
|
+
export type ModuleAccountTransaction = {
|
|
39
|
+
id: string;
|
|
40
|
+
account_id: string;
|
|
41
|
+
type: TransactionTypeValues;
|
|
42
|
+
amount: BigNumberValue;
|
|
43
|
+
account: ModuleStoreCreditAccount;
|
|
44
|
+
note?: string;
|
|
45
|
+
reference?: string;
|
|
46
|
+
reference_id?: string;
|
|
47
|
+
metadata: Record<string, unknown>;
|
|
48
|
+
created_at: string;
|
|
49
|
+
updated_at: string;
|
|
50
|
+
};
|
|
51
|
+
export type ModuleCreateAccountTransaction = {
|
|
52
|
+
account_id: string;
|
|
53
|
+
amount: BigNumberValue;
|
|
54
|
+
type: TransactionTypeValues;
|
|
55
|
+
note?: string;
|
|
56
|
+
reference?: string;
|
|
57
|
+
reference_id?: string;
|
|
58
|
+
metadata?: Record<string, unknown>;
|
|
59
|
+
};
|
|
60
|
+
export type ModuleCreditAccount = {
|
|
61
|
+
account_id: string;
|
|
62
|
+
amount: BigNumberValue;
|
|
63
|
+
note?: string;
|
|
64
|
+
reference: string;
|
|
65
|
+
reference_id: string;
|
|
66
|
+
};
|
|
67
|
+
export type ModuleDebitAccount = {
|
|
68
|
+
account_id: string;
|
|
69
|
+
amount: BigNumberValue;
|
|
70
|
+
note?: string;
|
|
71
|
+
reference: string;
|
|
72
|
+
reference_id: string;
|
|
73
|
+
};
|
|
74
|
+
export type ModuleRetrieveAccountStats = {
|
|
75
|
+
account_id: string;
|
|
76
|
+
};
|
|
77
|
+
export type ModuleAccountStats = {
|
|
78
|
+
id: string;
|
|
79
|
+
balance: BigNumberValue;
|
|
80
|
+
credits: BigNumberValue;
|
|
81
|
+
debits: BigNumberValue;
|
|
82
|
+
};
|
|
@@ -7,4 +7,4 @@ var TransactionType;
|
|
|
7
7
|
TransactionType["CREDIT"] = "credit";
|
|
8
8
|
TransactionType["DEBIT"] = "debit";
|
|
9
9
|
})(TransactionType || (exports.TransactionType = TransactionType = {}));
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3R5cGVzL3N0b3JlLWNyZWRpdC9tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBc0NBLGdDQUFnQztBQUVoQyxJQUFZLGVBR1g7QUFIRCxXQUFZLGVBQWU7SUFDekIsb0NBQWlCLENBQUE7SUFDakIsa0NBQWUsQ0FBQTtBQUNqQixDQUFDLEVBSFcsZUFBZSwrQkFBZixlQUFlLFFBRzFCIn0=
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { RestoreReturn } from "@medusajs/framework/types";
|
|
2
|
+
import { BaseFilterable, Context, FindConfig, IModuleService } from "@medusajs/types";
|
|
3
|
+
import { ModuleAccountStats, ModuleAccountTransaction, ModuleCreateStoreCreditAccount, ModuleCreditAccount, ModuleDebitAccount, ModuleRetrieveAccountStats, ModuleStoreCreditAccount, ModuleUpdateStoreCreditAccount } from "./module";
|
|
4
|
+
export interface ModuleStoreCreditAccountFilters extends BaseFilterable<ModuleStoreCreditAccountFilters> {
|
|
5
|
+
q?: string;
|
|
6
|
+
id?: string | string[];
|
|
7
|
+
currency_code?: string | string[];
|
|
8
|
+
customer_id?: string | string[];
|
|
9
|
+
order?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface ModuleListAccountTransactions extends BaseFilterable<ModuleListAccountTransactions> {
|
|
12
|
+
id?: string | string[];
|
|
13
|
+
account_id?: string | string[];
|
|
14
|
+
order?: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* The main service interface for the StoreCredit Module.
|
|
18
|
+
*/
|
|
19
|
+
export interface IStoreCreditModuleService extends IModuleService {
|
|
20
|
+
createStoreCreditAccounts(data: ModuleCreateStoreCreditAccount, sharedContext?: Context): Promise<ModuleStoreCreditAccount>;
|
|
21
|
+
createStoreCreditAccounts(data: ModuleCreateStoreCreditAccount[], sharedContext?: Context): Promise<ModuleStoreCreditAccount[]>;
|
|
22
|
+
updateStoreCreditAccounts(data: ModuleUpdateStoreCreditAccount, sharedContext?: Context): Promise<ModuleStoreCreditAccount>;
|
|
23
|
+
updateStoreCreditAccounts(data: ModuleUpdateStoreCreditAccount[], sharedContext?: Context): Promise<ModuleStoreCreditAccount[]>;
|
|
24
|
+
listStoreCreditAccounts(filters?: ModuleStoreCreditAccountFilters, config?: FindConfig<ModuleStoreCreditAccount>, sharedContext?: Context): Promise<ModuleStoreCreditAccount[]>;
|
|
25
|
+
retrieveStoreCreditAccount(id: string, config?: FindConfig<ModuleStoreCreditAccount>, sharedContext?: Context): Promise<ModuleStoreCreditAccount>;
|
|
26
|
+
deleteStoreCreditAccounts(ids: string[], sharedContext?: Context): Promise<void>;
|
|
27
|
+
softDeleteStoreCreditAccounts(ids: string[], sharedContext?: Context): Promise<void>;
|
|
28
|
+
restoreStoreCreditAccounts<TReturnableLinkableKeys extends string = string>(ids: string[], config?: RestoreReturn<TReturnableLinkableKeys>, sharedContext?: Context): Promise<Record<TReturnableLinkableKeys, string[]> | void>;
|
|
29
|
+
listAccountTransactions(filters: ModuleListAccountTransactions, sharedContext?: Context): Promise<ModuleAccountTransaction[]>;
|
|
30
|
+
retrieveAccountStats(filters: ModuleRetrieveAccountStats, sharedContext?: Context): Promise<ModuleAccountStats>;
|
|
31
|
+
creditAccounts(data: ModuleCreditAccount[], sharedContext?: Context): Promise<ModuleAccountTransaction[]>;
|
|
32
|
+
debitAccounts(data: ModuleDebitAccount[], sharedContext?: Context): Promise<ModuleAccountTransaction[]>;
|
|
33
|
+
deleteTransactions(ids: string[], sharedContext?: Context): Promise<void>;
|
|
34
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function generateCode(prefix?: string, sections?: number): string;
|
|
@@ -0,0 +1,32 @@
|
|
|
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.generateCode = generateCode;
|
|
7
|
+
const crypto_1 = __importDefault(require("crypto"));
|
|
8
|
+
function generateCode(prefix = "GIFT", sections = 4) {
|
|
9
|
+
// Characters to use (excluding similar-looking characters like 0/O, 1/I)
|
|
10
|
+
const characters = "ABCDEFGHJKLMNPQRSTUVWXYZ23456789";
|
|
11
|
+
// Calculate how many bytes we need for generating our code
|
|
12
|
+
// We need enough random bytes to select from our character set
|
|
13
|
+
const length = sections * 4;
|
|
14
|
+
const byteLength = Math.ceil((length * Math.log2(characters.length)) / 8);
|
|
15
|
+
// Generate random bytes
|
|
16
|
+
const randomBytes = crypto_1.default.randomBytes(byteLength);
|
|
17
|
+
// Generate the code
|
|
18
|
+
let code = "";
|
|
19
|
+
for (let i = 0; i < length; i++) {
|
|
20
|
+
// Use a modulo operation to select a character from our set
|
|
21
|
+
const randomIndex = randomBytes[i % randomBytes.length] % characters.length;
|
|
22
|
+
code += characters.charAt(randomIndex);
|
|
23
|
+
}
|
|
24
|
+
// Split into chunks of 4 characters
|
|
25
|
+
const chunks = [];
|
|
26
|
+
for (let i = 0; i < code.length; i += 4) {
|
|
27
|
+
chunks.push(code.slice(i, i + 4));
|
|
28
|
+
}
|
|
29
|
+
// Format with prefix
|
|
30
|
+
return prefix ? `${prefix}-${chunks.join("-")}` : chunks.join("-");
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1nZW5lcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdXRpbHMvY29kZS1nZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSxvQ0FrQ0M7QUFwQ0Qsb0RBQTRCO0FBRTVCLFNBQWdCLFlBQVksQ0FDMUIsU0FBaUIsTUFBTSxFQUN2QixXQUFtQixDQUFDO0lBRXBCLHlFQUF5RTtJQUN6RSxNQUFNLFVBQVUsR0FBVyxrQ0FBa0MsQ0FBQztJQUU5RCwyREFBMkQ7SUFDM0QsK0RBQStEO0lBQy9ELE1BQU0sTUFBTSxHQUFXLFFBQVEsR0FBRyxDQUFDLENBQUM7SUFDcEMsTUFBTSxVQUFVLEdBQVcsSUFBSSxDQUFDLElBQUksQ0FDbEMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQzVDLENBQUM7SUFFRix3QkFBd0I7SUFDeEIsTUFBTSxXQUFXLEdBQVcsZ0JBQU0sQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFM0Qsb0JBQW9CO0lBQ3BCLElBQUksSUFBSSxHQUFXLEVBQUUsQ0FBQztJQUN0QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDaEMsNERBQTREO1FBQzVELE1BQU0sV0FBVyxHQUNmLFdBQVcsQ0FBQyxDQUFDLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDMUQsSUFBSSxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELG9DQUFvQztJQUNwQyxNQUFNLE1BQU0sR0FBYSxFQUFFLENBQUM7SUFDNUIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3hDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELHFCQUFxQjtJQUNyQixPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3JFLENBQUMifQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export * from "./workflows/add-gift-card-to-cart";
|
|
2
|
+
export * from "./workflows/add-store-credits-to-cart";
|
|
3
|
+
export * from "./workflows/confirm-cart-credit-lines";
|
|
4
|
+
export * from "./workflows/refresh-cart-gift-cards";
|
|
5
|
+
export * from "./workflows/remove-gift-cart-from-cart";
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./workflows/add-gift-card-to-cart"), exports);
|
|
18
|
+
__exportStar(require("./workflows/add-store-credits-to-cart"), exports);
|
|
19
|
+
__exportStar(require("./workflows/confirm-cart-credit-lines"), exports);
|
|
20
|
+
__exportStar(require("./workflows/refresh-cart-gift-cards"), exports);
|
|
21
|
+
__exportStar(require("./workflows/remove-gift-cart-from-cart"), exports);
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2NhcnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvRUFBaUQ7QUFDakQsd0VBQXFEO0FBQ3JELHdFQUFxRDtBQUNyRCxzRUFBbUQ7QUFDbkQseUVBQXNEIn0=
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateGiftCardBalancesStep = void 0;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const workflows_sdk_1 = require("@medusajs/workflows-sdk");
|
|
6
|
+
exports.validateGiftCardBalancesStep = (0, workflows_sdk_1.createStep)("validate-gift-card-balances", async function ({ giftCards, giftCardsBalanceMap, }) {
|
|
7
|
+
for (const giftCard of giftCards) {
|
|
8
|
+
const stats = giftCardsBalanceMap[giftCard.code];
|
|
9
|
+
if (utils_1.MathBN.convert(stats.balance).lte(0)) {
|
|
10
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, `Gift card (${giftCard.code}) has no balance`);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtZ2lmdC1jYXJkLWJhbGFuY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9jYXJ0cy9zdGVwcy92YWxpZGF0ZS1naWZ0LWNhcmQtYmFsYW5jZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscURBQWdFO0FBQ2hFLDJEQUFxRDtBQUd4QyxRQUFBLDRCQUE0QixHQUFHLElBQUEsMEJBQVUsRUFDcEQsNkJBQTZCLEVBQzdCLEtBQUssV0FBVyxFQUNkLFNBQVMsRUFDVCxtQkFBbUIsR0FJcEI7SUFDQyxLQUFLLE1BQU0sUUFBUSxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ2pDLE1BQU0sS0FBSyxHQUFHLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVqRCxJQUFJLGNBQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3pDLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLGNBQWMsUUFBUSxDQUFDLElBQUksa0JBQWtCLENBQzlDLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUMsQ0FDRixDQUFDIn0=
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { PluginCartDTO } from "../../../types/cart";
|
|
2
|
+
import { ModuleGiftCard } from "../../../types/loyalty";
|
|
3
|
+
import { ModuleAccountStats, ModuleStoreCreditAccount } from "../../../types/store-credit";
|
|
4
|
+
export declare const retrieveGiftCardBalanceStep: import("@medusajs/workflows-sdk").StepFunction<{
|
|
5
|
+
storeCreditAccount: ModuleStoreCreditAccount;
|
|
6
|
+
giftCard: ModuleGiftCard;
|
|
7
|
+
}, Record<string, ModuleAccountStats>>;
|
|
8
|
+
/**
|
|
9
|
+
* Validate if the gift card can be added to the cart
|
|
10
|
+
*/
|
|
11
|
+
export declare const validateCartGiftCardStep: import("@medusajs/workflows-sdk").StepFunction<{
|
|
12
|
+
cart: PluginCartDTO;
|
|
13
|
+
giftCards: ModuleGiftCard[];
|
|
14
|
+
}, unknown>;
|
|
15
|
+
export declare const addGiftCardToCartWorkflow: import("@medusajs/workflows-sdk").ReturnWorkflow<{
|
|
16
|
+
code: string;
|
|
17
|
+
cart_id: string;
|
|
18
|
+
}, import("@medusajs/framework/types").CartCreditLineDTO[], []>;
|
|
@@ -1,47 +1,31 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.addGiftCardToCartWorkflow = exports.
|
|
3
|
+
exports.addGiftCardToCartWorkflow = exports.validateCartGiftCardStep = exports.retrieveGiftCardBalanceStep = void 0;
|
|
4
4
|
const utils_1 = require("@medusajs/framework/utils");
|
|
5
5
|
const core_flows_1 = require("@medusajs/medusa/core-flows");
|
|
6
6
|
const workflows_sdk_1 = require("@medusajs/workflows-sdk");
|
|
7
7
|
const types_1 = require("../../../types");
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
exports.retrieveGiftCardsBalanceStep = (0, workflows_sdk_1.createStep)("retrieve-gift-cards-balance", async function ({ storeCreditAccount, giftCard, }, { container }) {
|
|
8
|
+
const validate_gift_card_balances_1 = require("../steps/validate-gift-card-balances");
|
|
9
|
+
exports.retrieveGiftCardBalanceStep = (0, workflows_sdk_1.createStep)("retrieve-gift-cards-balance", async function ({ storeCreditAccount, giftCard, }, { container }) {
|
|
11
10
|
const accountBalanceMap = {};
|
|
12
11
|
const module = container.resolve(types_1.PluginModule.STORE_CREDIT);
|
|
13
|
-
const transactionGroups = await module.listTransactionGroups({
|
|
14
|
-
code: giftCard.code,
|
|
15
|
-
});
|
|
16
|
-
const transactionGroupMap = {};
|
|
17
|
-
for (const transactionGroup of transactionGroups) {
|
|
18
|
-
transactionGroupMap[transactionGroup.code] = transactionGroup;
|
|
19
|
-
}
|
|
20
|
-
const transactionGroup = transactionGroupMap[giftCard.code];
|
|
21
12
|
const giftCardBalance = await module.retrieveAccountStats({
|
|
22
13
|
account_id: storeCreditAccount.id,
|
|
23
|
-
transaction_group_id: transactionGroup.id,
|
|
24
14
|
});
|
|
25
15
|
accountBalanceMap[giftCard.code] = giftCardBalance;
|
|
26
16
|
return new workflows_sdk_1.StepResponse(accountBalanceMap);
|
|
27
17
|
});
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, `Gift card (${giftCard.code}) has no balance`);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
|
-
exports.validateGiftCardStep = (0, workflows_sdk_1.createStep)("validate-gift-card", async function ({ cart, giftCard, input, }) {
|
|
37
|
-
const cartGiftCards = cart.gift_cards || [];
|
|
38
|
-
if (cartGiftCards.find((gc) => gc.code === input.code)) {
|
|
39
|
-
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, `Gift card (${input.code}) already applied to cart`);
|
|
40
|
-
}
|
|
18
|
+
/**
|
|
19
|
+
* Validate if the gift card exists.
|
|
20
|
+
*/
|
|
21
|
+
const validateGiftCardStep = (0, workflows_sdk_1.createStep)("validate-gift-card", async function ({ giftCard, input, }) {
|
|
41
22
|
if (!giftCard) {
|
|
42
23
|
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, `Gift card (${input.code}) not found`);
|
|
43
24
|
}
|
|
44
25
|
});
|
|
26
|
+
/**
|
|
27
|
+
* Validate if the gift card can be added to the cart
|
|
28
|
+
*/
|
|
45
29
|
exports.validateCartGiftCardStep = (0, workflows_sdk_1.createStep)("validate-cart-gift-card", async function ({ cart, giftCards, }) {
|
|
46
30
|
for (const giftCard of giftCards) {
|
|
47
31
|
const cartGiftCard = cart.gift_cards.find((gc) => gc.code.includes(giftCard.code));
|
|
@@ -53,11 +37,6 @@ exports.validateCartGiftCardStep = (0, workflows_sdk_1.createStep)("validate-car
|
|
|
53
37
|
}
|
|
54
38
|
}
|
|
55
39
|
});
|
|
56
|
-
exports.validateTransactionGroupStep = (0, workflows_sdk_1.createStep)("validate-transaction-group", async function ({ transactionGroup, storeCreditAccount, giftCard, }) {
|
|
57
|
-
if (!transactionGroup) {
|
|
58
|
-
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, `Could not find gift card with code: ${giftCard.code} within account: ${storeCreditAccount.id}.`);
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
40
|
/*
|
|
62
41
|
A workflow that adds gift card to a cart
|
|
63
42
|
*/
|
|
@@ -78,18 +57,11 @@ exports.addGiftCardToCartWorkflow = (0, workflows_sdk_1.createWorkflow)("add-gif
|
|
|
78
57
|
const giftCard = (0, workflows_sdk_1.transform)({ giftCardQuery }, ({ giftCardQuery }) => {
|
|
79
58
|
return giftCardQuery.data[0];
|
|
80
59
|
});
|
|
81
|
-
|
|
60
|
+
validateGiftCardStep({ giftCard, input });
|
|
82
61
|
const giftCards = (0, workflows_sdk_1.transform)({ giftCardQuery }, ({ giftCardQuery }) => {
|
|
83
62
|
return giftCardQuery.data;
|
|
84
63
|
});
|
|
85
64
|
(0, exports.validateCartGiftCardStep)({ cart, giftCards });
|
|
86
|
-
(0, workflows_sdk_1.when)({ giftCard }, ({ giftCard }) => giftCard.status === loyalty_1.GiftCardStatus.PENDING).then(() => {
|
|
87
|
-
redeem_gift_card_1.redeemGiftCardWorkflow.runAsStep({
|
|
88
|
-
input: {
|
|
89
|
-
gift_card_id: giftCard.id,
|
|
90
|
-
},
|
|
91
|
-
});
|
|
92
|
-
});
|
|
93
65
|
const giftCardStoreCreditAccountQuery = (0, core_flows_1.useQueryGraphStep)({
|
|
94
66
|
entity: "gift_card_store_credit_account",
|
|
95
67
|
filters: {
|
|
@@ -109,25 +81,11 @@ exports.addGiftCardToCartWorkflow = (0, workflows_sdk_1.createWorkflow)("add-gif
|
|
|
109
81
|
const storeCreditAccount = (0, workflows_sdk_1.transform)({ storeCreditAccountQuery }, ({ storeCreditAccountQuery }) => {
|
|
110
82
|
return storeCreditAccountQuery.data[0];
|
|
111
83
|
});
|
|
112
|
-
const
|
|
113
|
-
entity: "transaction_group",
|
|
114
|
-
filters: { code: giftCard.code, account_id: storeCreditAccount.id },
|
|
115
|
-
fields: ["id"],
|
|
116
|
-
}).config({ name: "get-transaction-group-query" });
|
|
117
|
-
const transactionGroup = (0, workflows_sdk_1.transform)({ transactionGroupQuery }, ({ transactionGroupQuery }) => {
|
|
118
|
-
return transactionGroupQuery.data[0];
|
|
119
|
-
});
|
|
120
|
-
// TODO: check validation of transaction groups
|
|
121
|
-
(0, exports.validateTransactionGroupStep)({
|
|
122
|
-
transactionGroup,
|
|
123
|
-
giftCard,
|
|
124
|
-
storeCreditAccount,
|
|
125
|
-
});
|
|
126
|
-
const giftCardsBalanceMap = (0, exports.retrieveGiftCardsBalanceStep)({
|
|
84
|
+
const giftCardsBalanceMap = (0, exports.retrieveGiftCardBalanceStep)({
|
|
127
85
|
storeCreditAccount,
|
|
128
86
|
giftCard,
|
|
129
87
|
});
|
|
130
|
-
(0,
|
|
88
|
+
(0, validate_gift_card_balances_1.validateGiftCardBalancesStep)({
|
|
131
89
|
giftCards,
|
|
132
90
|
giftCardsBalanceMap,
|
|
133
91
|
});
|
|
@@ -166,4 +124,4 @@ exports.addGiftCardToCartWorkflow = (0, workflows_sdk_1.createWorkflow)("add-gif
|
|
|
166
124
|
});
|
|
167
125
|
return new workflows_sdk_1.WorkflowResponse(creditLines);
|
|
168
126
|
});
|
|
169
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWdpZnQtY2FyZC10by1jYXJ0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9jYXJ0cy93b3JrZmxvd3MvYWRkLWdpZnQtY2FyZC10by1jYXJ0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHFEQUF5RTtBQUN6RSw0REFLcUM7QUFDckMsMkRBTWlDO0FBQ2pDLDBDQUE4QztBQVE5QyxzRkFBb0Y7QUFFdkUsUUFBQSwyQkFBMkIsR0FBRyxJQUFBLDBCQUFVLEVBQ25ELDZCQUE2QixFQUM3QixLQUFLLFdBQ0gsRUFDRSxrQkFBa0IsRUFDbEIsUUFBUSxHQUlULEVBQ0QsRUFBRSxTQUFTLEVBQUU7SUFFYixNQUFNLGlCQUFpQixHQUF1QyxFQUFFLENBQUM7SUFDakUsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FDOUIsb0JBQVksQ0FBQyxZQUFZLENBQzFCLENBQUM7SUFFRixNQUFNLGVBQWUsR0FBRyxNQUFNLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQztRQUN4RCxVQUFVLEVBQUUsa0JBQWtCLENBQUMsRUFBRTtLQUNsQyxDQUFDLENBQUM7SUFFSCxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsZUFBZSxDQUFDO0lBRW5ELE9BQU8sSUFBSSw0QkFBWSxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDN0MsQ0FBQyxDQUNGLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sb0JBQW9CLEdBQUcsSUFBQSwwQkFBVSxFQUNyQyxvQkFBb0IsRUFDcEIsS0FBSyxXQUFXLEVBQ2QsUUFBUSxFQUNSLEtBQUssR0FJTjtJQUNDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNkLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLGNBQWMsS0FBSyxDQUFDLElBQUksYUFBYSxDQUN0QyxDQUFDO0lBQ0osQ0FBQztB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
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { PluginCartDTO } from "src/types/cart";
|
|
2
|
+
import { ModuleStoreCreditAccount } from "../../../types/store-credit";
|
|
3
|
+
export declare const validateCustomerStoreCreditAccountStep: import("@medusajs/workflows-sdk").StepFunction<{
|
|
4
|
+
storeCreditAccount: ModuleStoreCreditAccount;
|
|
5
|
+
}, unknown>;
|
|
6
|
+
export declare const validateCartStep: import("@medusajs/workflows-sdk").StepFunction<{
|
|
7
|
+
cart: PluginCartDTO;
|
|
8
|
+
input: {
|
|
9
|
+
cart_id: string;
|
|
10
|
+
};
|
|
11
|
+
}, unknown>;
|
|
12
|
+
export declare const addStoreCreditsToCartWorkflow: import("@medusajs/workflows-sdk").ReturnWorkflow<{
|
|
13
|
+
amount?: number;
|
|
14
|
+
cart_id: string;
|
|
15
|
+
}, import("@medusajs/framework/types").CartCreditLineDTO[], []>;
|
|
@@ -1,32 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.addStoreCreditsToCartWorkflow = exports.validateCartStep = exports.
|
|
3
|
+
exports.addStoreCreditsToCartWorkflow = exports.validateCartStep = exports.validateCustomerStoreCreditAccountStep = void 0;
|
|
4
4
|
const utils_1 = require("@medusajs/framework/utils");
|
|
5
5
|
const core_flows_1 = require("@medusajs/medusa/core-flows");
|
|
6
6
|
const workflows_sdk_1 = require("@medusajs/workflows-sdk");
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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;
|
|
7
|
+
exports.validateCustomerStoreCreditAccountStep = (0, workflows_sdk_1.createStep)("validate-customer-store-credit-account", async function ({ storeCreditAccount, }) {
|
|
8
|
+
if (!storeCreditAccount) {
|
|
9
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, `Store credit account not found for the customer on the cart in that currency.`);
|
|
26
10
|
}
|
|
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
11
|
if (utils_1.MathBN.convert(storeCreditAccount.balance).lte(0)) {
|
|
31
12
|
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, `Store credit account has no balance`);
|
|
32
13
|
}
|
|
@@ -35,6 +16,12 @@ exports.validateCartStep = (0, workflows_sdk_1.createStep)("validate-cart", asyn
|
|
|
35
16
|
if (!cart) {
|
|
36
17
|
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, `Cart with id ${input.cart_id} not found`);
|
|
37
18
|
}
|
|
19
|
+
if (!cart.customer_id) {
|
|
20
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, `Cart's customer must be set to add store credits`);
|
|
21
|
+
}
|
|
22
|
+
if (!cart.currency_code) {
|
|
23
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, `Cart's currency must be set to add store credits`);
|
|
24
|
+
}
|
|
38
25
|
});
|
|
39
26
|
/*
|
|
40
27
|
A workflow that adds store credits to a cart
|
|
@@ -60,7 +47,7 @@ exports.addStoreCreditsToCartWorkflow = (0, workflows_sdk_1.createWorkflow)("add
|
|
|
60
47
|
const storeCreditAccount = (0, workflows_sdk_1.transform)({ storeCreditAccountQuery }, ({ storeCreditAccountQuery }) => {
|
|
61
48
|
return storeCreditAccountQuery.data[0];
|
|
62
49
|
});
|
|
63
|
-
(0, exports.
|
|
50
|
+
(0, exports.validateCustomerStoreCreditAccountStep)({
|
|
64
51
|
storeCreditAccount,
|
|
65
52
|
});
|
|
66
53
|
const creditLineActions = (0, workflows_sdk_1.transform)({ storeCreditAccount, cart, input }, ({ storeCreditAccount, cart, input }) => {
|
|
@@ -101,4 +88,4 @@ exports.addStoreCreditsToCartWorkflow = (0, workflows_sdk_1.createWorkflow)("add
|
|
|
101
88
|
});
|
|
102
89
|
return new workflows_sdk_1.WorkflowResponse(createdCreditLines);
|
|
103
90
|
});
|
|
104
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXN0b3JlLWNyZWRpdHMtdG8tY2FydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvY2FydHMvd29ya2Zsb3dzL2FkZC1zdG9yZS1jcmVkaXRzLXRvLWNhcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EscURBQTJFO0FBQzNFLDREQUtxQztBQUNyQywyREFNaUM7QUFJcEIsUUFBQSxzQ0FBc0MsR0FBRyxJQUFBLDBCQUFVLEVBQzlELHdDQUF3QyxFQUN4QyxLQUFLLFdBQVcsRUFDZCxrQkFBa0IsR0FHbkI7SUFDQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUN4QixNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUM5QiwrRUFBK0UsQ0FDaEYsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLGNBQU0sQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDdEQsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDOUIscUNBQXFDLENBQ3RDLENBQUM7SUFDSixDQUFDO0FBQ0gsQ0FBQyxDQUNGLENBQUM7QUFFVyxRQUFBLGdCQUFnQixHQUFHLElBQUEsMEJBQVUsRUFDeEMsZUFBZSxFQUNmLEtBQUssV0FBVyxFQUNkLElBQUksRUFDSixLQUFLLEdBSU47SUFDQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDVixNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUM5QixnQkFBZ0IsS0FBSyxDQUFDLE9BQU8sWUFBWSxDQUMxQyxDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdEIsTUFBTSxJQUFJLG1CQUFX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
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ModuleGiftCard } from "../../../types/loyalty";
|
|
2
|
+
import { ModuleAccountStats } from "../../../types/store-credit";
|
|
3
|
+
export declare const validateStoreCreditAccountStep: import("@medusajs/workflows-sdk").StepFunction<{
|
|
4
|
+
giftCards: ModuleGiftCard[];
|
|
5
|
+
giftCardsBalanceMap: Record<string, ModuleAccountStats>;
|
|
6
|
+
}, unknown>;
|
|
7
|
+
export declare const confirmCartCreditLinesWorkflow: import("@medusajs/workflows-sdk").ReturnWorkflow<{
|
|
8
|
+
cart_id: string;
|
|
9
|
+
}, [], []>;
|
|
@@ -35,57 +35,39 @@ exports.confirmCartCreditLinesWorkflow = (0, workflows_sdk_1.createWorkflow)("co
|
|
|
35
35
|
const cart = (0, workflows_sdk_1.transform)({ cartQuery }, ({ cartQuery }) => {
|
|
36
36
|
return cartQuery.data[0];
|
|
37
37
|
});
|
|
38
|
-
const
|
|
39
|
-
return cart.gift_cards.map((gc) => gc.
|
|
38
|
+
const giftCardIds = (0, workflows_sdk_1.transform)({ cart }, ({ cart }) => {
|
|
39
|
+
return cart.gift_cards.map((gc) => gc.id);
|
|
40
40
|
});
|
|
41
41
|
const giftCardQuery = (0, core_flows_1.useQueryGraphStep)({
|
|
42
42
|
entity: "gift_card",
|
|
43
|
-
filters: {
|
|
43
|
+
filters: { id: giftCardIds },
|
|
44
44
|
fields: ["id", "code", "status", "currency_code"],
|
|
45
45
|
}).config({ name: "get-gift-card-query" });
|
|
46
46
|
const giftCards = (0, workflows_sdk_1.transform)({ giftCardQuery }, ({ giftCardQuery }) => {
|
|
47
47
|
return giftCardQuery.data;
|
|
48
48
|
});
|
|
49
|
-
const transactionGroupQuery = (0, core_flows_1.useQueryGraphStep)({
|
|
50
|
-
entity: "transaction_group",
|
|
51
|
-
filters: { code: giftCardCodes },
|
|
52
|
-
fields: ["id", "code", "account.id"],
|
|
53
|
-
}).config({ name: "get-transaction-group-query" });
|
|
54
|
-
const transactionGroups = (0, workflows_sdk_1.transform)({ transactionGroupQuery }, ({ transactionGroupQuery }) => {
|
|
55
|
-
return transactionGroupQuery.data;
|
|
56
|
-
});
|
|
57
|
-
const transactionGroupMap = (0, workflows_sdk_1.transform)({ transactionGroups, giftCards }, ({ transactionGroups, giftCards }) => {
|
|
58
|
-
const map = {};
|
|
59
|
-
for (const giftCard of giftCards) {
|
|
60
|
-
const transactionGroup = transactionGroups.find((tg) => tg.code === giftCard.code);
|
|
61
|
-
map[giftCard.id] = transactionGroup;
|
|
62
|
-
}
|
|
63
|
-
return map;
|
|
64
|
-
});
|
|
65
49
|
const storeCreditAccountsQuery = (0, core_flows_1.useQueryGraphStep)({
|
|
66
|
-
entity: "
|
|
67
|
-
filters: {
|
|
68
|
-
|
|
69
|
-
currency_code: cart.currency_code,
|
|
70
|
-
},
|
|
71
|
-
fields: ["id", "balance"],
|
|
50
|
+
entity: "gift_card_store_credit_account",
|
|
51
|
+
filters: { gift_card_id: giftCardIds },
|
|
52
|
+
fields: ["gift_card_id", "store_credit_account_id"],
|
|
72
53
|
}).config({ name: "get-store-credit-account-query" });
|
|
73
|
-
const
|
|
74
|
-
return storeCreditAccountsQuery.data
|
|
54
|
+
const storeCreditAccountsMap = (0, workflows_sdk_1.transform)({ storeCreditAccountsQuery }, ({ storeCreditAccountsQuery }) => {
|
|
55
|
+
return storeCreditAccountsQuery.data.reduce((acc, curr) => {
|
|
56
|
+
acc[curr.gift_card_id] = curr.store_credit_account_id;
|
|
57
|
+
return acc;
|
|
58
|
+
}, {});
|
|
75
59
|
});
|
|
76
|
-
const debitAccountsInput = (0, workflows_sdk_1.transform)({ cart,
|
|
60
|
+
const debitAccountsInput = (0, workflows_sdk_1.transform)({ cart, storeCreditAccountsMap }, ({ cart, storeCreditAccountsMap }) => {
|
|
77
61
|
return (cart.credit_lines || [])
|
|
78
62
|
.filter((cl) => cl.reference === "store-credit" || cl.reference === "gift-card")
|
|
79
63
|
.map((cl) => {
|
|
80
|
-
const
|
|
64
|
+
const storeCreditAccount = storeCreditAccountsMap[cl.reference_id];
|
|
81
65
|
return {
|
|
82
|
-
account_id:
|
|
83
|
-
? transactionGroup.account.id
|
|
84
|
-
: cl.reference_id, // will contain store credit account id if it is a credit line otherwise transaction group will exists for a gift card line
|
|
66
|
+
account_id: storeCreditAccount || cl.reference_id,
|
|
85
67
|
amount: cl.amount,
|
|
86
68
|
reference: "cart",
|
|
87
69
|
reference_id: cart.id,
|
|
88
|
-
|
|
70
|
+
note: "Gift card usage",
|
|
89
71
|
};
|
|
90
72
|
});
|
|
91
73
|
});
|
|
@@ -94,4 +76,4 @@ exports.confirmCartCreditLinesWorkflow = (0, workflows_sdk_1.createWorkflow)("co
|
|
|
94
76
|
});
|
|
95
77
|
return new workflows_sdk_1.WorkflowResponse([]);
|
|
96
78
|
});
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS1jYXJ0LWNyZWRpdC1saW5lcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvY2FydHMvd29ya2Zsb3dzL2NvbmZpcm0tY2FydC1jcmVkaXQtbGluZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscURBQWdFO0FBQ2hFLDREQUFnRTtBQUNoRSwyREFLaUM7QUFHakMsZ0ZBQW9GO0FBRXZFLFFBQUEsOEJBQThCLEdBQUcsSUFBQSwwQkFBVSxFQUN0RCwrQkFBK0IsRUFDL0IsS0FBSyxXQUFXLEVBQ2QsU0FBUyxFQUNULG1CQUFtQixHQUlwQjtJQUNDLEtBQUssTUFBTSxRQUFRLElBQUksU0FBUyxFQUFFLENBQUM7UUFDakMsTUFBTSxLQUFLLEdBQUcsbUJBQW1CLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWpELElBQUksY0FBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDekMsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDOUIsY0FBYyxRQUFRLENBQUMsSUFBSSxrQkFBa0IsQ0FDOUMsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQyxDQUNGLENBQUM7QUFFRjs7RUFFRTtBQUNXLFFBQUEsOEJBQThCLEdBQUcsSUFBQSw4QkFBYyxFQUMxRCwyQkFBMkIsRUFDM0IsVUFBVSxLQUEwQjtJQUNsQyxNQUFNLFNBQVMsR0FBRyxJQUFBLDhCQUFpQixFQUFDO1FBQ2xDLE1BQU0sRUFBRSxNQUFNO1FBQ2QsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUU7UUFDOUIsTUFBTSxFQUFFO1lBQ04sSUFBSTtZQUNKLGFBQWE7WUFDYixlQUFlO1lBQ2YsaUJBQWlCO1lBQ2pCLHdCQUF3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
|