@sixtyninecommerce/admin 0.10.0 → 0.12.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.
Files changed (302) hide show
  1. package/README.md +5772 -118
  2. package/dist/auth/index.d.ts +7 -1
  3. package/dist/auth/index.js +8 -1
  4. package/dist/catalog/assets.d.ts +120 -8
  5. package/dist/catalog/assets.js +98 -12
  6. package/dist/catalog/collections.d.ts +279 -14
  7. package/dist/catalog/collections.js +246 -15
  8. package/dist/catalog/documents.d.ts +142 -0
  9. package/dist/catalog/documents.js +114 -0
  10. package/dist/catalog/index.d.ts +54 -6
  11. package/dist/catalog/index.js +10 -1
  12. package/dist/catalog/metadata.d.ts +244 -0
  13. package/dist/catalog/metadata.js +220 -0
  14. package/dist/catalog/products.d.ts +159 -19
  15. package/dist/catalog/products.js +88 -13
  16. package/dist/catalog/properties.d.ts +140 -14
  17. package/dist/catalog/properties.js +65 -1
  18. package/dist/catalog/recommendations.d.ts +288 -0
  19. package/dist/catalog/recommendations.js +237 -0
  20. package/dist/catalog/reviews.d.ts +381 -0
  21. package/dist/catalog/reviews.js +325 -0
  22. package/dist/catalog/types.d.ts +17 -1
  23. package/dist/catalog/types.js +10 -0
  24. package/dist/catalog/variant-find.d.ts +136 -0
  25. package/dist/catalog/variant-find.js +239 -0
  26. package/dist/catalog/variants.d.ts +293 -26
  27. package/dist/catalog/variants.js +164 -7
  28. package/dist/catalog/visibility.d.ts +38 -7
  29. package/dist/catalog/visibility.js +19 -1
  30. package/dist/client.d.ts +121 -9
  31. package/dist/client.js +53 -14
  32. package/dist/content/assets.d.ts +285 -0
  33. package/dist/content/assets.js +181 -0
  34. package/dist/content/forms.d.ts +332 -1
  35. package/dist/content/forms.js +140 -4
  36. package/dist/content/items.d.ts +292 -0
  37. package/dist/content/items.js +170 -0
  38. package/dist/content/menus.d.ts +254 -0
  39. package/dist/content/menus.js +70 -0
  40. package/dist/content/strings.d.ts +137 -0
  41. package/dist/content/strings.js +82 -0
  42. package/dist/content/types.d.ts +282 -0
  43. package/dist/content/types.js +100 -0
  44. package/dist/customers/age-verification.d.ts +66 -0
  45. package/dist/customers/age-verification.js +79 -0
  46. package/dist/customers/credit.d.ts +263 -0
  47. package/dist/customers/credit.js +244 -0
  48. package/dist/customers/delivery-preferences.d.ts +120 -0
  49. package/dist/customers/delivery-preferences.js +97 -0
  50. package/dist/customers/delivery-terms.d.ts +44 -0
  51. package/dist/customers/delivery-terms.js +32 -0
  52. package/dist/customers/groups.d.ts +207 -0
  53. package/dist/customers/groups.js +438 -0
  54. package/dist/customers/index.d.ts +462 -37
  55. package/dist/customers/index.js +317 -40
  56. package/dist/customers/invitation-status.d.ts +57 -0
  57. package/dist/customers/invitation-status.js +21 -0
  58. package/dist/customers/notes.d.ts +67 -0
  59. package/dist/customers/notes.js +51 -0
  60. package/dist/customers/notification-recipients.d.ts +97 -0
  61. package/dist/customers/notification-recipients.js +84 -0
  62. package/dist/customers/saved-lists.d.ts +42 -0
  63. package/dist/customers/saved-lists.js +61 -0
  64. package/dist/customers/vat.d.ts +83 -0
  65. package/dist/customers/vat.js +46 -0
  66. package/dist/customers/wire.d.ts +20 -0
  67. package/dist/customers/wire.js +35 -0
  68. package/dist/documents/ar.d.ts +307 -0
  69. package/dist/documents/ar.js +254 -0
  70. package/dist/documents/emails.d.ts +150 -0
  71. package/dist/documents/emails.js +220 -0
  72. package/dist/documents/index.d.ts +744 -21
  73. package/dist/documents/index.js +438 -24
  74. package/dist/documents/pdf.d.ts +2 -0
  75. package/dist/documents/pdf.js +11 -0
  76. package/dist/fulfillments/create.d.ts +167 -0
  77. package/dist/fulfillments/create.js +216 -0
  78. package/dist/fulfillments/index.d.ts +163 -11
  79. package/dist/fulfillments/index.js +135 -6
  80. package/dist/fulfillments/payment-policy.d.ts +64 -0
  81. package/dist/fulfillments/payment-policy.js +140 -0
  82. package/dist/fulfillments/warehouse.d.ts +724 -0
  83. package/dist/fulfillments/warehouse.js +914 -0
  84. package/dist/geo/index.d.ts +119 -0
  85. package/dist/geo/index.js +107 -0
  86. package/dist/index.d.ts +147 -39
  87. package/dist/index.js +51 -12
  88. package/dist/integrations/afas-actions.d.ts +234 -0
  89. package/dist/integrations/afas-actions.js +310 -0
  90. package/dist/integrations/afas-types.d.ts +483 -0
  91. package/dist/integrations/afas-types.js +5 -0
  92. package/dist/integrations/afas.d.ts +234 -0
  93. package/dist/integrations/afas.js +290 -0
  94. package/dist/integrations/connections.d.ts +103 -0
  95. package/dist/integrations/connections.js +55 -0
  96. package/dist/integrations/esp.d.ts +313 -0
  97. package/dist/integrations/esp.js +169 -0
  98. package/dist/integrations/exact-online-types.d.ts +965 -0
  99. package/dist/integrations/exact-online-types.js +6 -0
  100. package/dist/integrations/exact-online.d.ts +784 -0
  101. package/dist/integrations/exact-online.js +1089 -0
  102. package/dist/integrations/index.d.ts +44 -3
  103. package/dist/integrations/index.js +23 -3
  104. package/dist/integrations/pipeline-discoveries.d.ts +65 -0
  105. package/dist/integrations/pipeline-discoveries.js +65 -0
  106. package/dist/integrations/pipeline-keys.d.ts +13 -0
  107. package/dist/integrations/pipeline-keys.js +22 -0
  108. package/dist/integrations/pipeline-runs.d.ts +119 -0
  109. package/dist/integrations/pipeline-runs.js +87 -0
  110. package/dist/integrations/pipelines.d.ts +87 -15
  111. package/dist/integrations/pipelines.js +41 -22
  112. package/dist/integrations/price-import.d.ts +223 -0
  113. package/dist/integrations/price-import.js +124 -0
  114. package/dist/integrations/types.d.ts +367 -3
  115. package/dist/integrations/types.js +4 -3
  116. package/dist/locations/index.d.ts +66 -0
  117. package/dist/locations/index.js +31 -0
  118. package/dist/meta/index.d.ts +172 -0
  119. package/dist/metafields/index.d.ts +8 -1
  120. package/dist/metafields/index.js +10 -0
  121. package/dist/orders/cancel-with-money.d.ts +237 -0
  122. package/dist/orders/cancel-with-money.js +155 -0
  123. package/dist/orders/commit-edit.d.ts +23 -1
  124. package/dist/orders/commit-edit.js +19 -2
  125. package/dist/orders/deposit-policy.d.ts +3 -1
  126. package/dist/orders/drafts.d.ts +800 -0
  127. package/dist/orders/drafts.js +771 -0
  128. package/dist/orders/fields.d.ts +245 -0
  129. package/dist/orders/fields.js +188 -0
  130. package/dist/orders/get.d.ts +29 -19
  131. package/dist/orders/get.js +17 -8
  132. package/dist/orders/index.d.ts +66 -15
  133. package/dist/orders/index.js +25 -2
  134. package/dist/orders/lifecycle.d.ts +128 -0
  135. package/dist/orders/lifecycle.js +158 -0
  136. package/dist/orders/line-price-preview.d.ts +7 -2
  137. package/dist/orders/list.d.ts +243 -0
  138. package/dist/orders/list.js +487 -0
  139. package/dist/orders/manual-discounts.d.ts +13 -5
  140. package/dist/orders/manual-pricing.d.ts +5 -0
  141. package/dist/orders/money-view.d.ts +149 -0
  142. package/dist/orders/money-view.js +99 -0
  143. package/dist/orders/order-entry.d.ts +20 -7
  144. package/dist/orders/plan-edit.d.ts +34 -2
  145. package/dist/orders/plan-edit.js +112 -11
  146. package/dist/orders/settings.d.ts +201 -0
  147. package/dist/orders/settings.js +325 -0
  148. package/dist/orders/status.d.ts +159 -13
  149. package/dist/orders/status.js +21 -0
  150. package/dist/orders/surcharges.d.ts +20 -1
  151. package/dist/orders/surcharges.js +37 -11
  152. package/dist/payments/account-credit.d.ts +46 -0
  153. package/dist/payments/account-credit.js +42 -0
  154. package/dist/payments/ar.d.ts +292 -0
  155. package/dist/payments/ar.js +223 -0
  156. package/dist/payments/connected-account.d.ts +47 -0
  157. package/dist/payments/connected-account.js +61 -0
  158. package/dist/payments/credit-noted-fields.d.ts +19 -0
  159. package/dist/payments/credit-noted-fields.js +69 -0
  160. package/dist/payments/customer-consent.d.ts +30 -0
  161. package/dist/payments/customer-consent.js +49 -0
  162. package/dist/payments/index.d.ts +340 -19
  163. package/dist/payments/index.js +151 -1
  164. package/dist/payments/methods.d.ts +303 -8
  165. package/dist/payments/methods.js +337 -7
  166. package/dist/payments/mollie-methods.d.ts +159 -0
  167. package/dist/payments/mollie-methods.js +141 -0
  168. package/dist/payments/payment-links.d.ts +180 -0
  169. package/dist/payments/payment-links.js +97 -0
  170. package/dist/payments/provider-keys.d.ts +150 -0
  171. package/dist/payments/provider-keys.js +118 -0
  172. package/dist/payments/providers.d.ts +86 -11
  173. package/dist/payments/providers.js +29 -0
  174. package/dist/payments/requests.d.ts +147 -0
  175. package/dist/payments/requests.js +93 -0
  176. package/dist/payments/store-credit-fields.d.ts +15 -0
  177. package/dist/payments/store-credit-fields.js +51 -0
  178. package/dist/pickups/index.d.ts +106 -0
  179. package/dist/pickups/index.js +108 -0
  180. package/dist/platform/channels.d.ts +132 -0
  181. package/dist/platform/channels.js +128 -0
  182. package/dist/platform/email-gateways.d.ts +165 -0
  183. package/dist/platform/email-gateways.js +78 -0
  184. package/dist/platform/geo.d.ts +123 -0
  185. package/dist/platform/geo.js +144 -0
  186. package/dist/platform/tax.d.ts +162 -0
  187. package/dist/platform/tax.js +169 -0
  188. package/dist/pos/anomalies.d.ts +158 -0
  189. package/dist/pos/anomalies.js +64 -0
  190. package/dist/pos/assisted-selling.d.ts +79 -0
  191. package/dist/pos/assisted-selling.js +38 -0
  192. package/dist/pos/exchanges.d.ts +108 -0
  193. package/dist/pos/exchanges.js +22 -0
  194. package/dist/pos/gift-cards.d.ts +135 -0
  195. package/dist/pos/gift-cards.js +47 -0
  196. package/dist/pos/index.d.ts +2370 -58
  197. package/dist/pos/index.js +854 -7
  198. package/dist/pos/no-receipt.d.ts +94 -0
  199. package/dist/pos/no-receipt.js +25 -0
  200. package/dist/pos/offline-sales.d.ts +228 -0
  201. package/dist/pos/offline-sales.js +170 -0
  202. package/dist/pos/pay-by-link.d.ts +143 -0
  203. package/dist/pos/pay-by-link.js +57 -0
  204. package/dist/pos/quick-keys.d.ts +103 -0
  205. package/dist/pos/quick-keys.js +45 -0
  206. package/dist/pos/reports.d.ts +360 -0
  207. package/dist/pos/reports.js +62 -0
  208. package/dist/pos/returns.d.ts +244 -0
  209. package/dist/pos/returns.js +83 -0
  210. package/dist/pricing/bulk-coupons.d.ts +139 -0
  211. package/dist/pricing/bulk-coupons.js +112 -0
  212. package/dist/pricing/index.d.ts +174 -4
  213. package/dist/pricing/index.js +174 -1
  214. package/dist/pricing/price-lists.d.ts +606 -0
  215. package/dist/pricing/price-lists.js +600 -0
  216. package/dist/purchasing/alerts.d.ts +104 -0
  217. package/dist/purchasing/alerts.js +88 -0
  218. package/dist/purchasing/backorders.d.ts +61 -0
  219. package/dist/purchasing/backorders.js +92 -0
  220. package/dist/purchasing/cost.d.ts +110 -0
  221. package/dist/purchasing/cost.js +86 -0
  222. package/dist/purchasing/index.d.ts +54 -0
  223. package/dist/purchasing/index.js +24 -0
  224. package/dist/purchasing/links.d.ts +263 -0
  225. package/dist/purchasing/links.js +192 -0
  226. package/dist/purchasing/purchase-orders.d.ts +551 -0
  227. package/dist/purchasing/purchase-orders.js +491 -0
  228. package/dist/purchasing/receipts.d.ts +396 -0
  229. package/dist/purchasing/receipts.js +287 -0
  230. package/dist/purchasing/replenishment.d.ts +281 -0
  231. package/dist/purchasing/replenishment.js +240 -0
  232. package/dist/purchasing/returns.d.ts +273 -0
  233. package/dist/purchasing/returns.js +229 -0
  234. package/dist/purchasing/settings.d.ts +152 -0
  235. package/dist/purchasing/settings.js +181 -0
  236. package/dist/purchasing/suppliers.d.ts +476 -0
  237. package/dist/purchasing/suppliers.js +438 -0
  238. package/dist/quotes/index.d.ts +518 -0
  239. package/dist/quotes/index.js +439 -0
  240. package/dist/reports/index.d.ts +71 -8
  241. package/dist/reports/index.js +74 -11
  242. package/dist/returns/index.d.ts +675 -21
  243. package/dist/returns/index.js +756 -11
  244. package/dist/search/index.d.ts +76 -1
  245. package/dist/search/index.js +63 -0
  246. package/dist/seo/config.d.ts +128 -0
  247. package/dist/seo/config.js +95 -0
  248. package/dist/seo/redirects.d.ts +125 -0
  249. package/dist/seo/redirects.js +60 -1
  250. package/dist/seo/settings.d.ts +147 -0
  251. package/dist/seo/settings.js +209 -0
  252. package/dist/shipping/definitions.d.ts +29 -0
  253. package/dist/shipping/definitions.js +47 -0
  254. package/dist/shipping/fulfillment-profiles.d.ts +174 -0
  255. package/dist/shipping/fulfillment-profiles.js +104 -0
  256. package/dist/shipping/hendriks.d.ts +97 -0
  257. package/dist/shipping/hendriks.js +50 -0
  258. package/dist/shipping/index.d.ts +54 -0
  259. package/dist/shipping/index.js +27 -0
  260. package/dist/shipping/methods.d.ts +205 -0
  261. package/dist/shipping/methods.js +240 -0
  262. package/dist/shipping/myparcel.d.ts +668 -0
  263. package/dist/shipping/myparcel.js +466 -0
  264. package/dist/shipping/parcel-count-suggestion.d.ts +2 -0
  265. package/dist/shipping/parcel-rule.d.ts +6 -5
  266. package/dist/shipping/parcel-rule.js +21 -23
  267. package/dist/shipping/rate-tables.d.ts +324 -0
  268. package/dist/shipping/rate-tables.js +390 -0
  269. package/dist/shipping/ship-to-countries.d.ts +75 -0
  270. package/dist/shipping/ship-to-countries.js +47 -0
  271. package/dist/stock/by-location.d.ts +86 -0
  272. package/dist/stock/by-location.js +94 -0
  273. package/dist/stock/index.d.ts +18 -4
  274. package/dist/stock/index.js +7 -0
  275. package/dist/stock/locations.d.ts +144 -0
  276. package/dist/stock/locations.js +168 -0
  277. package/dist/stock/settings.d.ts +106 -0
  278. package/dist/stock/settings.js +103 -0
  279. package/dist/stock/transfers.d.ts +386 -52
  280. package/dist/stock/transfers.js +222 -17
  281. package/dist/stored-value/index.d.ts +312 -11
  282. package/dist/stored-value/index.js +223 -4
  283. package/dist/subscriptions/index.d.ts +682 -0
  284. package/dist/subscriptions/index.js +815 -0
  285. package/dist/tax/display-policy.d.ts +105 -0
  286. package/dist/tax/display-policy.js +84 -0
  287. package/dist/tax/index.d.ts +79 -1
  288. package/dist/tax/index.js +52 -0
  289. package/dist/tenant/email-style.d.ts +102 -0
  290. package/dist/tenant/email-style.js +72 -0
  291. package/dist/tenant/email-templates.d.ts +287 -0
  292. package/dist/tenant/email-templates.js +271 -0
  293. package/dist/tenant/notifications.d.ts +23 -17
  294. package/dist/tenant/settings-sources.d.ts +1 -1
  295. package/dist/tenant/time-zone.d.ts +17 -0
  296. package/dist/tenant/time-zone.js +11 -0
  297. package/dist/types.d.ts +50 -3
  298. package/dist/users/index.d.ts +3 -0
  299. package/dist/users/index.js +2 -0
  300. package/dist/users/warehouses.d.ts +50 -0
  301. package/dist/users/warehouses.js +51 -0
  302. package/package.json +2 -2
@@ -0,0 +1,104 @@
1
+ import type { Transport } from '@sixtyninecommerce/core';
2
+ import type { Call } from '../types.js';
3
+ /**
4
+ * A purchasing staff alert (purchase-orders spec §8.14), named as its email under Management →
5
+ * Notifications. A string on the wire: more alerts may come (a provider push failing, phase 6).
6
+ */
7
+ export type PurchasingAlert = 'purchase_order_approval_requested' | 'purchase_order_lines_overdue' | 'reorder_suggestions_digest' | (string & {});
8
+ /**
9
+ * What needs attention in the active store's purchasing, counted over its legal entity: the
10
+ * dashboard's nav badges and Overview cards.
11
+ */
12
+ export interface PurchasingAlertSummary {
13
+ /** `YYYY-MM-DD` in the legal entity's time zone: the day overdue lines are judged against. */
14
+ localDay: string;
15
+ /**
16
+ * Purchase orders waiting for an approver: submitted above the approval threshold, or sent with
17
+ * a revision above it.
18
+ */
19
+ awaitingApproval: number;
20
+ /**
21
+ * Lines of sent purchase orders with something still to come whose expected day (the supplier's
22
+ * confirmed day, else the requested one) is before `localDay`.
23
+ */
24
+ overdueLines: number;
25
+ /** Sent purchase orders with at least one overdue line. */
26
+ overdueOrders: number;
27
+ /** Purchase orders awaiting approval or with an overdue line, each counted once. */
28
+ attentionOrders: number;
29
+ /** Reorder suggestions of the last compute that are listed (not dismissed). */
30
+ reorderSuggestions: number;
31
+ /** Of those, the ones the last compute found new (not suggested before, or grown). */
32
+ newReorderSuggestions: number;
33
+ /**
34
+ * The ACTIVE store's backordered order lines that stock on hand can ship now (its own orders,
35
+ * never another store's of the legal entity): `backorders.ready()`'s total. Purchase-orders
36
+ * step 3.6; `null` from an engine before it (the SDK asks again without the two counts).
37
+ */
38
+ backordersReadyLines: number | null;
39
+ /** The orders holding those lines, each counted once; `null` as `backordersReadyLines`. */
40
+ backordersReadyOrders: number | null;
41
+ }
42
+ /** Who one purchasing alert email goes to. */
43
+ export interface PurchasingAlertRecipients {
44
+ alert: PurchasingAlert;
45
+ /**
46
+ * The permission whose holders get the alert when no addresses are set:
47
+ * `ApprovePurchaseOrder`, `ReceivePurchaseOrder` (`UpdatePurchaseOrder` on an engine before
48
+ * purchase-orders step 3.6) or `CreatePurchaseOrder`.
49
+ */
50
+ permission: string;
51
+ /** The addresses set for this alert; empty when it goes to the permission's holders. */
52
+ emails: string[];
53
+ /**
54
+ * Who the alert goes to now: the addresses set, else the administrators of the legal entity's
55
+ * stores holding the permission (never a platform administrator or an API credential).
56
+ */
57
+ recipients: string[];
58
+ }
59
+ /** One alert's addresses: up to 20; an empty list sends it to the permission's holders again. */
60
+ export interface PurchasingAlertRecipientsInput {
61
+ alert: PurchasingAlert;
62
+ emails: string[];
63
+ }
64
+ export declare const PURCHASING_ALERT_SUMMARY_FIELDS = "\n \n localDay\n awaitingApproval\n overdueLines\n overdueOrders\n attentionOrders\n reorderSuggestions\n newReorderSuggestions\n\n backordersReadyLines\n backordersReadyOrders\n";
65
+ export declare const PURCHASING_ALERT_RECIPIENTS_FIELDS = "\n alert\n permission\n emails\n recipients\n";
66
+ export declare const PURCHASING_ALERTS_QUERY = "\n query PurchasingAlerts {\n purchasingAlerts { \n \n localDay\n awaitingApproval\n overdueLines\n overdueOrders\n attentionOrders\n reorderSuggestions\n newReorderSuggestions\n\n backordersReadyLines\n backordersReadyOrders\n }\n }\n";
67
+ /**
68
+ * The summary without the backorder counts, for an engine before purchase-orders step 3.6: the SDK
69
+ * retries once with it when the engine refuses the fields, and answers the two counts null.
70
+ */
71
+ export declare const LEGACY_PURCHASING_ALERTS_QUERY = "\n query PurchasingAlertsLegacy {\n purchasingAlerts { \n localDay\n awaitingApproval\n overdueLines\n overdueOrders\n attentionOrders\n reorderSuggestions\n newReorderSuggestions\n }\n }\n";
72
+ export declare const PURCHASING_ALERT_RECIPIENTS_QUERY = "\n query PurchasingAlertRecipients {\n purchasingAlertRecipients { \n alert\n permission\n emails\n recipients\n }\n }\n";
73
+ export declare const UPDATE_PURCHASING_ALERT_RECIPIENTS_MUTATION = "\n mutation UpdatePurchasingAlertRecipients(\n $input: [PurchasingAlertRecipientsInput!]!\n $idempotencyKey: String\n ) {\n updatePurchasingAlertRecipients(input: $input, idempotencyKey: $idempotencyKey) {\n \n alert\n permission\n emails\n recipients\n\n }\n }\n";
74
+ export interface PurchasingAlertRecipientsModule {
75
+ /**
76
+ * Who each alert goes to, in a fixed order (approval requests, overdue lines, reorder digest).
77
+ * Needs `ManagePurchasingSettings`.
78
+ */
79
+ list(call?: Call): Promise<PurchasingAlertRecipients[]>;
80
+ /**
81
+ * Sets who the named alerts go to; an alert not named keeps its own, and an empty `emails`
82
+ * sends it to the permission's holders again. Answers every alert, as `list` does. Needs
83
+ * `ManagePurchasingSettings` on EVERY store of the legal entity (`SHARED_SELLER_NOT_ALLOWED`,
84
+ * 403). Refusals: `PURCHASING_SETTINGS_INVALID` (400: an unknown alert, an alert named twice, an
85
+ * address that is not one, more than 20 addresses).
86
+ */
87
+ update(input: PurchasingAlertRecipientsInput[], call?: Call): Promise<PurchasingAlertRecipients[]>;
88
+ }
89
+ /**
90
+ * `admin.purchasing.alerts` (purchase-orders spec §8.14): what needs attention in the legal
91
+ * entity's purchasing, and who its alert emails go to. Every method needs the Purchasing plugin
92
+ * (`PURCHASING_NOT_ENABLED`, 422) and a store that purchases (`HUB_HAS_NO_PURCHASING`,
93
+ * `LEGAL_ENTITY_REQUIRED`, 422).
94
+ */
95
+ export interface PurchasingAlertsModule {
96
+ /**
97
+ * The counts behind the nav badges and the Overview cards. Needs `ReadPurchaseOrder`. `null`
98
+ * while purchasing is not switched on for the store's legal entity. Against an engine before
99
+ * purchase-orders step 3.6 the backorder counts answer `null` and the rest as ever.
100
+ */
101
+ summary(call?: Call): Promise<PurchasingAlertSummary | null>;
102
+ recipients: PurchasingAlertRecipientsModule;
103
+ }
104
+ export declare function createPurchasingAlertsModule(transport: Transport): PurchasingAlertsModule;
@@ -0,0 +1,88 @@
1
+ import { isUnknownFieldRejection } from '../payments/store-credit-fields.js';
2
+ /** The summary's counts an engine before purchase-orders step 3.6 answers. */
3
+ const STEP_4_3_SUMMARY_FIELDS = /* GraphQL */ `
4
+ localDay
5
+ awaitingApproval
6
+ overdueLines
7
+ overdueOrders
8
+ attentionOrders
9
+ reorderSuggestions
10
+ newReorderSuggestions
11
+ `;
12
+ export const PURCHASING_ALERT_SUMMARY_FIELDS = /* GraphQL */ `
13
+ ${STEP_4_3_SUMMARY_FIELDS}
14
+ backordersReadyLines
15
+ backordersReadyOrders
16
+ `;
17
+ export const PURCHASING_ALERT_RECIPIENTS_FIELDS = /* GraphQL */ `
18
+ alert
19
+ permission
20
+ emails
21
+ recipients
22
+ `;
23
+ export const PURCHASING_ALERTS_QUERY = /* GraphQL */ `
24
+ query PurchasingAlerts {
25
+ purchasingAlerts { ${PURCHASING_ALERT_SUMMARY_FIELDS} }
26
+ }
27
+ `;
28
+ /**
29
+ * The summary without the backorder counts, for an engine before purchase-orders step 3.6: the SDK
30
+ * retries once with it when the engine refuses the fields, and answers the two counts null.
31
+ */
32
+ export const LEGACY_PURCHASING_ALERTS_QUERY = /* GraphQL */ `
33
+ query PurchasingAlertsLegacy {
34
+ purchasingAlerts { ${STEP_4_3_SUMMARY_FIELDS} }
35
+ }
36
+ `;
37
+ export const PURCHASING_ALERT_RECIPIENTS_QUERY = /* GraphQL */ `
38
+ query PurchasingAlertRecipients {
39
+ purchasingAlertRecipients { ${PURCHASING_ALERT_RECIPIENTS_FIELDS} }
40
+ }
41
+ `;
42
+ export const UPDATE_PURCHASING_ALERT_RECIPIENTS_MUTATION = /* GraphQL */ `
43
+ mutation UpdatePurchasingAlertRecipients(
44
+ $input: [PurchasingAlertRecipientsInput!]!
45
+ $idempotencyKey: String
46
+ ) {
47
+ updatePurchasingAlertRecipients(input: $input, idempotencyKey: $idempotencyKey) {
48
+ ${PURCHASING_ALERT_RECIPIENTS_FIELDS}
49
+ }
50
+ }
51
+ `;
52
+ export function createPurchasingAlertsModule(transport) {
53
+ return {
54
+ async summary(call) {
55
+ try {
56
+ const data = await transport.graphql({ api: 'admin', query: PURCHASING_ALERTS_QUERY }, call);
57
+ return data.purchasingAlerts ?? null;
58
+ }
59
+ catch (error) {
60
+ if (!isUnknownFieldRejection(error))
61
+ throw error;
62
+ const data = await transport.graphql({ api: 'admin', query: LEGACY_PURCHASING_ALERTS_QUERY }, call);
63
+ return data.purchasingAlerts === null
64
+ ? null
65
+ : { ...data.purchasingAlerts, backordersReadyLines: null, backordersReadyOrders: null };
66
+ }
67
+ },
68
+ recipients: {
69
+ async list(call) {
70
+ const data = await transport.graphql({ api: 'admin', query: PURCHASING_ALERT_RECIPIENTS_QUERY }, call);
71
+ return data.purchasingAlertRecipients;
72
+ },
73
+ async update(input, call) {
74
+ const data = await transport.graphql({
75
+ api: 'admin',
76
+ query: UPDATE_PURCHASING_ALERT_RECIPIENTS_MUTATION,
77
+ variables: {
78
+ // Only the input's own fields: a caller spreading what `list` answered sends no
79
+ // `permission` or `recipients`, which the engine's input does not declare.
80
+ input: input.map(({ alert, emails }) => ({ alert, emails: [...emails] })),
81
+ idempotencyKey: call?.idempotencyKey,
82
+ },
83
+ }, call);
84
+ return data.updatePurchasingAlertRecipients;
85
+ },
86
+ },
87
+ };
88
+ }
@@ -0,0 +1,61 @@
1
+ import { type Page, type Transport } from '@sixtyninecommerce/core';
2
+ import type { ListOptions } from '../types.js';
3
+ /**
4
+ * An open backordered order line of the active store that stock on hand can ship now
5
+ * (purchase-orders spec §8.11): the store's free on-hand of the variant shared out over its open
6
+ * backorders, oldest order first.
7
+ */
8
+ export interface BackorderReadyLine {
9
+ orderId: string;
10
+ orderCode: string;
11
+ /** The order's state; a parked or approval-waiting order keeps its turn too. */
12
+ orderState: string;
13
+ /** ISO-8601 UTC; null for an order never placed. */
14
+ orderPlacedAt: string | null;
15
+ orderLineId: string;
16
+ productVariantId: string;
17
+ sku: string;
18
+ /** The variant's name in the request's language. */
19
+ name: string;
20
+ /** The line's quantity. */
21
+ quantity: number;
22
+ /** Its backordered units not yet in a fulfilment. */
23
+ backorderedQuantity: number;
24
+ /** Of those, what stock on hand covers now (at least 1). */
25
+ readyQuantity: number;
26
+ /** The variant's on-hand, summed over the store's stock locations. */
27
+ stockOnHand: number;
28
+ /**
29
+ * True when the line was ordered from a supplier for this customer (a back-to-back link) and
30
+ * the supplier side cancelled it: it is an ordinary backorder again ("Supplier cancelled").
31
+ */
32
+ supplierCancelled: boolean;
33
+ }
34
+ export interface BackordersReadyOptions extends ListOptions {
35
+ /** Only the variants this goods receipt (of the store's legal entity) brought in. */
36
+ goodsReceiptId?: string;
37
+ }
38
+ export declare const BACKORDER_READY_LINE_FIELDS = "\n orderId\n orderCode\n orderState\n orderPlacedAt\n orderLineId\n productVariantId\n sku\n name\n quantity\n backorderedQuantity\n readyQuantity\n stockOnHand\n supplierCancelled\n";
39
+ export declare const BACKORDERS_READY_QUERY = "\n query BackordersReadyToShip($options: BackordersReadyOptions) {\n backordersReadyToShip(options: $options) {\n items { \n orderId\n orderCode\n orderState\n orderPlacedAt\n orderLineId\n productVariantId\n sku\n name\n quantity\n backorderedQuantity\n readyQuantity\n stockOnHand\n supplierCancelled\n }\n totalItems\n }\n }\n";
40
+ /**
41
+ * The list without `supplierCancelled`, for an engine before purchase-orders step 5.1: the SDK
42
+ * retries once with it when the engine refuses the field, and answers it `false` (that engine has
43
+ * no order links, so no supplier cancelled one).
44
+ */
45
+ export declare const LEGACY_BACKORDERS_READY_QUERY = "\n query BackordersReadyToShipLegacy($options: BackordersReadyOptions) {\n backordersReadyToShip(options: $options) {\n items { \n orderId\n orderCode\n orderState\n orderPlacedAt\n orderLineId\n productVariantId\n sku\n name\n quantity\n backorderedQuantity\n readyQuantity\n stockOnHand\n }\n totalItems\n }\n }\n";
46
+ /**
47
+ * `admin.purchasing.backorders` (purchase-orders spec §8.11, §8.14): what a goods receipt let the
48
+ * store ship. A read only: nothing is allocated. Needs the Purchasing plugin on the store and
49
+ * purchasing switched on for its legal entity (`PURCHASING_NOT_ENABLED`, 422), a store that
50
+ * purchases (`HUB_HAS_NO_PURCHASING`, `LEGAL_ENTITY_REQUIRED`), and `ReadOrder`.
51
+ */
52
+ export interface PurchasingBackordersModule {
53
+ /**
54
+ * The active store's open backordered order lines that stock on hand can ship now, oldest order
55
+ * first (pages of at most 100). `goodsReceiptId` narrows them to the variants that receipt
56
+ * brought in. Refusals: `GOODS_RECEIPT_NOT_FOUND` (404, a receipt of another legal entity too),
57
+ * `GOODS_RECEIPT_INVALID` (400, a page out of range).
58
+ */
59
+ ready(options?: BackordersReadyOptions): Promise<Page<BackorderReadyLine>>;
60
+ }
61
+ export declare function createPurchasingBackordersModule(transport: Transport): PurchasingBackordersModule;
@@ -0,0 +1,92 @@
1
+ import { pageFromVendureList, readOffsetCursor, } from '@sixtyninecommerce/core';
2
+ import { isUnknownFieldRejection } from '../payments/store-credit-fields.js';
3
+ /** The line's fields an engine before purchase-orders step 5.1 serves. */
4
+ const STEP_3_6_LINE_FIELDS = /* GraphQL */ `
5
+ orderId
6
+ orderCode
7
+ orderState
8
+ orderPlacedAt
9
+ orderLineId
10
+ productVariantId
11
+ sku
12
+ name
13
+ quantity
14
+ backorderedQuantity
15
+ readyQuantity
16
+ stockOnHand
17
+ `;
18
+ export const BACKORDER_READY_LINE_FIELDS = /* GraphQL */ `
19
+ orderId
20
+ orderCode
21
+ orderState
22
+ orderPlacedAt
23
+ orderLineId
24
+ productVariantId
25
+ sku
26
+ name
27
+ quantity
28
+ backorderedQuantity
29
+ readyQuantity
30
+ stockOnHand
31
+ supplierCancelled
32
+ `;
33
+ export const BACKORDERS_READY_QUERY = /* GraphQL */ `
34
+ query BackordersReadyToShip($options: BackordersReadyOptions) {
35
+ backordersReadyToShip(options: $options) {
36
+ items { ${BACKORDER_READY_LINE_FIELDS} }
37
+ totalItems
38
+ }
39
+ }
40
+ `;
41
+ /**
42
+ * The list without `supplierCancelled`, for an engine before purchase-orders step 5.1: the SDK
43
+ * retries once with it when the engine refuses the field, and answers it `false` (that engine has
44
+ * no order links, so no supplier cancelled one).
45
+ */
46
+ export const LEGACY_BACKORDERS_READY_QUERY = /* GraphQL */ `
47
+ query BackordersReadyToShipLegacy($options: BackordersReadyOptions) {
48
+ backordersReadyToShip(options: $options) {
49
+ items { ${STEP_3_6_LINE_FIELDS} }
50
+ totalItems
51
+ }
52
+ }
53
+ `;
54
+ const DEFAULT_PAGE_SIZE = 25;
55
+ export function createPurchasingBackordersModule(transport) {
56
+ const readyPage = async (skip, take, options) => {
57
+ const variables = {
58
+ options: {
59
+ skip,
60
+ take,
61
+ ...(options?.goodsReceiptId === undefined
62
+ ? {}
63
+ : { goodsReceiptId: options.goodsReceiptId }),
64
+ },
65
+ };
66
+ let list;
67
+ try {
68
+ const data = await transport.graphql({ api: 'admin', query: BACKORDERS_READY_QUERY, variables }, options);
69
+ list = data.backordersReadyToShip;
70
+ }
71
+ catch (error) {
72
+ if (!isUnknownFieldRejection(error))
73
+ throw error;
74
+ const data = await transport.graphql({ api: 'admin', query: LEGACY_BACKORDERS_READY_QUERY, variables }, options);
75
+ list = {
76
+ items: data.backordersReadyToShip.items.map((line) => ({
77
+ ...line,
78
+ supplierCancelled: false,
79
+ })),
80
+ totalItems: data.backordersReadyToShip.totalItems,
81
+ };
82
+ }
83
+ return pageFromVendureList(list, skip, take, (cursor) => readyPage(readOffsetCursor(cursor), take, options));
84
+ };
85
+ return {
86
+ async ready(options) {
87
+ const take = options?.limit ?? DEFAULT_PAGE_SIZE;
88
+ const skip = options?.after === undefined ? 0 : readOffsetCursor(options.after);
89
+ return readyPage(skip, take, options);
90
+ },
91
+ };
92
+ }
@@ -0,0 +1,110 @@
1
+ import type { Transport } from '@sixtyninecommerce/core';
2
+ import type { Call } from '../types.js';
3
+ /**
4
+ * A variant's unit cost in the active store's PURCHASING SCOPE (purchase-orders spec §8.10,
5
+ * §10.1 `cost`): its legal entity, shared by every store of that entity, or a sandbox store's own
6
+ * scope. The weighted average of what the scope received, in minor units of the scope's
7
+ * purchasing currency.
8
+ */
9
+ export interface VariantCost {
10
+ productVariantId: string;
11
+ /** The legal entity's id, or `sandbox:<channelId>` for a sandbox store. */
12
+ scopeId: string;
13
+ /** The legal entity (Seller) id; null for a sandbox store's own scope. */
14
+ legalEntityId: string | null;
15
+ /** ISO 4217: the scope's purchasing currency the cost is in. */
16
+ currencyCode: string;
17
+ /**
18
+ * The average as stored: a decimal string of minor units with six decimals (`"1249.500000"`),
19
+ * never rounded. Parse it with a decimal library, not `Number`, when the decimals matter.
20
+ */
21
+ averageUnitCost: string;
22
+ /** The average rounded half up to whole minor units (what the variant's cost field mirrors). */
23
+ unitCost: number;
24
+ /** `average` (receipts, seeding), `manual` (an override), `provider` (an ERP's cost). */
25
+ method: 'average' | 'manual' | 'provider' | (string & {});
26
+ /** The scope's on-hand quantity the last change averaged over. */
27
+ onHandAtLastEntry: number;
28
+ /** ISO-8601 UTC. */
29
+ updatedAt: string;
30
+ }
31
+ /** What changed a variant's cost. A string on the wire: more values may come. */
32
+ export type VariantCostCause = 'receipt' | 'reversal' | 'landed_charge' | 'supplier_return' | 'manual' | 'provider_sync' | 'seed' | (string & {});
33
+ /** One change in a variant's cost ledger. Amounts are decimal strings of minor units. */
34
+ export interface VariantCostEntry {
35
+ id: string;
36
+ productVariantId: string;
37
+ scopeId: string;
38
+ cause: VariantCostCause;
39
+ currencyCode: string;
40
+ /** Base units the change moved: positive for a receipt, negative for a reversal or return. */
41
+ deltaQuantity: number;
42
+ /** The scope's on-hand quantity the change averaged over. */
43
+ onHandBefore: number;
44
+ /** The per-unit cost the change brought in or took out; null for a landed charge. */
45
+ unitCost: string | null;
46
+ /** A landed charge's amount for this variant; null otherwise. */
47
+ chargeAmount: string | null;
48
+ /** The part of a landed charge that went to units already sold, outside the average. */
49
+ unabsorbedAmount: string | null;
50
+ /** The average before the change; null when the scope had no cost yet. */
51
+ averageBefore: string | null;
52
+ resultingAverage: string;
53
+ /** Whether the variant's cost field was set to the rounded result. */
54
+ mirrorWritten: boolean;
55
+ /** The document the change belongs to, such as a goods receipt number. */
56
+ referenceDocumentRef: string | null;
57
+ /** Why a manual override changed the cost. */
58
+ reason: string | null;
59
+ actorRef: string | null;
60
+ /** ISO-8601 UTC. */
61
+ createdAt: string;
62
+ }
63
+ export interface VariantCostEntryList {
64
+ items: VariantCostEntry[];
65
+ totalItems: number;
66
+ }
67
+ /** A page of the ledger, newest first. */
68
+ export interface VariantCostHistoryOptions {
69
+ /** 0 or more. Default 0. */
70
+ skip?: number;
71
+ /** 1 to 100. Default 25. */
72
+ take?: number;
73
+ }
74
+ export interface OverrideVariantCostInput {
75
+ variantId: string;
76
+ /**
77
+ * The new unit cost in minor units of the scope's purchasing currency: a non-negative decimal
78
+ * string of at most 6 decimals, no more than 2147483647 (`"1250"`, `"1249.5"`), or a whole
79
+ * number of minor units.
80
+ */
81
+ unitCost: string | number;
82
+ /** Why the cost changes: 1 to 255 characters, kept in the ledger. */
83
+ reason: string;
84
+ }
85
+ export declare const VARIANT_COST_FIELDS = "\n productVariantId\n scopeId\n legalEntityId\n currencyCode\n averageUnitCost\n unitCost\n method\n onHandAtLastEntry\n updatedAt\n";
86
+ export declare const VARIANT_COST_ENTRY_FIELDS = "\n id\n productVariantId\n scopeId\n cause\n currencyCode\n deltaQuantity\n onHandBefore\n unitCost\n chargeAmount\n unabsorbedAmount\n averageBefore\n resultingAverage\n mirrorWritten\n referenceDocumentRef\n reason\n actorRef\n createdAt\n";
87
+ export declare const VARIANT_COST_QUERY = "\n query VariantCost($variantId: ID!) {\n variantCost(variantId: $variantId) { \n productVariantId\n scopeId\n legalEntityId\n currencyCode\n averageUnitCost\n unitCost\n method\n onHandAtLastEntry\n updatedAt\n }\n }\n";
88
+ export declare const VARIANT_COST_HISTORY_QUERY = "\n query VariantCostHistory($variantId: ID!, $options: VariantCostHistoryOptions) {\n variantCostHistory(variantId: $variantId, options: $options) {\n items { \n id\n productVariantId\n scopeId\n cause\n currencyCode\n deltaQuantity\n onHandBefore\n unitCost\n chargeAmount\n unabsorbedAmount\n averageBefore\n resultingAverage\n mirrorWritten\n referenceDocumentRef\n reason\n actorRef\n createdAt\n }\n totalItems\n }\n }\n";
89
+ export declare const OVERRIDE_VARIANT_COST_MUTATION = "\n mutation OverrideVariantCost($input: OverrideVariantCostInput!, $idempotencyKey: String) {\n overrideVariantCost(input: $input, idempotencyKey: $idempotencyKey) {\n \n productVariantId\n scopeId\n legalEntityId\n currencyCode\n averageUnitCost\n unitCost\n method\n onHandAtLastEntry\n updatedAt\n\n }\n }\n";
90
+ /**
91
+ * `admin.purchasing.cost` (spec §10.1). Every method needs the Purchasing plugin on the store and
92
+ * purchasing switched on for its legal entity (`PURCHASING_NOT_ENABLED`, 422; `PLUGIN_ACCESS_DENIED`,
93
+ * 403, for an ordinary caller), and a store that purchases (`HUB_HAS_NO_PURCHASING`,
94
+ * `LEGAL_ENTITY_REQUIRED`). A variant not in the store is `PURCHASING_VARIANT_NOT_FOUND` (404).
95
+ * Reads need `ReadCatalog`, `ReadProduct` or `ManageInventoryCost`.
96
+ */
97
+ export interface PurchasingCostModule {
98
+ /** The variant's cost in the scope; null while the scope has none (its cost field answers). */
99
+ get(variantId: string, call?: Call): Promise<VariantCost | null>;
100
+ /** The variant's cost ledger, newest first. Refusals: `VARIANT_COST_INVALID` (400) for a page. */
101
+ history(variantId: string, options?: VariantCostHistoryOptions, call?: Call): Promise<VariantCostEntryList>;
102
+ /**
103
+ * Sets the variant's cost in the scope, with a reason (cause `manual`); averaging continues
104
+ * from it, and the variant's cost field follows when one legal entity alone holds it. Needs
105
+ * `ManageInventoryCost` on EVERY store of the legal entity (`SHARED_SELLER_NOT_ALLOWED`, 403).
106
+ * Refusals: `VARIANT_COST_INVALID` (400) for the amount or the reason.
107
+ */
108
+ override(input: OverrideVariantCostInput, call?: Call): Promise<VariantCost>;
109
+ }
110
+ export declare function createPurchasingCostModule(transport: Transport): PurchasingCostModule;
@@ -0,0 +1,86 @@
1
+ export const VARIANT_COST_FIELDS = /* GraphQL */ `
2
+ productVariantId
3
+ scopeId
4
+ legalEntityId
5
+ currencyCode
6
+ averageUnitCost
7
+ unitCost
8
+ method
9
+ onHandAtLastEntry
10
+ updatedAt
11
+ `;
12
+ export const VARIANT_COST_ENTRY_FIELDS = /* GraphQL */ `
13
+ id
14
+ productVariantId
15
+ scopeId
16
+ cause
17
+ currencyCode
18
+ deltaQuantity
19
+ onHandBefore
20
+ unitCost
21
+ chargeAmount
22
+ unabsorbedAmount
23
+ averageBefore
24
+ resultingAverage
25
+ mirrorWritten
26
+ referenceDocumentRef
27
+ reason
28
+ actorRef
29
+ createdAt
30
+ `;
31
+ export const VARIANT_COST_QUERY = /* GraphQL */ `
32
+ query VariantCost($variantId: ID!) {
33
+ variantCost(variantId: $variantId) { ${VARIANT_COST_FIELDS} }
34
+ }
35
+ `;
36
+ export const VARIANT_COST_HISTORY_QUERY = /* GraphQL */ `
37
+ query VariantCostHistory($variantId: ID!, $options: VariantCostHistoryOptions) {
38
+ variantCostHistory(variantId: $variantId, options: $options) {
39
+ items { ${VARIANT_COST_ENTRY_FIELDS} }
40
+ totalItems
41
+ }
42
+ }
43
+ `;
44
+ export const OVERRIDE_VARIANT_COST_MUTATION = /* GraphQL */ `
45
+ mutation OverrideVariantCost($input: OverrideVariantCostInput!, $idempotencyKey: String) {
46
+ overrideVariantCost(input: $input, idempotencyKey: $idempotencyKey) {
47
+ ${VARIANT_COST_FIELDS}
48
+ }
49
+ }
50
+ `;
51
+ export function createPurchasingCostModule(transport) {
52
+ return {
53
+ async get(variantId, call) {
54
+ const data = await transport.graphql({ api: 'admin', query: VARIANT_COST_QUERY, variables: { variantId } }, call);
55
+ return data.variantCost;
56
+ },
57
+ async history(variantId, options, call) {
58
+ const page = {};
59
+ if (options?.skip !== undefined)
60
+ page.skip = options.skip;
61
+ if (options?.take !== undefined)
62
+ page.take = options.take;
63
+ const data = await transport.graphql({
64
+ api: 'admin',
65
+ query: VARIANT_COST_HISTORY_QUERY,
66
+ variables: { variantId, ...(Object.keys(page).length > 0 ? { options: page } : {}) },
67
+ }, call);
68
+ return data.variantCostHistory;
69
+ },
70
+ async override(input, call) {
71
+ const data = await transport.graphql({
72
+ api: 'admin',
73
+ query: OVERRIDE_VARIANT_COST_MUTATION,
74
+ variables: {
75
+ input: {
76
+ variantId: input.variantId,
77
+ unitCost: String(input.unitCost),
78
+ reason: input.reason,
79
+ },
80
+ idempotencyKey: call?.idempotencyKey,
81
+ },
82
+ }, call);
83
+ return data.overrideVariantCost;
84
+ },
85
+ };
86
+ }
@@ -0,0 +1,54 @@
1
+ import type { Transport } from '@sixtyninecommerce/core';
2
+ import { type PurchasingAlertsModule } from './alerts.js';
3
+ import { type PurchasingBackordersModule } from './backorders.js';
4
+ import { type PurchasingCostModule } from './cost.js';
5
+ import { type PurchasingLinksModule } from './links.js';
6
+ import { type PurchasingPurchaseOrdersModule } from './purchase-orders.js';
7
+ import { type PurchasingReceiptsModule } from './receipts.js';
8
+ import { type PurchasingReplenishmentModule } from './replenishment.js';
9
+ import { type PurchasingReturnsModule } from './returns.js';
10
+ import { type PurchasingSettingsModule } from './settings.js';
11
+ import { type PurchasingSuppliersModule } from './suppliers.js';
12
+ export type { PurchasingAlert, PurchasingAlertRecipients, PurchasingAlertRecipientsInput, PurchasingAlertRecipientsModule, PurchasingAlertSummary, PurchasingAlertsModule, } from './alerts.js';
13
+ export type { BackorderReadyLine, BackordersReadyOptions, PurchasingBackordersModule, } from './backorders.js';
14
+ export type { OverrideVariantCostInput, PurchasingCostModule, VariantCost, VariantCostCause, VariantCostEntry, VariantCostEntryList, VariantCostHistoryOptions, } from './cost.js';
15
+ export type { BackToBackLinkQuantities, BackToBackLinkResult, CreateBackToBackLinkInput, DropShipShipmentFulfillment, DropShipShipmentResult, PurchaseOrderDropShip, PurchaseOrderDropShipLine, PurchaseOrderLink, PurchaseOrderLinkKind, PurchaseOrderLinkReleaseReason, PurchaseOrderLinkStatus, PurchasingBackToBackLinksModule, PurchasingDropShipLinksModule, PurchasingLinksModule, RecordDropShipShipmentInput, } from './links.js';
16
+ export type { CreatePurchaseOrderInput, PurchaseOrder, PurchaseOrderCancelOptions, PurchaseOrderConfirmation, PurchaseOrderConfirmationInput, PurchaseOrderDocumentOptions, PurchaseOrderDocumentUrl, PurchaseOrderHeaderFields, PurchaseOrderKeyedCall, PurchaseOrderLine, PurchaseOrderLineConfirmationInput, PurchaseOrderLineImportOptions, PurchaseOrderLineImportResult, PurchaseOrderLineImportRow, PurchaseOrderLineInput, PurchaseOrderLinesModule, PurchaseOrderListOptions, PurchaseOrderLocation, PurchaseOrderReasonOptions, PurchaseOrderRevision, PurchaseOrderRevisionInput, PurchaseOrderRevisionsModule, PurchaseOrderSendVia, PurchaseOrderStatus, PurchaseOrderStatusEntry, PurchaseOrderSupplier, PurchasingPurchaseOrdersModule, UpdatePurchaseOrderInput, UpdatePurchaseOrderLineInput, } from './purchase-orders.js';
17
+ export type { AddGoodsReceiptChargeInput, GoodsReceipt, GoodsReceiptChargesModule, GoodsReceiptDetail, GoodsReceiptKeyedCall, GoodsReceiptKind, GoodsReceiptLine, GoodsReceiptListOptions, GoodsReceiptReference, GoodsReceiptTraceability, GoodsReceiptTraceabilityInput, LandedCharge, LandedChargeAllocation, LandedChargeAllocationBasis, LandedChargeKind, PostGoodsReceiptInput, PostGoodsReceiptLineInput, PurchasingReceiptsModule, ReceivablePurchaseOrderLine, ReceivablePurchaseOrderLinesOptions, RemoveGoodsReceiptChargeInput, ReverseGoodsReceiptInput, } from './receipts.js';
18
+ export type { PurchasingReplenishmentModule, ReplenishmentComputeResult, ReplenishmentDraftLine, ReplenishmentDrafts, ReplenishmentLocation, ReplenishmentRule, ReplenishmentRuleFields, ReplenishmentRuleImportInput, ReplenishmentRuleImportResult, ReplenishmentRuleImportRow, ReplenishmentRuleListOptions, ReplenishmentRulesModule, ReplenishmentSuggestion, ReplenishmentSuggestionListOptions, ReplenishmentSuggestionsModule, ReplenishmentSupplier, ReplenishmentVariant, } from './replenishment.js';
19
+ export type { CreateSupplierReturnInput, PurchasingReturnsModule, ResolveSupplierReturnLineInput, ShipSupplierReturnInput, SupplierReturn, SupplierReturnCancelOptions, SupplierReturnDocumentUrl, SupplierReturnKeyedCall, SupplierReturnLine, SupplierReturnLineInput, SupplierReturnListOptions, SupplierReturnOrigin, SupplierReturnOutcome, SupplierReturnResolution, SupplierReturnStatus, SupplierReturnStatusEntry, UpdateSupplierReturnInput, } from './returns.js';
20
+ export type { PurchasingNumbering, PurchasingNumberingKind, PurchasingNumberingModule, PurchasingSettings, PurchasingSettingsModule, UpdatePurchasingNumberingInput, UpdatePurchasingSettingsInput, } from './settings.js';
21
+ export type { CreateSupplierContactInput, CreateSupplierInput, PurchasingSuppliersModule, Supplier, SupplierAddress, SupplierAddressInput, SupplierContact, SupplierContactFields, SupplierContactsModule, SupplierFields, SupplierItem, SupplierItemFields, SupplierItemImportResult, SupplierItemImportRowResult, SupplierItemListOptions, SupplierItemPrice, SupplierItemPriceInput, SupplierItemPricesModule, SupplierItemPricesOptions, SupplierItemRow, SupplierItemSupplier, SupplierItemsBulkUpsertInput, SupplierItemsModule, SupplierItemVariant, SupplierListOptions, SupplierPriceListImportInput, SupplierStatusOptions, UpdateSupplierContactInput, UpdateSupplierInput, } from './suppliers.js';
22
+ /**
23
+ * `admin.purchasing` (purchase-orders spec §10.1): buying stock from suppliers, per legal entity.
24
+ * `settings` (with its document `numbering`), `suppliers` (with their `contacts`),
25
+ * `purchaseOrders` (with their `lines`; the spec's `orders` submodule), `replenishment` (reorder
26
+ * `rules` and `suggestions`), `cost` (a variant's cost ledger), `alerts` (what needs attention,
27
+ * and who the alert emails go to), `receipts` (goods receipts and what can be received),
28
+ * `backorders` (the store's backordered order lines stock on hand can ship now),
29
+ * `returns` (goods sent back to suppliers) and `links` (customer order lines bought on purchase
30
+ * order lines: back-to-back links, phase 5).
31
+ */
32
+ export interface PurchasingModule {
33
+ /** The legal entity's purchasing settings and document numbering. */
34
+ settings: PurchasingSettingsModule;
35
+ /** The legal entity's suppliers, their contacts and their catalog (`items`). */
36
+ suppliers: PurchasingSuppliersModule;
37
+ /** The legal entity's purchase orders, their lines and lifecycle. */
38
+ purchaseOrders: PurchasingPurchaseOrdersModule;
39
+ /** The legal entity's reorder rules and its reorder suggestions. */
40
+ replenishment: PurchasingReplenishmentModule;
41
+ /** What needs attention in the legal entity's purchasing, and who its alert emails go to. */
42
+ alerts: PurchasingAlertsModule;
43
+ /** A variant's cost in the legal entity's ledger: read it, its history, and override it. */
44
+ cost: PurchasingCostModule;
45
+ /** Receiving goods against the legal entity's sent purchase orders, and its receipts. */
46
+ receipts: PurchasingReceiptsModule;
47
+ /** Returns of goods to the legal entity's suppliers: refused at a receipt, or from stock. */
48
+ returns: PurchasingReturnsModule;
49
+ /** The active store's backordered order lines that stock on hand can ship now. */
50
+ backorders: PurchasingBackordersModule;
51
+ /** Customer order lines bought on purchase order lines: "Order from supplier" and its reads. */
52
+ links: PurchasingLinksModule;
53
+ }
54
+ export declare function createPurchasingModule(transport: Transport): PurchasingModule;
@@ -0,0 +1,24 @@
1
+ import { createPurchasingAlertsModule } from './alerts.js';
2
+ import { createPurchasingBackordersModule } from './backorders.js';
3
+ import { createPurchasingCostModule } from './cost.js';
4
+ import { createPurchasingLinksModule } from './links.js';
5
+ import { createPurchasingPurchaseOrdersModule, } from './purchase-orders.js';
6
+ import { createPurchasingReceiptsModule } from './receipts.js';
7
+ import { createPurchasingReplenishmentModule, } from './replenishment.js';
8
+ import { createPurchasingReturnsModule } from './returns.js';
9
+ import { createPurchasingSettingsModule } from './settings.js';
10
+ import { createPurchasingSuppliersModule } from './suppliers.js';
11
+ export function createPurchasingModule(transport) {
12
+ return {
13
+ settings: createPurchasingSettingsModule(transport),
14
+ suppliers: createPurchasingSuppliersModule(transport),
15
+ purchaseOrders: createPurchasingPurchaseOrdersModule(transport),
16
+ replenishment: createPurchasingReplenishmentModule(transport),
17
+ alerts: createPurchasingAlertsModule(transport),
18
+ cost: createPurchasingCostModule(transport),
19
+ receipts: createPurchasingReceiptsModule(transport),
20
+ returns: createPurchasingReturnsModule(transport),
21
+ backorders: createPurchasingBackordersModule(transport),
22
+ links: createPurchasingLinksModule(transport),
23
+ };
24
+ }