@sixtyninecommerce/admin 0.7.0 → 0.9.0
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/README.md +2445 -17
- package/dist/api-tokens/index.d.ts +15 -5
- package/dist/api-tokens/index.js +1 -0
- package/dist/apps/event-subscription.d.ts +59 -0
- package/dist/apps/event-subscription.js +32 -0
- package/dist/apps/hook-secret.d.ts +22 -0
- package/dist/apps/hook-secret.js +36 -0
- package/dist/apps/index.d.ts +54 -3
- package/dist/apps/index.js +17 -0
- package/dist/audit/index.d.ts +7 -0
- package/dist/auth/queries.d.ts +5 -1
- package/dist/auth/queries.js +6 -0
- package/dist/bulk/index.d.ts +323 -0
- package/dist/bulk/index.js +162 -0
- package/dist/catalog/assets.d.ts +147 -0
- package/dist/catalog/assets.js +164 -0
- package/dist/catalog/collections.d.ts +109 -0
- package/dist/catalog/collections.js +91 -0
- package/dist/catalog/facets.d.ts +103 -0
- package/dist/catalog/facets.js +100 -0
- package/dist/catalog/index.d.ts +115 -0
- package/dist/catalog/index.js +21 -0
- package/dist/catalog/options.d.ts +89 -0
- package/dist/catalog/options.js +88 -0
- package/dist/catalog/products-bulk.d.ts +21 -0
- package/dist/catalog/products-bulk.js +58 -0
- package/dist/catalog/products.d.ts +489 -0
- package/dist/catalog/products.js +365 -0
- package/dist/catalog/properties.d.ts +234 -0
- package/dist/catalog/properties.js +158 -0
- package/dist/catalog/types.d.ts +174 -0
- package/dist/catalog/types.js +141 -0
- package/dist/catalog/variants.d.ts +274 -0
- package/dist/catalog/variants.js +258 -0
- package/dist/catalog/visibility.d.ts +57 -0
- package/dist/catalog/visibility.js +59 -0
- package/dist/client.d.ts +171 -3
- package/dist/client.js +81 -12
- package/dist/compliance/index.d.ts +88 -0
- package/dist/compliance/index.js +88 -0
- package/dist/customer-data-redaction.d.ts +14 -0
- package/dist/customer-data-redaction.js +22 -0
- package/dist/customers/index.d.ts +428 -17
- package/dist/customers/index.js +322 -15
- package/dist/documents/index.d.ts +513 -16
- package/dist/documents/index.js +229 -3
- package/dist/events/index.d.ts +259 -0
- package/dist/events/index.js +147 -0
- package/dist/feeds/ai.d.ts +46 -0
- package/dist/feeds/ai.js +43 -0
- package/dist/feeds/categories.d.ts +50 -0
- package/dist/feeds/categories.js +56 -0
- package/dist/feeds/configs.d.ts +54 -0
- package/dist/feeds/configs.js +85 -0
- package/dist/feeds/identifier-fields.d.ts +25 -0
- package/dist/feeds/identifier-fields.js +29 -0
- package/dist/feeds/index.d.ts +54 -0
- package/dist/feeds/index.js +46 -0
- package/dist/feeds/preserve.d.ts +38 -0
- package/dist/feeds/preserve.js +74 -0
- package/dist/feeds/rules.d.ts +42 -0
- package/dist/feeds/rules.js +56 -0
- package/dist/feeds/types.d.ts +654 -0
- package/dist/feeds/types.js +135 -0
- package/dist/fulfillments/index.d.ts +360 -0
- package/dist/fulfillments/index.js +425 -0
- package/dist/heads/index.d.ts +60 -0
- package/dist/heads/index.js +45 -0
- package/dist/hooks/assignments.d.ts +90 -0
- package/dist/hooks/assignments.js +53 -0
- package/dist/hooks/index.d.ts +97 -0
- package/dist/hooks/index.js +76 -0
- package/dist/index.d.ts +84 -9
- package/dist/index.js +16 -1
- package/dist/jobs/bulk-action-run.d.ts +65 -0
- package/dist/jobs/bulk-action-run.js +70 -0
- package/dist/locations/index.d.ts +6 -2
- package/dist/meta/index.d.ts +32 -0
- package/dist/orders/commit-edit.d.ts +123 -0
- package/dist/orders/commit-edit.js +142 -0
- package/dist/orders/get.d.ts +722 -0
- package/dist/orders/get.js +530 -0
- package/dist/orders/index.d.ts +105 -20
- package/dist/orders/index.js +44 -0
- package/dist/orders/line-price-preview.d.ts +297 -0
- package/dist/orders/line-price-preview.js +50 -0
- package/dist/orders/manual-discounts.d.ts +132 -0
- package/dist/orders/manual-discounts.js +95 -0
- package/dist/orders/manual-pricing.d.ts +192 -0
- package/dist/orders/manual-pricing.js +72 -0
- package/dist/orders/order-entry.d.ts +566 -0
- package/dist/orders/order-entry.js +129 -0
- package/dist/orders/parcel-charge.d.ts +45 -0
- package/dist/orders/parcel-charge.js +55 -0
- package/dist/orders/plan-edit.d.ts +489 -0
- package/dist/orders/plan-edit.js +93 -0
- package/dist/orders/status.d.ts +235 -0
- package/dist/orders/status.js +96 -0
- package/dist/orders/surcharges.d.ts +75 -2
- package/dist/orders/surcharges.js +110 -4
- package/dist/payments/account-credit.d.ts +171 -0
- package/dist/payments/account-credit.js +107 -0
- package/dist/payments/index.d.ts +368 -2
- package/dist/payments/index.js +138 -0
- package/dist/platform/catalog.d.ts +148 -0
- package/dist/platform/catalog.js +74 -0
- package/dist/platform/entitlements.d.ts +111 -0
- package/dist/platform/entitlements.js +86 -0
- package/dist/platform/legal-entities.d.ts +139 -0
- package/dist/platform/legal-entities.js +126 -0
- package/dist/platform/legal-entity-numbering.d.ts +103 -0
- package/dist/platform/legal-entity-numbering.js +101 -0
- package/dist/platform/organization-membership.d.ts +80 -0
- package/dist/platform/organization-membership.js +71 -0
- package/dist/platform/organization-settings.d.ts +33 -0
- package/dist/platform/organization-settings.js +42 -0
- package/dist/platform/organization-sharing.d.ts +172 -0
- package/dist/platform/organization-sharing.js +120 -0
- package/dist/platform/organizations.d.ts +205 -0
- package/dist/platform/organizations.js +180 -0
- package/dist/platform/provision-store.d.ts +88 -8
- package/dist/platform/provision-store.js +12 -0
- package/dist/platform/reports.d.ts +46 -0
- package/dist/platform/reports.js +31 -0
- package/dist/platform/server-metrics.d.ts +58 -0
- package/dist/platform/server-metrics.js +11 -0
- package/dist/pos/index.d.ts +567 -0
- package/dist/pos/index.js +205 -0
- package/dist/pricing/index.d.ts +405 -0
- package/dist/pricing/index.js +351 -0
- package/dist/provenance/index.d.ts +93 -0
- package/dist/provenance/index.js +53 -0
- package/dist/reports/index.d.ts +199 -0
- package/dist/reports/index.js +154 -0
- package/dist/shipping/parcel-count-suggestion.d.ts +52 -0
- package/dist/shipping/parcel-count-suggestion.js +73 -0
- package/dist/shipping/parcel-rule.d.ts +48 -0
- package/dist/shipping/parcel-rule.js +91 -0
- package/dist/stock/index.d.ts +166 -0
- package/dist/stock/index.js +115 -0
- package/dist/stock/transfers.d.ts +520 -0
- package/dist/stock/transfers.js +437 -0
- package/dist/stored-value/index.d.ts +154 -0
- package/dist/stored-value/index.js +130 -0
- package/dist/tenant/capabilities.d.ts +10 -0
- package/dist/tenant/entitlements.d.ts +35 -0
- package/dist/tenant/entitlements.js +15 -0
- package/dist/tenant/field-groups.d.ts +64 -0
- package/dist/tenant/field-groups.js +34 -0
- package/dist/tenant/legal-entity.d.ts +32 -0
- package/dist/tenant/legal-entity.js +41 -0
- package/dist/tenant/notifications.d.ts +148 -0
- package/dist/tenant/notifications.js +79 -0
- package/dist/tenant/retention.d.ts +10 -4
- package/dist/tenant/settings-sources.d.ts +103 -0
- package/dist/tenant/settings-sources.js +92 -0
- package/dist/types.d.ts +86 -11
- package/dist/uploads/index.d.ts +11 -7
- package/dist/users/index.d.ts +104 -0
- package/dist/users/index.js +80 -0
- package/package.json +3 -2
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import type { Transport } from '@sixtyninecommerce/core';
|
|
2
|
+
import type { Call } from '../types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Unapplied cash: money a customer paid on an order OVER what the order bills,
|
|
5
|
+
* moved to their account and held there until it pays an invoice or is paid
|
|
6
|
+
* back. Never a credit note: nothing that was billed is credited.
|
|
7
|
+
*
|
|
8
|
+
* Every amount is in minor units of `currencyCode`, and
|
|
9
|
+
* `amount = applied + refunded + remaining`.
|
|
10
|
+
*/
|
|
11
|
+
export interface UnappliedCash {
|
|
12
|
+
id: string;
|
|
13
|
+
customerId: string;
|
|
14
|
+
/** The currency of the payment the money came from: its order's. */
|
|
15
|
+
currencyCode: string;
|
|
16
|
+
/** What was moved to the account. */
|
|
17
|
+
amount: number;
|
|
18
|
+
/** What of it has paid invoices. */
|
|
19
|
+
applied: number;
|
|
20
|
+
/** What of it was paid back to the customer. */
|
|
21
|
+
refunded: number;
|
|
22
|
+
/** What is still on the account, applied to nothing. */
|
|
23
|
+
remaining: number;
|
|
24
|
+
/** The order the money was paid on. */
|
|
25
|
+
orderId: string;
|
|
26
|
+
/** The payment of that order it was taken from. */
|
|
27
|
+
paymentId: string;
|
|
28
|
+
/** Date only (`YYYY-MM-DD`). */
|
|
29
|
+
receivedOn: string;
|
|
30
|
+
reference: string | null;
|
|
31
|
+
/** The reason given when the money was moved. */
|
|
32
|
+
notes: string | null;
|
|
33
|
+
/** ISO-8601 with offset. */
|
|
34
|
+
createdAt: string;
|
|
35
|
+
}
|
|
36
|
+
export interface CreditOverpaymentInput {
|
|
37
|
+
orderId: string;
|
|
38
|
+
/**
|
|
39
|
+
* Minor units of the order's currency. Omit it to move everything the order
|
|
40
|
+
* holds over what it bills.
|
|
41
|
+
*/
|
|
42
|
+
amount?: number;
|
|
43
|
+
/** Why, in your own words: shown on the receipt and in the order's history. */
|
|
44
|
+
reason?: string;
|
|
45
|
+
}
|
|
46
|
+
export interface ApplyUnappliedCashInput {
|
|
47
|
+
unappliedCashId: string;
|
|
48
|
+
/** The AR invoice to pay. Give exactly one of `invoiceId` and `orderId`. */
|
|
49
|
+
invoiceId?: string;
|
|
50
|
+
/** An order, paid through the live AR invoice that bills it. */
|
|
51
|
+
orderId?: string;
|
|
52
|
+
/**
|
|
53
|
+
* Minor units. Omit it to apply as much as fits: the lesser of what the cash
|
|
54
|
+
* still holds and what the invoice still owes.
|
|
55
|
+
*/
|
|
56
|
+
amount?: number;
|
|
57
|
+
}
|
|
58
|
+
export interface RefundUnappliedCashInput {
|
|
59
|
+
unappliedCashId: string;
|
|
60
|
+
/** Minor units. Omit it to pay back everything the cash still holds. */
|
|
61
|
+
amount?: number;
|
|
62
|
+
/** Free text stored on the refund. Shown to nobody automatically. */
|
|
63
|
+
reason?: string;
|
|
64
|
+
}
|
|
65
|
+
/** A payout's refund, as this surface projects it. */
|
|
66
|
+
export interface UnappliedCashRefund {
|
|
67
|
+
id: string;
|
|
68
|
+
/** Minor units. */
|
|
69
|
+
total: number;
|
|
70
|
+
/** `Pending`, `Settled` or `Failed`. */
|
|
71
|
+
state: string;
|
|
72
|
+
method: string | null;
|
|
73
|
+
transactionId: string | null;
|
|
74
|
+
reason: string | null;
|
|
75
|
+
}
|
|
76
|
+
/** What of an order's money is on its customer's account now. */
|
|
77
|
+
export interface OrderMoneyOnAccount {
|
|
78
|
+
/** The order's currency. Every amount here is in its minor units. */
|
|
79
|
+
currencyCode: string;
|
|
80
|
+
/**
|
|
81
|
+
* Money that left the order for the customer's account and was not paid back
|
|
82
|
+
* since. Already taken off the order's `refundable` and `overpaid`.
|
|
83
|
+
*/
|
|
84
|
+
creditedToAccount: number;
|
|
85
|
+
/** The same figure per payment of the order, newest first. */
|
|
86
|
+
perPayment: Array<{
|
|
87
|
+
paymentId: string;
|
|
88
|
+
creditedToAccount: number;
|
|
89
|
+
}>;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* An order's overpayment on the customer's account (`admin.payments.accountCredit`).
|
|
93
|
+
*
|
|
94
|
+
* For a store that keeps its own accounts-receivable ledger and a customer with
|
|
95
|
+
* a credit account in it. Anywhere else an overpayment is refunded: the calls
|
|
96
|
+
* here are refused `AR_LEDGER_NOT_ENABLED`, `AR_ACCOUNT_REQUIRED` or
|
|
97
|
+
* `AR_ACCOUNT_IN_ERP`. The last one covers every customer of a store whose ERP
|
|
98
|
+
* integration is on, and any ERP-linked account: balances are kept in the ERP
|
|
99
|
+
* there, where a credit recorded here would not show.
|
|
100
|
+
*
|
|
101
|
+
* Needs `UpdateOrder` to write, `ReadOrder` to read. Every write honours
|
|
102
|
+
* `options.idempotencyKey`: a repeat under the same key answers the first
|
|
103
|
+
* call's result instead of running again.
|
|
104
|
+
*/
|
|
105
|
+
export interface AccountCreditModule {
|
|
106
|
+
/**
|
|
107
|
+
* Move money a customer paid on an order over what it bills onto their
|
|
108
|
+
* account. Answers one {@link UnappliedCash} per payment the money came from,
|
|
109
|
+
* newest payment first.
|
|
110
|
+
*
|
|
111
|
+
* Only money a settled payment still holds can move, net of every refund and
|
|
112
|
+
* of what was moved before, and at most what the order holds over its
|
|
113
|
+
* billable total. From then on that money is no longer the order's:
|
|
114
|
+
* `payments.refundPosition` takes it off `refundable` and `payments.position`
|
|
115
|
+
* no longer reports it as `overpaid` (read it with {@link onOrder}).
|
|
116
|
+
*
|
|
117
|
+
* An order that is already on a live AR invoice is refused
|
|
118
|
+
* `AR_ORDER_ALREADY_INVOICED`: refund its overpayment with `payments.refund`.
|
|
119
|
+
*
|
|
120
|
+
* Other refusals: `ACCOUNT_CREDIT_NOTHING_OVERPAID`,
|
|
121
|
+
* `ACCOUNT_CREDIT_EXCEEDS_OVERPAYMENT`, `ACCOUNT_CREDIT_AMOUNT_INVALID`,
|
|
122
|
+
* `ACCOUNT_CREDIT_NO_CUSTOMER`, `ACCOUNT_CREDIT_ORDER_NOT_FOUND`, and the three
|
|
123
|
+
* account refusals above.
|
|
124
|
+
*/
|
|
125
|
+
creditOverpayment(input: CreditOverpaymentInput, options?: Call): Promise<UnappliedCash[]>;
|
|
126
|
+
/** A customer's unapplied cash in this store, oldest first. */
|
|
127
|
+
list(customerId: string, options?: Call): Promise<UnappliedCash[]>;
|
|
128
|
+
/**
|
|
129
|
+
* Pay an AR invoice with unapplied cash. The customer's balance does not
|
|
130
|
+
* move: the cash was already theirs.
|
|
131
|
+
*
|
|
132
|
+
* The invoice must be the same customer's, in the same currency, live and
|
|
133
|
+
* still owing. Refusals: `AR_INVOICE_NOT_FOUND`, `AR_CURRENCY_MISMATCH`,
|
|
134
|
+
* `AR_INVOICE_NOT_OPEN`, `AR_ORDER_NOT_INVOICED` (an order with no live
|
|
135
|
+
* invoice: invoice it first), `UNAPPLIED_CASH_EXCEEDED`,
|
|
136
|
+
* `UNAPPLIED_CASH_NOT_FOUND`, `UNAPPLIED_CASH_REFUND_UNRECONCILED` (a payout
|
|
137
|
+
* of the same cash has an unknown outcome), `AR_LEDGER_NOT_ENABLED`.
|
|
138
|
+
*/
|
|
139
|
+
apply(input: ApplyUnappliedCashInput, options?: Call): Promise<UnappliedCash>;
|
|
140
|
+
/**
|
|
141
|
+
* Pay unapplied cash back to the customer: a refund of the payment it was
|
|
142
|
+
* taken from, with `payments.refund`'s rules and refusals. When one refuses,
|
|
143
|
+
* nothing has changed.
|
|
144
|
+
*
|
|
145
|
+
* At most what the cash still holds, and at most what the customer's account
|
|
146
|
+
* is in credit by in that currency (`UNAPPLIED_CASH_EXCEEDED`): cash is
|
|
147
|
+
* applied to what a customer owes before it is paid out.
|
|
148
|
+
*
|
|
149
|
+
* **`IDEMPOTENCY_OUTCOME_UNKNOWN`** means the payment provider was asked and
|
|
150
|
+
* never confirmed. The cash STAYS on the account and is frozen
|
|
151
|
+
* (`UNAPPLIED_CASH_REFUND_UNRECONCILED`). Find the attempt with
|
|
152
|
+
* `payments.unreconciledRefunds(orderId)`, check the provider, and record its
|
|
153
|
+
* answer with `payments.reconcileRefund(...)`: `MADE` takes the cash off the
|
|
154
|
+
* account then, `NOT_MADE` unfreezes it. Never pay out again on the
|
|
155
|
+
* assumption that nothing happened.
|
|
156
|
+
*/
|
|
157
|
+
refund(input: RefundUnappliedCashInput, options?: Call): Promise<UnappliedCashRefund>;
|
|
158
|
+
/** What of an order's money is on its customer's account now. Needs `ReadOrder`. */
|
|
159
|
+
onOrder(orderId: string, options?: Call): Promise<OrderMoneyOnAccount>;
|
|
160
|
+
}
|
|
161
|
+
export declare const CREDIT_ORDER_OVERPAYMENT_MUTATION = "\n mutation CreditOrderOverpaymentToAccount(\n $input: CreditOrderOverpaymentInput!\n $idempotencyKey: String\n ) {\n creditOrderOverpaymentToAccount(input: $input, idempotencyKey: $idempotencyKey) {\n \n id\n customerId\n currencyCode\n amount\n applied\n refunded\n remaining\n orderId\n paymentId\n receivedOn\n reference\n notes\n createdAt\n\n }\n }\n";
|
|
162
|
+
export declare const UNAPPLIED_CASH_QUERY = "\n query ArUnappliedCash($customerId: ID!) {\n arUnappliedCash(customerId: $customerId) {\n \n id\n customerId\n currencyCode\n amount\n applied\n refunded\n remaining\n orderId\n paymentId\n receivedOn\n reference\n notes\n createdAt\n\n }\n }\n";
|
|
163
|
+
export declare const APPLY_UNAPPLIED_CASH_MUTATION = "\n mutation ApplyArUnappliedCash($input: ApplyArUnappliedCashInput!, $idempotencyKey: String) {\n applyArUnappliedCash(input: $input, idempotencyKey: $idempotencyKey) {\n \n id\n customerId\n currencyCode\n amount\n applied\n refunded\n remaining\n orderId\n paymentId\n receivedOn\n reference\n notes\n createdAt\n\n }\n }\n";
|
|
164
|
+
export declare const REFUND_UNAPPLIED_CASH_MUTATION = "\n mutation RefundArUnappliedCash($input: RefundArUnappliedCashInput!, $idempotencyKey: String) {\n refundArUnappliedCash(input: $input, idempotencyKey: $idempotencyKey) {\n id\n total\n state\n method\n transactionId\n reason\n }\n }\n";
|
|
165
|
+
/**
|
|
166
|
+
* Its own query, never a field added to `payments.refundPosition`'s: an SDK
|
|
167
|
+
* released ahead of a server without `creditedToAccount` must not break that
|
|
168
|
+
* read.
|
|
169
|
+
*/
|
|
170
|
+
export declare const ORDER_MONEY_ON_ACCOUNT_QUERY = "\n query OrderMoneyOnAccount($orderId: ID!) {\n orderRefundPosition(orderId: $orderId) {\n currencyCode\n creditedToAccount\n perPayment {\n paymentId\n creditedToAccount\n }\n }\n }\n";
|
|
171
|
+
export declare function createAccountCreditModule(transport: Transport): AccountCreditModule;
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
const UNAPPLIED_CASH_FIELDS = /* GraphQL */ `
|
|
2
|
+
id
|
|
3
|
+
customerId
|
|
4
|
+
currencyCode
|
|
5
|
+
amount
|
|
6
|
+
applied
|
|
7
|
+
refunded
|
|
8
|
+
remaining
|
|
9
|
+
orderId
|
|
10
|
+
paymentId
|
|
11
|
+
receivedOn
|
|
12
|
+
reference
|
|
13
|
+
notes
|
|
14
|
+
createdAt
|
|
15
|
+
`;
|
|
16
|
+
export const CREDIT_ORDER_OVERPAYMENT_MUTATION = /* GraphQL */ `
|
|
17
|
+
mutation CreditOrderOverpaymentToAccount(
|
|
18
|
+
$input: CreditOrderOverpaymentInput!
|
|
19
|
+
$idempotencyKey: String
|
|
20
|
+
) {
|
|
21
|
+
creditOrderOverpaymentToAccount(input: $input, idempotencyKey: $idempotencyKey) {
|
|
22
|
+
${UNAPPLIED_CASH_FIELDS}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
`;
|
|
26
|
+
export const UNAPPLIED_CASH_QUERY = /* GraphQL */ `
|
|
27
|
+
query ArUnappliedCash($customerId: ID!) {
|
|
28
|
+
arUnappliedCash(customerId: $customerId) {
|
|
29
|
+
${UNAPPLIED_CASH_FIELDS}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
`;
|
|
33
|
+
export const APPLY_UNAPPLIED_CASH_MUTATION = /* GraphQL */ `
|
|
34
|
+
mutation ApplyArUnappliedCash($input: ApplyArUnappliedCashInput!, $idempotencyKey: String) {
|
|
35
|
+
applyArUnappliedCash(input: $input, idempotencyKey: $idempotencyKey) {
|
|
36
|
+
${UNAPPLIED_CASH_FIELDS}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
`;
|
|
40
|
+
export const REFUND_UNAPPLIED_CASH_MUTATION = /* GraphQL */ `
|
|
41
|
+
mutation RefundArUnappliedCash($input: RefundArUnappliedCashInput!, $idempotencyKey: String) {
|
|
42
|
+
refundArUnappliedCash(input: $input, idempotencyKey: $idempotencyKey) {
|
|
43
|
+
id
|
|
44
|
+
total
|
|
45
|
+
state
|
|
46
|
+
method
|
|
47
|
+
transactionId
|
|
48
|
+
reason
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
`;
|
|
52
|
+
/**
|
|
53
|
+
* Its own query, never a field added to `payments.refundPosition`'s: an SDK
|
|
54
|
+
* released ahead of a server without `creditedToAccount` must not break that
|
|
55
|
+
* read.
|
|
56
|
+
*/
|
|
57
|
+
export const ORDER_MONEY_ON_ACCOUNT_QUERY = /* GraphQL */ `
|
|
58
|
+
query OrderMoneyOnAccount($orderId: ID!) {
|
|
59
|
+
orderRefundPosition(orderId: $orderId) {
|
|
60
|
+
currencyCode
|
|
61
|
+
creditedToAccount
|
|
62
|
+
perPayment {
|
|
63
|
+
paymentId
|
|
64
|
+
creditedToAccount
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
`;
|
|
69
|
+
export function createAccountCreditModule(transport) {
|
|
70
|
+
return {
|
|
71
|
+
async creditOverpayment(input, options) {
|
|
72
|
+
const data = await transport.graphql({
|
|
73
|
+
api: 'admin',
|
|
74
|
+
query: CREDIT_ORDER_OVERPAYMENT_MUTATION,
|
|
75
|
+
// A variable, not a header: the Admin API takes the key as an argument.
|
|
76
|
+
// `undefined`, never an explicit null: `JSON.stringify` drops it, so an
|
|
77
|
+
// omitted key stays off the wire entirely.
|
|
78
|
+
variables: { input, idempotencyKey: options?.idempotencyKey },
|
|
79
|
+
}, options);
|
|
80
|
+
return data.creditOrderOverpaymentToAccount;
|
|
81
|
+
},
|
|
82
|
+
async list(customerId, options) {
|
|
83
|
+
const data = await transport.graphql({ api: 'admin', query: UNAPPLIED_CASH_QUERY, variables: { customerId } }, options);
|
|
84
|
+
return data.arUnappliedCash;
|
|
85
|
+
},
|
|
86
|
+
async apply(input, options) {
|
|
87
|
+
const data = await transport.graphql({
|
|
88
|
+
api: 'admin',
|
|
89
|
+
query: APPLY_UNAPPLIED_CASH_MUTATION,
|
|
90
|
+
variables: { input, idempotencyKey: options?.idempotencyKey },
|
|
91
|
+
}, options);
|
|
92
|
+
return data.applyArUnappliedCash;
|
|
93
|
+
},
|
|
94
|
+
async refund(input, options) {
|
|
95
|
+
const data = await transport.graphql({
|
|
96
|
+
api: 'admin',
|
|
97
|
+
query: REFUND_UNAPPLIED_CASH_MUTATION,
|
|
98
|
+
variables: { input, idempotencyKey: options?.idempotencyKey },
|
|
99
|
+
}, options);
|
|
100
|
+
return data.refundArUnappliedCash;
|
|
101
|
+
},
|
|
102
|
+
async onOrder(orderId, options) {
|
|
103
|
+
const data = await transport.graphql({ api: 'admin', query: ORDER_MONEY_ON_ACCOUNT_QUERY, variables: { orderId } }, options);
|
|
104
|
+
return data.orderRefundPosition;
|
|
105
|
+
},
|
|
106
|
+
};
|
|
107
|
+
}
|