@medusajs/loyalty-plugin 2.21.0 → 2.21.1-preview-20260917150924
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 +172 -10
- package/.medusa/server/src/admin/index.mjs +173 -11
- package/.medusa/server/src/api/admin/store-credit-accounts/[id]/debit/route.d.ts +3 -0
- package/.medusa/server/src/api/admin/store-credit-accounts/[id]/debit/route.js +30 -0
- package/.medusa/server/src/api/admin/store-credit-accounts/middlewares.js +9 -1
- package/.medusa/server/src/api/admin/store-credit-accounts/validators.d.ts +5 -0
- package/.medusa/server/src/api/admin/store-credit-accounts/validators.js +6 -2
- package/.medusa/server/src/types/http/store-credit-account.d.ts +11 -0
- package/.medusa/server/src/types/store-credit/module.d.ts +25 -0
- package/.medusa/server/src/types/store-credit/module.js +1 -1
- package/.medusa/server/src/workflows/carts/workflows/add-store-credits-to-cart.d.ts +1 -1
- package/.medusa/server/src/workflows/store-credit/index.d.ts +1 -0
- package/.medusa/server/src/workflows/store-credit/index.js +2 -1
- package/.medusa/server/src/workflows/store-credit/workflows/credit-store-credit-account.d.ts +1 -1
- package/.medusa/server/src/workflows/store-credit/workflows/credit-store-credit-account.js +5 -17
- package/.medusa/server/src/workflows/store-credit/workflows/debit-store-credit-account.d.ts +30 -0
- package/.medusa/server/src/workflows/store-credit/workflows/debit-store-credit-account.js +56 -0
- package/package.json +19 -19
|
@@ -280,6 +280,24 @@ const useCreditStoreCreditAccount = (id, options) => {
|
|
|
280
280
|
...options
|
|
281
281
|
});
|
|
282
282
|
};
|
|
283
|
+
const useDebitStoreCreditAccount = (id, options) => {
|
|
284
|
+
const queryClient = reactQuery.useQueryClient();
|
|
285
|
+
return reactQuery.useMutation({
|
|
286
|
+
mutationFn: (payload) => sdk.client.fetch(
|
|
287
|
+
`/admin/store-credit-accounts/${id}/debit`,
|
|
288
|
+
{ body: payload, method: "POST" }
|
|
289
|
+
),
|
|
290
|
+
onSuccess: (data, variables, context) => {
|
|
291
|
+
queryClient.invalidateQueries({
|
|
292
|
+
queryKey: storeCreditAccountQueryKey.detail(id)
|
|
293
|
+
});
|
|
294
|
+
queryClient.invalidateQueries({
|
|
295
|
+
queryKey: transactionQueryKey.list({ sca_id: id })
|
|
296
|
+
});
|
|
297
|
+
},
|
|
298
|
+
...options
|
|
299
|
+
});
|
|
300
|
+
};
|
|
283
301
|
const CreditCardIcon = ({ className }) => {
|
|
284
302
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
285
303
|
"svg",
|
|
@@ -413,17 +431,29 @@ const CustomerStoreCreditWidget = () => {
|
|
|
413
431
|
const { store_credit_accounts: storeCreditAccounts, isPending } = useStoreCreditAccounts({
|
|
414
432
|
customer_id: params.id
|
|
415
433
|
});
|
|
416
|
-
if (isPending
|
|
434
|
+
if (isPending) {
|
|
417
435
|
return null;
|
|
418
436
|
}
|
|
437
|
+
const createHref = `/store-credit-accounts/create?prefill_customer_id=${params.id}`;
|
|
419
438
|
return /* @__PURE__ */ jsxRuntime.jsxs(ui.Container, { className: "p-0", children: [
|
|
420
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
421
|
-
|
|
439
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
440
|
+
Header$5,
|
|
441
|
+
{
|
|
442
|
+
title: "Store Credit Accounts",
|
|
443
|
+
actions: [
|
|
444
|
+
{
|
|
445
|
+
type: "custom",
|
|
446
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(reactRouterDom.Link, { to: createHref, children: /* @__PURE__ */ jsxRuntime.jsx(ui.Button, { variant: "secondary", size: "small", children: "Create" }) })
|
|
447
|
+
}
|
|
448
|
+
]
|
|
449
|
+
}
|
|
450
|
+
),
|
|
451
|
+
!storeCreditAccounts?.length && /* @__PURE__ */ jsxRuntime.jsx(
|
|
422
452
|
NoRecords,
|
|
423
453
|
{
|
|
424
454
|
className: "border-t",
|
|
425
455
|
title: "No store credit accounts",
|
|
426
|
-
message: "
|
|
456
|
+
message: "Create an account to credit this customer",
|
|
427
457
|
icon: null
|
|
428
458
|
}
|
|
429
459
|
),
|
|
@@ -23688,10 +23718,12 @@ const formSchema = zod.z.object({
|
|
|
23688
23718
|
});
|
|
23689
23719
|
const StoreCreditAccountCreateForm = () => {
|
|
23690
23720
|
const { handleSuccess } = useRouteModal();
|
|
23721
|
+
const [searchParams] = reactRouterDom.useSearchParams();
|
|
23722
|
+
const prefilledCustomerId = searchParams.get("prefill_customer_id") ?? "";
|
|
23691
23723
|
const form = useForm({
|
|
23692
23724
|
defaultValues: {
|
|
23693
23725
|
currency_code: "",
|
|
23694
|
-
customer_id:
|
|
23726
|
+
customer_id: prefilledCustomerId
|
|
23695
23727
|
},
|
|
23696
23728
|
resolver: u(formSchema)
|
|
23697
23729
|
});
|
|
@@ -23732,6 +23764,7 @@ const StoreCreditAccountCreateForm = () => {
|
|
|
23732
23764
|
isLoading
|
|
23733
23765
|
} = useComboboxData({
|
|
23734
23766
|
queryKey: customersQueryKeys.list(),
|
|
23767
|
+
defaultValue: prefilledCustomerId || void 0,
|
|
23735
23768
|
queryFn: async (params) => {
|
|
23736
23769
|
return sdk.admin.customer.list(params);
|
|
23737
23770
|
},
|
|
@@ -26856,7 +26889,7 @@ const GiftCardExpirationForm = ({ giftCard }) => {
|
|
|
26856
26889
|
defaultValues: {
|
|
26857
26890
|
expires_at: giftCard.expires_at ? new Date(giftCard.expires_at) : null
|
|
26858
26891
|
},
|
|
26859
|
-
resolver: u(schema$
|
|
26892
|
+
resolver: u(schema$3)
|
|
26860
26893
|
});
|
|
26861
26894
|
const { mutateAsync, isPending } = useUpdateGiftCard(giftCard.id);
|
|
26862
26895
|
const { handleSuccess } = useRouteModal();
|
|
@@ -26951,7 +26984,7 @@ const GiftCardExpirationForm = ({ giftCard }) => {
|
|
|
26951
26984
|
}
|
|
26952
26985
|
) });
|
|
26953
26986
|
};
|
|
26954
|
-
const schema$
|
|
26987
|
+
const schema$3 = zod.z.object({
|
|
26955
26988
|
expires_at: zod.z.date().nullish()
|
|
26956
26989
|
});
|
|
26957
26990
|
const Note$1 = () => {
|
|
@@ -26979,7 +27012,7 @@ const GiftCardNoteForm = ({ giftCard }) => {
|
|
|
26979
27012
|
defaultValues: {
|
|
26980
27013
|
note: giftCard.note ?? ""
|
|
26981
27014
|
},
|
|
26982
|
-
resolver: u(schema$
|
|
27015
|
+
resolver: u(schema$2)
|
|
26983
27016
|
});
|
|
26984
27017
|
const { mutateAsync, isPending } = useUpdateGiftCard(giftCard.id);
|
|
26985
27018
|
const { handleSuccess } = useRouteModal();
|
|
@@ -27018,7 +27051,7 @@ const GiftCardNoteForm = ({ giftCard }) => {
|
|
|
27018
27051
|
}
|
|
27019
27052
|
) });
|
|
27020
27053
|
};
|
|
27021
|
-
const schema$
|
|
27054
|
+
const schema$2 = zod.z.object({
|
|
27022
27055
|
note: zod.z.string().optional()
|
|
27023
27056
|
});
|
|
27024
27057
|
const columnHelper$7 = createColumnHelper();
|
|
@@ -40801,6 +40834,12 @@ const StoreCreditAccountDetailsSection = ({
|
|
|
40801
40834
|
icon: /* @__PURE__ */ jsxRuntime.jsx(icons.CreditCard, {}),
|
|
40802
40835
|
label: "Credit the account",
|
|
40803
40836
|
to: "credit"
|
|
40837
|
+
},
|
|
40838
|
+
{
|
|
40839
|
+
icon: /* @__PURE__ */ jsxRuntime.jsx(icons.MinusMini, {}),
|
|
40840
|
+
label: "Debit the account",
|
|
40841
|
+
to: "debit",
|
|
40842
|
+
disabled: !Number(storeCreditAccount.balance)
|
|
40804
40843
|
}
|
|
40805
40844
|
]
|
|
40806
40845
|
}
|
|
@@ -40918,7 +40957,7 @@ const StoreCreditAccountCreditForm = ({
|
|
|
40918
40957
|
},
|
|
40919
40958
|
note: ""
|
|
40920
40959
|
},
|
|
40921
|
-
resolver: u(schema)
|
|
40960
|
+
resolver: u(schema$1)
|
|
40922
40961
|
});
|
|
40923
40962
|
const { mutateAsync, isPending } = useCreditStoreCreditAccount(
|
|
40924
40963
|
storeCreditAccount.id
|
|
@@ -40992,6 +41031,125 @@ const StoreCreditAccountCreditForm = ({
|
|
|
40992
41031
|
}
|
|
40993
41032
|
) });
|
|
40994
41033
|
};
|
|
41034
|
+
const schema$1 = zod.z.object({
|
|
41035
|
+
note: zod.z.string(),
|
|
41036
|
+
amount: zod.z.object({
|
|
41037
|
+
float: zod.z.number(),
|
|
41038
|
+
value: zod.z.string()
|
|
41039
|
+
})
|
|
41040
|
+
});
|
|
41041
|
+
const Debit = () => {
|
|
41042
|
+
const { id } = reactRouterDom.useParams();
|
|
41043
|
+
const {
|
|
41044
|
+
store_credit_account: storeCreditAccount,
|
|
41045
|
+
isPending,
|
|
41046
|
+
isError,
|
|
41047
|
+
error
|
|
41048
|
+
} = useStoreCreditAccount(id, {});
|
|
41049
|
+
if (isError) {
|
|
41050
|
+
throw error;
|
|
41051
|
+
}
|
|
41052
|
+
const isReady = !isPending && !!storeCreditAccount;
|
|
41053
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(RouteDrawer, { children: [
|
|
41054
|
+
/* @__PURE__ */ jsxRuntime.jsxs(RouteDrawer.Header, { children: [
|
|
41055
|
+
/* @__PURE__ */ jsxRuntime.jsx(RouteDrawer.Title, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(ui.Heading, { children: "Debit store credit account" }) }),
|
|
41056
|
+
/* @__PURE__ */ jsxRuntime.jsx(RouteDrawer.Description, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Debit the store credit account" }) })
|
|
41057
|
+
] }),
|
|
41058
|
+
isReady && /* @__PURE__ */ jsxRuntime.jsx(StoreCreditAccountDebitForm, { storeCreditAccount })
|
|
41059
|
+
] });
|
|
41060
|
+
};
|
|
41061
|
+
const StoreCreditAccountDebitForm = ({
|
|
41062
|
+
storeCreditAccount
|
|
41063
|
+
}) => {
|
|
41064
|
+
const form = useForm({
|
|
41065
|
+
defaultValues: {
|
|
41066
|
+
amount: {
|
|
41067
|
+
float: 0,
|
|
41068
|
+
value: ""
|
|
41069
|
+
},
|
|
41070
|
+
note: ""
|
|
41071
|
+
},
|
|
41072
|
+
resolver: u(schema)
|
|
41073
|
+
});
|
|
41074
|
+
const { mutateAsync, isPending } = useDebitStoreCreditAccount(
|
|
41075
|
+
storeCreditAccount.id
|
|
41076
|
+
);
|
|
41077
|
+
const { handleSuccess } = useRouteModal();
|
|
41078
|
+
const balance = storeCreditAccount.balance ?? 0;
|
|
41079
|
+
const onSubmit = form.handleSubmit(async (data) => {
|
|
41080
|
+
if (data.amount.float <= 0) {
|
|
41081
|
+
form.setError("amount", { message: "Amount must be greater than 0" });
|
|
41082
|
+
return;
|
|
41083
|
+
}
|
|
41084
|
+
if (data.amount.float > balance) {
|
|
41085
|
+
form.setError("amount", {
|
|
41086
|
+
message: "Amount can't be greater than the current balance"
|
|
41087
|
+
});
|
|
41088
|
+
return;
|
|
41089
|
+
}
|
|
41090
|
+
await mutateAsync(
|
|
41091
|
+
{ amount: data.amount.float, note: data.note },
|
|
41092
|
+
{
|
|
41093
|
+
onSuccess: () => handleSuccess(),
|
|
41094
|
+
onError: (error) => ui.toast.error(error.message)
|
|
41095
|
+
}
|
|
41096
|
+
);
|
|
41097
|
+
});
|
|
41098
|
+
return /* @__PURE__ */ jsxRuntime.jsx(RouteDrawer.Form, { form, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
41099
|
+
KeyboundForm,
|
|
41100
|
+
{
|
|
41101
|
+
className: "flex flex-1 flex-col overflow-hidden",
|
|
41102
|
+
onSubmit,
|
|
41103
|
+
children: [
|
|
41104
|
+
/* @__PURE__ */ jsxRuntime.jsxs(RouteDrawer.Body, { className: "flex flex-col gap-y-6 overflow-y-auto", children: [
|
|
41105
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
41106
|
+
Form$2.Field,
|
|
41107
|
+
{
|
|
41108
|
+
control: form.control,
|
|
41109
|
+
name: "amount",
|
|
41110
|
+
render: ({ field }) => /* @__PURE__ */ jsxRuntime.jsxs(Form$2.Item, { children: [
|
|
41111
|
+
/* @__PURE__ */ jsxRuntime.jsx(Form$2.Label, { children: "Amount" }),
|
|
41112
|
+
/* @__PURE__ */ jsxRuntime.jsx(Form$2.Control, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
41113
|
+
ui.CurrencyInput,
|
|
41114
|
+
{
|
|
41115
|
+
min: 0,
|
|
41116
|
+
placeholder: "0",
|
|
41117
|
+
value: field.value.value,
|
|
41118
|
+
onValueChange: (_value, _name, values) => {
|
|
41119
|
+
field.onChange({
|
|
41120
|
+
value: values?.value,
|
|
41121
|
+
float: values?.float || null
|
|
41122
|
+
});
|
|
41123
|
+
},
|
|
41124
|
+
symbol: currencies[storeCreditAccount.currency_code.toUpperCase()].symbol_native,
|
|
41125
|
+
code: storeCreditAccount.currency_code.toUpperCase()
|
|
41126
|
+
}
|
|
41127
|
+
) }),
|
|
41128
|
+
/* @__PURE__ */ jsxRuntime.jsx(Form$2.ErrorMessage, {})
|
|
41129
|
+
] })
|
|
41130
|
+
}
|
|
41131
|
+
),
|
|
41132
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
41133
|
+
Form$2.Field,
|
|
41134
|
+
{
|
|
41135
|
+
control: form.control,
|
|
41136
|
+
name: "note",
|
|
41137
|
+
render: ({ field }) => /* @__PURE__ */ jsxRuntime.jsxs(Form$2.Item, { children: [
|
|
41138
|
+
/* @__PURE__ */ jsxRuntime.jsx(Form$2.Label, { children: "Note" }),
|
|
41139
|
+
/* @__PURE__ */ jsxRuntime.jsx(Form$2.Control, { children: /* @__PURE__ */ jsxRuntime.jsx(ui.Textarea, { ...field }) }),
|
|
41140
|
+
/* @__PURE__ */ jsxRuntime.jsx(Form$2.ErrorMessage, {})
|
|
41141
|
+
] })
|
|
41142
|
+
}
|
|
41143
|
+
)
|
|
41144
|
+
] }),
|
|
41145
|
+
/* @__PURE__ */ jsxRuntime.jsx(RouteDrawer.Footer, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-end gap-2", children: [
|
|
41146
|
+
/* @__PURE__ */ jsxRuntime.jsx(RouteDrawer.Close, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(ui.Button, { size: "small", variant: "secondary", children: "Cancel" }) }),
|
|
41147
|
+
/* @__PURE__ */ jsxRuntime.jsx(ui.Button, { size: "small", type: "submit", isLoading: isPending, children: "Save" })
|
|
41148
|
+
] }) })
|
|
41149
|
+
]
|
|
41150
|
+
}
|
|
41151
|
+
) });
|
|
41152
|
+
};
|
|
40995
41153
|
const schema = zod.z.object({
|
|
40996
41154
|
note: zod.z.string(),
|
|
40997
41155
|
amount: zod.z.object({
|
|
@@ -42761,6 +42919,10 @@ const routeModule = {
|
|
|
42761
42919
|
{
|
|
42762
42920
|
Component: Note,
|
|
42763
42921
|
path: "/store-credit-accounts/:id/credit"
|
|
42922
|
+
},
|
|
42923
|
+
{
|
|
42924
|
+
Component: Debit,
|
|
42925
|
+
path: "/store-credit-accounts/:id/debit"
|
|
42764
42926
|
}
|
|
42765
42927
|
]
|
|
42766
42928
|
},
|
|
@@ -4,7 +4,7 @@ import { DropdownMenu, IconButton, clx, Heading, Text, Tooltip, Button, Containe
|
|
|
4
4
|
import { Link, useParams, useSearchParams, useNavigate, Outlet, useBlocker, useLocation } from "react-router-dom";
|
|
5
5
|
import * as React from "react";
|
|
6
6
|
import React__default, { createElement as createElement$1, useState, useCallback, useMemo, Fragment as Fragment$1, createContext, forwardRef, useId as useId$1, useContext, useEffect, isValidElement as isValidElement$1, useLayoutEffect, useRef, useReducer, useTransition, useImperativeHandle, useDeferredValue, Suspense, memo as memo$2, cloneElement } from "react";
|
|
7
|
-
import { EllipsisHorizontal, InformationCircleSolid, ExclamationCircle, PlusMini, TriangleRightMini, Gift, Photo, PencilSquare, Trash, Tag, XMarkMini, TrianglesMini, CheckMini, EllipseMiniSolid, ArrowUpRightOnBox, TriangleDownMini, Check, SquareTwoStack, Calendar, ShoppingCart, AdjustmentsDone, Adjustments, TaxInclusive, TaxExclusive, XMark, ArrowDownTray, DotsSix, ThumbnailBadge, StackPerspective, CreditCard, User, Share, XCircleSolid, TriangleLeftMini } from "@medusajs/icons";
|
|
7
|
+
import { EllipsisHorizontal, InformationCircleSolid, ExclamationCircle, PlusMini, TriangleRightMini, Gift, Photo, PencilSquare, Trash, Tag, XMarkMini, TrianglesMini, CheckMini, EllipseMiniSolid, ArrowUpRightOnBox, TriangleDownMini, Check, SquareTwoStack, Calendar, ShoppingCart, AdjustmentsDone, Adjustments, TaxInclusive, TaxExclusive, XMark, ArrowDownTray, DotsSix, ThumbnailBadge, StackPerspective, CreditCard, MinusMini, User, Share, XCircleSolid, TriangleLeftMini } from "@medusajs/icons";
|
|
8
8
|
import { useQuery, useQueryClient, useMutation, useInfiniteQuery, keepPreviousData } from "@tanstack/react-query";
|
|
9
9
|
import Medusa, { FetchError } from "@medusajs/js-sdk";
|
|
10
10
|
import { LayoutComposer } from "@medusajs/dashboard/components";
|
|
@@ -260,6 +260,24 @@ const useCreditStoreCreditAccount = (id, options) => {
|
|
|
260
260
|
...options
|
|
261
261
|
});
|
|
262
262
|
};
|
|
263
|
+
const useDebitStoreCreditAccount = (id, options) => {
|
|
264
|
+
const queryClient = useQueryClient();
|
|
265
|
+
return useMutation({
|
|
266
|
+
mutationFn: (payload) => sdk.client.fetch(
|
|
267
|
+
`/admin/store-credit-accounts/${id}/debit`,
|
|
268
|
+
{ body: payload, method: "POST" }
|
|
269
|
+
),
|
|
270
|
+
onSuccess: (data, variables, context) => {
|
|
271
|
+
queryClient.invalidateQueries({
|
|
272
|
+
queryKey: storeCreditAccountQueryKey.detail(id)
|
|
273
|
+
});
|
|
274
|
+
queryClient.invalidateQueries({
|
|
275
|
+
queryKey: transactionQueryKey.list({ sca_id: id })
|
|
276
|
+
});
|
|
277
|
+
},
|
|
278
|
+
...options
|
|
279
|
+
});
|
|
280
|
+
};
|
|
263
281
|
const CreditCardIcon = ({ className }) => {
|
|
264
282
|
return /* @__PURE__ */ jsxs(
|
|
265
283
|
"svg",
|
|
@@ -393,17 +411,29 @@ const CustomerStoreCreditWidget = () => {
|
|
|
393
411
|
const { store_credit_accounts: storeCreditAccounts, isPending } = useStoreCreditAccounts({
|
|
394
412
|
customer_id: params.id
|
|
395
413
|
});
|
|
396
|
-
if (isPending
|
|
414
|
+
if (isPending) {
|
|
397
415
|
return null;
|
|
398
416
|
}
|
|
417
|
+
const createHref = `/store-credit-accounts/create?prefill_customer_id=${params.id}`;
|
|
399
418
|
return /* @__PURE__ */ jsxs(Container$1, { className: "p-0", children: [
|
|
400
|
-
/* @__PURE__ */ jsx(
|
|
401
|
-
|
|
419
|
+
/* @__PURE__ */ jsx(
|
|
420
|
+
Header$5,
|
|
421
|
+
{
|
|
422
|
+
title: "Store Credit Accounts",
|
|
423
|
+
actions: [
|
|
424
|
+
{
|
|
425
|
+
type: "custom",
|
|
426
|
+
children: /* @__PURE__ */ jsx(Link, { to: createHref, children: /* @__PURE__ */ jsx(Button, { variant: "secondary", size: "small", children: "Create" }) })
|
|
427
|
+
}
|
|
428
|
+
]
|
|
429
|
+
}
|
|
430
|
+
),
|
|
431
|
+
!storeCreditAccounts?.length && /* @__PURE__ */ jsx(
|
|
402
432
|
NoRecords,
|
|
403
433
|
{
|
|
404
434
|
className: "border-t",
|
|
405
435
|
title: "No store credit accounts",
|
|
406
|
-
message: "
|
|
436
|
+
message: "Create an account to credit this customer",
|
|
407
437
|
icon: null
|
|
408
438
|
}
|
|
409
439
|
),
|
|
@@ -23668,10 +23698,12 @@ const formSchema = z.object({
|
|
|
23668
23698
|
});
|
|
23669
23699
|
const StoreCreditAccountCreateForm = () => {
|
|
23670
23700
|
const { handleSuccess } = useRouteModal();
|
|
23701
|
+
const [searchParams] = useSearchParams();
|
|
23702
|
+
const prefilledCustomerId = searchParams.get("prefill_customer_id") ?? "";
|
|
23671
23703
|
const form = useForm({
|
|
23672
23704
|
defaultValues: {
|
|
23673
23705
|
currency_code: "",
|
|
23674
|
-
customer_id:
|
|
23706
|
+
customer_id: prefilledCustomerId
|
|
23675
23707
|
},
|
|
23676
23708
|
resolver: u(formSchema)
|
|
23677
23709
|
});
|
|
@@ -23712,6 +23744,7 @@ const StoreCreditAccountCreateForm = () => {
|
|
|
23712
23744
|
isLoading
|
|
23713
23745
|
} = useComboboxData({
|
|
23714
23746
|
queryKey: customersQueryKeys.list(),
|
|
23747
|
+
defaultValue: prefilledCustomerId || void 0,
|
|
23715
23748
|
queryFn: async (params) => {
|
|
23716
23749
|
return sdk.admin.customer.list(params);
|
|
23717
23750
|
},
|
|
@@ -26836,7 +26869,7 @@ const GiftCardExpirationForm = ({ giftCard }) => {
|
|
|
26836
26869
|
defaultValues: {
|
|
26837
26870
|
expires_at: giftCard.expires_at ? new Date(giftCard.expires_at) : null
|
|
26838
26871
|
},
|
|
26839
|
-
resolver: u(schema$
|
|
26872
|
+
resolver: u(schema$3)
|
|
26840
26873
|
});
|
|
26841
26874
|
const { mutateAsync, isPending } = useUpdateGiftCard(giftCard.id);
|
|
26842
26875
|
const { handleSuccess } = useRouteModal();
|
|
@@ -26931,7 +26964,7 @@ const GiftCardExpirationForm = ({ giftCard }) => {
|
|
|
26931
26964
|
}
|
|
26932
26965
|
) });
|
|
26933
26966
|
};
|
|
26934
|
-
const schema$
|
|
26967
|
+
const schema$3 = z.object({
|
|
26935
26968
|
expires_at: z.date().nullish()
|
|
26936
26969
|
});
|
|
26937
26970
|
const Note$1 = () => {
|
|
@@ -26959,7 +26992,7 @@ const GiftCardNoteForm = ({ giftCard }) => {
|
|
|
26959
26992
|
defaultValues: {
|
|
26960
26993
|
note: giftCard.note ?? ""
|
|
26961
26994
|
},
|
|
26962
|
-
resolver: u(schema$
|
|
26995
|
+
resolver: u(schema$2)
|
|
26963
26996
|
});
|
|
26964
26997
|
const { mutateAsync, isPending } = useUpdateGiftCard(giftCard.id);
|
|
26965
26998
|
const { handleSuccess } = useRouteModal();
|
|
@@ -26998,7 +27031,7 @@ const GiftCardNoteForm = ({ giftCard }) => {
|
|
|
26998
27031
|
}
|
|
26999
27032
|
) });
|
|
27000
27033
|
};
|
|
27001
|
-
const schema$
|
|
27034
|
+
const schema$2 = z.object({
|
|
27002
27035
|
note: z.string().optional()
|
|
27003
27036
|
});
|
|
27004
27037
|
const columnHelper$7 = createColumnHelper();
|
|
@@ -40781,6 +40814,12 @@ const StoreCreditAccountDetailsSection = ({
|
|
|
40781
40814
|
icon: /* @__PURE__ */ jsx(CreditCard, {}),
|
|
40782
40815
|
label: "Credit the account",
|
|
40783
40816
|
to: "credit"
|
|
40817
|
+
},
|
|
40818
|
+
{
|
|
40819
|
+
icon: /* @__PURE__ */ jsx(MinusMini, {}),
|
|
40820
|
+
label: "Debit the account",
|
|
40821
|
+
to: "debit",
|
|
40822
|
+
disabled: !Number(storeCreditAccount.balance)
|
|
40784
40823
|
}
|
|
40785
40824
|
]
|
|
40786
40825
|
}
|
|
@@ -40898,7 +40937,7 @@ const StoreCreditAccountCreditForm = ({
|
|
|
40898
40937
|
},
|
|
40899
40938
|
note: ""
|
|
40900
40939
|
},
|
|
40901
|
-
resolver: u(schema)
|
|
40940
|
+
resolver: u(schema$1)
|
|
40902
40941
|
});
|
|
40903
40942
|
const { mutateAsync, isPending } = useCreditStoreCreditAccount(
|
|
40904
40943
|
storeCreditAccount.id
|
|
@@ -40972,6 +41011,125 @@ const StoreCreditAccountCreditForm = ({
|
|
|
40972
41011
|
}
|
|
40973
41012
|
) });
|
|
40974
41013
|
};
|
|
41014
|
+
const schema$1 = z.object({
|
|
41015
|
+
note: z.string(),
|
|
41016
|
+
amount: z.object({
|
|
41017
|
+
float: z.number(),
|
|
41018
|
+
value: z.string()
|
|
41019
|
+
})
|
|
41020
|
+
});
|
|
41021
|
+
const Debit = () => {
|
|
41022
|
+
const { id } = useParams();
|
|
41023
|
+
const {
|
|
41024
|
+
store_credit_account: storeCreditAccount,
|
|
41025
|
+
isPending,
|
|
41026
|
+
isError,
|
|
41027
|
+
error
|
|
41028
|
+
} = useStoreCreditAccount(id, {});
|
|
41029
|
+
if (isError) {
|
|
41030
|
+
throw error;
|
|
41031
|
+
}
|
|
41032
|
+
const isReady = !isPending && !!storeCreditAccount;
|
|
41033
|
+
return /* @__PURE__ */ jsxs(RouteDrawer, { children: [
|
|
41034
|
+
/* @__PURE__ */ jsxs(RouteDrawer.Header, { children: [
|
|
41035
|
+
/* @__PURE__ */ jsx(RouteDrawer.Title, { asChild: true, children: /* @__PURE__ */ jsx(Heading, { children: "Debit store credit account" }) }),
|
|
41036
|
+
/* @__PURE__ */ jsx(RouteDrawer.Description, { asChild: true, children: /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Debit the store credit account" }) })
|
|
41037
|
+
] }),
|
|
41038
|
+
isReady && /* @__PURE__ */ jsx(StoreCreditAccountDebitForm, { storeCreditAccount })
|
|
41039
|
+
] });
|
|
41040
|
+
};
|
|
41041
|
+
const StoreCreditAccountDebitForm = ({
|
|
41042
|
+
storeCreditAccount
|
|
41043
|
+
}) => {
|
|
41044
|
+
const form = useForm({
|
|
41045
|
+
defaultValues: {
|
|
41046
|
+
amount: {
|
|
41047
|
+
float: 0,
|
|
41048
|
+
value: ""
|
|
41049
|
+
},
|
|
41050
|
+
note: ""
|
|
41051
|
+
},
|
|
41052
|
+
resolver: u(schema)
|
|
41053
|
+
});
|
|
41054
|
+
const { mutateAsync, isPending } = useDebitStoreCreditAccount(
|
|
41055
|
+
storeCreditAccount.id
|
|
41056
|
+
);
|
|
41057
|
+
const { handleSuccess } = useRouteModal();
|
|
41058
|
+
const balance = storeCreditAccount.balance ?? 0;
|
|
41059
|
+
const onSubmit = form.handleSubmit(async (data) => {
|
|
41060
|
+
if (data.amount.float <= 0) {
|
|
41061
|
+
form.setError("amount", { message: "Amount must be greater than 0" });
|
|
41062
|
+
return;
|
|
41063
|
+
}
|
|
41064
|
+
if (data.amount.float > balance) {
|
|
41065
|
+
form.setError("amount", {
|
|
41066
|
+
message: "Amount can't be greater than the current balance"
|
|
41067
|
+
});
|
|
41068
|
+
return;
|
|
41069
|
+
}
|
|
41070
|
+
await mutateAsync(
|
|
41071
|
+
{ amount: data.amount.float, note: data.note },
|
|
41072
|
+
{
|
|
41073
|
+
onSuccess: () => handleSuccess(),
|
|
41074
|
+
onError: (error) => toast.error(error.message)
|
|
41075
|
+
}
|
|
41076
|
+
);
|
|
41077
|
+
});
|
|
41078
|
+
return /* @__PURE__ */ jsx(RouteDrawer.Form, { form, children: /* @__PURE__ */ jsxs(
|
|
41079
|
+
KeyboundForm,
|
|
41080
|
+
{
|
|
41081
|
+
className: "flex flex-1 flex-col overflow-hidden",
|
|
41082
|
+
onSubmit,
|
|
41083
|
+
children: [
|
|
41084
|
+
/* @__PURE__ */ jsxs(RouteDrawer.Body, { className: "flex flex-col gap-y-6 overflow-y-auto", children: [
|
|
41085
|
+
/* @__PURE__ */ jsx(
|
|
41086
|
+
Form$2.Field,
|
|
41087
|
+
{
|
|
41088
|
+
control: form.control,
|
|
41089
|
+
name: "amount",
|
|
41090
|
+
render: ({ field }) => /* @__PURE__ */ jsxs(Form$2.Item, { children: [
|
|
41091
|
+
/* @__PURE__ */ jsx(Form$2.Label, { children: "Amount" }),
|
|
41092
|
+
/* @__PURE__ */ jsx(Form$2.Control, { children: /* @__PURE__ */ jsx(
|
|
41093
|
+
CurrencyInput$1,
|
|
41094
|
+
{
|
|
41095
|
+
min: 0,
|
|
41096
|
+
placeholder: "0",
|
|
41097
|
+
value: field.value.value,
|
|
41098
|
+
onValueChange: (_value, _name, values) => {
|
|
41099
|
+
field.onChange({
|
|
41100
|
+
value: values?.value,
|
|
41101
|
+
float: values?.float || null
|
|
41102
|
+
});
|
|
41103
|
+
},
|
|
41104
|
+
symbol: currencies[storeCreditAccount.currency_code.toUpperCase()].symbol_native,
|
|
41105
|
+
code: storeCreditAccount.currency_code.toUpperCase()
|
|
41106
|
+
}
|
|
41107
|
+
) }),
|
|
41108
|
+
/* @__PURE__ */ jsx(Form$2.ErrorMessage, {})
|
|
41109
|
+
] })
|
|
41110
|
+
}
|
|
41111
|
+
),
|
|
41112
|
+
/* @__PURE__ */ jsx(
|
|
41113
|
+
Form$2.Field,
|
|
41114
|
+
{
|
|
41115
|
+
control: form.control,
|
|
41116
|
+
name: "note",
|
|
41117
|
+
render: ({ field }) => /* @__PURE__ */ jsxs(Form$2.Item, { children: [
|
|
41118
|
+
/* @__PURE__ */ jsx(Form$2.Label, { children: "Note" }),
|
|
41119
|
+
/* @__PURE__ */ jsx(Form$2.Control, { children: /* @__PURE__ */ jsx(Textarea, { ...field }) }),
|
|
41120
|
+
/* @__PURE__ */ jsx(Form$2.ErrorMessage, {})
|
|
41121
|
+
] })
|
|
41122
|
+
}
|
|
41123
|
+
)
|
|
41124
|
+
] }),
|
|
41125
|
+
/* @__PURE__ */ jsx(RouteDrawer.Footer, { children: /* @__PURE__ */ jsxs("div", { className: "flex justify-end gap-2", children: [
|
|
41126
|
+
/* @__PURE__ */ jsx(RouteDrawer.Close, { asChild: true, children: /* @__PURE__ */ jsx(Button, { size: "small", variant: "secondary", children: "Cancel" }) }),
|
|
41127
|
+
/* @__PURE__ */ jsx(Button, { size: "small", type: "submit", isLoading: isPending, children: "Save" })
|
|
41128
|
+
] }) })
|
|
41129
|
+
]
|
|
41130
|
+
}
|
|
41131
|
+
) });
|
|
41132
|
+
};
|
|
40975
41133
|
const schema = z.object({
|
|
40976
41134
|
note: z.string(),
|
|
40977
41135
|
amount: z.object({
|
|
@@ -42741,6 +42899,10 @@ const routeModule = {
|
|
|
42741
42899
|
{
|
|
42742
42900
|
Component: Note,
|
|
42743
42901
|
path: "/store-credit-accounts/:id/credit"
|
|
42902
|
+
},
|
|
42903
|
+
{
|
|
42904
|
+
Component: Debit,
|
|
42905
|
+
path: "/store-credit-accounts/:id/debit"
|
|
42744
42906
|
}
|
|
42745
42907
|
]
|
|
42746
42908
|
},
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { AuthenticatedMedusaRequest, MedusaResponse } from "@medusajs/framework";
|
|
2
|
+
import { AdminDebitStoreCreditAccountParams, AdminStoreCreditAccountResponse } from "../../../../../types";
|
|
3
|
+
export declare const POST: (req: AuthenticatedMedusaRequest<AdminDebitStoreCreditAccountParams>, res: MedusaResponse<AdminStoreCreditAccountResponse>) => Promise<void>;
|
|
@@ -0,0 +1,30 @@
|
|
|
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 debit_store_credit_account_1 = require("../../../../../workflows/store-credit/workflows/debit-store-credit-account");
|
|
6
|
+
const POST = async (req, res) => {
|
|
7
|
+
const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
8
|
+
const { id } = req.params;
|
|
9
|
+
const filters = {
|
|
10
|
+
id,
|
|
11
|
+
};
|
|
12
|
+
await debit_store_credit_account_1.debitStoreCreditAccountWorkflow.run({
|
|
13
|
+
input: {
|
|
14
|
+
account_id: id,
|
|
15
|
+
amount: req.validatedBody.amount,
|
|
16
|
+
note: req.validatedBody.note,
|
|
17
|
+
reference: req.auth_context.actor_type,
|
|
18
|
+
reference_id: req.auth_context.actor_id,
|
|
19
|
+
},
|
|
20
|
+
container: req.scope,
|
|
21
|
+
});
|
|
22
|
+
const { data: [store_credit_account], } = await query.graph({
|
|
23
|
+
entity: "store_credit_account",
|
|
24
|
+
fields: req.queryConfig.fields,
|
|
25
|
+
filters,
|
|
26
|
+
}, { throwIfKeyNotFound: true });
|
|
27
|
+
res.json({ store_credit_account });
|
|
28
|
+
};
|
|
29
|
+
exports.POST = POST;
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3N0b3JlLWNyZWRpdC1hY2NvdW50cy9baWRdL2RlYml0L3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBLHFEQUFzRTtBQU90RSwySEFBNkg7QUFFdEgsTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUN2QixHQUFtRSxFQUNuRSxHQUFvRCxFQUNwRCxFQUFFO0lBQ0YsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakUsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7SUFFMUIsTUFBTSxPQUFPLEdBQXNDO1FBQ2pELEVBQUU7S0FDSCxDQUFDO0lBRUYsTUFBTSw0REFBK0IsQ0FBQyxHQUFHLENBQUM7UUFDeEMsS0FBSyxFQUFFO1lBQ0wsVUFBVSxFQUFFLEVBQUU7WUFDZCxNQUFNLEVBQUUsR0FBRyxDQUFDLGFBQWEsQ0FBQyxNQUFNO1lBQ2hDLElBQUksRUFBRSxHQUFHLENBQUMsYUFBYSxDQUFDLElBQUk7WUFDNUIsU0FBUyxFQUFFLEdBQUcsQ0FBQyxZQUFZLENBQUMsVUFBVTtZQUN0QyxZQUFZLEVBQUUsR0FBRyxDQUFDLFlBQVksQ0FBQyxRQUFRO1NBQ3hDO1FBQ0QsU0FBUyxFQUFFLEdBQUcsQ0FBQyxLQUFLO0tBQ3JCLENBQUMsQ0FBQztJQUVILE1BQU0sRUFDSixJQUFJLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxHQUM3QixHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FDbkI7UUFDRSxNQUFNLEVBQUUsc0JBQXNCO1FBQzlCLE1BQU0sRUFBRSxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU07UUFDOUIsT0FBTztLQUNSLEVBQ0QsRUFBRSxrQkFBa0IsRUFBRSxJQUFJLEVBQUUsQ0FDN0IsQ0FBQztJQUVGLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxvQkFBb0IsRUFBRSxDQUFDLENBQUM7QUFDckMsQ0FBQyxDQUFDO0FBbENXLFFBQUEsSUFBSSxRQWtDZiJ9
|
|
@@ -34,6 +34,14 @@ exports.adminStoreCreditAccountMiddlewares = [
|
|
|
34
34
|
(0, framework_1.validateAndTransformQuery)(validators_1.AdminGetStoreCreditAccountsParams, query_config_1.retrieveStoreCreditAccountTransformQueryConfig),
|
|
35
35
|
],
|
|
36
36
|
},
|
|
37
|
+
{
|
|
38
|
+
method: ["POST"],
|
|
39
|
+
matcher: "/admin/store-credit-accounts/:id/debit",
|
|
40
|
+
middlewares: [
|
|
41
|
+
(0, framework_1.validateAndTransformBody)(validators_1.AdminDebitStoreCreditAccountParams),
|
|
42
|
+
(0, framework_1.validateAndTransformQuery)(validators_1.AdminGetStoreCreditAccountsParams, query_config_1.retrieveStoreCreditAccountTransformQueryConfig),
|
|
43
|
+
],
|
|
44
|
+
},
|
|
37
45
|
{
|
|
38
46
|
method: ["POST"],
|
|
39
47
|
matcher: "/admin/store-credit-accounts",
|
|
@@ -43,4 +51,4 @@ exports.adminStoreCreditAccountMiddlewares = [
|
|
|
43
51
|
],
|
|
44
52
|
},
|
|
45
53
|
];
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3N0b3JlLWNyZWRpdC1hY2NvdW50cy9taWRkbGV3YXJlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFHNkI7QUFFN0IsaURBSXdCO0FBQ3hCLDZDQU1zQjtBQUVULFFBQUEsa0NBQWtDLEdBQXNCO0lBQ25FO1FBQ0UsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDO1FBQ2YsT0FBTyxFQUFFLDhCQUE4QjtRQUN2QyxXQUFXLEVBQUU7WUFDWCxJQUFBLHFDQUF5QixFQUN2Qiw4Q0FBaUMsRUFDakMsMERBQTJDLENBQzVDO1NBQ0Y7S0FDRjtJQUNEO1FBQ0UsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDO1FBQ2YsT0FBTyxFQUFFLGtDQUFrQztRQUMzQyxXQUFXLEVBQUU7WUFDWCxJQUFBLHFDQUF5QixFQUN2Qiw4Q0FBaUMsRUFDakMsNkRBQThDLENBQy9DO1NBQ0Y7S0FDRjtJQUNEO1FBQ0UsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDO1FBQ2YsT0FBTyxFQUFFLCtDQUErQztRQUN4RCxXQUFXLEVBQUU7WUFDWCxJQUFBLHFDQUF5QixFQUN2Qix5REFBNEMsRUFDNUMscUVBQXNELENBQ3ZEO1NBQ0Y7S0FDRjtJQUNEO1FBQ0UsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDO1FBQ2hCLE9BQU8sRUFBRSx5Q0FBeUM7UUFDbEQsV0FBVyxFQUFFO1lBQ1gsSUFBQSxvQ0FBd0IsRUFBQyxnREFBbUMsQ0FBQztZQUM3RCxJQUFBLHFDQUF5QixFQUN2Qiw4Q0FBaUMsRUFDakMsNkRBQThDLENBQy9DO1NBQ0Y7S0FDRjtJQUNEO1FBQ0UsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDO1FBQ2hCLE9BQU8sRUFBRSx3Q0FBd0M7UUFDakQsV0FBVyxFQUFFO1lBQ1gsSUFBQSxvQ0FBd0IsRUFBQywrQ0FBa0MsQ0FBQztZQUM1RCxJQUFBLHFDQUF5QixFQUN2Qiw4Q0FBaUMsRUFDakMsNkRBQThDLENBQy9DO1NBQ0Y7S0FDRjtJQUNEO1FBQ0UsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDO1FBQ2hCLE9BQU8sRUFBRSw4QkFBOEI7UUFDdkMsV0FBVyxFQUFFO1lBQ1gsSUFBQSxvQ0FBd0IsRUFBQywwQ0FBNkIsQ0FBQztZQUN2RCxJQUFBLHFDQUF5QixFQUN2Qiw4Q0FBaUMsRUFDakMsNkRBQThDLENBQy9DO1NBQ0Y7S0FDRjtDQUNGLENBQUMifQ==
|
|
@@ -89,6 +89,11 @@ export declare const AdminCreditStoreCreditAccountParams: z.ZodObject<{
|
|
|
89
89
|
amount: z.ZodNumber;
|
|
90
90
|
note: z.ZodOptional<z.ZodString>;
|
|
91
91
|
}, z.core.$strip>;
|
|
92
|
+
export type AdminDebitStoreCreditAccountParamsType = z.infer<typeof AdminDebitStoreCreditAccountParams>;
|
|
93
|
+
export declare const AdminDebitStoreCreditAccountParams: z.ZodObject<{
|
|
94
|
+
amount: z.ZodNumber;
|
|
95
|
+
note: z.ZodOptional<z.ZodString>;
|
|
96
|
+
}, z.core.$strip>;
|
|
92
97
|
export type AdminGetStoreCreditAccountTransactionsParamsType = z.infer<typeof AdminGetStoreCreditAccountTransactionsParams>;
|
|
93
98
|
export declare const AdminGetStoreCreditAccountTransactionsParams: z.ZodObject<{
|
|
94
99
|
q: z.ZodOptional<z.ZodString>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AdminGetStoreCreditAccountTransactionsParams = exports.AdminCreditStoreCreditAccountParams = exports.AdminCreateStoreCreditAccount = exports.AdminGetStoreCreditAccountsParams = void 0;
|
|
3
|
+
exports.AdminGetStoreCreditAccountTransactionsParams = exports.AdminDebitStoreCreditAccountParams = exports.AdminCreditStoreCreditAccountParams = exports.AdminCreateStoreCreditAccount = exports.AdminGetStoreCreditAccountsParams = void 0;
|
|
4
4
|
const validators_1 = require("@medusajs/medusa/api/utils/validators");
|
|
5
5
|
const zod_1 = require("@medusajs/framework/zod");
|
|
6
6
|
exports.AdminGetStoreCreditAccountsParams = zod_1.z.strictObject({
|
|
@@ -30,6 +30,10 @@ exports.AdminCreditStoreCreditAccountParams = zod_1.z.object({
|
|
|
30
30
|
amount: zod_1.z.number(),
|
|
31
31
|
note: zod_1.z.string().optional(),
|
|
32
32
|
});
|
|
33
|
+
exports.AdminDebitStoreCreditAccountParams = zod_1.z.object({
|
|
34
|
+
amount: zod_1.z.number(),
|
|
35
|
+
note: zod_1.z.string().optional(),
|
|
36
|
+
});
|
|
33
37
|
exports.AdminGetStoreCreditAccountTransactionsParams = zod_1.z.strictObject({
|
|
34
38
|
...(0, validators_1.createFindParams)({
|
|
35
39
|
limit: 15,
|
|
@@ -42,4 +46,4 @@ exports.AdminGetStoreCreditAccountTransactionsParams = zod_1.z.strictObject({
|
|
|
42
46
|
updated_at: (0, validators_1.createOperatorMap)().optional(),
|
|
43
47
|
created_at: (0, validators_1.createOperatorMap)().optional(),
|
|
44
48
|
});
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvYWRtaW4vc3RvcmUtY3JlZGl0LWFjY291bnRzL3ZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsc0VBRytDO0FBQy9DLGlEQUE0QztBQUsvQixRQUFBLGlDQUFpQyxHQUFHLE9BQUMsQ0FBQyxZQUFZLENBQUM7SUFDOUQsR0FBRyxJQUFBLDZCQUFnQixFQUFDO1FBQ2xCLEtBQUssRUFBRSxFQUFFO1FBQ1QsTUFBTSxFQUFFLENBQUM7S0FDVixDQUFDLENBQUMsS0FBSztJQUNSLENBQUMsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3hCLEVBQUUsRUFBRSxPQUFDO1NBQ0YsS0FBSyxDQUFDLENBQUMsT0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLE9BQUMsQ0FBQyxLQUFLLENBQUMsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsSUFBQSw4QkFBaUIsR0FBRSxDQUFDLENBQUM7U0FDN0QsUUFBUSxFQUFFO0lBQ2IsYUFBYSxFQUFFLE9BQUM7U0FDYixLQUFLLENBQUMsQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxJQUFBLDhCQUFpQixHQUFFLENBQUMsQ0FBQztTQUM3RCxRQUFRLEVBQUU7SUFDYixXQUFXLEVBQUUsT0FBQztTQUNYLEtBQUssQ0FBQyxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFDLENBQUMsS0FBSyxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLElBQUEsOEJBQWlCLEdBQUUsQ0FBQyxDQUFDO1NBQzdELFFBQVEsRUFBRTtJQUNiLFVBQVUsRUFBRSxJQUFBLDhCQUFpQixHQUFFLENBQUMsUUFBUSxFQUFFO0lBQzFDLFVBQVUsRUFBRSxJQUFBLDhCQUFpQixHQUFFLENBQUMsUUFBUSxFQUFFO0NBQzNDLENBQUMsQ0FBQztBQUtVLFFBQUEsNkJBQTZCLEdBQUcsT0FBQyxDQUFDLFlBQVksQ0FBQztJQUMxRCxhQUFhLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRTtJQUN6QixXQUFXLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNsQyxRQUFRLEVBQUUsT0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQ2xFLENBQUMsQ0FBQztBQUtVLFFBQUEsbUNBQW1DLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztJQUMxRCxNQUFNLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNsQixJQUFJLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtDQUM1QixDQUFDLENBQUM7QUFLVSxRQUFBLGtDQUFrQyxHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDekQsTUFBTSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUU7SUFDbEIsSUFBSSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDNUIsQ0FBQyxDQUFDO0FBS1UsUUFBQSw0Q0FBNEMsR0FBRyxPQUFDLENBQUMsWUFBWSxDQUFDO0lBQ3pFLEdBQUcsSUFBQSw2QkFBZ0IsRUFBQztRQUNsQixLQUFLLEVBQUUsRUFBRTtRQUNULE1BQU0sRUFBRSxDQUFDO0tBQ1YsQ0FBQyxDQUFDLEtBQUs7SUFDUixDQUFDLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUN4QixFQUFFLEVBQUUsT0FBQztTQUNGLEtBQUssQ0FBQyxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFDLENBQUMsS0FBSyxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLElBQUEsOEJBQWlCLEdBQUUsQ0FBQyxDQUFDO1NBQzdELFFBQVEsRUFBRTtJQUNiLFVBQVUsRUFBRSxJQUFBLDhCQUFpQixHQUFFLENBQUMsUUFBUSxFQUFFO0lBQzFDLFVBQVUsRUFBRSxJQUFBLDhCQUFpQixHQUFFLENBQUMsUUFBUSxFQUFFO0NBQzNDLENBQUMsQ0FBQyJ9
|
|
@@ -27,6 +27,10 @@ export interface AdminCreditStoreCreditAccount {
|
|
|
27
27
|
amount: number;
|
|
28
28
|
note?: string;
|
|
29
29
|
}
|
|
30
|
+
export interface AdminDebitStoreCreditAccount {
|
|
31
|
+
amount: number;
|
|
32
|
+
note?: string;
|
|
33
|
+
}
|
|
30
34
|
export interface StoreAddStoreCreditsToCart {
|
|
31
35
|
amount: number;
|
|
32
36
|
}
|
|
@@ -58,3 +62,10 @@ export interface AdminCreditStoreCreditAccountParams {
|
|
|
58
62
|
export interface AdminCreditStoreCreditAccountResponse {
|
|
59
63
|
store_credit_account: AdminStoreCreditAccount;
|
|
60
64
|
}
|
|
65
|
+
export interface AdminDebitStoreCreditAccountParams {
|
|
66
|
+
amount: number;
|
|
67
|
+
note?: string;
|
|
68
|
+
}
|
|
69
|
+
export interface AdminDebitStoreCreditAccountResponse {
|
|
70
|
+
store_credit_account: AdminStoreCreditAccount;
|
|
71
|
+
}
|
|
@@ -94,6 +94,31 @@ export type ModuleCreditStoreCreditAccount = {
|
|
|
94
94
|
*/
|
|
95
95
|
reference_id?: string;
|
|
96
96
|
};
|
|
97
|
+
/**
|
|
98
|
+
* The data required to debit a store credit account by an amount.
|
|
99
|
+
*/
|
|
100
|
+
export type ModuleDebitStoreCreditAccount = {
|
|
101
|
+
/**
|
|
102
|
+
* The ID of the store credit account to debit.
|
|
103
|
+
*/
|
|
104
|
+
account_id: string;
|
|
105
|
+
/**
|
|
106
|
+
* The amount to debit from the account.
|
|
107
|
+
*/
|
|
108
|
+
amount: number;
|
|
109
|
+
/**
|
|
110
|
+
* An optional note describing the debit transaction.
|
|
111
|
+
*/
|
|
112
|
+
note?: string;
|
|
113
|
+
/**
|
|
114
|
+
* The resource type this debit references (for example, "user", "order").
|
|
115
|
+
*/
|
|
116
|
+
reference?: string;
|
|
117
|
+
/**
|
|
118
|
+
* The ID of the referenced resource.
|
|
119
|
+
*/
|
|
120
|
+
reference_id?: string;
|
|
121
|
+
};
|
|
97
122
|
/**
|
|
98
123
|
* The data required to update a store credit account.
|
|
99
124
|
*/
|
|
@@ -10,4 +10,4 @@ var TransactionType;
|
|
|
10
10
|
TransactionType["CREDIT"] = "credit";
|
|
11
11
|
TransactionType["DEBIT"] = "debit";
|
|
12
12
|
})(TransactionType || (exports.TransactionType = TransactionType = {}));
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3R5cGVzL3N0b3JlLWNyZWRpdC9tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBc0pBLGdDQUFnQztBQUVoQzs7R0FFRztBQUNILElBQVksZUFHWDtBQUhELFdBQVksZUFBZTtJQUN6QixvQ0FBaUIsQ0FBQTtJQUNqQixrQ0FBZSxDQUFBO0FBQ2pCLENBQUMsRUFIVyxlQUFlLCtCQUFmLGVBQWUsUUFHMUIifQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CreateCartCreditLineDTO } from "@medusajs/framework/types";
|
|
2
|
-
import { PluginCartDTO } from "
|
|
2
|
+
import { PluginCartDTO } from "../../../types/cart";
|
|
3
3
|
import { ModuleStoreCreditAccount } from "../../../types/store-credit";
|
|
4
4
|
/**
|
|
5
5
|
* Input to validate that a customer's store credit account exists and has a positive balance.
|
|
@@ -3,6 +3,7 @@ export * from "./workflows/create-store-credit-accounts";
|
|
|
3
3
|
export * from "./workflows/credit-accounts";
|
|
4
4
|
export * from "./workflows/credit-store-credit-account";
|
|
5
5
|
export * from "./workflows/debit-accounts";
|
|
6
|
+
export * from "./workflows/debit-store-credit-account";
|
|
6
7
|
export * from "./steps/create-store-credit-accounts";
|
|
7
8
|
export * from "./steps/credit-account";
|
|
8
9
|
export * from "./steps/debit-account";
|
|
@@ -19,7 +19,8 @@ __exportStar(require("./workflows/create-store-credit-accounts"), exports);
|
|
|
19
19
|
__exportStar(require("./workflows/credit-accounts"), exports);
|
|
20
20
|
__exportStar(require("./workflows/credit-store-credit-account"), exports);
|
|
21
21
|
__exportStar(require("./workflows/debit-accounts"), exports);
|
|
22
|
+
__exportStar(require("./workflows/debit-store-credit-account"), exports);
|
|
22
23
|
__exportStar(require("./steps/create-store-credit-accounts"), exports);
|
|
23
24
|
__exportStar(require("./steps/credit-account"), exports);
|
|
24
25
|
__exportStar(require("./steps/debit-account"), exports);
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3N0b3JlLWNyZWRpdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseUVBQXVEO0FBQ3ZELDJFQUF5RDtBQUN6RCw4REFBNEM7QUFDNUMsMEVBQXdEO0FBQ3hELDZEQUEyQztBQUMzQyx5RUFBdUQ7QUFFdkQsdUVBQXFEO0FBQ3JELHlEQUF1QztBQUN2Qyx3REFBc0MifQ==
|
|
@@ -41,27 +41,15 @@ exports.creditStoreCreditAccountWorkflow = (0, workflows_sdk_1.createWorkflow)("
|
|
|
41
41
|
filters: { id: input.account_id },
|
|
42
42
|
options: { throwIfKeyNotFound: true },
|
|
43
43
|
});
|
|
44
|
-
const
|
|
45
|
-
return storeCreditAccountData.data[0];
|
|
46
|
-
});
|
|
47
|
-
const amount = (0, workflows_sdk_1.transform)({ input }, ({ input }) => {
|
|
48
|
-
return utils_1.MathBN.convert(input.amount);
|
|
49
|
-
});
|
|
50
|
-
const transactionInfo = (0, workflows_sdk_1.transform)({ input }, ({ input }) => {
|
|
44
|
+
const creditData = (0, workflows_sdk_1.transform)({ storeCreditAccountData, input }, ({ storeCreditAccountData, input }) => {
|
|
51
45
|
return {
|
|
46
|
+
account_id: storeCreditAccountData.data[0].id,
|
|
47
|
+
amount: utils_1.MathBN.convert(input.amount),
|
|
52
48
|
note: input.note || "",
|
|
53
49
|
reference: input.reference || "",
|
|
54
50
|
reference_id: input.reference_id || "",
|
|
55
51
|
};
|
|
56
52
|
});
|
|
57
|
-
(0, credit_account_1.creditAccountStep)([
|
|
58
|
-
{
|
|
59
|
-
account_id: storeCreditAccount.id,
|
|
60
|
-
amount: amount,
|
|
61
|
-
note: transactionInfo.note,
|
|
62
|
-
reference: transactionInfo.reference,
|
|
63
|
-
reference_id: transactionInfo.reference_id,
|
|
64
|
-
},
|
|
65
|
-
]);
|
|
53
|
+
(0, credit_account_1.creditAccountStep)([creditData]);
|
|
66
54
|
});
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlZGl0LXN0b3JlLWNyZWRpdC1hY2NvdW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9zdG9yZS1jcmVkaXQvd29ya2Zsb3dzL2NyZWRpdC1zdG9yZS1jcmVkaXQtYWNjb3VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxREFBZ0U7QUFDaEUsNERBQWdFO0FBQ2hFLHFFQUEwRjtBQUcxRiw0REFBNEQ7QUFPNUQsTUFBTSxtQ0FBbUMsR0FBRyxJQUFBLDBCQUFVLEVBQ3BELHFDQUFxQyxFQUNyQyxLQUFLLFdBQVcsS0FBcUM7SUFDbkQsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3RCLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLCtCQUErQixDQUNoQyxDQUFDO0lBQ0osQ0FBQztBQUNILENBQUMsQ0FDRixDQUFDO0FBRUY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFDVSxRQUFBLGdDQUFnQyxHQUFHLElBQUEsOEJBQWMsRUFDNUQsNkJBQTZCLEVBQzdCLFVBQVUsS0FBNEM7SUFDcEQsbUNBQW1DLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFM0MsTUFBTSxzQkFBc0IsR0FBRyxJQUFBLDhCQUFpQixFQUFDO1FBQy9DLE1BQU0sRUFBRSxzQkFBc0I7UUFDOUIsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLFNBQVMsQ0FBQztRQUNqRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLFVBQVUsRUFBRTtRQUNqQyxPQUFPLEVBQUUsRUFBRSxrQkFBa0IsRUFBRSxJQUFJLEVBQUU7S0FDdEMsQ0FBQyxDQUFDO0lBRUgsTUFBTSxVQUFVLEdBQUcsSUFBQSx5QkFBUyxFQUMxQixFQUFFLHNCQUFzQixFQUFFLEtBQUssRUFBRSxFQUNqQyxDQUFDLEVBQUUsc0JBQXNCLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUNwQyxPQUFPO1lBQ0wsVUFBVSxFQUFFLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzdDLE1BQU0sRUFBRSxjQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDcEMsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLElBQUksRUFBRTtZQUN0QixTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVMsSUFBSSxFQUFFO1lBQ2hDLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWSxJQUFJLEVBQUU7U0FDdkMsQ0FBQztJQUNKLENBQUMsQ0FDRixDQUFDO0lBRUYsSUFBQSxrQ0FBaUIsRUFBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7QUFDbEMsQ0FBQyxDQUNGLENBQUMifQ==
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { ModuleDebitStoreCreditAccount } from "../../../types/store-credit";
|
|
2
|
+
/**
|
|
3
|
+
* Input to debit a specific store credit account by an amount.
|
|
4
|
+
*/
|
|
5
|
+
export type DebitStoreCreditAccountWorkflowInput = ModuleDebitStoreCreditAccount;
|
|
6
|
+
/**
|
|
7
|
+
* This workflow debits a specific store credit account by an amount. It validates
|
|
8
|
+
* that the amount is greater than zero and that the account exists before debiting.
|
|
9
|
+
* The debit is rejected if the account's balance doesn't cover the amount.
|
|
10
|
+
*
|
|
11
|
+
* You can use this workflow within your own customizations or custom workflows,
|
|
12
|
+
* allowing you to wrap custom logic around debiting a store credit account.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* await debitStoreCreditAccountWorkflow(container)
|
|
16
|
+
* .run({
|
|
17
|
+
* input: {
|
|
18
|
+
* account_id: "sca_123",
|
|
19
|
+
* amount: 100,
|
|
20
|
+
* note: "Credit issued by mistake",
|
|
21
|
+
* reference: "user",
|
|
22
|
+
* reference_id: "user_123",
|
|
23
|
+
* },
|
|
24
|
+
* })
|
|
25
|
+
*
|
|
26
|
+
* @summary
|
|
27
|
+
*
|
|
28
|
+
* Debit a store credit account.
|
|
29
|
+
*/
|
|
30
|
+
export declare const debitStoreCreditAccountWorkflow: import("@medusajs/framework/workflows-sdk").ReturnWorkflow<ModuleDebitStoreCreditAccount, unknown, any[]>;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.debitStoreCreditAccountWorkflow = 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/framework/workflows-sdk");
|
|
7
|
+
const debit_account_1 = require("../steps/debit-account");
|
|
8
|
+
const validateDebitStoreCreditAccountInputStep = (0, workflows_sdk_1.createStep)("validate-debit-store-credit-account-input", async function (input) {
|
|
9
|
+
if (input.amount <= 0) {
|
|
10
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Amount must be greater than 0");
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
/**
|
|
14
|
+
* This workflow debits a specific store credit account by an amount. It validates
|
|
15
|
+
* that the amount is greater than zero and that the account exists before debiting.
|
|
16
|
+
* The debit is rejected if the account's balance doesn't cover the amount.
|
|
17
|
+
*
|
|
18
|
+
* You can use this workflow within your own customizations or custom workflows,
|
|
19
|
+
* allowing you to wrap custom logic around debiting a store credit account.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* await debitStoreCreditAccountWorkflow(container)
|
|
23
|
+
* .run({
|
|
24
|
+
* input: {
|
|
25
|
+
* account_id: "sca_123",
|
|
26
|
+
* amount: 100,
|
|
27
|
+
* note: "Credit issued by mistake",
|
|
28
|
+
* reference: "user",
|
|
29
|
+
* reference_id: "user_123",
|
|
30
|
+
* },
|
|
31
|
+
* })
|
|
32
|
+
*
|
|
33
|
+
* @summary
|
|
34
|
+
*
|
|
35
|
+
* Debit a store credit account.
|
|
36
|
+
*/
|
|
37
|
+
exports.debitStoreCreditAccountWorkflow = (0, workflows_sdk_1.createWorkflow)("debit-store-credit-account", function (input) {
|
|
38
|
+
validateDebitStoreCreditAccountInputStep(input);
|
|
39
|
+
const storeCreditAccountData = (0, core_flows_1.useQueryGraphStep)({
|
|
40
|
+
entity: "store_credit_account",
|
|
41
|
+
fields: ["id", "code", "customer_id", "currency_code", "balance"],
|
|
42
|
+
filters: { id: input.account_id },
|
|
43
|
+
options: { throwIfKeyNotFound: true },
|
|
44
|
+
});
|
|
45
|
+
const debitData = (0, workflows_sdk_1.transform)({ storeCreditAccountData, input }, ({ storeCreditAccountData, input }) => {
|
|
46
|
+
return {
|
|
47
|
+
account_id: storeCreditAccountData.data[0].id,
|
|
48
|
+
amount: utils_1.MathBN.convert(input.amount),
|
|
49
|
+
note: input.note || "",
|
|
50
|
+
reference: input.reference || "",
|
|
51
|
+
reference_id: input.reference_id || "",
|
|
52
|
+
};
|
|
53
|
+
});
|
|
54
|
+
(0, debit_account_1.debitAccountStep)([debitData]);
|
|
55
|
+
});
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGViaXQtc3RvcmUtY3JlZGl0LWFjY291bnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3N0b3JlLWNyZWRpdC93b3JrZmxvd3MvZGViaXQtc3RvcmUtY3JlZGl0LWFjY291bnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscURBQWdFO0FBQ2hFLDREQUFnRTtBQUNoRSxxRUFBMEY7QUFHMUYsMERBQTBEO0FBTzFELE1BQU0sd0NBQXdDLEdBQUcsSUFBQSwwQkFBVSxFQUN6RCwyQ0FBMkMsRUFDM0MsS0FBSyxXQUFXLEtBQW9DO0lBQ2xELElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUN0QixNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUM5QiwrQkFBK0IsQ0FDaEMsQ0FBQztJQUNKLENBQUM7QUFDSCxDQUFDLENBQ0YsQ0FBQztBQUVGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCRztBQUNVLFFBQUEsK0JBQStCLEdBQUcsSUFBQSw4QkFBYyxFQUMzRCw0QkFBNEIsRUFDNUIsVUFBVSxLQUEyQztJQUNuRCx3Q0FBd0MsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUVoRCxNQUFNLHNCQUFzQixHQUFHLElBQUEsOEJBQWlCLEVBQUM7UUFDL0MsTUFBTSxFQUFFLHNCQUFzQjtRQUM5QixNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsU0FBUyxDQUFDO1FBQ2pFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsVUFBVSxFQUFFO1FBQ2pDLE9BQU8sRUFBRSxFQUFFLGtCQUFrQixFQUFFLElBQUksRUFBRTtLQUN0QyxDQUFDLENBQUM7SUFFSCxNQUFNLFNBQVMsR0FBRyxJQUFBLHlCQUFTLEVBQ3pCLEVBQUUsc0JBQXNCLEVBQUUsS0FBSyxFQUFFLEVBQ2pDLENBQUMsRUFBRSxzQkFBc0IsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1FBQ3BDLE9BQU87WUFDTCxVQUFVLEVBQUUsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDN0MsTUFBTSxFQUFFLGNBQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUNwQyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksSUFBSSxFQUFFO1lBQ3RCLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUyxJQUFJLEVBQUU7WUFDaEMsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZLElBQUksRUFBRTtTQUN2QyxDQUFDO0lBQ0osQ0FBQyxDQUNGLENBQUM7SUFFRixJQUFBLGdDQUFnQixFQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztBQUNoQyxDQUFDLENBQ0YsQ0FBQyJ9
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@medusajs/loyalty-plugin",
|
|
3
|
-
"version": "2.21.
|
|
3
|
+
"version": "2.21.1-preview-20260917150924",
|
|
4
4
|
"description": "Medusa Plugin: Loyalty - Gift Cards",
|
|
5
5
|
"author": "Medusa (https://medusajs.com)",
|
|
6
6
|
"license": "MIT",
|
|
@@ -55,16 +55,16 @@
|
|
|
55
55
|
"watch": "medusa plugin:develop"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
|
-
"@medusajs/admin-sdk": "2.21.
|
|
59
|
-
"@medusajs/cli": "2.21.
|
|
60
|
-
"@medusajs/dashboard": "2.21.
|
|
61
|
-
"@medusajs/framework": "2.21.
|
|
62
|
-
"@medusajs/icons": "2.21.
|
|
63
|
-
"@medusajs/medusa": "2.21.
|
|
64
|
-
"@medusajs/test-utils": "2.21.
|
|
65
|
-
"@medusajs/types": "2.21.
|
|
66
|
-
"@medusajs/ui": "4.2.
|
|
67
|
-
"@medusajs/ui-preset": "2.21.
|
|
58
|
+
"@medusajs/admin-sdk": "2.21.1-preview-20260917150924",
|
|
59
|
+
"@medusajs/cli": "2.21.1-preview-20260917150924",
|
|
60
|
+
"@medusajs/dashboard": "2.21.1-preview-20260917150924",
|
|
61
|
+
"@medusajs/framework": "2.21.1-preview-20260917150924",
|
|
62
|
+
"@medusajs/icons": "2.21.1-preview-20260917150924",
|
|
63
|
+
"@medusajs/medusa": "2.21.1-preview-20260917150924",
|
|
64
|
+
"@medusajs/test-utils": "2.21.1-preview-20260917150924",
|
|
65
|
+
"@medusajs/types": "2.21.1-preview-20260917150924",
|
|
66
|
+
"@medusajs/ui": "4.2.5-preview-20260917150924",
|
|
67
|
+
"@medusajs/ui-preset": "2.21.1-preview-20260917150924",
|
|
68
68
|
"@swc/core": "1.5.7",
|
|
69
69
|
"@types/node": "^20.0.0",
|
|
70
70
|
"cross-env": "^7.0.3",
|
|
@@ -72,14 +72,14 @@
|
|
|
72
72
|
"typescript": "^5.7.3"
|
|
73
73
|
},
|
|
74
74
|
"peerDependencies": {
|
|
75
|
-
"@medusajs/admin-sdk": "2.21.
|
|
76
|
-
"@medusajs/cli": "2.21.
|
|
77
|
-
"@medusajs/dashboard": "2.21.
|
|
78
|
-
"@medusajs/framework": "2.21.
|
|
79
|
-
"@medusajs/icons": "2.21.
|
|
80
|
-
"@medusajs/medusa": "2.21.
|
|
81
|
-
"@medusajs/test-utils": "2.21.
|
|
82
|
-
"@medusajs/ui": "4.2.
|
|
75
|
+
"@medusajs/admin-sdk": "2.21.1-preview-20260917150924",
|
|
76
|
+
"@medusajs/cli": "2.21.1-preview-20260917150924",
|
|
77
|
+
"@medusajs/dashboard": "2.21.1-preview-20260917150924",
|
|
78
|
+
"@medusajs/framework": "2.21.1-preview-20260917150924",
|
|
79
|
+
"@medusajs/icons": "2.21.1-preview-20260917150924",
|
|
80
|
+
"@medusajs/medusa": "2.21.1-preview-20260917150924",
|
|
81
|
+
"@medusajs/test-utils": "2.21.1-preview-20260917150924",
|
|
82
|
+
"@medusajs/ui": "4.2.5-preview-20260917150924",
|
|
83
83
|
"react": "^18.3.1",
|
|
84
84
|
"react-dom": "^18.3.1",
|
|
85
85
|
"react-router-dom": "^6.30.4 || ^7.0.0"
|