@unchainedshop/core-orders 3.0.0-rc1 → 3.0.0-rc10

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 (194) hide show
  1. package/lib/db/OrderDeliveriesCollection.d.ts +21 -2
  2. package/lib/db/OrderDeliveriesCollection.d.ts.map +1 -1
  3. package/lib/db/OrderDeliveriesCollection.js +6 -0
  4. package/lib/db/OrderDeliveriesCollection.js.map +1 -1
  5. package/lib/db/OrderDiscountsCollection.d.ts +16 -2
  6. package/lib/db/OrderDiscountsCollection.d.ts.map +1 -1
  7. package/lib/db/OrderDiscountsCollection.js +5 -0
  8. package/lib/db/OrderDiscountsCollection.js.map +1 -1
  9. package/lib/db/OrderPaymentsCollection.d.ts +22 -2
  10. package/lib/db/OrderPaymentsCollection.d.ts.map +1 -1
  11. package/lib/db/OrderPaymentsCollection.js +6 -0
  12. package/lib/db/OrderPaymentsCollection.js.map +1 -1
  13. package/lib/db/OrderPositionsCollection.d.ts +22 -2
  14. package/lib/db/OrderPositionsCollection.d.ts.map +1 -1
  15. package/lib/db/OrderPositionsCollection.js.map +1 -1
  16. package/lib/db/OrdersCollection.d.ts +33 -2
  17. package/lib/db/OrdersCollection.d.ts.map +1 -1
  18. package/lib/db/OrdersCollection.js +8 -1
  19. package/lib/db/OrdersCollection.js.map +1 -1
  20. package/lib/module/buildFindSelector.d.ts +1 -1
  21. package/lib/module/buildFindSelector.d.ts.map +1 -1
  22. package/lib/module/configureOrderDeliveriesModule.d.ts +1 -1
  23. package/lib/module/configureOrderDeliveriesModule.d.ts.map +1 -1
  24. package/lib/module/configureOrderDeliveriesModule.js +1 -1
  25. package/lib/module/configureOrderDeliveriesModule.js.map +1 -1
  26. package/lib/module/configureOrderDiscountsModule.d.ts +2 -2
  27. package/lib/module/configureOrderDiscountsModule.d.ts.map +1 -1
  28. package/lib/module/configureOrderDiscountsModule.js +4 -4
  29. package/lib/module/configureOrderDiscountsModule.js.map +1 -1
  30. package/lib/module/configureOrderPaymentsModule.d.ts +2 -2
  31. package/lib/module/configureOrderPaymentsModule.d.ts.map +1 -1
  32. package/lib/module/configureOrderPaymentsModule.js +7 -7
  33. package/lib/module/configureOrderPaymentsModule.js.map +1 -1
  34. package/lib/module/configureOrderPositionsModule.d.ts +2 -2
  35. package/lib/module/configureOrderPositionsModule.d.ts.map +1 -1
  36. package/lib/module/configureOrderPositionsModule.js +3 -3
  37. package/lib/module/configureOrderPositionsModule.js.map +1 -1
  38. package/lib/module/configureOrdersModule-mutations.d.ts +2 -1
  39. package/lib/module/configureOrdersModule-mutations.d.ts.map +1 -1
  40. package/lib/module/configureOrdersModule-mutations.js +1 -1
  41. package/lib/module/configureOrdersModule-mutations.js.map +1 -1
  42. package/lib/module/configureOrdersModule-queries.d.ts +10 -3
  43. package/lib/module/configureOrdersModule-queries.d.ts.map +1 -1
  44. package/lib/module/configureOrdersModule-queries.js +2 -2
  45. package/lib/module/configureOrdersModule-queries.js.map +1 -1
  46. package/lib/module/configureOrdersModule.d.ts +1 -1
  47. package/lib/module/configureOrdersModule.d.ts.map +1 -1
  48. package/lib/module/configureOrdersModule.js +2 -2
  49. package/lib/module/configureOrdersModule.js.map +1 -1
  50. package/lib/orders-index.d.ts +11 -1
  51. package/lib/orders-index.d.ts.map +1 -1
  52. package/lib/orders-index.js +11 -1
  53. package/lib/orders-index.js.map +1 -1
  54. package/lib/orders-settings.d.ts +1 -1
  55. package/lib/orders-settings.d.ts.map +1 -1
  56. package/package.json +8 -5
  57. package/src/db/OrderDeliveriesCollection.ts +25 -2
  58. package/src/db/OrderDiscountsCollection.ts +18 -2
  59. package/src/db/OrderPaymentsCollection.ts +26 -2
  60. package/src/db/OrderPositionsCollection.ts +21 -2
  61. package/src/db/OrdersCollection.ts +44 -2
  62. package/src/module/buildFindSelector.test.ts +7 -7
  63. package/src/module/buildFindSelector.ts +1 -1
  64. package/src/module/configureOrderDeliveriesModule.ts +1 -1
  65. package/src/module/configureOrderDiscountsModule.ts +4 -5
  66. package/src/module/configureOrderPaymentsModule.ts +9 -7
  67. package/src/module/configureOrderPositionsModule.ts +4 -4
  68. package/src/module/configureOrdersModule-mutations.ts +2 -1
  69. package/src/module/configureOrdersModule-queries.ts +12 -4
  70. package/src/module/configureOrdersModule.ts +2 -2
  71. package/src/orders-index.ts +11 -1
  72. package/src/orders-settings.ts +1 -1
  73. package/lib/db/OrderDiscountTrigger.d.ts +0 -5
  74. package/lib/db/OrderDiscountTrigger.d.ts.map +0 -1
  75. package/lib/db/OrderDiscountTrigger.js +0 -6
  76. package/lib/db/OrderDiscountTrigger.js.map +0 -1
  77. package/lib/director/OrderDiscountAdapter.d.ts +0 -4
  78. package/lib/director/OrderDiscountAdapter.d.ts.map +0 -1
  79. package/lib/director/OrderDiscountAdapter.js +0 -3
  80. package/lib/director/OrderDiscountAdapter.js.map +0 -1
  81. package/lib/director/OrderDiscountConfiguration.d.ts +0 -6
  82. package/lib/director/OrderDiscountConfiguration.d.ts.map +0 -1
  83. package/lib/director/OrderDiscountConfiguration.js +0 -2
  84. package/lib/director/OrderDiscountConfiguration.js.map +0 -1
  85. package/lib/director/OrderDiscountDirector.d.ts +0 -3
  86. package/lib/director/OrderDiscountDirector.d.ts.map +0 -1
  87. package/lib/director/OrderDiscountDirector.js +0 -3
  88. package/lib/director/OrderDiscountDirector.js.map +0 -1
  89. package/lib/director/OrderPricingAdapter.d.ts +0 -22
  90. package/lib/director/OrderPricingAdapter.d.ts.map +0 -1
  91. package/lib/director/OrderPricingAdapter.js +0 -25
  92. package/lib/director/OrderPricingAdapter.js.map +0 -1
  93. package/lib/director/OrderPricingDirector.d.ts +0 -18
  94. package/lib/director/OrderPricingDirector.d.ts.map +0 -1
  95. package/lib/director/OrderPricingDirector.js +0 -39
  96. package/lib/director/OrderPricingDirector.js.map +0 -1
  97. package/lib/director/OrderPricingSheet.d.ts +0 -36
  98. package/lib/director/OrderPricingSheet.d.ts.map +0 -1
  99. package/lib/director/OrderPricingSheet.js +0 -108
  100. package/lib/director/OrderPricingSheet.js.map +0 -1
  101. package/lib/module/configureOrderDeliveriesModule_BACKUP_54554.d.ts +0 -24
  102. package/lib/module/configureOrderDeliveriesModule_BACKUP_54554.d.ts.map +0 -1
  103. package/lib/module/configureOrderDeliveriesModule_BACKUP_54554.js +0 -101
  104. package/lib/module/configureOrderDeliveriesModule_BACKUP_54554.js.map +0 -1
  105. package/lib/module/configureOrderDeliveriesModule_BASE_54554.d.ts +0 -36
  106. package/lib/module/configureOrderDeliveriesModule_BASE_54554.d.ts.map +0 -1
  107. package/lib/module/configureOrderDeliveriesModule_BASE_54554.js +0 -162
  108. package/lib/module/configureOrderDeliveriesModule_BASE_54554.js.map +0 -1
  109. package/lib/module/configureOrderDeliveriesModule_LOCAL_54554.d.ts +0 -23
  110. package/lib/module/configureOrderDeliveriesModule_LOCAL_54554.d.ts.map +0 -1
  111. package/lib/module/configureOrderDeliveriesModule_LOCAL_54554.js +0 -97
  112. package/lib/module/configureOrderDeliveriesModule_LOCAL_54554.js.map +0 -1
  113. package/lib/module/configureOrderDeliveriesModule_REMOTE_54554.d.ts +0 -37
  114. package/lib/module/configureOrderDeliveriesModule_REMOTE_54554.d.ts.map +0 -1
  115. package/lib/module/configureOrderDeliveriesModule_REMOTE_54554.js +0 -166
  116. package/lib/module/configureOrderDeliveriesModule_REMOTE_54554.js.map +0 -1
  117. package/lib/module/configureOrderDiscountsModule_BACKUP_55046.d.ts +0 -26
  118. package/lib/module/configureOrderDiscountsModule_BACKUP_55046.d.ts.map +0 -1
  119. package/lib/module/configureOrderDiscountsModule_BACKUP_55046.js +0 -69
  120. package/lib/module/configureOrderDiscountsModule_BACKUP_55046.js.map +0 -1
  121. package/lib/module/configureOrderDiscountsModule_BASE_55046.d.ts +0 -26
  122. package/lib/module/configureOrderDiscountsModule_BASE_55046.d.ts.map +0 -1
  123. package/lib/module/configureOrderDiscountsModule_BASE_55046.js +0 -178
  124. package/lib/module/configureOrderDiscountsModule_BASE_55046.js.map +0 -1
  125. package/lib/module/configureOrderDiscountsModule_LOCAL_55046.d.ts +0 -25
  126. package/lib/module/configureOrderDiscountsModule_LOCAL_55046.d.ts.map +0 -1
  127. package/lib/module/configureOrderDiscountsModule_LOCAL_55046.js +0 -65
  128. package/lib/module/configureOrderDiscountsModule_LOCAL_55046.js.map +0 -1
  129. package/lib/module/configureOrderDiscountsModule_REMOTE_55046.d.ts +0 -27
  130. package/lib/module/configureOrderDiscountsModule_REMOTE_55046.d.ts.map +0 -1
  131. package/lib/module/configureOrderDiscountsModule_REMOTE_55046.js +0 -182
  132. package/lib/module/configureOrderDiscountsModule_REMOTE_55046.js.map +0 -1
  133. package/lib/module/configureOrderPaymentsModule_BACKUP_55464.d.ts +0 -32
  134. package/lib/module/configureOrderPaymentsModule_BACKUP_55464.d.ts.map +0 -1
  135. package/lib/module/configureOrderPaymentsModule_BACKUP_55464.js +0 -135
  136. package/lib/module/configureOrderPaymentsModule_BACKUP_55464.js.map +0 -1
  137. package/lib/module/configureOrderPaymentsModule_BACKUP_55877.d.ts +0 -32
  138. package/lib/module/configureOrderPaymentsModule_BACKUP_55877.d.ts.map +0 -1
  139. package/lib/module/configureOrderPaymentsModule_BACKUP_55877.js +0 -135
  140. package/lib/module/configureOrderPaymentsModule_BACKUP_55877.js.map +0 -1
  141. package/lib/module/configureOrderPaymentsModule_BASE_55464.d.ts +0 -51
  142. package/lib/module/configureOrderPaymentsModule_BASE_55464.d.ts.map +0 -1
  143. package/lib/module/configureOrderPaymentsModule_BASE_55464.js +0 -243
  144. package/lib/module/configureOrderPaymentsModule_BASE_55464.js.map +0 -1
  145. package/lib/module/configureOrderPaymentsModule_BASE_55877.d.ts +0 -51
  146. package/lib/module/configureOrderPaymentsModule_BASE_55877.d.ts.map +0 -1
  147. package/lib/module/configureOrderPaymentsModule_BASE_55877.js +0 -243
  148. package/lib/module/configureOrderPaymentsModule_BASE_55877.js.map +0 -1
  149. package/lib/module/configureOrderPaymentsModule_LOCAL_55464.d.ts +0 -31
  150. package/lib/module/configureOrderPaymentsModule_LOCAL_55464.d.ts.map +0 -1
  151. package/lib/module/configureOrderPaymentsModule_LOCAL_55464.js +0 -131
  152. package/lib/module/configureOrderPaymentsModule_LOCAL_55464.js.map +0 -1
  153. package/lib/module/configureOrderPaymentsModule_LOCAL_55877.d.ts +0 -31
  154. package/lib/module/configureOrderPaymentsModule_LOCAL_55877.d.ts.map +0 -1
  155. package/lib/module/configureOrderPaymentsModule_LOCAL_55877.js +0 -131
  156. package/lib/module/configureOrderPaymentsModule_LOCAL_55877.js.map +0 -1
  157. package/lib/module/configureOrderPaymentsModule_REMOTE_55464.d.ts +0 -52
  158. package/lib/module/configureOrderPaymentsModule_REMOTE_55464.d.ts.map +0 -1
  159. package/lib/module/configureOrderPaymentsModule_REMOTE_55464.js +0 -247
  160. package/lib/module/configureOrderPaymentsModule_REMOTE_55464.js.map +0 -1
  161. package/lib/module/configureOrderPaymentsModule_REMOTE_55877.d.ts +0 -52
  162. package/lib/module/configureOrderPaymentsModule_REMOTE_55877.d.ts.map +0 -1
  163. package/lib/module/configureOrderPaymentsModule_REMOTE_55877.js +0 -247
  164. package/lib/module/configureOrderPaymentsModule_REMOTE_55877.js.map +0 -1
  165. package/lib/module/configureOrderPositionsModule_BACKUP_56197.d.ts +0 -44
  166. package/lib/module/configureOrderPositionsModule_BACKUP_56197.d.ts.map +0 -1
  167. package/lib/module/configureOrderPositionsModule_BACKUP_56197.js +0 -138
  168. package/lib/module/configureOrderPositionsModule_BACKUP_56197.js.map +0 -1
  169. package/lib/module/configureOrderPositionsModule_BASE_56197.d.ts +0 -60
  170. package/lib/module/configureOrderPositionsModule_BASE_56197.d.ts.map +0 -1
  171. package/lib/module/configureOrderPositionsModule_BASE_56197.js +0 -201
  172. package/lib/module/configureOrderPositionsModule_BASE_56197.js.map +0 -1
  173. package/lib/module/configureOrderPositionsModule_LOCAL_56197.d.ts +0 -43
  174. package/lib/module/configureOrderPositionsModule_LOCAL_56197.d.ts.map +0 -1
  175. package/lib/module/configureOrderPositionsModule_LOCAL_56197.js +0 -134
  176. package/lib/module/configureOrderPositionsModule_LOCAL_56197.js.map +0 -1
  177. package/lib/module/configureOrderPositionsModule_REMOTE_56197.d.ts +0 -61
  178. package/lib/module/configureOrderPositionsModule_REMOTE_56197.d.ts.map +0 -1
  179. package/lib/module/configureOrderPositionsModule_REMOTE_56197.js +0 -205
  180. package/lib/module/configureOrderPositionsModule_REMOTE_56197.js.map +0 -1
  181. package/lib/module/configureOrdersModule-processing.d.ts +0 -28
  182. package/lib/module/configureOrdersModule-processing.d.ts.map +0 -1
  183. package/lib/module/configureOrdersModule-processing.js +0 -341
  184. package/lib/module/configureOrdersModule-processing.js.map +0 -1
  185. package/lib/module/configureOrdersModule-transformations.d.ts +0 -19
  186. package/lib/module/configureOrdersModule-transformations.d.ts.map +0 -1
  187. package/lib/module/configureOrdersModule-transformations.js +0 -111
  188. package/lib/module/configureOrdersModule-transformations.js.map +0 -1
  189. package/lib/types.d.ts +0 -115
  190. package/lib/types.d.ts.map +0 -1
  191. package/lib/types.js +0 -25
  192. package/lib/types.js.map +0 -1
  193. package/src/db/OrderDiscountTrigger.ts +0 -4
  194. package/src/types.ts +0 -128
@@ -1,205 +0,0 @@
1
- import { emit, registerEvents } from '@unchainedshop/events';
2
- import { generateDbFilterById, generateDbObjectId } from '@unchainedshop/mongodb';
3
- import { ordersSettings } from '../orders-settings.js';
4
- const ORDER_POSITION_EVENTS = [
5
- 'ORDER_UPDATE_CART_ITEM',
6
- 'ORDER_REMOVE_CART_ITEM',
7
- 'ORDER_EMPTY_CART',
8
- 'ORDER_ADD_PRODUCT',
9
- ];
10
- export const buildFindByIdSelector = (orderPositionId, orderId) => generateDbFilterById(orderPositionId, orderId ? { orderId } : undefined);
11
- export const configureOrderPositionsModule = ({ OrderPositions, }) => {
12
- registerEvents(ORDER_POSITION_EVENTS);
13
- return {
14
- // Queries
15
- findOrderPosition: async ({ itemId }, options) => {
16
- return OrderPositions.findOne(buildFindByIdSelector(itemId), options);
17
- },
18
- findOrderPositions: async ({ orderId }) => {
19
- const positions = OrderPositions.find({ orderId, quantity: { $gt: 0 } });
20
- return positions.toArray();
21
- },
22
- // Transformations
23
- discounts: (orderPosition, { order, orderDiscount }, unchainedAPI) => {
24
- const pricingSheet = unchainedAPI.modules.orders.positions.pricingSheet(orderPosition, order.currency, unchainedAPI);
25
- return pricingSheet.discountPrices(orderDiscount._id).map((discount) => ({
26
- item: orderPosition,
27
- ...discount,
28
- }));
29
- },
30
- pricingSheet: (orderPosition, currency, { modules }) => {
31
- return modules.products.pricingSheet({
32
- calculation: orderPosition.calculation,
33
- currency,
34
- quantity: orderPosition.quantity,
35
- });
36
- },
37
- delete: async (orderPositionId) => {
38
- const selector = buildFindByIdSelector(orderPositionId);
39
- const orderPosition = await OrderPositions.findOneAndDelete(selector, {});
40
- await emit('ORDER_REMOVE_CART_ITEM', {
41
- orderPosition,
42
- });
43
- return { ...orderPosition, calculation: [] };
44
- },
45
- removePositions: async ({ orderId }) => {
46
- const result = await OrderPositions.deleteMany({ orderId });
47
- await emit('ORDER_EMPTY_CART', { orderId, count: result.deletedCount });
48
- return result.deletedCount;
49
- },
50
- updateProductItem: async ({ quantity, configuration }, { order, product, orderPosition }, unchainedAPI) => {
51
- const selector = buildFindByIdSelector(orderPosition._id, order._id);
52
- const modifier = {
53
- $set: {
54
- updated: new Date(),
55
- },
56
- };
57
- if (quantity !== null && quantity !== orderPosition.quantity) {
58
- modifier.$set.quantity = quantity;
59
- }
60
- if (configuration !== null) {
61
- const resolvedProduct = await unchainedAPI.modules.products.resolveOrderableProduct(product, { configuration }, unchainedAPI);
62
- modifier.$set.productId = resolvedProduct._id;
63
- modifier.$set.configuration = configuration;
64
- }
65
- await ordersSettings.validateOrderPosition({
66
- order,
67
- product,
68
- configuration,
69
- quantityDiff: quantity - orderPosition.quantity,
70
- }, unchainedAPI);
71
- const updatedOrderPosition = await OrderPositions.findOneAndUpdate(selector, modifier, {
72
- returnDocument: 'after',
73
- });
74
- await emit('ORDER_UPDATE_CART_ITEM', {
75
- orderPosition: updatedOrderPosition,
76
- });
77
- return updatedOrderPosition;
78
- },
79
- removeProductByIdFromAllOpenPositions: async (productId) => {
80
- const positions = await OrderPositions.aggregate([
81
- {
82
- $match: {
83
- productId,
84
- },
85
- },
86
- {
87
- $lookup: {
88
- from: 'orders',
89
- localField: 'orderId',
90
- foreignField: '_id',
91
- as: 'order',
92
- },
93
- },
94
- {
95
- $match: {
96
- 'order.status': null,
97
- },
98
- },
99
- ]).toArray();
100
- const positionIds = positions.map((o) => o._id);
101
- await OrderPositions.deleteMany({ _id: { $in: positionIds } });
102
- await Promise.all(positions.map(async (orderPosition) => {
103
- await emit('ORDER_REMOVE_CART_ITEM', {
104
- orderPosition,
105
- });
106
- }));
107
- const orderIdsToRecalculate = positions.map((o) => o.orderId);
108
- return orderIdsToRecalculate;
109
- },
110
- updateScheduling: async ({ order, orderDelivery, orderPosition }, unchainedAPI) => {
111
- const { modules } = unchainedAPI;
112
- // scheduling (store in db for auditing)
113
- const product = await modules.products.findProduct({
114
- productId: orderPosition.productId,
115
- });
116
- const deliveryProvider = orderDelivery &&
117
- (await modules.delivery.findProvider({
118
- deliveryProviderId: orderDelivery.deliveryProviderId,
119
- }));
120
- const { countryCode, userId } = order;
121
- const scheduling = await Promise.all((await modules.warehousing.findSupported({
122
- product,
123
- deliveryProvider,
124
- }, unchainedAPI)).map(async (warehousingProvider) => {
125
- const context = {
126
- warehousingProvider,
127
- deliveryProvider,
128
- product,
129
- item: orderPosition,
130
- delivery: deliveryProvider,
131
- order,
132
- userId,
133
- country: countryCode,
134
- referenceDate: order.ordered,
135
- quantity: orderPosition.quantity,
136
- };
137
- const dispatch = await unchainedAPI.modules.warehousing.estimatedDispatch(warehousingProvider, context, unchainedAPI);
138
- return {
139
- warehousingProviderId: warehousingProvider._id,
140
- ...dispatch,
141
- };
142
- }));
143
- return OrderPositions.findOneAndUpdate(generateDbFilterById(orderPosition._id), {
144
- $set: { scheduling },
145
- }, {
146
- returnDocument: 'after',
147
- });
148
- },
149
- updateCalculation: async (orderPosition, unchainedAPI) => {
150
- const calculation = await unchainedAPI.modules.products.calculate({ item: orderPosition, configuration: orderPosition.configuration }, unchainedAPI);
151
- return OrderPositions.findOneAndUpdate(buildFindByIdSelector(orderPosition._id), {
152
- $set: { calculation },
153
- }, {
154
- returnDocument: 'after',
155
- });
156
- },
157
- addProductItem: async (orderPosition, { order, product }, unchainedAPI) => {
158
- const { modules } = unchainedAPI;
159
- const { configuration, orderId: positionOrderId, quantity, ...scope } = orderPosition;
160
- const orderId = order._id || positionOrderId;
161
- // Resolve product
162
- const resolvedProduct = await modules.products.resolveOrderableProduct(product, { configuration }, unchainedAPI);
163
- // Validate add to cart mutation
164
- await ordersSettings.validateOrderPosition({
165
- order,
166
- product,
167
- configuration,
168
- quantityDiff: quantity,
169
- }, unchainedAPI);
170
- // Search for existing position
171
- const selector = {
172
- orderId,
173
- productId: resolvedProduct._id,
174
- originalProductId: product._id,
175
- configuration: configuration || { $in: [null, undefined] },
176
- ...scope,
177
- };
178
- await OrderPositions.updateOne(selector, {
179
- $set: {
180
- updated: new Date(),
181
- },
182
- $inc: { quantity },
183
- $setOnInsert: {
184
- _id: generateDbObjectId(),
185
- created: new Date(),
186
- calculation: [],
187
- scheduling: [],
188
- orderId,
189
- productId: resolvedProduct._id,
190
- originalProductId: product._id,
191
- configuration,
192
- ...scope,
193
- },
194
- }, { upsert: true });
195
- const upsertedOrderPosition = await OrderPositions.findOne(selector);
196
- await emit('ORDER_ADD_PRODUCT', { orderPosition: upsertedOrderPosition });
197
- return upsertedOrderPosition;
198
- },
199
- deleteOrderPositions: async (orderId) => {
200
- const { deletedCount } = await OrderPositions.deleteMany({ orderId });
201
- return deletedCount;
202
- },
203
- };
204
- };
205
- //# sourceMappingURL=configureOrderPositionsModule_REMOTE_56197.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"configureOrderPositionsModule_REMOTE_56197.js","sourceRoot":"","sources":["../../src/module/configureOrderPositionsModule_REMOTE_56197.ts"],"names":[],"mappings":"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"}
@@ -1,28 +0,0 @@
1
- import { mongodb } from '@unchainedshop/mongodb';
2
- import { Locker } from '@kontsedal/locco';
3
- import { Order, OrderStatus, OrderDelivery, OrderPayment, OrderPosition } from '../types.js';
4
- export type OrderContextParams<P> = (order: Order, params: P, unchainedAPI: any) => Promise<Order>;
5
- export type OrderTransactionContext = {
6
- paymentContext?: any;
7
- deliveryContext?: any;
8
- comment?: string;
9
- nextStatus?: OrderStatus;
10
- };
11
- export interface OrderProcessing {
12
- checkout: (orderId: string, params: OrderTransactionContext, unchainedAPI: any) => Promise<Order>;
13
- confirm: OrderContextParams<OrderTransactionContext>;
14
- reject: OrderContextParams<OrderTransactionContext>;
15
- processOrder: OrderContextParams<OrderTransactionContext>;
16
- updateStatus: (orderId: string, params: {
17
- status: OrderStatus;
18
- info?: string;
19
- }) => Promise<Order>;
20
- }
21
- export declare const configureOrderModuleProcessing: ({ Orders, OrderPositions, OrderDeliveries, OrderPayments, locker, }: {
22
- Orders: mongodb.Collection<Order>;
23
- OrderPositions: mongodb.Collection<OrderPosition>;
24
- OrderDeliveries: mongodb.Collection<OrderDelivery>;
25
- OrderPayments: mongodb.Collection<OrderPayment>;
26
- locker: Locker;
27
- }) => OrderProcessing;
28
- //# sourceMappingURL=configureOrdersModule-processing.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"configureOrdersModule-processing.d.ts","sourceRoot":"","sources":["../../src/module/configureOrdersModule-processing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAwB,MAAM,wBAAwB,CAAC;AAGvE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG7F,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,YAAY,KAAA,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;AAE9F,MAAM,MAAM,uBAAuB,GAAG;IACpC,cAAc,CAAC,EAAE,GAAG,CAAC;IACrB,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,WAAW,CAAC;CAC1B,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,uBAAuB,EAAE,YAAY,KAAA,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7F,OAAO,EAAE,kBAAkB,CAAC,uBAAuB,CAAC,CAAC;IACrD,MAAM,EAAE,kBAAkB,CAAC,uBAAuB,CAAC,CAAC;IACpD,YAAY,EAAE,kBAAkB,CAAC,uBAAuB,CAAC,CAAC;IAC1D,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE;QAAE,MAAM,EAAE,WAAW,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;CACnG;AASD,eAAO,MAAM,8BAA8B,wEAMxC;IACD,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAClC,cAAc,EAAE,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IAClD,eAAe,EAAE,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACnD,aAAa,EAAE,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAChD,MAAM,EAAE,MAAM,CAAC;CAChB,KAAG,eAmcH,CAAC"}
@@ -1,341 +0,0 @@
1
- import { generateDbFilterById } from '@unchainedshop/mongodb';
2
- import { ProductTypes } from '@unchainedshop/core-products';
3
- import { emit, registerEvents } from '@unchainedshop/events';
4
- import { OrderStatus } from '../types.js';
5
- import { ordersSettings } from '../orders-settings.js';
6
- const ORDER_PROCESSING_EVENTS = [
7
- 'ORDER_CHECKOUT',
8
- 'ORDER_CONFIRMED',
9
- 'ORDER_REJECTED',
10
- 'ORDER_FULLFILLED',
11
- ];
12
- export const configureOrderModuleProcessing = ({ Orders, OrderPositions, OrderDeliveries, OrderPayments, locker, }) => {
13
- registerEvents(ORDER_PROCESSING_EVENTS);
14
- const findNewOrderNumber = async (order, index = 0) => {
15
- const newHashID = ordersSettings.orderNumberHashFn(order, index);
16
- if ((await Orders.countDocuments({ orderNumber: newHashID }, { limit: 1 })) === 0) {
17
- return newHashID;
18
- }
19
- return findNewOrderNumber(order, index + 1);
20
- };
21
- const updateStatus = async (orderId, { status, info }) => {
22
- const selector = generateDbFilterById(orderId);
23
- const order = await Orders.findOne(selector, {});
24
- if (order.status === status)
25
- return order;
26
- const date = new Date();
27
- const $set = {
28
- status,
29
- updated: new Date(),
30
- };
31
- switch (status) {
32
- // explicitly use fallthrough here!
33
- case OrderStatus.FULLFILLED:
34
- $set.fullfilled = order.fullfilled || date;
35
- case OrderStatus.REJECTED: // eslint-disable-line no-fallthrough
36
- case OrderStatus.CONFIRMED: // eslint-disable-line no-fallthrough
37
- if (status === OrderStatus.REJECTED) {
38
- $set.rejected = order.rejected || date;
39
- }
40
- else {
41
- $set.confirmed = order.confirmed || date;
42
- }
43
- case OrderStatus.PENDING: // eslint-disable-line no-fallthrough
44
- $set.ordered = order.ordered || date;
45
- $set.orderNumber = order.orderNumber || (await findNewOrderNumber(order));
46
- break;
47
- default:
48
- break;
49
- }
50
- const modifier = {
51
- $set,
52
- $push: {
53
- log: {
54
- date,
55
- status,
56
- info,
57
- },
58
- },
59
- };
60
- const modificationResult = await Orders.findOneAndUpdate({
61
- ...selector,
62
- status: { $ne: status }, // Only update if status is different
63
- }, modifier, {
64
- returnDocument: 'after',
65
- includeResultMetadata: true,
66
- });
67
- if (modificationResult.ok) {
68
- if (order.status === null) {
69
- // The first time that an order transitions away from cart is a checkout event
70
- await emit('ORDER_CHECKOUT', { order: modificationResult.value, oldStatus: order.status });
71
- }
72
- switch (status) {
73
- case OrderStatus.FULLFILLED:
74
- await emit('ORDER_FULLFILLED', { order: modificationResult.value, oldStatus: order.status });
75
- break;
76
- case OrderStatus.REJECTED:
77
- await emit('ORDER_REJECTED', { order: modificationResult.value, oldStatus: order.status });
78
- break;
79
- case OrderStatus.CONFIRMED:
80
- await emit('ORDER_CONFIRMED', { order: modificationResult.value, oldStatus: order.status });
81
- break;
82
- default:
83
- break;
84
- }
85
- }
86
- return modificationResult.value || Orders.findOne(selector, {});
87
- };
88
- const findOrderPositions = async (order) => OrderPositions.find({
89
- orderId: order._id,
90
- quantity: { $gt: 0 },
91
- }).toArray();
92
- const findOrderDelivery = async (order) => OrderDeliveries.findOne(generateDbFilterById(order.deliveryId), {});
93
- const findOrderPayment = async (order) => OrderPayments.findOne(generateDbFilterById(order.paymentId), {});
94
- const missingInputDataForCheckout = async (order) => {
95
- const errors = [];
96
- if (!order.contact)
97
- errors.push(new Error('Contact data not provided'));
98
- if (!order.billingAddress)
99
- errors.push(new Error('Billing address not provided'));
100
- if (!(await findOrderDelivery(order)))
101
- errors.push('No delivery provider selected');
102
- if (!(await findOrderPayment(order)))
103
- errors.push('No payment provider selected');
104
- return errors;
105
- };
106
- const itemValidationErrors = async (order, unchainedAPI) => {
107
- // Check if items are valid
108
- const orderPositions = await findOrderPositions(order);
109
- if (orderPositions.length === 0) {
110
- const NoItemsError = new Error('No items to checkout');
111
- NoItemsError.name = 'NoItemsError';
112
- return [NoItemsError];
113
- }
114
- const validationErrors = await Promise.all(orderPositions.map(async (orderPosition) => {
115
- const errors = [];
116
- const product = await unchainedAPI.modules.products.findProduct({
117
- productId: orderPosition.productId,
118
- });
119
- try {
120
- await ordersSettings.validateOrderPosition({
121
- order,
122
- product,
123
- configuration: orderPosition.configuration,
124
- quantityDiff: 0,
125
- }, unchainedAPI);
126
- }
127
- catch (e) {
128
- errors.push(e);
129
- }
130
- const quotation = orderPosition.quotationId &&
131
- (await unchainedAPI.modules.quotations.findQuotation({
132
- quotationId: orderPosition.quotationId,
133
- }));
134
- if (quotation && !unchainedAPI.modules.quotations.isProposalValid(quotation)) {
135
- errors.push(new Error('Quotation expired or fullfiled, please request a new offer'));
136
- }
137
- return errors;
138
- }));
139
- return validationErrors.flatMap((f) => f);
140
- };
141
- const isAutoConfirmationEnabled = async (order, unchainedAPI) => {
142
- const { modules } = unchainedAPI;
143
- if (order.status === OrderStatus.FULLFILLED || order.status === OrderStatus.CONFIRMED) {
144
- return false;
145
- }
146
- const orderPayment = await findOrderPayment(order);
147
- let isBlockingOrderConfirmation = orderPayment &&
148
- (await modules.orders.payments.isBlockingOrderConfirmation(orderPayment, unchainedAPI));
149
- if (isBlockingOrderConfirmation)
150
- return false;
151
- const orderDelivery = await findOrderDelivery(order);
152
- isBlockingOrderConfirmation =
153
- orderDelivery &&
154
- (await modules.orders.deliveries.isBlockingOrderConfirmation(orderDelivery, unchainedAPI));
155
- if (isBlockingOrderConfirmation)
156
- return false;
157
- return true;
158
- };
159
- const isAutoFullfillmentEnabled = async (order, unchainedAPI) => {
160
- const { modules } = unchainedAPI;
161
- const orderPayment = await findOrderPayment(order);
162
- let isBlockingOrderFullfillment = orderPayment && modules.orders.payments.isBlockingOrderFullfillment(orderPayment);
163
- if (isBlockingOrderFullfillment)
164
- return false;
165
- const orderDelivery = await findOrderDelivery(order);
166
- isBlockingOrderFullfillment =
167
- orderDelivery && modules.orders.deliveries.isBlockingOrderFullfillment(orderDelivery);
168
- if (isBlockingOrderFullfillment)
169
- return false;
170
- if (order.status === OrderStatus.FULLFILLED) {
171
- return false;
172
- }
173
- return true;
174
- };
175
- const findNextStatus = async (status, order, unchainedAPI) => {
176
- if (status === null) {
177
- return OrderStatus.PENDING;
178
- }
179
- if (status === OrderStatus.PENDING) {
180
- if (await isAutoConfirmationEnabled(order, unchainedAPI)) {
181
- return OrderStatus.CONFIRMED;
182
- }
183
- }
184
- if (status === OrderStatus.CONFIRMED) {
185
- if (await isAutoFullfillmentEnabled(order, unchainedAPI)) {
186
- return OrderStatus.FULLFILLED;
187
- }
188
- }
189
- return status;
190
- };
191
- return {
192
- checkout: async (orderId, transactionContext, unchainedAPI) => {
193
- const { modules, services } = unchainedAPI;
194
- const order = await Orders.findOne(generateDbFilterById(orderId), {});
195
- if (order.status !== null)
196
- return order;
197
- const errors = [
198
- ...(await missingInputDataForCheckout(order)),
199
- ...(await itemValidationErrors(order, unchainedAPI)),
200
- ].filter(Boolean);
201
- if (errors.length > 0) {
202
- throw new Error(errors[0]);
203
- }
204
- const lock = await locker.lock(`order:checkout:${order._id}`, 5000).acquire();
205
- try {
206
- const processedOrder = await modules.orders.processOrder(order, transactionContext, unchainedAPI);
207
- // After checkout, store last checkout information on user
208
- await modules.users.updateLastBillingAddress(processedOrder.userId, processedOrder.billingAddress);
209
- await modules.users.updateLastContact(processedOrder.userId, processedOrder.contact);
210
- // Then eventually build next cart
211
- const user = await modules.users.findUserById(processedOrder.userId);
212
- const locale = modules.users.userLocale(user);
213
- await services.orders.nextUserCart(
214
- // TODO: This means checkout belongs to services!
215
- {
216
- user,
217
- countryCode: locale.region,
218
- }, unchainedAPI);
219
- return processedOrder;
220
- }
221
- finally {
222
- await lock.release();
223
- }
224
- },
225
- confirm: async (order, transactionContext, unchainedAPI) => {
226
- const { modules } = unchainedAPI;
227
- if (order.status !== OrderStatus.PENDING)
228
- return order;
229
- const lock = await locker.lock(`order:confirm-reject:${order._id}`, 1500).acquire();
230
- try {
231
- return await modules.orders.processOrder(order, {
232
- ...transactionContext,
233
- nextStatus: OrderStatus.CONFIRMED,
234
- }, unchainedAPI);
235
- }
236
- finally {
237
- await lock.release();
238
- }
239
- },
240
- reject: async (order, transactionContext, unchainedAPI) => {
241
- const { modules } = unchainedAPI;
242
- if (order.status !== OrderStatus.PENDING)
243
- return order;
244
- const lock = await locker.lock(`order:confirm-reject:${order._id}`, 1500).acquire();
245
- try {
246
- return await modules.orders.processOrder(order, {
247
- ...transactionContext,
248
- nextStatus: OrderStatus.REJECTED,
249
- }, unchainedAPI);
250
- }
251
- finally {
252
- await lock.release();
253
- }
254
- },
255
- processOrder: async (initialOrder, orderTransactionContext, unchainedAPI) => {
256
- const { modules } = unchainedAPI;
257
- const { paymentContext, deliveryContext, nextStatus: forceNextStatus, comment, } = orderTransactionContext;
258
- const orderId = initialOrder._id;
259
- let order = initialOrder;
260
- let nextStatus = forceNextStatus || (await findNextStatus(initialOrder.status, order, unchainedAPI));
261
- if (nextStatus === OrderStatus.PENDING) {
262
- // auto charge during transition to pending
263
- const orderPayment = await modules.orders.payments.findOrderPayment({
264
- orderPaymentId: order.paymentId,
265
- });
266
- await modules.orders.payments.charge(orderPayment, { userId: order.userId, transactionContext: paymentContext }, unchainedAPI);
267
- nextStatus = await findNextStatus(nextStatus, order, unchainedAPI);
268
- }
269
- if (nextStatus === OrderStatus.REJECTED) {
270
- // auto cancel during transition to rejected
271
- const orderPayment = await modules.orders.payments.findOrderPayment({
272
- orderPaymentId: order.paymentId,
273
- });
274
- await modules.orders.payments.cancel(orderPayment, { userId: order.userId, transactionContext: paymentContext }, unchainedAPI);
275
- }
276
- if (nextStatus === OrderStatus.CONFIRMED) {
277
- // confirm pre-authorized payments
278
- const orderPayment = await modules.orders.payments.findOrderPayment({
279
- orderPaymentId: order.paymentId,
280
- });
281
- await modules.orders.payments.confirm(orderPayment, { userId: order.userId, transactionContext: paymentContext }, unchainedAPI);
282
- if (order.status !== OrderStatus.CONFIRMED) {
283
- // we have to stop here shortly to complete the confirmation
284
- // before auto delivery is started, else we have no chance to create
285
- // numbers that are needed for delivery
286
- order = await updateStatus(orderId, {
287
- status: OrderStatus.CONFIRMED,
288
- info: comment,
289
- });
290
- const orderDelivery = await modules.orders.deliveries.findDelivery({
291
- orderDeliveryId: order.deliveryId,
292
- });
293
- await modules.orders.deliveries.send(orderDelivery, {
294
- order,
295
- deliveryContext,
296
- }, unchainedAPI);
297
- const orderPositions = await findOrderPositions(order);
298
- const mappedProductOrderPositions = await Promise.all(orderPositions.map(async (orderPosition) => {
299
- const product = await modules.products.findProduct({
300
- productId: orderPosition.productId,
301
- });
302
- return {
303
- orderPosition,
304
- product,
305
- };
306
- }));
307
- const tokenizedItems = mappedProductOrderPositions.filter((item) => item.product?.type === ProductTypes.TokenizedProduct);
308
- if (tokenizedItems.length > 0) {
309
- // Give virtual warehouse a chance to instantiate new virtual objects
310
- await modules.warehousing.tokenizeItems(order, {
311
- items: tokenizedItems,
312
- }, unchainedAPI);
313
- }
314
- // Enrollments: Generate enrollments for plan products
315
- const planItems = mappedProductOrderPositions.filter((item) => item.product?.type === ProductTypes.PlanProduct && !order.originEnrollmentId);
316
- if (planItems.length > 0) {
317
- await modules.enrollments.createFromCheckout(order, {
318
- items: planItems,
319
- context: {
320
- paymentContext,
321
- deliveryContext,
322
- },
323
- }, unchainedAPI);
324
- }
325
- // Quotations: If we came here, the checkout succeeded, so we can fullfill underlying quotations
326
- const quotationItems = mappedProductOrderPositions.filter((item) => item.orderPosition.quotationId);
327
- await Promise.all(quotationItems.map(async ({ orderPosition }) => {
328
- await modules.quotations.fullfillQuotation(orderPosition.quotationId, {
329
- orderId,
330
- orderPositionId: orderPosition._id,
331
- }, unchainedAPI);
332
- }));
333
- }
334
- nextStatus = await findNextStatus(nextStatus, order, unchainedAPI);
335
- }
336
- return updateStatus(order._id, { status: nextStatus, info: comment });
337
- },
338
- updateStatus,
339
- };
340
- };
341
- //# sourceMappingURL=configureOrdersModule-processing.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"configureOrdersModule-processing.js","sourceRoot":"","sources":["../../src/module/configureOrdersModule-processing.ts"],"names":[],"mappings":"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"}
@@ -1,19 +0,0 @@
1
- import { Order, OrderDiscount } from '../types.js';
2
- import { mongodb } from '@unchainedshop/mongodb';
3
- import { IOrderPricingSheet } from '../director/OrderPricingSheet.js';
4
- import { OrderPrice, OrderPricingDiscount } from '../director/OrderPricingDirector.js';
5
- export interface OrderTransformations {
6
- discounted: (order: Order, orderDiscount: OrderDiscount, unchainedAPI: any) => Promise<Array<OrderPricingDiscount>>;
7
- discountTotal: (order: Order, orderDiscount: OrderDiscount, unchainedAPI: any) => Promise<OrderPrice>;
8
- isCart: (order: Order) => boolean;
9
- cart: (order: {
10
- countryContext?: string;
11
- orderNumber?: string;
12
- userId: string;
13
- }) => Promise<Order>;
14
- pricingSheet: (order: Order) => IOrderPricingSheet;
15
- }
16
- export declare const configureOrderModuleTransformations: ({ Orders, }: {
17
- Orders: mongodb.Collection<Order>;
18
- }) => OrderTransformations;
19
- //# sourceMappingURL=configureOrdersModule-transformations.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"configureOrdersModule-transformations.d.ts","sourceRoot":"","sources":["../../src/module/configureOrdersModule-transformations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EACL,kBAAkB,EAGnB,MAAM,kCAAkC,CAAC;AAI1C,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAEvF,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,CACV,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,aAAa,EAC5B,YAAY,KAAA,KACT,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAC1C,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,KAAA,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAEjG,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC;IAClC,IAAI,EAAE,CAAC,KAAK,EAAE;QAAE,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;IACnG,YAAY,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,kBAAkB,CAAC;CACpD;AAED,eAAO,MAAM,mCAAmC,gBAE7C;IACD,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;CACnC,KAAG,oBAwIH,CAAC"}