@sixtyninecommerce/admin 0.11.0 → 0.13.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 +1509 -28
- package/dist/auth/index.d.ts +7 -1
- package/dist/auth/index.js +8 -1
- package/dist/catalog/documents.d.ts +142 -0
- package/dist/catalog/documents.js +114 -0
- package/dist/catalog/index.d.ts +48 -7
- package/dist/catalog/index.js +6 -1
- package/dist/catalog/metadata.d.ts +244 -0
- package/dist/catalog/metadata.js +220 -0
- package/dist/catalog/properties.d.ts +38 -0
- package/dist/catalog/properties.js +52 -1
- package/dist/catalog/recommendations.d.ts +33 -6
- package/dist/catalog/recommendations.js +94 -2
- package/dist/catalog/reviews.d.ts +17 -4
- package/dist/catalog/reviews.js +7 -0
- package/dist/catalog/variants.d.ts +60 -0
- package/dist/catalog/variants.js +39 -0
- package/dist/catalog/visibility.d.ts +18 -2
- package/dist/client.d.ts +29 -3
- package/dist/client.js +19 -8
- package/dist/content/assets.d.ts +3 -4
- package/dist/content/forms.d.ts +332 -1
- package/dist/content/forms.js +140 -4
- package/dist/content/items.d.ts +31 -8
- package/dist/content/items.js +1 -1
- package/dist/content/menus.d.ts +254 -0
- package/dist/content/menus.js +70 -0
- package/dist/content/strings.d.ts +137 -0
- package/dist/content/strings.js +82 -0
- package/dist/customers/delivery-terms.d.ts +44 -0
- package/dist/customers/delivery-terms.js +32 -0
- package/dist/customers/groups.d.ts +16 -5
- package/dist/customers/groups.js +6 -2
- package/dist/customers/index.d.ts +15 -0
- package/dist/customers/index.js +4 -0
- package/dist/documents/emails.d.ts +154 -0
- package/dist/documents/emails.js +220 -0
- package/dist/documents/index.d.ts +13 -0
- package/dist/documents/index.js +2 -0
- package/dist/fulfillments/create.d.ts +1 -1
- package/dist/fulfillments/create.js +5 -2
- package/dist/fulfillments/index.d.ts +119 -1
- package/dist/fulfillments/index.js +124 -4
- package/dist/fulfillments/warehouse.d.ts +29 -17
- package/dist/fulfillments/warehouse.js +32 -1
- package/dist/index.d.ts +43 -23
- package/dist/index.js +11 -5
- package/dist/integrations/exact-online-types.d.ts +542 -0
- package/dist/integrations/exact-online.d.ts +541 -5
- package/dist/integrations/exact-online.js +714 -1
- package/dist/integrations/index.d.ts +23 -8
- package/dist/integrations/index.js +9 -4
- package/dist/integrations/pipeline-discoveries.d.ts +65 -0
- package/dist/integrations/pipeline-discoveries.js +65 -0
- package/dist/integrations/pipeline-runs.d.ts +119 -0
- package/dist/integrations/pipeline-runs.js +87 -0
- package/dist/integrations/pipelines.d.ts +73 -2
- package/dist/integrations/pipelines.js +36 -1
- package/dist/integrations/price-import.d.ts +223 -0
- package/dist/integrations/price-import.js +124 -0
- package/dist/integrations/types.d.ts +221 -3
- package/dist/integrations/types.js +4 -3
- package/dist/meta/index.d.ts +10 -0
- package/dist/metafields/index.d.ts +8 -1
- package/dist/metafields/index.js +10 -0
- package/dist/orders/cancel-with-money.d.ts +10 -0
- package/dist/orders/cancel-with-money.js +2 -0
- package/dist/orders/commit-edit.d.ts +16 -0
- package/dist/orders/commit-edit.js +14 -1
- package/dist/orders/deposit-policy.d.ts +3 -1
- package/dist/orders/index.d.ts +22 -11
- package/dist/orders/index.js +5 -2
- package/dist/orders/list.d.ts +26 -5
- package/dist/orders/list.js +123 -13
- package/dist/orders/manual-discounts.d.ts +13 -5
- package/dist/orders/money-view.d.ts +149 -0
- package/dist/orders/money-view.js +99 -0
- package/dist/orders/plan-edit.d.ts +34 -2
- package/dist/orders/plan-edit.js +110 -12
- package/dist/orders/surcharges.d.ts +12 -0
- package/dist/orders/surcharges.js +34 -9
- package/dist/payments/account-credit.d.ts +17 -1
- package/dist/payments/account-credit.js +25 -2
- package/dist/payments/credit-noted-fields.d.ts +8 -1
- package/dist/payments/credit-noted-fields.js +34 -2
- package/dist/payments/customer-consent.d.ts +30 -0
- package/dist/payments/customer-consent.js +49 -0
- package/dist/payments/index.d.ts +89 -14
- package/dist/payments/index.js +22 -2
- package/dist/payments/requests.d.ts +6 -3
- package/dist/payments/requests.js +1 -0
- package/dist/pickups/index.d.ts +5 -3
- package/dist/pickups/index.js +5 -2
- package/dist/platform/email-gateways.d.ts +165 -0
- package/dist/platform/email-gateways.js +78 -0
- package/dist/platform/tax.d.ts +11 -3
- package/dist/platform/tax.js +30 -0
- package/dist/pos/exchanges.d.ts +6 -1
- package/dist/pos/index.d.ts +229 -10
- package/dist/pos/index.js +113 -4
- package/dist/pos/offline-sales.d.ts +44 -3
- package/dist/pos/offline-sales.js +57 -3
- package/dist/pos/returns.d.ts +28 -1
- package/dist/pos/returns.js +36 -6
- package/dist/pricing/price-lists.d.ts +3 -1
- package/dist/purchasing/alerts.d.ts +19 -4
- package/dist/purchasing/alerts.js +29 -3
- package/dist/purchasing/backorders.d.ts +61 -0
- package/dist/purchasing/backorders.js +92 -0
- package/dist/purchasing/index.d.ts +21 -3
- package/dist/purchasing/index.js +8 -0
- package/dist/purchasing/links.d.ts +263 -0
- package/dist/purchasing/links.js +192 -0
- package/dist/purchasing/purchase-orders.d.ts +4 -1
- package/dist/purchasing/receipts.d.ts +396 -0
- package/dist/purchasing/receipts.js +287 -0
- package/dist/purchasing/returns.d.ts +273 -0
- package/dist/purchasing/returns.js +229 -0
- package/dist/quotes/index.d.ts +20 -3
- package/dist/returns/index.d.ts +62 -1
- package/dist/returns/index.js +61 -0
- package/dist/seo/config.d.ts +128 -0
- package/dist/seo/config.js +95 -0
- package/dist/seo/redirects.d.ts +125 -0
- package/dist/seo/redirects.js +60 -1
- package/dist/seo/settings.d.ts +147 -0
- package/dist/seo/settings.js +209 -0
- package/dist/shipping/index.d.ts +6 -0
- package/dist/shipping/index.js +2 -0
- package/dist/shipping/methods.d.ts +8 -1
- package/dist/shipping/myparcel.d.ts +415 -1
- package/dist/shipping/myparcel.js +291 -3
- package/dist/shipping/rate-tables.d.ts +149 -4
- package/dist/shipping/rate-tables.js +229 -23
- package/dist/shipping/ship-to-countries.d.ts +75 -0
- package/dist/shipping/ship-to-countries.js +47 -0
- package/dist/stock/by-location.d.ts +86 -0
- package/dist/stock/by-location.js +94 -0
- package/dist/stock/index.d.ts +8 -1
- package/dist/stock/index.js +4 -0
- package/dist/stock/settings.d.ts +106 -0
- package/dist/stock/settings.js +103 -0
- package/dist/stock/transfers.d.ts +171 -10
- package/dist/stock/transfers.js +82 -4
- package/dist/stored-value/index.d.ts +98 -7
- package/dist/stored-value/index.js +71 -4
- package/dist/tax/display-policy.d.ts +105 -0
- package/dist/tax/display-policy.js +84 -0
- package/dist/tax/index.d.ts +3 -0
- package/dist/tax/index.js +2 -0
- package/dist/tenant/email-templates.d.ts +222 -1
- package/dist/tenant/email-templates.js +227 -10
- package/package.json +2 -2
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { type Transport } from '@sixtyninecommerce/core';
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
1
|
+
import { type Page, type Transport } from '@sixtyninecommerce/core';
|
|
2
|
+
import type { AuditCall, AuditEvent } from '../audit/index.js';
|
|
3
|
+
import type { Call, ListOptions } from '../types.js';
|
|
4
|
+
import type { ConvertExactShippingMethodInput, ExactAccountStructure, ExactCatalogueStructure, ExactCustomerDeliveryTerms, ExactCustomerPaymentTerms, ExactCustomerPriceList, ExactDeliveryTermsDiagnostics, ExactDeliveryTermsDryRun, ExactIncoterm, ExactOnlineAccountPreview, ExactOnlineConfig, ExactOnlineConnectionLogCallFilter, ExactOnlineConnectionLogEventFilter, ExactOnlineConnectionLogExportFilter, ExactOnlineConnectionLogKind, ExactOnlineItemPreview, ExactOnlineSyncHealth, ExactOnlineSyncLogEntry, ExactOnlineSyncLogOptions, ExactOrderPushResult, ExactOrderRepriceAllResult, ExactOrderRepriceResult, ExactOrderState, ExactOrderSyncState, ExactPaymentCondition, ExactPaymentTermsDiagnostics, ExactPaymentTermsDryRun, ExactPricingStructure, ExactProductStatus, ExactShippingMethodMapping, ExactShippingMethodsView, ExactSyncCursor, ExactSyncEstimate, ExactSyncScheduleInput, ExactWarehouseLink, ExactWebhookStatus, SetExactOnlineCredentialsInput, SetExactShippingMethodMappingInput, UpdateExactOnlineConfigInput } from './exact-online-types.js';
|
|
4
5
|
/**
|
|
5
6
|
* The store's Exact Online connection itself (`admin.integrations.exactOnline.config`).
|
|
6
7
|
*/
|
|
@@ -145,6 +146,470 @@ export interface ExactOnlineWebhooksModule {
|
|
|
145
146
|
*/
|
|
146
147
|
sync(options?: Call): Promise<boolean>;
|
|
147
148
|
}
|
|
149
|
+
/** The most sync-log rows one {@link ExactOnlineSyncModule.logs} read answers. */
|
|
150
|
+
export declare const EXACT_ONLINE_SYNC_LOG_LIMIT = 100;
|
|
151
|
+
/**
|
|
152
|
+
* The inbound (Exact → platform) sync of the store: how its runs went, and running one by hand
|
|
153
|
+
* (`admin.integrations.exactOnline.sync`). A run is QUEUED: the call answers once the work is on
|
|
154
|
+
* the worker's queue, and its outcome arrives in {@link logs} and {@link health}.
|
|
155
|
+
*
|
|
156
|
+
* Every manual run is refused, with nothing queued:
|
|
157
|
+
* - `FIELD_GROUP_LOCKED` (`BusinessRuleError`, 422) while an app or API token owns a field group
|
|
158
|
+
* of the store (prices, stock levels, product or customer details), a suspended one included:
|
|
159
|
+
* Exact writes all four. The sentence names each owner and where to release it, and
|
|
160
|
+
* `error.details[]` holds one entry per owned group, its message naming the owner;
|
|
161
|
+
* - `PLUGIN_ACCESS_DENIED` (`PermissionDeniedError`, 403): the store has no Exact Online plugin
|
|
162
|
+
* (never for a SuperAdmin).
|
|
163
|
+
*
|
|
164
|
+
* A run does not check that the store is connected or switched on: on a store that is not
|
|
165
|
+
* connected it is queued, and fails on the worker (a `failed` row in {@link logs}). The engine
|
|
166
|
+
* queues a run whatever `enabled` says, so a connected division that is switched off is still
|
|
167
|
+
* written to.
|
|
168
|
+
*/
|
|
169
|
+
export interface ExactOnlineSyncModule {
|
|
170
|
+
/**
|
|
171
|
+
* The store's newest sync runs, newest first, across every entity or one (`entity`). Not a
|
|
172
|
+
* page: the newest `limit` runs (20 unless said), never a way to walk the whole log. A store
|
|
173
|
+
* with no connected division answers `[]`.
|
|
174
|
+
*
|
|
175
|
+
* Refused before sending, `INVALID_EXACT_ONLINE_INPUT` (`ValidationError`, 400): a `limit`
|
|
176
|
+
* that is not a whole number from 1 to {@link EXACT_ONLINE_SYNC_LOG_LIMIT} (the engine would
|
|
177
|
+
* otherwise answer fewer rows than asked, unsaid), or an `entity` that is not a non-blank
|
|
178
|
+
* string. `PLUGIN_ACCESS_DENIED` (403).
|
|
179
|
+
*
|
|
180
|
+
* @effect read
|
|
181
|
+
* @permission ReadSettings
|
|
182
|
+
*/
|
|
183
|
+
logs(options?: ExactOnlineSyncLogOptions & Call): Promise<ExactOnlineSyncLogEntry[]>;
|
|
184
|
+
/**
|
|
185
|
+
* How the newest real run of each inbound area (customers, catalogue, orders) ended. An area
|
|
186
|
+
* that never ran, or every area of a store with no connected division, is null.
|
|
187
|
+
* `PLUGIN_ACCESS_DENIED` (403).
|
|
188
|
+
*
|
|
189
|
+
* @effect read
|
|
190
|
+
* @permission ReadSettings
|
|
191
|
+
*/
|
|
192
|
+
health(options?: Call): Promise<ExactOnlineSyncHealth>;
|
|
193
|
+
/**
|
|
194
|
+
* "Sync now": queue the whole inbound sync of the store: the catalogue (warehouses, items,
|
|
195
|
+
* prices, stock), the customers, the sales orders and the purchase orders, each on its own
|
|
196
|
+
* queue. It overwrites what Exact owns (prices customers pay, stock levels, product and
|
|
197
|
+
* customer details, customer price lists and terms) with Exact's values, which the platform
|
|
198
|
+
* cannot take back, and the order import books Exact's new and changed sales orders as placed
|
|
199
|
+
* orders with a settled payment: it records money. Answers `true` once queued. Refusals: see
|
|
200
|
+
* {@link ExactOnlineSyncModule}.
|
|
201
|
+
*
|
|
202
|
+
* @effect money
|
|
203
|
+
* @permission UpdateSettings
|
|
204
|
+
*/
|
|
205
|
+
runCatalogue(options?: Call): Promise<boolean>;
|
|
206
|
+
/**
|
|
207
|
+
* "Import customers": queue a full customer synchronization (Exact Accounts → customers),
|
|
208
|
+
* whatever the customer sync switch says. It overwrites customer details per the store's
|
|
209
|
+
* overwrite policy and assigns the Exact price lists and payment and delivery terms, which the
|
|
210
|
+
* platform cannot take back. Answers `true` once queued. Refusals: see
|
|
211
|
+
* {@link ExactOnlineSyncModule}.
|
|
212
|
+
*
|
|
213
|
+
* @effect irreversible
|
|
214
|
+
* @permission UpdateSettings
|
|
215
|
+
*/
|
|
216
|
+
runCustomers(options?: Call): Promise<boolean>;
|
|
217
|
+
/**
|
|
218
|
+
* Queue the price-list reconcile (Exact customer price agreements and named price lists → the
|
|
219
|
+
* store's price lists), which changes what customers pay and cannot be taken back. Answers
|
|
220
|
+
* `false`, queuing nothing, when one is already waiting or running for the store: that run
|
|
221
|
+
* reads Exact fresh when it starts. Refusals: see {@link ExactOnlineSyncModule}.
|
|
222
|
+
*
|
|
223
|
+
* @effect irreversible
|
|
224
|
+
* @permission UpdateSettings
|
|
225
|
+
*/
|
|
226
|
+
runPriceLists(options?: Call): Promise<boolean>;
|
|
227
|
+
/**
|
|
228
|
+
* "Re-import pictures": mark every picture the store imported from Exact for import again,
|
|
229
|
+
* and queue a catalogue sweep (the pictures ride it, a capped number per run, so they arrive
|
|
230
|
+
* over the next runs). The sweep writes the whole catalogue, prices and stock included (not
|
|
231
|
+
* the customers or orders {@link runCatalogue} also queues). Answers how many pictures were
|
|
232
|
+
* marked (0 when none was imported yet). Refusals: see {@link ExactOnlineSyncModule}.
|
|
233
|
+
*
|
|
234
|
+
* @effect irreversible
|
|
235
|
+
* @permission UpdateSettings
|
|
236
|
+
*/
|
|
237
|
+
reimportPictures(options?: Call): Promise<number>;
|
|
238
|
+
/**
|
|
239
|
+
* The store's persisted Exact Sync API cursors, one per entity stream; `[]` when it has none
|
|
240
|
+
* or is not connected. `PLUGIN_ACCESS_DENIED` (403).
|
|
241
|
+
*
|
|
242
|
+
* @effect read
|
|
243
|
+
* @permission ReadSettings
|
|
244
|
+
*/
|
|
245
|
+
cursors(options?: Call): Promise<ExactSyncCursor[]>;
|
|
246
|
+
/**
|
|
247
|
+
* Drop one entity stream's cursor, so the next sweep of it reads Exact from the beginning
|
|
248
|
+
* (slower, more Exact calls; the writes are idempotent). Answers `true`, also when no cursor
|
|
249
|
+
* was stored under `entity`. Refused before sending, `INVALID_EXACT_ONLINE_INPUT` (400): an
|
|
250
|
+
* `entity` that is not a non-blank string. `PLUGIN_ACCESS_DENIED` (403).
|
|
251
|
+
*
|
|
252
|
+
* @effect write
|
|
253
|
+
* @permission UpdateSettings
|
|
254
|
+
*/
|
|
255
|
+
resetCursor(entity: string, options?: Call): Promise<boolean>;
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* The store's shipping methods mapped to Exact's (`admin.integrations.exactOnline.shipping`).
|
|
259
|
+
* Orders pushed to Exact carry the mapped Exact method. A method Exact defines reaches checkout
|
|
260
|
+
* only when it is deliberately activated ({@link import}) or mapped; a catalogue refresh never
|
|
261
|
+
* adds one.
|
|
262
|
+
*
|
|
263
|
+
* The engine's refusals here are not all coded yet: the ones it raises as an input error arrive
|
|
264
|
+
* as `USER_INPUT_ERROR` (`ValidationError`, 400), the others as an uncoded error
|
|
265
|
+
* (`GRAPHQL_ERROR`, 500). Every method is refused `PLUGIN_ACCESS_DENIED` (403) for a store
|
|
266
|
+
* without the Exact Online plugin.
|
|
267
|
+
*/
|
|
268
|
+
export interface ExactOnlineShippingModule {
|
|
269
|
+
/**
|
|
270
|
+
* The store's shipping methods (up to 500), each with its Exact mapping and its status live
|
|
271
|
+
* against the synchronized Exact catalogue, and that catalogue. Reads no Exact API.
|
|
272
|
+
*
|
|
273
|
+
* @effect read
|
|
274
|
+
* @permission ReadSettings
|
|
275
|
+
*/
|
|
276
|
+
methods(options?: Call): Promise<ExactShippingMethodsView>;
|
|
277
|
+
/**
|
|
278
|
+
* "Refresh Exact catalog": queue a shipping-method synchronization. It refreshes the store's
|
|
279
|
+
* Exact catalogue (a new Exact method stays out of checkout) and re-applies Exact's rate, with
|
|
280
|
+
* its calculator and checker, to every method already activated from Exact, which changes what
|
|
281
|
+
* checkout charges and cannot be taken back. A name the merchant gave an activated method
|
|
282
|
+
* stays: only {@link import} takes Exact's description back. Answers `true` once queued.
|
|
283
|
+
*
|
|
284
|
+
* @effect irreversible
|
|
285
|
+
* @permission UpdateSettings
|
|
286
|
+
*/
|
|
287
|
+
runSync(options?: Call): Promise<boolean>;
|
|
288
|
+
/**
|
|
289
|
+
* "Activate" (and "Re-apply Exact name"): create, or update, the checkout method of one Exact
|
|
290
|
+
* method from Exact's description and rate, and map it. On an already activated method it
|
|
291
|
+
* takes Exact's description back over a rename. Answers the mapping.
|
|
292
|
+
*
|
|
293
|
+
* Refused, uncoded (`GRAPHQL_ERROR`, 500): the Exact method is not active and current in the
|
|
294
|
+
* store's synchronized catalogue (refresh it first; a store that is not connected has none),
|
|
295
|
+
* or it has no rate (map it to a method of your own instead: a missing rate never becomes free
|
|
296
|
+
* shipping).
|
|
297
|
+
*
|
|
298
|
+
* @effect write
|
|
299
|
+
* @permission UpdateSettings
|
|
300
|
+
*/
|
|
301
|
+
import(exactShippingMethodId: string, options?: Call): Promise<ExactShippingMethodMapping>;
|
|
302
|
+
/**
|
|
303
|
+
* Map a shipping method of the store to an Exact method, or clear its mapping
|
|
304
|
+
* (`exactShippingMethodId: null`). A method shared with other stores is mapped for this store
|
|
305
|
+
* only and stays the store's own (never Exact-managed). Answers the mapping.
|
|
306
|
+
*
|
|
307
|
+
* Clearing the mapping of an Activated method leaves that method in checkout: retire it
|
|
308
|
+
* ({@link retireImported}) or move it ({@link convertToMapping}) instead.
|
|
309
|
+
*
|
|
310
|
+
* Refused before sending, `INVALID_EXACT_ONLINE_INPUT` (400): `exactShippingMethodId` left
|
|
311
|
+
* out, blank, or neither a string nor `null`. The engine would read each as `null` and clear
|
|
312
|
+
* the mapping: a clear is only ever an explicit `null`.
|
|
313
|
+
*
|
|
314
|
+
* Refused, uncoded (`GRAPHQL_ERROR`, 500): the store is not connected to Exact, the shipping
|
|
315
|
+
* method is not the store's, the Exact method is not active and current in the synchronized
|
|
316
|
+
* catalogue, or it is already mapped to another of the store's methods.
|
|
317
|
+
*
|
|
318
|
+
* @effect write
|
|
319
|
+
* @permission UpdateSettings
|
|
320
|
+
*/
|
|
321
|
+
setMapping(input: SetExactShippingMethodMappingInput, options?: Call): Promise<ExactShippingMethodMapping>;
|
|
322
|
+
/**
|
|
323
|
+
* [deletes] Move an Activated Exact method onto one of the store's own methods, in one
|
|
324
|
+
* transaction: the mapping now names `vendureShippingMethodId`, and the method Exact created is
|
|
325
|
+
* retired (soft-deleted; orders already shipped on it keep their shipping line). Answers the
|
|
326
|
+
* new mapping.
|
|
327
|
+
*
|
|
328
|
+
* Refused `USER_INPUT_ERROR` (`ValidationError`, 400): the Exact method is not activated in
|
|
329
|
+
* the store, or the target is not a method of the store that Exact does not manage.
|
|
330
|
+
*
|
|
331
|
+
* Needs `DeleteSettings` or `DeleteShippingMethod`, as deleting a shipping method does (either
|
|
332
|
+
* one, so no `@permission` tag: the tag can only say "all of these"); `UpdateSettings` alone
|
|
333
|
+
* is refused `FORBIDDEN` (403).
|
|
334
|
+
*
|
|
335
|
+
* @effect destructive
|
|
336
|
+
*/
|
|
337
|
+
convertToMapping(input: ConvertExactShippingMethodInput, options?: Call): Promise<ExactShippingMethodMapping>;
|
|
338
|
+
/**
|
|
339
|
+
* [deletes] Retire one Activated Exact method: its checkout method is soft-deleted and its
|
|
340
|
+
* mapping released (an order placed on it still pushes under the Exact method it was sold
|
|
341
|
+
* under). Answers `true`, also when it was already retired. Activating the Exact method again
|
|
342
|
+
* brings it back.
|
|
343
|
+
*
|
|
344
|
+
* Refused `USER_INPUT_ERROR` (`ValidationError`, 400): the store is not connected to Exact,
|
|
345
|
+
* the Exact method is unknown to the store's catalogue, or it was never activated here.
|
|
346
|
+
*
|
|
347
|
+
* Needs `DeleteSettings` or `DeleteShippingMethod` (either one, so no `@permission` tag);
|
|
348
|
+
* `UpdateSettings` alone is refused `FORBIDDEN` (403).
|
|
349
|
+
*
|
|
350
|
+
* @effect destructive
|
|
351
|
+
*/
|
|
352
|
+
retireImported(exactShippingMethodId: string, options?: Call): Promise<boolean>;
|
|
353
|
+
}
|
|
354
|
+
/**
|
|
355
|
+
* The store's Exact connection logs (`admin.integrations.exactOnline.connectionLogs`): every API
|
|
356
|
+
* call between the store and Exact (`calls`), and the Exact sync and lifecycle events (`events`),
|
|
357
|
+
* from the platform's audit trail, newest first. Always the client's own store; a store without
|
|
358
|
+
* the Exact Online plugin reads none (refused `PermissionDeniedError`, 403).
|
|
359
|
+
*
|
|
360
|
+
* The rows are the audit trail's own ({@link AuditCall}, {@link AuditEvent}). An app installation
|
|
361
|
+
* below `customerData: full` reads them with every field that can carry customer data null (the
|
|
362
|
+
* bodies, the error text, the endpoint, the labels, `metadata`), and a text search (`q`) is
|
|
363
|
+
* refused `CUSTOMER_DATA_NOT_GRANTED` (403).
|
|
364
|
+
*
|
|
365
|
+
* A filter the service cannot read (a date that is not ISO-8601, a status that is not a whole
|
|
366
|
+
* number, a cursor it did not hand out) is refused `VALIDATION_ERROR` (`ValidationError`, 400).
|
|
367
|
+
* `limit` is 1 to 200 (50 unless said): the service reads a larger one as 200, and `hasNext`
|
|
368
|
+
* still says whether more follow.
|
|
369
|
+
*/
|
|
370
|
+
export interface ExactOnlineConnectionLogsModule {
|
|
371
|
+
/**
|
|
372
|
+
* The store's Exact API calls, newest first, a page at a time (`.next()`, `for await`).
|
|
373
|
+
*
|
|
374
|
+
* @effect read
|
|
375
|
+
* @permission ReadSettings
|
|
376
|
+
*/
|
|
377
|
+
calls(filter?: ExactOnlineConnectionLogCallFilter & ListOptions): Promise<Page<AuditCall>>;
|
|
378
|
+
/**
|
|
379
|
+
* The store's Exact sync and lifecycle events (every `exact.*` action), newest first, a page at
|
|
380
|
+
* a time.
|
|
381
|
+
*
|
|
382
|
+
* @effect read
|
|
383
|
+
* @permission ReadSettings
|
|
384
|
+
*/
|
|
385
|
+
events(filter?: ExactOnlineConnectionLogEventFilter & ListOptions): Promise<Page<AuditEvent>>;
|
|
386
|
+
/**
|
|
387
|
+
* One log, filtered, over a bounded date range, as CSV text (a header line, then a line per
|
|
388
|
+
* row, newest first). Both dates are required and the range is at most 366 days; the service
|
|
389
|
+
* refuses a missing, reversed or wider range `VALIDATION_ERROR` (400). Refused before sending,
|
|
390
|
+
* `INVALID_EXACT_ONLINE_INPUT` (400): a `kind` that is not `calls` or `events`.
|
|
391
|
+
*
|
|
392
|
+
* @effect read
|
|
393
|
+
* @permission ReadSettings
|
|
394
|
+
*/
|
|
395
|
+
export(kind: ExactOnlineConnectionLogKind, filter: ExactOnlineConnectionLogExportFilter, options?: Call): Promise<string>;
|
|
396
|
+
}
|
|
397
|
+
/**
|
|
398
|
+
* The store's Exact payment and delivery terms: the catalogues mirrored from the connected
|
|
399
|
+
* division, how far the customers' assignments reach, and a live check against Exact
|
|
400
|
+
* (`admin.integrations.exactOnline.terms`). Every method reads; none writes, here or in Exact.
|
|
401
|
+
* Each is refused `PLUGIN_ACCESS_DENIED` (`PermissionDeniedError`, 403) for a store without the
|
|
402
|
+
* Exact Online plugin (never for a SuperAdmin).
|
|
403
|
+
*/
|
|
404
|
+
export interface ExactOnlineTermsModule {
|
|
405
|
+
/**
|
|
406
|
+
* The ACTIVE payment conditions mirrored from the connected division, by code. `[]` for a store
|
|
407
|
+
* with no connected division. A local read; it calls no Exact.
|
|
408
|
+
*
|
|
409
|
+
* @effect read
|
|
410
|
+
* @permission ReadSettings
|
|
411
|
+
*/
|
|
412
|
+
paymentConditions(options?: Call): Promise<ExactPaymentCondition[]>;
|
|
413
|
+
/**
|
|
414
|
+
* How far the customers' Exact payment conditions reach: how many customers hold one, which
|
|
415
|
+
* codes the catalogue does not know, and how the newest reconcile went. Every count 0 for a
|
|
416
|
+
* store with no connected division. A local read.
|
|
417
|
+
*
|
|
418
|
+
* @effect read
|
|
419
|
+
* @permission ReadSettings
|
|
420
|
+
*/
|
|
421
|
+
paymentDiagnostics(options?: Call): Promise<ExactPaymentTermsDiagnostics>;
|
|
422
|
+
/**
|
|
423
|
+
* A live check of the division's payment conditions: reads every condition and every Exact
|
|
424
|
+
* Account (sales Accounts only, unless the customer sync takes all) and answers what taking
|
|
425
|
+
* them over would assign, writing nothing, here or in Exact, also while payment-terms
|
|
426
|
+
* synchronization is off. Slow on a large division. A read Exact refuses is named in
|
|
427
|
+
* `resources` (`complete: false`), not thrown.
|
|
428
|
+
*
|
|
429
|
+
* Refused `EXACT_ONLINE_NOT_CONNECTED` (`BusinessRuleError`, 422) for a store that is not
|
|
430
|
+
* connected to a division, before any Exact call; `PLUGIN_ACCESS_DENIED` (403).
|
|
431
|
+
*
|
|
432
|
+
* @effect read
|
|
433
|
+
* @permission ReadSettings
|
|
434
|
+
*/
|
|
435
|
+
paymentDryRun(options?: Call): Promise<ExactPaymentTermsDryRun>;
|
|
436
|
+
/**
|
|
437
|
+
* The Incoterms mirrored from the connected division, by code and version. `[]` for a store
|
|
438
|
+
* with no connected division. A local read.
|
|
439
|
+
*
|
|
440
|
+
* @effect read
|
|
441
|
+
* @permission ReadSettings
|
|
442
|
+
*/
|
|
443
|
+
incoterms(options?: Call): Promise<ExactIncoterm[]>;
|
|
444
|
+
/**
|
|
445
|
+
* How far the customers' Exact delivery assignments reach, and how the store's shipping
|
|
446
|
+
* methods map onto Exact's. Every count 0 for a store with no connected division. A local read.
|
|
447
|
+
*
|
|
448
|
+
* @effect read
|
|
449
|
+
* @permission ReadSettings
|
|
450
|
+
*/
|
|
451
|
+
deliveryDiagnostics(options?: Call): Promise<ExactDeliveryTermsDiagnostics>;
|
|
452
|
+
/**
|
|
453
|
+
* A live check of the division's delivery assignments: reads Exact's shipping methods,
|
|
454
|
+
* Incoterms and Accounts and answers what taking them over would assign, writing nothing. As
|
|
455
|
+
* {@link paymentDryRun}: slow on a large division, a refused read is in `resources`.
|
|
456
|
+
*
|
|
457
|
+
* Refused `EXACT_ONLINE_NOT_CONNECTED` (`BusinessRuleError`, 422) for a store that is not
|
|
458
|
+
* connected to a division, before any Exact call; `PLUGIN_ACCESS_DENIED` (403).
|
|
459
|
+
*
|
|
460
|
+
* @effect read
|
|
461
|
+
* @permission ReadSettings
|
|
462
|
+
*/
|
|
463
|
+
deliveryDryRun(options?: Call): Promise<ExactDeliveryTermsDryRun>;
|
|
464
|
+
}
|
|
465
|
+
/**
|
|
466
|
+
* What Exact holds for one customer of the store (`admin.integrations.exactOnline.customers`):
|
|
467
|
+
* the customer page's Exact cards. Local reads of what the sync last wrote; none calls Exact.
|
|
468
|
+
* Read on any store, with or without the Exact Online plugin.
|
|
469
|
+
*/
|
|
470
|
+
export interface ExactOnlineCustomersModule {
|
|
471
|
+
/**
|
|
472
|
+
* The customer's Exact payment terms, staged ones included (`managedExternally: false` while
|
|
473
|
+
* the mirror only shadows the store's own terms), with the linked Account. `null` for a store
|
|
474
|
+
* with no connected division, or a customer Exact holds no terms for. The provider-neutral
|
|
475
|
+
* terms an order takes are `customers.credit.paymentTerms`.
|
|
476
|
+
*
|
|
477
|
+
* @effect read
|
|
478
|
+
* @permission ReadCustomer
|
|
479
|
+
*/
|
|
480
|
+
paymentTerms(customerId: string, options?: Call): Promise<ExactCustomerPaymentTerms | null>;
|
|
481
|
+
/**
|
|
482
|
+
* The customer's Exact delivery assignment, staged ones included, with the linked Account.
|
|
483
|
+
* `null` when Exact holds none for the customer. The provider-neutral terms an order takes are
|
|
484
|
+
* `customers.deliveryTerms`.
|
|
485
|
+
*
|
|
486
|
+
* @effect read
|
|
487
|
+
* @permission ReadCustomer
|
|
488
|
+
*/
|
|
489
|
+
deliveryTerms(customerId: string, options?: Call): Promise<ExactCustomerDeliveryTerms | null>;
|
|
490
|
+
/**
|
|
491
|
+
* The customer's Exact price list against the group and price list the store reconciled for
|
|
492
|
+
* it (see `ExactCustomerPriceListStatus`). A customer the store does not hold, or one not
|
|
493
|
+
* linked to Exact, reads `unlinked`; never `null`.
|
|
494
|
+
*
|
|
495
|
+
* @effect read
|
|
496
|
+
* @permission ReadCustomer
|
|
497
|
+
*/
|
|
498
|
+
priceList(customerId: string, options?: Call): Promise<ExactCustomerPriceList>;
|
|
499
|
+
}
|
|
500
|
+
/**
|
|
501
|
+
* The store's orders in Exact (`admin.integrations.exactOnline.orders`): an order's place there,
|
|
502
|
+
* pushing one, and the inbound order import. Every method is refused `PLUGIN_ACCESS_DENIED`
|
|
503
|
+
* (`PermissionDeniedError`, 403) for a store without the Exact Online plugin (never for a
|
|
504
|
+
* SuperAdmin).
|
|
505
|
+
*
|
|
506
|
+
* Exact is the source of truth for an Exact store's figures: nothing here recomputes what an
|
|
507
|
+
* order bills from the platform's side; {@link reprice} and {@link repriceAll} take Exact's VAT
|
|
508
|
+
* rates as they are.
|
|
509
|
+
*/
|
|
510
|
+
export interface ExactOnlineOrdersModule {
|
|
511
|
+
/**
|
|
512
|
+
* The order's place in Exact (pushed from here, imported from Exact, or neither), what blocks a
|
|
513
|
+
* push (a guest order, lines not linked to an Exact item) and how Exact's sales order differs
|
|
514
|
+
* from the order. An order the store does not hold reads as not in Exact, with no customer.
|
|
515
|
+
* A local read. An engine that predates `warnings` is asked again without it, and the answer
|
|
516
|
+
* carries `warnings: []`.
|
|
517
|
+
*
|
|
518
|
+
* @effect read
|
|
519
|
+
* @permission ReadOrder
|
|
520
|
+
*/
|
|
521
|
+
state(orderId: string, options?: Call): Promise<ExactOrderState>;
|
|
522
|
+
/**
|
|
523
|
+
* An order imported from Exact: its revision, when it was last synced, whether Exact's order
|
|
524
|
+
* drifted from it and whether Exact deleted it. `null` for an order that was never imported,
|
|
525
|
+
* or a store with no connected division. A local read.
|
|
526
|
+
*
|
|
527
|
+
* @effect read
|
|
528
|
+
* @permission ReadOrder
|
|
529
|
+
*/
|
|
530
|
+
syncState(orderId: string, options?: Call): Promise<ExactOrderSyncState | null>;
|
|
531
|
+
/**
|
|
532
|
+
* Push the order to Exact as a sales order, linking the customer to their Exact Account and
|
|
533
|
+
* creating one when needed. This writes into the store's Exact division and cannot be undone
|
|
534
|
+
* from the platform. Write-once: an order already in Exact (pushed, or imported from it)
|
|
535
|
+
* answers `alreadyPushed: true` and writes nothing.
|
|
536
|
+
*
|
|
537
|
+
* A refusal is an answer, not a throw: `success: false` with the reason in `error` (and
|
|
538
|
+
* `errorCode` when it has one). Refused that way, with nothing sent to Exact: a guest order,
|
|
539
|
+
* lines not linked to an Exact item, a sandbox store, a store with no active Exact connection,
|
|
540
|
+
* or an order linked to a sales order of another division. What Exact itself refuses arrives
|
|
541
|
+
* the same way. A sales order that came out different from the order (Exact derives each line's
|
|
542
|
+
* VAT itself) answers `success: true` with the differences in `warnings`. An engine that
|
|
543
|
+
* predates `warnings` refuses the document before running it; it is then sent once more
|
|
544
|
+
* without the field, and the answer carries `warnings: null`.
|
|
545
|
+
*
|
|
546
|
+
* The engine takes no idempotency key for it yet, so `options.idempotencyKey` is not sent; the
|
|
547
|
+
* write-once rule above is what keeps a repeat from writing twice.
|
|
548
|
+
*
|
|
549
|
+
* @effect irreversible
|
|
550
|
+
* @permission UpdateOrder
|
|
551
|
+
*/
|
|
552
|
+
push(orderId: string, options?: Call): Promise<ExactOrderPushResult>;
|
|
553
|
+
/**
|
|
554
|
+
* Re-split an order imported from Exact at Exact's own per-line VAT rates, read live from its
|
|
555
|
+
* sales order: each line's tax changes, while the order's gross total, code, payment and
|
|
556
|
+
* fulfilment stay. It changes what the order bills, line by line.
|
|
557
|
+
*
|
|
558
|
+
* A refusal is `success: false` with the reason in `error`, not a throw: an order that was not
|
|
559
|
+
* imported from Exact, a store with no connected division, an import link of another division,
|
|
560
|
+
* a sales order Exact no longer holds. `changed: false` when every line already matched.
|
|
561
|
+
*
|
|
562
|
+
* @effect money
|
|
563
|
+
* @permission UpdateOrder
|
|
564
|
+
*/
|
|
565
|
+
reprice(orderId: string, options?: Call): Promise<ExactOrderRepriceResult>;
|
|
566
|
+
/**
|
|
567
|
+
* {@link reprice} every order the store imported from the connected division, one by one,
|
|
568
|
+
* reading each sales order from Exact (slow, and Exact calls, on a large history). Answers the
|
|
569
|
+
* counts; one order's failure is counted, never thrown. All zero for a store with no connected
|
|
570
|
+
* division.
|
|
571
|
+
*
|
|
572
|
+
* @effect money
|
|
573
|
+
* @permission UpdateSettings
|
|
574
|
+
*/
|
|
575
|
+
repriceAll(options?: Call): Promise<ExactOrderRepriceAllResult>;
|
|
576
|
+
/**
|
|
577
|
+
* Queue an inbound order sync: Exact's new and changed sales orders since the last run are
|
|
578
|
+
* booked as placed orders with a settled payment (it records money). Answers `true` once queued;
|
|
579
|
+
* the outcome arrives in `sync.logs`. Queued on a store that is not connected too, where the
|
|
580
|
+
* run fails on the worker.
|
|
581
|
+
*
|
|
582
|
+
* Refused, with nothing queued: `FIELD_GROUP_LOCKED` (`BusinessRuleError`, 422) while an app or
|
|
583
|
+
* API token owns a field group of the store (the import fills an existing customer's empty name
|
|
584
|
+
* and phone), `error.details[]` naming each owner; `PLUGIN_ACCESS_DENIED` (403).
|
|
585
|
+
*
|
|
586
|
+
* @effect money
|
|
587
|
+
* @permission UpdateSettings
|
|
588
|
+
*/
|
|
589
|
+
runSync(options?: Call): Promise<boolean>;
|
|
590
|
+
/**
|
|
591
|
+
* Queue a full order backfill: the order cursor is reset and the whole order history of the
|
|
592
|
+
* division is read again. Orders already imported are skipped by their fingerprint, so it also
|
|
593
|
+
* recovers orders a run failed on; any it had not imported are booked as placed, paid orders.
|
|
594
|
+
* Answers `true`, also for a store that is not connected, where it does nothing. Refusals as
|
|
595
|
+
* {@link runSync}.
|
|
596
|
+
*
|
|
597
|
+
* @effect money
|
|
598
|
+
* @permission UpdateSettings
|
|
599
|
+
*/
|
|
600
|
+
runBackfill(options?: Call): Promise<boolean>;
|
|
601
|
+
}
|
|
602
|
+
/** What Exact holds for one product of the store (`admin.integrations.exactOnline.products`). */
|
|
603
|
+
export interface ExactOnlineProductsModule {
|
|
604
|
+
/**
|
|
605
|
+
* Whether Exact owns the product's catalogue data, its Exact item and item group, and whether
|
|
606
|
+
* the catalogue sync switched it off. `null` for a product the store does not hold. Read on any
|
|
607
|
+
* store, with or without the Exact Online plugin. Needs `ReadCatalog` (or `ReadProduct`).
|
|
608
|
+
*
|
|
609
|
+
* @effect read
|
|
610
|
+
*/
|
|
611
|
+
status(productId: string, options?: Call): Promise<ExactProductStatus | null>;
|
|
612
|
+
}
|
|
148
613
|
/**
|
|
149
614
|
* The store's Exact Online connection, its settings and its import structure
|
|
150
615
|
* (`admin.integrations.exactOnline`). Always the store the client is scoped to; a SuperAdmin acts
|
|
@@ -154,8 +619,10 @@ export interface ExactOnlineWebhooksModule {
|
|
|
154
619
|
* The connection is OAuth: `authorizationUrl` gives the consent page of the region's Exact host,
|
|
155
620
|
* and Exact's callback stores the division. A store without the Exact Online plugin is refused
|
|
156
621
|
* every method but `config.get` and `disconnect` (`PLUGIN_ACCESS_DENIED`, 403; never for a
|
|
157
|
-
* SuperAdmin). The sync
|
|
158
|
-
*
|
|
622
|
+
* SuperAdmin). The inbound sync ({@link sync}), the shipping-method mapping ({@link shipping}),
|
|
623
|
+
* the connection logs ({@link connectionLogs}), the payment and delivery terms ({@link terms})
|
|
624
|
+
* and what Exact holds for a customer, an order or a product ({@link customers},
|
|
625
|
+
* {@link orders}, {@link products}) are here too.
|
|
159
626
|
*/
|
|
160
627
|
export interface ExactOnlineModule {
|
|
161
628
|
/** The connection's settings. See {@link ExactOnlineConfigModule}. */
|
|
@@ -211,6 +678,28 @@ export interface ExactOnlineModule {
|
|
|
211
678
|
* @permission ReadSettings
|
|
212
679
|
*/
|
|
213
680
|
syncEstimate(schedule: ExactSyncScheduleInput, options?: Call): Promise<ExactSyncEstimate>;
|
|
681
|
+
/** The inbound sync: its runs, its health, its cursors. See {@link ExactOnlineSyncModule}. */
|
|
682
|
+
sync: ExactOnlineSyncModule;
|
|
683
|
+
/**
|
|
684
|
+
* The store's stock locations and the Exact warehouse each mirrors. Read-only: the catalogue
|
|
685
|
+
* sweep links them. `PLUGIN_ACCESS_DENIED` (403).
|
|
686
|
+
*
|
|
687
|
+
* @effect read
|
|
688
|
+
* @permission ReadSettings
|
|
689
|
+
*/
|
|
690
|
+
warehouseLinks(options?: Call): Promise<ExactWarehouseLink[]>;
|
|
691
|
+
/** The shipping-method mapping. See {@link ExactOnlineShippingModule}. */
|
|
692
|
+
shipping: ExactOnlineShippingModule;
|
|
693
|
+
/** The API calls and events between the store and Exact. See {@link ExactOnlineConnectionLogsModule}. */
|
|
694
|
+
connectionLogs: ExactOnlineConnectionLogsModule;
|
|
695
|
+
/** The payment and delivery terms. See {@link ExactOnlineTermsModule}. */
|
|
696
|
+
terms: ExactOnlineTermsModule;
|
|
697
|
+
/** What Exact holds for one customer. See {@link ExactOnlineCustomersModule}. */
|
|
698
|
+
customers: ExactOnlineCustomersModule;
|
|
699
|
+
/** The store's orders in Exact. See {@link ExactOnlineOrdersModule}. */
|
|
700
|
+
orders: ExactOnlineOrdersModule;
|
|
701
|
+
/** What Exact holds for one product. See {@link ExactOnlineProductsModule}. */
|
|
702
|
+
products: ExactOnlineProductsModule;
|
|
214
703
|
}
|
|
215
704
|
/**
|
|
216
705
|
* `updateExactOnlineConfig`'s inline arguments, each with its GraphQL type: the SDK takes one
|
|
@@ -245,4 +734,51 @@ export declare const EXACT_ONLINE_PRICING_STRUCTURE_QUERY = "\n query ExactOnli
|
|
|
245
734
|
export declare const EXACT_ONLINE_WEBHOOK_STATUS_QUERY = "\n query ExactOnlineWebhookStatus {\n exactOnlineWebhookStatus {\n supported\n registered\n subscriptions { topic subscriptionId callbackUrl }\n checkedAt\n error\n }\n }\n";
|
|
246
735
|
export declare const SYNC_EXACT_ONLINE_WEBHOOKS_MUTATION = "\n mutation SyncExactOnlineWebhooks {\n syncExactOnlineWebhooks\n }\n";
|
|
247
736
|
export declare const EXACT_ONLINE_SYNC_ESTIMATE_QUERY = "\n query ExactOnlineSyncEstimate($schedule: ExactSyncScheduleInput!) {\n exactOnlineSyncEstimate(schedule: $schedule) {\n delta { \n enabled\n intervalMinutes\n minIntervalMinutes\n maxIntervalMinutes\n callsPerRun\n runsPerDay\n callsPerDay\n }\n full { \n enabled\n intervalMinutes\n minIntervalMinutes\n maxIntervalMinutes\n callsPerRun\n runsPerDay\n callsPerDay\n }\n order { \n enabled\n intervalMinutes\n minIntervalMinutes\n maxIntervalMinutes\n callsPerRun\n runsPerDay\n callsPerDay\n }\n purchaseOrders { \n enabled\n intervalMinutes\n minIntervalMinutes\n maxIntervalMinutes\n callsPerRun\n runsPerDay\n callsPerDay\n }\n purchaseOrdersReconcile { \n enabled\n intervalMinutes\n minIntervalMinutes\n maxIntervalMinutes\n callsPerRun\n runsPerDay\n callsPerDay\n }\n customers { \n enabled\n intervalMinutes\n minIntervalMinutes\n maxIntervalMinutes\n callsPerRun\n runsPerDay\n callsPerDay\n }\n priceLists { \n enabled\n intervalMinutes\n minIntervalMinutes\n maxIntervalMinutes\n callsPerRun\n runsPerDay\n callsPerDay\n }\n total\n dailyCallBudget\n overBudget\n }\n }\n";
|
|
737
|
+
export declare const EXACT_ONLINE_SYNC_LOGS_QUERY = "\n query ExactOnlineSyncLogs($limit: Int, $entity: String) {\n exactOnlineSyncLogs(limit: $limit, entity: $entity) { \n id\n entity\n mode\n status\n createdCount\n updatedCount\n skippedCount\n failedCount\n detachedCount\n error\n durationMs\n createdAt\n catalogueExclusions { inactive notWebshop nonStock unpriced total absent }\n }\n }\n";
|
|
738
|
+
export declare const EXACT_ONLINE_SYNC_HEALTH_QUERY = "\n query ExactOnlineSyncHealth {\n exactOnlineSyncHealth {\n customers { lastRunAt status error lastSuccessAt }\n catalogue { lastRunAt status error lastSuccessAt }\n orders { lastRunAt status error lastSuccessAt }\n }\n }\n";
|
|
739
|
+
export declare const RUN_EXACT_ONLINE_CATALOGUE_SYNC_MUTATION = "\n mutation RunExactOnlineCatalogueSync {\n runExactOnlineCatalogueSync\n }\n";
|
|
740
|
+
export declare const RUN_EXACT_ONLINE_CUSTOMER_SYNC_MUTATION = "\n mutation RunExactOnlineCustomerSync {\n runExactOnlineCustomerSync\n }\n";
|
|
741
|
+
export declare const RUN_EXACT_ONLINE_PRICE_LIST_SYNC_MUTATION = "\n mutation RunExactOnlinePriceListSync {\n runExactOnlinePriceListSync\n }\n";
|
|
742
|
+
export declare const REIMPORT_EXACT_ONLINE_ITEM_PICTURES_MUTATION = "\n mutation ReimportExactOnlineItemPictures {\n reimportExactOnlineItemPictures\n }\n";
|
|
743
|
+
export declare const EXACT_ONLINE_SYNC_CURSORS_QUERY = "\n query ExactOnlineSyncCursors {\n exactOnlineSyncCursors { entity cursor }\n }\n";
|
|
744
|
+
export declare const RESET_EXACT_ONLINE_SYNC_CURSOR_MUTATION = "\n mutation ResetExactOnlineSyncCursor($entity: String!) {\n resetExactOnlineSyncCursor(entity: $entity)\n }\n";
|
|
745
|
+
export declare const EXACT_ONLINE_WAREHOUSE_LINKS_QUERY = "\n query ExactOnlineWarehouseLinks {\n exactOnlineWarehouseLinks { stockLocationId stockLocationName exactWarehouseId }\n }\n";
|
|
746
|
+
export declare const EXACT_ONLINE_SHIPPING_METHODS_QUERY = "\n query ExactOnlineShippingMethods {\n exactOnlineShippingMethods {\n mappings { \n vendureShippingMethodId\n vendureCode\n vendureName\n exactShippingMethodId\n exactManaged\n status\n }\n exact { id code description active amount linked }\n }\n }\n";
|
|
747
|
+
export declare const RUN_EXACT_ONLINE_SHIPPING_METHOD_SYNC_MUTATION = "\n mutation RunExactOnlineShippingMethodSync {\n runExactOnlineShippingMethodSync\n }\n";
|
|
748
|
+
export declare const IMPORT_EXACT_ONLINE_SHIPPING_METHOD_MUTATION = "\n mutation ImportExactOnlineShippingMethod($exactShippingMethodId: String!) {\n importExactOnlineShippingMethod(exactShippingMethodId: $exactShippingMethodId) {\n \n vendureShippingMethodId\n vendureCode\n vendureName\n exactShippingMethodId\n exactManaged\n status\n\n }\n }\n";
|
|
749
|
+
export declare const SET_EXACT_ONLINE_SHIPPING_METHOD_MAPPING_MUTATION = "\n mutation SetExactOnlineShippingMethodMapping(\n $vendureShippingMethodId: ID!\n $exactShippingMethodId: String\n ) {\n setExactOnlineShippingMethodMapping(\n vendureShippingMethodId: $vendureShippingMethodId\n exactShippingMethodId: $exactShippingMethodId\n ) {\n \n vendureShippingMethodId\n vendureCode\n vendureName\n exactShippingMethodId\n exactManaged\n status\n\n }\n }\n";
|
|
750
|
+
export declare const CONVERT_EXACT_ONLINE_SHIPPING_METHOD_TO_MAPPING_MUTATION = "\n mutation ConvertExactOnlineShippingMethodToMapping(\n $exactShippingMethodId: String!\n $vendureShippingMethodId: ID!\n ) {\n convertExactOnlineShippingMethodToMapping(\n exactShippingMethodId: $exactShippingMethodId\n vendureShippingMethodId: $vendureShippingMethodId\n ) {\n \n vendureShippingMethodId\n vendureCode\n vendureName\n exactShippingMethodId\n exactManaged\n status\n\n }\n }\n";
|
|
751
|
+
export declare const RETIRE_EXACT_ONLINE_IMPORTED_SHIPPING_METHOD_MUTATION = "\n mutation RetireExactOnlineImportedShippingMethod($exactShippingMethodId: String!) {\n retireExactOnlineImportedShippingMethod(exactShippingMethodId: $exactShippingMethodId)\n }\n";
|
|
752
|
+
export declare const EXACT_ONLINE_PAYMENT_CONDITIONS_QUERY = "\n query ExactOnlinePaymentConditions {\n exactOnlinePaymentConditions {\n exactId\n code\n description\n summary\n classification\n paymentDays\n paymentEndOfMonths\n paymentMethod\n percentage\n discountPaymentDays\n discountPercentage\n paymentDiscountType\n active\n syncedAt\n }\n }\n";
|
|
753
|
+
export declare const EXACT_ONLINE_PAYMENT_TERMS_DIAGNOSTICS_QUERY = "\n query ExactOnlinePaymentTermsDiagnostics {\n exactOnlinePaymentTermsDiagnostics {\n totalCustomers\n assignedCount\n unassignedCount\n unresolvedCount\n staleCount\n lastSyncedAt\n error\n permissionWarning\n distribution { code description customerCount }\n unresolvedCodes { code customerCount }\n lastReconciliation {\n mode\n status\n createdCount\n updatedCount\n deactivatedCount\n failedCount\n at\n error\n }\n }\n }\n";
|
|
754
|
+
export declare const EXACT_ONLINE_PAYMENT_TERMS_DRY_RUN_QUERY = "\n query ExactOnlinePaymentTermsDryRun {\n exactOnlinePaymentTermsDryRun {\n division\n generatedAt\n complete\n permissionWarning\n catalogRowCount\n catalogCodeCount\n accountCount\n assignedCount\n unassignedCount\n unresolvedCount\n uncheckedCount\n distribution { code description customerCount }\n duplicateConditions { code description summary classification scheduleCount }\n complexConditions { code description summary classification scheduleCount }\n unresolvedCodes { code customerCount }\n assignmentIssues { accountId accountCode conditionCode conditionDescription status }\n resources { resource ok permissionWarning error }\n }\n }\n";
|
|
755
|
+
export declare const EXACT_ONLINE_INCOTERMS_QUERY = "\n query ExactOnlineIncoterms {\n exactOnlineIncoterms {\n exactId\n code\n version\n description\n catalogAvailable\n stale\n lastSyncedAt\n error\n }\n }\n";
|
|
756
|
+
export declare const EXACT_ONLINE_DELIVERY_TERMS_DIAGNOSTICS_QUERY = "\n query ExactOnlineDeliveryTermsDiagnostics {\n exactOnlineDeliveryTermsDiagnostics {\n reconciliationRequired\n accountSyncStatus\n totalCustomers\n assignedCount\n unassignedCount\n unresolvedCount\n staleCount\n mappedMethodCount\n usableShippingMappingCount\n unmappedMethodCount\n inactiveMethodCount\n unavailableMethodCount\n nullAmountCount\n invalidIncotermCount\n lastSyncedAt\n error\n permissionWarning\n shippingMethodDistribution { exactId code description customerCount }\n incotermDistribution { code version description customerCount }\n warnings\n }\n }\n";
|
|
757
|
+
export declare const EXACT_ONLINE_DELIVERY_TERMS_DRY_RUN_QUERY = "\n query ExactOnlineDeliveryTermsDryRun {\n exactOnlineDeliveryTermsDryRun {\n division\n generatedAt\n complete\n permissionWarning\n shippingMethodCount\n activeShippingMethodCount\n mappingCount\n unmappedCatalogMethodCount\n nullAmountCount\n zeroAmountCount\n incotermCount\n accountCount\n assignedShippingMethodCount\n mappedAssignedShippingMethodCount\n unmappedAssignedShippingMethodCount\n unassignedShippingMethodCount\n unresolvedShippingMethodCount\n assignedIncotermCount\n unassignedIncotermCount\n unresolvedIncotermCount\n invalidPolicyCount\n shippingMethodDistribution { exactId customerCount }\n incotermDistribution { code version customerCount }\n assignmentIssues {\n accountId\n accountCode\n shippingMethodId\n incotermCode\n incotermVersion\n status\n message\n }\n resources { resource ok permissionWarning error }\n }\n }\n";
|
|
758
|
+
export declare const EXACT_ONLINE_CUSTOMER_PAYMENT_TERMS_QUERY = "\n query ExactOnlineCustomerPaymentTerms($customerId: ID!) {\n exactOnlineCustomerPaymentTerms(customerId: $customerId) {\n customerId\n source\n managedExternally\n linkedExternally\n status\n stale\n exactAccountId\n exactAccountCode\n conditionCode\n conditionDescription\n summary\n classification\n paymentDays\n paymentEndOfMonths\n paymentMethod\n percentage\n discountPaymentDays\n discountPercentage\n paymentDiscountType\n syncedAt\n lastCheckedAt\n error\n }\n }\n";
|
|
759
|
+
export declare const EXACT_ONLINE_CUSTOMER_DELIVERY_TERMS_QUERY = "\n query ExactOnlineCustomerDeliveryTerms($customerId: ID!) {\n exactOnlineCustomerDeliveryTerms(customerId: $customerId) {\n customerId\n source\n managedExternally\n linkedExternally\n status\n shippingMethodStatus\n policyStatus\n summary\n exactAccountId\n exactAccountCode\n preferredShippingMethodId\n preferredShippingMethodCode\n preferredShippingMethodName\n preferredShippingMethodAvailable\n eligibleShippingMethodIds\n incotermStatus\n incotermCode\n incotermVersion\n incotermAddress\n incotermDescription\n shippingLeadDays\n deliveryAdvice\n stale\n syncedAt\n lastCheckedAt\n error\n }\n }\n";
|
|
760
|
+
export declare const EXACT_ONLINE_CUSTOMER_PRICE_LIST_QUERY = "\n query ExactOnlineCustomerPriceList($customerId: ID!) {\n exactOnlineCustomerPriceList(customerId: $customerId) {\n customerId\n exactAccountId\n exactAccountCode\n exactPriceListId\n groupId\n groupName\n priceListId\n priceListName\n status\n lastReconciledAt\n lastError\n }\n }\n";
|
|
761
|
+
export declare const EXACT_ONLINE_ORDER_STATE_QUERY = "\n query ExactOnlineOrderState($orderId: ID!) {\n exactOnlineOrderState(orderId: $orderId) {\n pushed\n origin\n salesOrderId\n salesOrderNumber\n pushedAt\n hasCustomer\n customerLinked\n unmappedSkus\n warnings\n }\n }\n";
|
|
762
|
+
export declare const EXACT_ONLINE_ORDER_SYNC_STATE_QUERY = "\n query ExactOnlineOrderSyncState($orderId: ID!) {\n exactOnlineOrderSyncState(orderId: $orderId) {\n exactSalesOrderId\n exactOrderNumber\n revision\n lastSyncedAt\n driftDetected\n exactDeletedAt\n unmappedSkus\n }\n }\n";
|
|
763
|
+
export declare const PUSH_ORDER_TO_EXACT_ONLINE_MUTATION = "\n mutation PushOrderToExactOnline($orderId: ID!) {\n pushOrderToExactOnline(orderId: $orderId) {\n success\n alreadyPushed\n salesOrderId\n salesOrderNumber\n error\n errorCode\n warnings\n }\n }\n";
|
|
764
|
+
/**
|
|
765
|
+
* {@link EXACT_ONLINE_ORDER_STATE_QUERY} without `warnings`, for an engine that predates the field
|
|
766
|
+
* (#1925): services deploy separately, and GraphQL refuses the whole document over one unknown
|
|
767
|
+
* field. Drop it once every engine serves `warnings` (orchestrator probe 2026-10-16: production
|
|
768
|
+
* did not yet).
|
|
769
|
+
*/
|
|
770
|
+
export declare const EXACT_ONLINE_ORDER_STATE_LEGACY_QUERY = "\n query ExactOnlineOrderState($orderId: ID!) {\n exactOnlineOrderState(orderId: $orderId) {\n pushed\n origin\n salesOrderId\n salesOrderNumber\n pushedAt\n hasCustomer\n customerLinked\n unmappedSkus\n }\n }\n";
|
|
771
|
+
/**
|
|
772
|
+
* {@link PUSH_ORDER_TO_EXACT_ONLINE_MUTATION} without `warnings`, for an engine that predates the
|
|
773
|
+
* field. Safe to send after the current document was refused: an unknown field fails validation,
|
|
774
|
+
* before the push runs, so nothing reached Exact. Drop it with the state read's.
|
|
775
|
+
*/
|
|
776
|
+
export declare const PUSH_ORDER_TO_EXACT_ONLINE_LEGACY_MUTATION = "\n mutation PushOrderToExactOnline($orderId: ID!) {\n pushOrderToExactOnline(orderId: $orderId) {\n success\n alreadyPushed\n salesOrderId\n salesOrderNumber\n error\n errorCode\n }\n }\n";
|
|
777
|
+
export declare const REPRICE_EXACT_ONLINE_ORDER_MUTATION = "\n mutation RepriceExactOnlineOrder($orderId: ID!) {\n repriceExactOnlineOrder(orderId: $orderId) {\n success\n changed\n linesRepriced\n error\n }\n }\n";
|
|
778
|
+
export declare const REPRICE_ALL_EXACT_ONLINE_IMPORTED_ORDERS_MUTATION = "\n mutation RepriceAllExactOnlineImportedOrders {\n repriceAllExactOnlineImportedOrders {\n total\n repriced\n skipped\n failed\n }\n }\n";
|
|
779
|
+
export declare const RUN_EXACT_ONLINE_ORDER_SYNC_MUTATION = "\n mutation RunExactOnlineOrderSync {\n runExactOnlineOrderSync\n }\n";
|
|
780
|
+
export declare const RUN_EXACT_ONLINE_ORDER_BACKFILL_MUTATION = "\n mutation RunExactOnlineOrderBackfill {\n runExactOnlineOrderBackfill\n }\n";
|
|
781
|
+
export declare const EXACT_PRODUCT_STATUS_QUERY = "\n query ExactProductStatus($id: ID!) {\n product(id: $id) {\n id\n customFields {\n exactManaged\n exactItemId\n exactItemGroupId\n exactDisabledReason\n }\n }\n }\n";
|
|
782
|
+
/** How long a connection-log export may stream before the call gives up, unless said otherwise. */
|
|
783
|
+
export declare const EXACT_ONLINE_LOG_EXPORT_TIMEOUT_MS = 120000;
|
|
248
784
|
export declare function createExactOnlineModule(transport: Transport): ExactOnlineModule;
|