@unchainedshop/core-orders 3.0.0-rc5 → 3.0.0-rc7

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 (130) hide show
  1. package/lib/module/configureOrdersModule-queries.d.ts +2 -2
  2. package/lib/module/configureOrdersModule-queries.d.ts.map +1 -1
  3. package/lib/module/configureOrdersModule-queries.js +2 -2
  4. package/lib/module/configureOrdersModule-queries.js.map +1 -1
  5. package/lib/module/configureOrdersModule.d.ts.map +1 -1
  6. package/lib/module/configureOrdersModule.js +1 -0
  7. package/lib/module/configureOrdersModule.js.map +1 -1
  8. package/package.json +8 -5
  9. package/src/module/configureOrdersModule-queries.ts +3 -3
  10. package/src/module/configureOrdersModule.ts +1 -0
  11. package/lib/db/OrderDiscountTrigger.d.ts +0 -5
  12. package/lib/db/OrderDiscountTrigger.d.ts.map +0 -1
  13. package/lib/db/OrderDiscountTrigger.js +0 -6
  14. package/lib/db/OrderDiscountTrigger.js.map +0 -1
  15. package/lib/director/OrderDiscountAdapter.d.ts +0 -4
  16. package/lib/director/OrderDiscountAdapter.d.ts.map +0 -1
  17. package/lib/director/OrderDiscountAdapter.js +0 -3
  18. package/lib/director/OrderDiscountAdapter.js.map +0 -1
  19. package/lib/director/OrderDiscountConfiguration.d.ts +0 -6
  20. package/lib/director/OrderDiscountConfiguration.d.ts.map +0 -1
  21. package/lib/director/OrderDiscountConfiguration.js +0 -2
  22. package/lib/director/OrderDiscountConfiguration.js.map +0 -1
  23. package/lib/director/OrderDiscountDirector.d.ts +0 -3
  24. package/lib/director/OrderDiscountDirector.d.ts.map +0 -1
  25. package/lib/director/OrderDiscountDirector.js +0 -3
  26. package/lib/director/OrderDiscountDirector.js.map +0 -1
  27. package/lib/director/OrderPricingAdapter.d.ts +0 -22
  28. package/lib/director/OrderPricingAdapter.d.ts.map +0 -1
  29. package/lib/director/OrderPricingAdapter.js +0 -25
  30. package/lib/director/OrderPricingAdapter.js.map +0 -1
  31. package/lib/director/OrderPricingDirector.d.ts +0 -18
  32. package/lib/director/OrderPricingDirector.d.ts.map +0 -1
  33. package/lib/director/OrderPricingDirector.js +0 -39
  34. package/lib/director/OrderPricingDirector.js.map +0 -1
  35. package/lib/director/OrderPricingSheet.d.ts +0 -36
  36. package/lib/director/OrderPricingSheet.d.ts.map +0 -1
  37. package/lib/director/OrderPricingSheet.js +0 -108
  38. package/lib/director/OrderPricingSheet.js.map +0 -1
  39. package/lib/module/configureOrderDeliveriesModule_BACKUP_54554.d.ts +0 -24
  40. package/lib/module/configureOrderDeliveriesModule_BACKUP_54554.d.ts.map +0 -1
  41. package/lib/module/configureOrderDeliveriesModule_BACKUP_54554.js +0 -101
  42. package/lib/module/configureOrderDeliveriesModule_BACKUP_54554.js.map +0 -1
  43. package/lib/module/configureOrderDeliveriesModule_BASE_54554.d.ts +0 -36
  44. package/lib/module/configureOrderDeliveriesModule_BASE_54554.d.ts.map +0 -1
  45. package/lib/module/configureOrderDeliveriesModule_BASE_54554.js +0 -162
  46. package/lib/module/configureOrderDeliveriesModule_BASE_54554.js.map +0 -1
  47. package/lib/module/configureOrderDeliveriesModule_LOCAL_54554.d.ts +0 -23
  48. package/lib/module/configureOrderDeliveriesModule_LOCAL_54554.d.ts.map +0 -1
  49. package/lib/module/configureOrderDeliveriesModule_LOCAL_54554.js +0 -97
  50. package/lib/module/configureOrderDeliveriesModule_LOCAL_54554.js.map +0 -1
  51. package/lib/module/configureOrderDeliveriesModule_REMOTE_54554.d.ts +0 -37
  52. package/lib/module/configureOrderDeliveriesModule_REMOTE_54554.d.ts.map +0 -1
  53. package/lib/module/configureOrderDeliveriesModule_REMOTE_54554.js +0 -166
  54. package/lib/module/configureOrderDeliveriesModule_REMOTE_54554.js.map +0 -1
  55. package/lib/module/configureOrderDiscountsModule_BACKUP_55046.d.ts +0 -26
  56. package/lib/module/configureOrderDiscountsModule_BACKUP_55046.d.ts.map +0 -1
  57. package/lib/module/configureOrderDiscountsModule_BACKUP_55046.js +0 -69
  58. package/lib/module/configureOrderDiscountsModule_BACKUP_55046.js.map +0 -1
  59. package/lib/module/configureOrderDiscountsModule_BASE_55046.d.ts +0 -26
  60. package/lib/module/configureOrderDiscountsModule_BASE_55046.d.ts.map +0 -1
  61. package/lib/module/configureOrderDiscountsModule_BASE_55046.js +0 -178
  62. package/lib/module/configureOrderDiscountsModule_BASE_55046.js.map +0 -1
  63. package/lib/module/configureOrderDiscountsModule_LOCAL_55046.d.ts +0 -25
  64. package/lib/module/configureOrderDiscountsModule_LOCAL_55046.d.ts.map +0 -1
  65. package/lib/module/configureOrderDiscountsModule_LOCAL_55046.js +0 -65
  66. package/lib/module/configureOrderDiscountsModule_LOCAL_55046.js.map +0 -1
  67. package/lib/module/configureOrderDiscountsModule_REMOTE_55046.d.ts +0 -27
  68. package/lib/module/configureOrderDiscountsModule_REMOTE_55046.d.ts.map +0 -1
  69. package/lib/module/configureOrderDiscountsModule_REMOTE_55046.js +0 -182
  70. package/lib/module/configureOrderDiscountsModule_REMOTE_55046.js.map +0 -1
  71. package/lib/module/configureOrderPaymentsModule_BACKUP_55464.d.ts +0 -32
  72. package/lib/module/configureOrderPaymentsModule_BACKUP_55464.d.ts.map +0 -1
  73. package/lib/module/configureOrderPaymentsModule_BACKUP_55464.js +0 -135
  74. package/lib/module/configureOrderPaymentsModule_BACKUP_55464.js.map +0 -1
  75. package/lib/module/configureOrderPaymentsModule_BACKUP_55877.d.ts +0 -32
  76. package/lib/module/configureOrderPaymentsModule_BACKUP_55877.d.ts.map +0 -1
  77. package/lib/module/configureOrderPaymentsModule_BACKUP_55877.js +0 -135
  78. package/lib/module/configureOrderPaymentsModule_BACKUP_55877.js.map +0 -1
  79. package/lib/module/configureOrderPaymentsModule_BASE_55464.d.ts +0 -51
  80. package/lib/module/configureOrderPaymentsModule_BASE_55464.d.ts.map +0 -1
  81. package/lib/module/configureOrderPaymentsModule_BASE_55464.js +0 -243
  82. package/lib/module/configureOrderPaymentsModule_BASE_55464.js.map +0 -1
  83. package/lib/module/configureOrderPaymentsModule_BASE_55877.d.ts +0 -51
  84. package/lib/module/configureOrderPaymentsModule_BASE_55877.d.ts.map +0 -1
  85. package/lib/module/configureOrderPaymentsModule_BASE_55877.js +0 -243
  86. package/lib/module/configureOrderPaymentsModule_BASE_55877.js.map +0 -1
  87. package/lib/module/configureOrderPaymentsModule_LOCAL_55464.d.ts +0 -31
  88. package/lib/module/configureOrderPaymentsModule_LOCAL_55464.d.ts.map +0 -1
  89. package/lib/module/configureOrderPaymentsModule_LOCAL_55464.js +0 -131
  90. package/lib/module/configureOrderPaymentsModule_LOCAL_55464.js.map +0 -1
  91. package/lib/module/configureOrderPaymentsModule_LOCAL_55877.d.ts +0 -31
  92. package/lib/module/configureOrderPaymentsModule_LOCAL_55877.d.ts.map +0 -1
  93. package/lib/module/configureOrderPaymentsModule_LOCAL_55877.js +0 -131
  94. package/lib/module/configureOrderPaymentsModule_LOCAL_55877.js.map +0 -1
  95. package/lib/module/configureOrderPaymentsModule_REMOTE_55464.d.ts +0 -52
  96. package/lib/module/configureOrderPaymentsModule_REMOTE_55464.d.ts.map +0 -1
  97. package/lib/module/configureOrderPaymentsModule_REMOTE_55464.js +0 -247
  98. package/lib/module/configureOrderPaymentsModule_REMOTE_55464.js.map +0 -1
  99. package/lib/module/configureOrderPaymentsModule_REMOTE_55877.d.ts +0 -52
  100. package/lib/module/configureOrderPaymentsModule_REMOTE_55877.d.ts.map +0 -1
  101. package/lib/module/configureOrderPaymentsModule_REMOTE_55877.js +0 -247
  102. package/lib/module/configureOrderPaymentsModule_REMOTE_55877.js.map +0 -1
  103. package/lib/module/configureOrderPositionsModule_BACKUP_56197.d.ts +0 -44
  104. package/lib/module/configureOrderPositionsModule_BACKUP_56197.d.ts.map +0 -1
  105. package/lib/module/configureOrderPositionsModule_BACKUP_56197.js +0 -138
  106. package/lib/module/configureOrderPositionsModule_BACKUP_56197.js.map +0 -1
  107. package/lib/module/configureOrderPositionsModule_BASE_56197.d.ts +0 -60
  108. package/lib/module/configureOrderPositionsModule_BASE_56197.d.ts.map +0 -1
  109. package/lib/module/configureOrderPositionsModule_BASE_56197.js +0 -201
  110. package/lib/module/configureOrderPositionsModule_BASE_56197.js.map +0 -1
  111. package/lib/module/configureOrderPositionsModule_LOCAL_56197.d.ts +0 -43
  112. package/lib/module/configureOrderPositionsModule_LOCAL_56197.d.ts.map +0 -1
  113. package/lib/module/configureOrderPositionsModule_LOCAL_56197.js +0 -134
  114. package/lib/module/configureOrderPositionsModule_LOCAL_56197.js.map +0 -1
  115. package/lib/module/configureOrderPositionsModule_REMOTE_56197.d.ts +0 -61
  116. package/lib/module/configureOrderPositionsModule_REMOTE_56197.d.ts.map +0 -1
  117. package/lib/module/configureOrderPositionsModule_REMOTE_56197.js +0 -205
  118. package/lib/module/configureOrderPositionsModule_REMOTE_56197.js.map +0 -1
  119. package/lib/module/configureOrdersModule-processing.d.ts +0 -28
  120. package/lib/module/configureOrdersModule-processing.d.ts.map +0 -1
  121. package/lib/module/configureOrdersModule-processing.js +0 -341
  122. package/lib/module/configureOrdersModule-processing.js.map +0 -1
  123. package/lib/module/configureOrdersModule-transformations.d.ts +0 -19
  124. package/lib/module/configureOrdersModule-transformations.d.ts.map +0 -1
  125. package/lib/module/configureOrdersModule-transformations.js +0 -111
  126. package/lib/module/configureOrdersModule-transformations.js.map +0 -1
  127. package/lib/types.d.ts +0 -101
  128. package/lib/types.d.ts.map +0 -1
  129. package/lib/types.js +0 -20
  130. package/lib/types.js.map +0 -1
@@ -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":"AACA,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAW,MAAM,wBAAwB,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AA+DvD,MAAM,qBAAqB,GAAa;IACtC,wBAAwB;IACxB,wBAAwB;IACxB,kBAAkB;IAClB,mBAAmB;CACpB,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,eAAuB,EAAE,OAAgB,EAAE,EAAE,CACjF,oBAAoB,CAClB,eAAe,EACf,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CACD,CAAC;AAErC,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,EAC5C,cAAc,GAGf,EAAwB,EAAE;IACzB,cAAc,CAAC,qBAAqB,CAAC,CAAC;IAEtC,OAAO;QACL,UAAU;QACV,iBAAiB,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE;YAC/C,OAAO,cAAc,CAAC,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;QACxE,CAAC;QAED,kBAAkB,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;YACxC,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACzE,OAAO,SAAS,CAAC,OAAO,EAAE,CAAC;QAC7B,CAAC;QAED,kBAAkB;QAClB,SAAS,EAAE,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,YAAY,EAAE,EAAE;YACnE,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,CACrE,aAAa,EACb,KAAK,CAAC,QAAQ,EACd,YAAY,CACb,CAAC;YAEF,OAAO,YAAY,CAAC,cAAc,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBACvE,IAAI,EAAE,aAAa;gBACnB,GAAG,QAAQ;aACZ,CAAC,CAAC,CAAC;QACN,CAAC;QAED,YAAY,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;YACrD,OAAO,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;gBACnC,WAAW,EAAE,aAAa,CAAC,WAAW;gBACtC,QAAQ;gBACR,QAAQ,EAAE,aAAa,CAAC,QAAQ;aACjC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE;YAChC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,eAAe,CAAC,CAAC;YACxD,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,gBAAgB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC1E,MAAM,IAAI,CAAC,wBAAwB,EAAE;gBACnC,aAAa;aACd,CAAC,CAAC;YACH,OAAO,EAAE,GAAG,aAAa,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;QAC/C,CAAC;QAED,eAAe,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;YACrC,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;YAC5D,MAAM,IAAI,CAAC,kBAAkB,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;YACxE,OAAO,MAAM,CAAC,YAAY,CAAC;QAC7B,CAAC;QAED,iBAAiB,EAAE,KAAK,EACtB,EAAE,QAAQ,EAAE,aAAa,EAAE,EAC3B,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,EACjC,YAAY,EACZ,EAAE;YACF,MAAM,QAAQ,GAAG,qBAAqB,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;YACrE,MAAM,QAAQ,GAAQ;gBACpB,IAAI,EAAE;oBACJ,OAAO,EAAE,IAAI,IAAI,EAAE;iBACpB;aACF,CAAC;YAEF,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,aAAa,CAAC,QAAQ,EAAE,CAAC;gBAC7D,QAAQ,CAAC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACpC,CAAC;YAED,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;gBAC3B,MAAM,eAAe,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CACjF,OAAO,EACP,EAAE,aAAa,EAAE,EACjB,YAAY,CACb,CAAC;gBACF,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC;gBAC9C,QAAQ,CAAC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;YAC9C,CAAC;YAED,MAAM,cAAc,CAAC,qBAAqB,CACxC;gBACE,KAAK;gBACL,OAAO;gBACP,aAAa;gBACb,YAAY,EAAE,QAAQ,GAAG,aAAa,CAAC,QAAQ;aAChD,EACD,YAAY,CACb,CAAC;YAEF,MAAM,oBAAoB,GAAG,MAAM,cAAc,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE;gBACrF,cAAc,EAAE,OAAO;aACxB,CAAC,CAAC;YAEH,MAAM,IAAI,CAAC,wBAAwB,EAAE;gBACnC,aAAa,EAAE,oBAAoB;aACpC,CAAC,CAAC;YAEH,OAAO,oBAAoB,CAAC;QAC9B,CAAC;QAED,qCAAqC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;YACzD,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,SAAS,CAAC;gBAC/C;oBACE,MAAM,EAAE;wBACN,SAAS;qBACV;iBACF;gBACD;oBACE,OAAO,EAAE;wBACP,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE,SAAS;wBACrB,YAAY,EAAE,KAAK;wBACnB,EAAE,EAAE,OAAO;qBACZ;iBACF;gBACD;oBACE,MAAM,EAAE;wBACN,cAAc,EAAE,IAAI;qBACrB;iBACF;aACF,CAAC,CAAC,OAAO,EAAE,CAAC;YAEb,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAChD,MAAM,cAAc,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;YAC/D,MAAM,OAAO,CAAC,GAAG,CACf,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE;gBACpC,MAAM,IAAI,CAAC,wBAAwB,EAAE;oBACnC,aAAa;iBACd,CAAC,CAAC;YACL,CAAC,CAAC,CACH,CAAC;YAEF,MAAM,qBAAqB,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC9D,OAAO,qBAAqB,CAAC;QAC/B,CAAC;QAED,gBAAgB,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,EAAE,YAAY,EAAE,EAAE;YAChF,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC;YACjC,wCAAwC;YACxC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;gBACjD,SAAS,EAAE,aAAa,CAAC,SAAS;aACnC,CAAC,CAAC;YACH,MAAM,gBAAgB,GACpB,aAAa;gBACb,CAAC,MAAM,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;oBACnC,kBAAkB,EAAE,aAAa,CAAC,kBAAkB;iBACrD,CAAC,CAAC,CAAC;YACN,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;YAEtC,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAClC,CACE,MAAM,OAAO,CAAC,WAAW,CAAC,aAAa,CACrC;gBACE,OAAO;gBACP,gBAAgB;aACjB,EACD,YAAY,CACb,CACF,CAAC,GAAG,CAAC,KAAK,EAAE,mBAAmB,EAAE,EAAE;gBAClC,MAAM,OAAO,GAAG;oBACd,mBAAmB;oBACnB,gBAAgB;oBAChB,OAAO;oBACP,IAAI,EAAE,aAAa;oBACnB,QAAQ,EAAE,gBAAgB;oBAC1B,KAAK;oBACL,MAAM;oBACN,OAAO,EAAE,WAAW;oBACpB,aAAa,EAAE,KAAK,CAAC,OAAO;oBAC5B,QAAQ,EAAE,aAAa,CAAC,QAAQ;iBACjC,CAAC;gBACF,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,iBAAiB,CACvE,mBAAmB,EACnB,OAAO,EACP,YAAY,CACb,CAAC;gBAEF,OAAO;oBACL,qBAAqB,EAAE,mBAAmB,CAAC,GAAG;oBAC9C,GAAG,QAAQ;iBACZ,CAAC;YACJ,CAAC,CAAC,CACH,CAAC;YAEF,OAAO,cAAc,CAAC,gBAAgB,CACpC,oBAAoB,CAAC,aAAa,CAAC,GAAG,CAAC,EACvC;gBACE,IAAI,EAAE,EAAE,UAAU,EAAE;aACrB,EACD;gBACE,cAAc,EAAE,OAAO;aACxB,CACF,CAAC;QACJ,CAAC;QAED,iBAAiB,EAAE,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,EAAE;YACvD,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAC/D,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,CAAC,aAAa,EAAE,EACnE,YAAY,CACb,CAAC;YACF,OAAO,cAAc,CAAC,gBAAgB,CACpC,qBAAqB,CAAC,aAAa,CAAC,GAAG,CAAC,EACxC;gBACE,IAAI,EAAE,EAAE,WAAW,EAAE;aACtB,EACD;gBACE,cAAc,EAAE,OAAO;aACxB,CACF,CAAC;QACJ,CAAC;QAED,cAAc,EAAE,KAAK,EAAE,aAA4B,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,EAAE;YACvF,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC;YACjC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,GAAG,aAAa,CAAC;YACtF,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,IAAI,eAAe,CAAC;YAE7C,kBAAkB;YAClB,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CACpE,OAAO,EACP,EAAE,aAAa,EAAE,EACjB,YAAY,CACb,CAAC;YAEF,gCAAgC;YAChC,MAAM,cAAc,CAAC,qBAAqB,CACxC;gBACE,KAAK;gBACL,OAAO;gBACP,aAAa;gBACb,YAAY,EAAE,QAAQ;aACvB,EACD,YAAY,CACb,CAAC;YAEF,+BAA+B;YAC/B,MAAM,QAAQ,GAAkC;gBAC9C,OAAO;gBACP,SAAS,EAAE,eAAe,CAAC,GAAG;gBAC9B,iBAAiB,EAAE,OAAO,CAAC,GAAG;gBAC9B,aAAa,EAAE,aAAa,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE;gBAC1D,GAAG,KAAK;aACT,CAAC;YAEF,MAAM,cAAc,CAAC,SAAS,CAC5B,QAAQ,EACR;gBACE,IAAI,EAAE;oBACJ,OAAO,EAAE,IAAI,IAAI,EAAE;iBACpB;gBACD,IAAI,EAAE,EAAE,QAAQ,EAAE;gBAClB,YAAY,EAAE;oBACZ,GAAG,EAAE,kBAAkB,EAAE;oBACzB,OAAO,EAAE,IAAI,IAAI,EAAE;oBACnB,WAAW,EAAE,EAAE;oBACf,UAAU,EAAE,EAAE;oBACd,OAAO;oBACP,SAAS,EAAE,eAAe,CAAC,GAAG;oBAC9B,iBAAiB,EAAE,OAAO,CAAC,GAAG;oBAC9B,aAAa;oBACb,GAAG,KAAK;iBACT;aACF,EACD,EAAE,MAAM,EAAE,IAAI,EAAE,CACjB,CAAC;YAEF,MAAM,qBAAqB,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAErE,MAAM,IAAI,CAAC,mBAAmB,EAAE,EAAE,aAAa,EAAE,qBAAqB,EAAE,CAAC,CAAC;YAE1E,OAAO,qBAAqB,CAAC;QAC/B,CAAC;QACD,oBAAoB,EAAE,KAAK,EAAE,OAAe,EAAE,EAAE;YAC9C,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,cAAc,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;YACtE,OAAO,YAAY,CAAC;QACtB,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -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"}