@unchainedshop/core-orders 2.0.4 → 2.0.6

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.
@@ -2,11 +2,12 @@ import { Collection } from '@unchainedshop/types/common.js';
2
2
  import { Order, OrderMutations, OrdersModule } from '@unchainedshop/types/orders.js';
3
3
  import { OrderDelivery } from '@unchainedshop/types/orders.deliveries.js';
4
4
  import { OrderPayment } from '@unchainedshop/types/orders.payments.js';
5
- export declare const configureOrderModuleMutations: ({ Orders, OrderDeliveries, OrderPayments, initProviders, updateStatus, updateCalculation, }: {
5
+ import { OrderPosition } from '@unchainedshop/types/orders.positions.js';
6
+ export declare const configureOrderModuleMutations: ({ Orders, OrderDeliveries, OrderPayments, OrderPositions, initProviders, updateCalculation, }: {
6
7
  Orders: Collection<Order>;
7
8
  OrderDeliveries: Collection<OrderDelivery>;
8
9
  OrderPayments: Collection<OrderPayment>;
10
+ OrderPositions: Collection<OrderPosition>;
9
11
  initProviders: OrdersModule['initProviders'];
10
- updateStatus: OrdersModule['updateStatus'];
11
12
  updateCalculation: OrdersModule['updateCalculation'];
12
13
  }) => OrderMutations;
@@ -10,7 +10,7 @@ const ORDER_EVENTS = [
10
10
  'ORDER_SET_PAYMENT_PROVIDER',
11
11
  'ORDER_UPDATE',
12
12
  ];
13
- export const configureOrderModuleMutations = ({ Orders, OrderDeliveries, OrderPayments, initProviders, updateStatus, updateCalculation, }) => {
13
+ export const configureOrderModuleMutations = ({ Orders, OrderDeliveries, OrderPayments, OrderPositions, initProviders, updateCalculation, }) => {
14
14
  registerEvents(ORDER_EVENTS);
15
15
  const mutations = generateDbMutations(Orders, OrdersSchema, {
16
16
  permanentlyDeleteByDefault: true,
@@ -52,6 +52,20 @@ export const configureOrderModuleMutations = ({ Orders, OrderDeliveries, OrderPa
52
52
  }).toArray();
53
53
  await Promise.all(orders.map((order) => initProviders(order, unchainedAPI)));
54
54
  },
55
+ setCartOwner: async ({ orderId, userId }) => {
56
+ await Orders.updateOne(generateDbFilterById(orderId), {
57
+ $set: {
58
+ userId,
59
+ },
60
+ });
61
+ },
62
+ moveCartPositions: async ({ fromOrderId, toOrderId }) => {
63
+ await OrderPositions.updateMany({ orderId: fromOrderId }, {
64
+ $set: {
65
+ orderId: toOrderId,
66
+ },
67
+ });
68
+ },
55
69
  setDeliveryProvider: async (orderId, deliveryProviderId, unchainedAPI) => {
56
70
  const { modules } = unchainedAPI;
57
71
  const delivery = await OrderDeliveries.findOne({
@@ -153,7 +167,6 @@ export const configureOrderModuleMutations = ({ Orders, OrderDeliveries, OrderPa
153
167
  }
154
168
  return false;
155
169
  },
156
- updateStatus,
157
170
  updateCalculation,
158
171
  };
159
172
  };
@@ -1 +1 @@
1
- {"version":3,"file":"configureOrdersModule-mutations.js","sourceRoot":"","sources":["../../src/module/configureOrdersModule-mutations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configureOrdersModule-mutations.js","sourceRoot":"","sources":["../../src/module/configureOrdersModule-mutations.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,11 @@
1
1
  import { Collection } from '@unchainedshop/types/common.js';
2
- import { Order, OrderProcessing, OrdersModule } from '@unchainedshop/types/orders.js';
2
+ import { Order, OrderProcessing } from '@unchainedshop/types/orders.js';
3
3
  import { OrderDelivery } from '@unchainedshop/types/orders.deliveries.js';
4
4
  import { OrderPayment } from '@unchainedshop/types/orders.payments.js';
5
5
  import { OrderPosition } from '@unchainedshop/types/orders.positions.js';
6
- export declare const configureOrderModuleProcessing: ({ Orders, OrderPositions, OrderDeliveries, OrderPayments, updateStatus, }: {
6
+ export declare const configureOrderModuleProcessing: ({ Orders, OrderPositions, OrderDeliveries, OrderPayments, }: {
7
7
  Orders: Collection<Order>;
8
8
  OrderPositions: Collection<OrderPosition>;
9
9
  OrderDeliveries: Collection<OrderDelivery>;
10
10
  OrderPayments: Collection<OrderPayment>;
11
- updateStatus: OrdersModule['updateStatus'];
12
11
  }) => OrderProcessing;
@@ -4,9 +4,89 @@ import { log } from '@unchainedshop/logger';
4
4
  import { generateDbFilterById } from '@unchainedshop/utils';
5
5
  import { ProductType } from '@unchainedshop/types/products.js';
6
6
  import { ordersSettings } from '../orders-settings.js';
7
- const ORDER_PROCESSING_EVENTS = ['ORDER_CHECKOUT', 'ORDER_CONFIRMED', 'ORDER_FULLFILLED'];
8
- export const configureOrderModuleProcessing = ({ Orders, OrderPositions, OrderDeliveries, OrderPayments, updateStatus, }) => {
7
+ const ORDER_PROCESSING_EVENTS = [
8
+ 'ORDER_CHECKOUT',
9
+ 'ORDER_CONFIRMED',
10
+ 'ORDER_REJECTED',
11
+ 'ORDER_FULLFILLED',
12
+ ];
13
+ export const configureOrderModuleProcessing = ({ Orders, OrderPositions, OrderDeliveries, OrderPayments, }) => {
9
14
  registerEvents(ORDER_PROCESSING_EVENTS);
15
+ const findNewOrderNumber = async (order, index = 0) => {
16
+ const newHashID = ordersSettings.orderNumberHashFn(order, index);
17
+ if ((await Orders.countDocuments({ orderNumber: newHashID }, { limit: 1 })) === 0) {
18
+ return newHashID;
19
+ }
20
+ return findNewOrderNumber(order, index + 1);
21
+ };
22
+ const updateStatus = async (orderId, { status, info }) => {
23
+ const selector = generateDbFilterById(orderId);
24
+ const order = await Orders.findOne(selector, {});
25
+ if (order.status === status)
26
+ return order;
27
+ const date = new Date();
28
+ const $set = {
29
+ status,
30
+ updated: new Date(),
31
+ };
32
+ switch (status) {
33
+ // explicitly use fallthrough here!
34
+ case OrderStatus.FULLFILLED:
35
+ if (!order.fullfilled) {
36
+ $set.fullfilled = date;
37
+ }
38
+ case OrderStatus.REJECTED: // eslint-disable-line no-fallthrough
39
+ if (!order.rejected) {
40
+ $set.rejected = date;
41
+ }
42
+ case OrderStatus.CONFIRMED: // eslint-disable-line no-fallthrough
43
+ if (!order.confirmed) {
44
+ $set.confirmed = date;
45
+ }
46
+ case OrderStatus.PENDING: // eslint-disable-line no-fallthrough
47
+ if (!order.ordered) {
48
+ $set.ordered = date;
49
+ }
50
+ if (!order.orderNumber) {
51
+ // Order Numbers can be set by the user
52
+ $set.orderNumber = await findNewOrderNumber(order);
53
+ }
54
+ break;
55
+ default:
56
+ break;
57
+ }
58
+ const modifier = {
59
+ $set,
60
+ $push: {
61
+ log: {
62
+ date,
63
+ status,
64
+ info,
65
+ },
66
+ },
67
+ };
68
+ log(`New Status: ${status}`, { orderId });
69
+ await Orders.updateOne(selector, modifier);
70
+ const updatedOrder = await Orders.findOne(selector, {});
71
+ if (order.status === null) {
72
+ // The first time that an order transitions away from cart is a checkout event
73
+ await emit('ORDER_CHECKOUT', { order });
74
+ }
75
+ switch (status) {
76
+ case OrderStatus.FULLFILLED:
77
+ await emit('ORDER_FULLFILLED', { order });
78
+ break;
79
+ case OrderStatus.REJECTED:
80
+ await emit('ORDER_REJECTED', { order });
81
+ break;
82
+ case OrderStatus.CONFIRMED:
83
+ await emit('ORDER_CONFIRMED', { order });
84
+ break;
85
+ default:
86
+ break;
87
+ }
88
+ return updatedOrder;
89
+ };
10
90
  const findOrderPositions = async (order) => OrderPositions.find({
11
91
  orderId: order._id,
12
92
  quantity: { $gt: 0 },
@@ -25,7 +105,7 @@ export const configureOrderModuleProcessing = ({ Orders, OrderPositions, OrderDe
25
105
  errors.push('No payment provider selected');
26
106
  return errors;
27
107
  };
28
- const itemValidationErrors = async (order, { modules }) => {
108
+ const itemValidationErrors = async (order, unchainedAPI) => {
29
109
  // Check if items are valid
30
110
  const orderPositions = await findOrderPositions(order);
31
111
  if (orderPositions.length === 0) {
@@ -38,17 +118,25 @@ export const configureOrderModuleProcessing = ({ Orders, OrderPositions, OrderDe
38
118
  log(`OrderPosition ${orderPosition._id} -> Validate ${orderPosition.quantity}`, {
39
119
  orderId: orderPosition.orderId,
40
120
  });
41
- const product = await modules.products.findProduct({
121
+ const product = await unchainedAPI.modules.products.findProduct({
42
122
  productId: orderPosition.productId,
43
123
  });
44
- if (!modules.products.isActive(product)) {
45
- errors.push(new Error('This product is not available anymore'));
124
+ try {
125
+ await ordersSettings.validateOrderPosition({
126
+ order,
127
+ product,
128
+ configuration: orderPosition.configuration,
129
+ quantityDiff: 0,
130
+ }, unchainedAPI);
131
+ }
132
+ catch (e) {
133
+ errors.push(e);
46
134
  }
47
135
  const quotation = orderPosition.quotationId &&
48
- (await modules.quotations.findQuotation({
136
+ (await unchainedAPI.modules.quotations.findQuotation({
49
137
  quotationId: orderPosition.quotationId,
50
138
  }));
51
- if (quotation && !modules.quotations.isProposalValid(quotation)) {
139
+ if (quotation && !unchainedAPI.modules.quotations.isProposalValid(quotation)) {
52
140
  errors.push(new Error('Quotation expired or fullfiled, please request a new offer'));
53
141
  }
54
142
  return errors;
@@ -92,20 +180,16 @@ export const configureOrderModuleProcessing = ({ Orders, OrderPositions, OrderDe
92
180
  const findNextStatus = async (status, order, unchainedAPI) => {
93
181
  if (status === null) {
94
182
  if ((await missingInputDataForCheckout(order)).length === 0) {
95
- await emit('ORDER_CHECKOUT', { order });
96
183
  return OrderStatus.PENDING;
97
184
  }
98
185
  }
99
186
  if (status === OrderStatus.PENDING) {
100
187
  if (await isAutoConfirmationEnabled(order, unchainedAPI)) {
101
- await emit('ORDER_CONFIRMED', { order });
102
188
  return OrderStatus.CONFIRMED;
103
189
  }
104
190
  }
105
191
  if (status === OrderStatus.CONFIRMED) {
106
- const isFullfilled = await isAutoFullfillmentEnabled(order, unchainedAPI);
107
- if (isFullfilled) {
108
- await emit('ORDER_FULLFILLED', { order });
192
+ if (await isAutoFullfillmentEnabled(order, unchainedAPI)) {
109
193
  return OrderStatus.FULLFILLED;
110
194
  }
111
195
  }
@@ -178,20 +262,6 @@ export const configureOrderModuleProcessing = ({ Orders, OrderPositions, OrderDe
178
262
  countryCode,
179
263
  }, unchainedAPI);
180
264
  },
181
- setCartOwner: async ({ orderId, userId }) => {
182
- await Orders.updateOne(generateDbFilterById(orderId), {
183
- $set: {
184
- userId,
185
- },
186
- });
187
- },
188
- moveCartPositions: async ({ fromOrderId, toOrderId }) => {
189
- await OrderPositions.updateMany({ orderId: fromOrderId }, {
190
- $set: {
191
- orderId: toOrderId,
192
- },
193
- });
194
- },
195
265
  processOrder: async (initialOrder, params, unchainedAPI) => {
196
266
  const { modules } = unchainedAPI;
197
267
  const { paymentContext, deliveryContext, nextStatus: forceNextStatus } = params;
@@ -230,7 +300,7 @@ export const configureOrderModuleProcessing = ({ Orders, OrderPositions, OrderDe
230
300
  order = await updateStatus(orderId, {
231
301
  status: OrderStatus.CONFIRMED,
232
302
  info: 'before delivery',
233
- }, unchainedAPI);
303
+ });
234
304
  await modules.orders.deliveries.send(orderDelivery, {
235
305
  order,
236
306
  deliveryContext,
@@ -278,7 +348,7 @@ export const configureOrderModuleProcessing = ({ Orders, OrderPositions, OrderDe
278
348
  }
279
349
  nextStatus = await findNextStatus(nextStatus, order, unchainedAPI);
280
350
  }
281
- order = await updateStatus(order._id, { status: nextStatus, info: 'order processed' }, unchainedAPI);
351
+ order = await updateStatus(order._id, { status: nextStatus, info: 'order processed' });
282
352
  if (initialOrder.status !== order.status) {
283
353
  if (order.status === OrderStatus.REJECTED) {
284
354
  await modules.orders.sendOrderRejectionToCustomer(order, params, unchainedAPI);
@@ -319,6 +389,7 @@ export const configureOrderModuleProcessing = ({ Orders, OrderPositions, OrderDe
319
389
  });
320
390
  return order;
321
391
  },
392
+ updateStatus,
322
393
  };
323
394
  };
324
395
  //# sourceMappingURL=configureOrdersModule-processing.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"configureOrdersModule-processing.js","sourceRoot":"","sources":["../../src/module/configureOrdersModule-processing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configureOrdersModule-processing.js","sourceRoot":"","sources":["../../src/module/configureOrdersModule-processing.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,3 @@
1
- import { OrderStatus } from '@unchainedshop/types/orders.js';
2
- import { log } from '@unchainedshop/logger';
3
1
  import { generateDbFilterById } from '@unchainedshop/utils';
4
2
  import { OrderDeliveriesCollection } from '../db/OrderDeliveriesCollection.js';
5
3
  import { OrderDiscountsCollection } from '../db/OrderDiscountsCollection.js';
@@ -31,63 +29,6 @@ export const configureOrdersModule = async ({ db, options: orderOptions = {}, })
31
29
  }, {}).toArray();
32
30
  const findOrderDelivery = async (order) => OrderDeliveries.findOne(generateDbFilterById(order.deliveryId), {});
33
31
  const findOrderPayment = async (order) => OrderPayments.findOne(generateDbFilterById(order.paymentId), {});
34
- const findNewOrderNumber = async (order, index = 0) => {
35
- const newHashID = ordersSettings.orderNumberHashFn(order, index);
36
- if ((await Orders.countDocuments({ orderNumber: newHashID }, { limit: 1 })) === 0) {
37
- return newHashID;
38
- }
39
- return findNewOrderNumber(order, index + 1);
40
- };
41
- const updateStatus = async (orderId, { status, info }) => {
42
- const selector = generateDbFilterById(orderId);
43
- const order = await Orders.findOne(selector, {});
44
- if (order.status === status)
45
- return order;
46
- const date = new Date();
47
- const $set = {
48
- status,
49
- updated: new Date(),
50
- };
51
- switch (status) {
52
- // explicitly use fallthrough here!
53
- case OrderStatus.FULLFILLED:
54
- if (!order.fullfilled) {
55
- $set.fullfilled = date;
56
- }
57
- case OrderStatus.REJECTED: // eslint-disable-line no-fallthrough
58
- if (!order.rejected) {
59
- $set.rejected = date;
60
- }
61
- case OrderStatus.CONFIRMED: // eslint-disable-line no-fallthrough
62
- if (!order.confirmed) {
63
- $set.confirmed = date;
64
- }
65
- case OrderStatus.PENDING: // eslint-disable-line no-fallthrough
66
- if (!order.ordered) {
67
- $set.ordered = date;
68
- }
69
- if (!order.orderNumber) {
70
- // Order Numbers can be set by the user
71
- $set.orderNumber = await findNewOrderNumber(order);
72
- }
73
- break;
74
- default:
75
- break;
76
- }
77
- const modifier = {
78
- $set,
79
- $push: {
80
- log: {
81
- date,
82
- status,
83
- info,
84
- },
85
- },
86
- };
87
- log(`New Status: ${status}`, { orderId });
88
- await Orders.updateOne(selector, modifier);
89
- return Orders.findOne(selector, {});
90
- };
91
32
  const updateDiscounts = async (order, unchainedAPI) => {
92
33
  const { modules } = unchainedAPI;
93
34
  // 1. go through existing order-discounts and check if discount still valid,
@@ -195,15 +136,14 @@ export const configureOrdersModule = async ({ db, options: orderOptions = {}, })
195
136
  OrderDeliveries,
196
137
  OrderPayments,
197
138
  OrderPositions,
198
- updateStatus,
199
139
  });
200
140
  const orderMutations = configureOrderModuleMutations({
201
141
  Orders,
202
142
  OrderDeliveries,
203
143
  OrderPayments,
144
+ OrderPositions,
204
145
  initProviders,
205
146
  updateCalculation,
206
- updateStatus,
207
147
  });
208
148
  const orderDiscountsModule = configureOrderDiscountsModule({
209
149
  OrderDiscounts,
@@ -1 +1 @@
1
- {"version":3,"file":"configureOrdersModule.js","sourceRoot":"","sources":["../../src/module/configureOrdersModule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configureOrdersModule.js","sourceRoot":"","sources":["../../src/module/configureOrdersModule.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unchainedshop/core-orders",
3
- "version": "2.0.4",
3
+ "version": "2.0.6",
4
4
  "main": "lib/orders-index.js",
5
5
  "exports": {
6
6
  ".": "./lib/orders-index.js",
@@ -31,15 +31,15 @@
31
31
  },
32
32
  "homepage": "https://github.com/unchainedshop/unchained#readme",
33
33
  "dependencies": {
34
- "@unchainedshop/events": "^2.0.4",
35
- "@unchainedshop/logger": "^2.0.4",
36
- "@unchainedshop/utils": "^2.0.4",
34
+ "@unchainedshop/events": "^2.0.6",
35
+ "@unchainedshop/logger": "^2.0.6",
36
+ "@unchainedshop/utils": "^2.0.6",
37
37
  "simpl-schema": "=3.2.0"
38
38
  },
39
39
  "devDependencies": {
40
40
  "@types/node": "^18.13.0",
41
- "@unchainedshop/types": "^2.0.4",
42
- "jest": "^29.4.2",
41
+ "@unchainedshop/types": "^2.0.6",
42
+ "jest": "^29.4.3",
43
43
  "ts-jest": "^29.0.5",
44
44
  "typescript": "^4.9.5"
45
45
  }
@@ -6,6 +6,7 @@ import { OrderPayment } from '@unchainedshop/types/orders.payments.js';
6
6
  import { emit, registerEvents } from '@unchainedshop/events';
7
7
  import { log, LogLevel } from '@unchainedshop/logger';
8
8
  import { generateDbFilterById, generateDbMutations } from '@unchainedshop/utils';
9
+ import { OrderPosition } from '@unchainedshop/types/orders.positions.js';
9
10
  import { OrdersSchema } from '../db/OrdersSchema.js';
10
11
 
11
12
  const ORDER_EVENTS: string[] = [
@@ -20,15 +21,15 @@ export const configureOrderModuleMutations = ({
20
21
  Orders,
21
22
  OrderDeliveries,
22
23
  OrderPayments,
24
+ OrderPositions,
23
25
  initProviders,
24
- updateStatus,
25
26
  updateCalculation,
26
27
  }: {
27
28
  Orders: Collection<Order>;
28
29
  OrderDeliveries: Collection<OrderDelivery>;
29
30
  OrderPayments: Collection<OrderPayment>;
31
+ OrderPositions: Collection<OrderPosition>;
30
32
  initProviders: OrdersModule['initProviders'];
31
- updateStatus: OrdersModule['updateStatus'];
32
33
  updateCalculation: OrdersModule['updateCalculation'];
33
34
  }): OrderMutations => {
34
35
  registerEvents(ORDER_EVENTS);
@@ -84,6 +85,25 @@ export const configureOrderModuleMutations = ({
84
85
  await Promise.all(orders.map((order) => initProviders(order, unchainedAPI)));
85
86
  },
86
87
 
88
+ setCartOwner: async ({ orderId, userId }) => {
89
+ await Orders.updateOne(generateDbFilterById(orderId), {
90
+ $set: {
91
+ userId,
92
+ },
93
+ });
94
+ },
95
+
96
+ moveCartPositions: async ({ fromOrderId, toOrderId }) => {
97
+ await OrderPositions.updateMany(
98
+ { orderId: fromOrderId },
99
+ {
100
+ $set: {
101
+ orderId: toOrderId,
102
+ },
103
+ },
104
+ );
105
+ },
106
+
87
107
  setDeliveryProvider: async (orderId, deliveryProviderId, unchainedAPI) => {
88
108
  const { modules } = unchainedAPI;
89
109
  const delivery = await OrderDeliveries.findOne({
@@ -212,7 +232,6 @@ export const configureOrderModuleMutations = ({
212
232
  return false;
213
233
  },
214
234
 
215
- updateStatus,
216
235
  updateCalculation,
217
236
  };
218
237
  };
@@ -1,4 +1,4 @@
1
- import { Collection } from '@unchainedshop/types/common.js';
1
+ import { Collection, Update } from '@unchainedshop/types/common.js';
2
2
  import { Order, OrderStatus, OrderProcessing, OrdersModule } from '@unchainedshop/types/orders.js';
3
3
  import { OrderDelivery } from '@unchainedshop/types/orders.deliveries.js';
4
4
  import { OrderPayment } from '@unchainedshop/types/orders.payments.js';
@@ -10,23 +10,110 @@ import { ProductType } from '@unchainedshop/types/products.js';
10
10
  import { UnchainedCore } from '@unchainedshop/types/core.js';
11
11
  import { ordersSettings } from '../orders-settings.js';
12
12
 
13
- const ORDER_PROCESSING_EVENTS: string[] = ['ORDER_CHECKOUT', 'ORDER_CONFIRMED', 'ORDER_FULLFILLED'];
13
+ const ORDER_PROCESSING_EVENTS: string[] = [
14
+ 'ORDER_CHECKOUT',
15
+ 'ORDER_CONFIRMED',
16
+ 'ORDER_REJECTED',
17
+ 'ORDER_FULLFILLED',
18
+ ];
14
19
 
15
20
  export const configureOrderModuleProcessing = ({
16
21
  Orders,
17
22
  OrderPositions,
18
23
  OrderDeliveries,
19
24
  OrderPayments,
20
- updateStatus,
21
25
  }: {
22
26
  Orders: Collection<Order>;
23
27
  OrderPositions: Collection<OrderPosition>;
24
28
  OrderDeliveries: Collection<OrderDelivery>;
25
29
  OrderPayments: Collection<OrderPayment>;
26
- updateStatus: OrdersModule['updateStatus'];
27
30
  }): OrderProcessing => {
28
31
  registerEvents(ORDER_PROCESSING_EVENTS);
29
32
 
33
+ const findNewOrderNumber = async (order: Order, index = 0) => {
34
+ const newHashID = ordersSettings.orderNumberHashFn(order, index);
35
+ if ((await Orders.countDocuments({ orderNumber: newHashID }, { limit: 1 })) === 0) {
36
+ return newHashID;
37
+ }
38
+ return findNewOrderNumber(order, index + 1);
39
+ };
40
+
41
+ const updateStatus: OrdersModule['updateStatus'] = async (orderId, { status, info }) => {
42
+ const selector = generateDbFilterById(orderId);
43
+ const order = await Orders.findOne(selector, {});
44
+
45
+ if (order.status === status) return order;
46
+
47
+ const date = new Date();
48
+ const $set: Partial<Order> = {
49
+ status,
50
+ updated: new Date(),
51
+ };
52
+
53
+ switch (status) {
54
+ // explicitly use fallthrough here!
55
+ case OrderStatus.FULLFILLED:
56
+ if (!order.fullfilled) {
57
+ $set.fullfilled = date;
58
+ }
59
+ case OrderStatus.REJECTED: // eslint-disable-line no-fallthrough
60
+ if (!order.rejected) {
61
+ $set.rejected = date;
62
+ }
63
+ case OrderStatus.CONFIRMED: // eslint-disable-line no-fallthrough
64
+ if (!order.confirmed) {
65
+ $set.confirmed = date;
66
+ }
67
+ case OrderStatus.PENDING: // eslint-disable-line no-fallthrough
68
+ if (!order.ordered) {
69
+ $set.ordered = date;
70
+ }
71
+ if (!order.orderNumber) {
72
+ // Order Numbers can be set by the user
73
+ $set.orderNumber = await findNewOrderNumber(order);
74
+ }
75
+ break;
76
+ default:
77
+ break;
78
+ }
79
+
80
+ const modifier: Update<Order> = {
81
+ $set,
82
+ $push: {
83
+ log: {
84
+ date,
85
+ status,
86
+ info,
87
+ },
88
+ },
89
+ };
90
+
91
+ log(`New Status: ${status}`, { orderId });
92
+
93
+ await Orders.updateOne(selector, modifier);
94
+
95
+ const updatedOrder = await Orders.findOne(selector, {});
96
+ if (order.status === null) {
97
+ // The first time that an order transitions away from cart is a checkout event
98
+ await emit('ORDER_CHECKOUT', { order });
99
+ }
100
+ switch (status) {
101
+ case OrderStatus.FULLFILLED:
102
+ await emit('ORDER_FULLFILLED', { order });
103
+ break;
104
+ case OrderStatus.REJECTED:
105
+ await emit('ORDER_REJECTED', { order });
106
+ break;
107
+ case OrderStatus.CONFIRMED:
108
+ await emit('ORDER_CONFIRMED', { order });
109
+ break;
110
+ default:
111
+ break;
112
+ }
113
+
114
+ return updatedOrder;
115
+ };
116
+
30
117
  const findOrderPositions = async (order: Order) =>
31
118
  OrderPositions.find({
32
119
  orderId: order._id,
@@ -48,7 +135,7 @@ export const configureOrderModuleProcessing = ({
48
135
  return errors;
49
136
  };
50
137
 
51
- const itemValidationErrors = async (order: Order, { modules }: UnchainedCore) => {
138
+ const itemValidationErrors = async (order: Order, unchainedAPI: UnchainedCore) => {
52
139
  // Check if items are valid
53
140
  const orderPositions = await findOrderPositions(order);
54
141
  if (orderPositions.length === 0) {
@@ -64,20 +151,30 @@ export const configureOrderModuleProcessing = ({
64
151
  orderId: orderPosition.orderId,
65
152
  });
66
153
 
67
- const product = await modules.products.findProduct({
154
+ const product = await unchainedAPI.modules.products.findProduct({
68
155
  productId: orderPosition.productId,
69
156
  });
70
157
 
71
- if (!modules.products.isActive(product)) {
72
- errors.push(new Error('This product is not available anymore'));
158
+ try {
159
+ await ordersSettings.validateOrderPosition(
160
+ {
161
+ order,
162
+ product,
163
+ configuration: orderPosition.configuration,
164
+ quantityDiff: 0,
165
+ },
166
+ unchainedAPI,
167
+ );
168
+ } catch (e) {
169
+ errors.push(e);
73
170
  }
74
171
 
75
172
  const quotation =
76
173
  orderPosition.quotationId &&
77
- (await modules.quotations.findQuotation({
174
+ (await unchainedAPI.modules.quotations.findQuotation({
78
175
  quotationId: orderPosition.quotationId,
79
176
  }));
80
- if (quotation && !modules.quotations.isProposalValid(quotation)) {
177
+ if (quotation && !unchainedAPI.modules.quotations.isProposalValid(quotation)) {
81
178
  errors.push(new Error('Quotation expired or fullfiled, please request a new offer'));
82
179
  }
83
180
  return errors;
@@ -135,25 +232,21 @@ export const configureOrderModuleProcessing = ({
135
232
  status: OrderStatus | null,
136
233
  order: Order,
137
234
  unchainedAPI: UnchainedCore,
138
- ): Promise<OrderStatus> => {
235
+ ): Promise<OrderStatus | null> => {
139
236
  if (status === null) {
140
237
  if ((await missingInputDataForCheckout(order)).length === 0) {
141
- await emit('ORDER_CHECKOUT', { order });
142
238
  return OrderStatus.PENDING;
143
239
  }
144
240
  }
145
241
 
146
242
  if (status === OrderStatus.PENDING) {
147
243
  if (await isAutoConfirmationEnabled(order, unchainedAPI)) {
148
- await emit('ORDER_CONFIRMED', { order });
149
244
  return OrderStatus.CONFIRMED;
150
245
  }
151
246
  }
152
247
 
153
248
  if (status === OrderStatus.CONFIRMED) {
154
- const isFullfilled = await isAutoFullfillmentEnabled(order, unchainedAPI);
155
- if (isFullfilled) {
156
- await emit('ORDER_FULLFILLED', { order });
249
+ if (await isAutoFullfillmentEnabled(order, unchainedAPI)) {
157
250
  return OrderStatus.FULLFILLED;
158
251
  }
159
252
  }
@@ -262,25 +355,6 @@ export const configureOrderModuleProcessing = ({
262
355
  );
263
356
  },
264
357
 
265
- setCartOwner: async ({ orderId, userId }) => {
266
- await Orders.updateOne(generateDbFilterById(orderId), {
267
- $set: {
268
- userId,
269
- },
270
- });
271
- },
272
-
273
- moveCartPositions: async ({ fromOrderId, toOrderId }) => {
274
- await OrderPositions.updateMany(
275
- { orderId: fromOrderId },
276
- {
277
- $set: {
278
- orderId: toOrderId,
279
- },
280
- },
281
- );
282
- },
283
-
284
358
  processOrder: async (initialOrder, params, unchainedAPI) => {
285
359
  const { modules } = unchainedAPI;
286
360
  const { paymentContext, deliveryContext, nextStatus: forceNextStatus } = params;
@@ -335,14 +409,10 @@ export const configureOrderModuleProcessing = ({
335
409
  // we have to stop here shortly to complete the confirmation
336
410
  // before auto delivery is started, else we have no chance to create
337
411
  // numbers that are needed for delivery
338
- order = await updateStatus(
339
- orderId,
340
- {
341
- status: OrderStatus.CONFIRMED,
342
- info: 'before delivery',
343
- },
344
- unchainedAPI,
345
- );
412
+ order = await updateStatus(orderId, {
413
+ status: OrderStatus.CONFIRMED,
414
+ info: 'before delivery',
415
+ });
346
416
 
347
417
  await modules.orders.deliveries.send(
348
418
  orderDelivery,
@@ -423,11 +493,7 @@ export const configureOrderModuleProcessing = ({
423
493
  nextStatus = await findNextStatus(nextStatus, order, unchainedAPI);
424
494
  }
425
495
 
426
- order = await updateStatus(
427
- order._id,
428
- { status: nextStatus, info: 'order processed' },
429
- unchainedAPI,
430
- );
496
+ order = await updateStatus(order._id, { status: nextStatus, info: 'order processed' });
431
497
 
432
498
  if (initialOrder.status !== order.status) {
433
499
  if (order.status === OrderStatus.REJECTED) {
@@ -475,5 +541,7 @@ export const configureOrderModuleProcessing = ({
475
541
 
476
542
  return order;
477
543
  },
544
+
545
+ updateStatus,
478
546
  };
479
547
  };
@@ -1,10 +1,8 @@
1
- import { Update } from '@unchainedshop/types/common.js';
2
1
  import { ModuleInput, UnchainedCore } from '@unchainedshop/types/core.js';
3
- import { Order, OrderStatus, OrdersModule, OrdersSettingsOptions } from '@unchainedshop/types/orders.js';
2
+ import { Order, OrdersModule, OrdersSettingsOptions } from '@unchainedshop/types/orders.js';
4
3
  import { OrderDelivery } from '@unchainedshop/types/orders.deliveries.js';
5
4
  import { OrderPayment } from '@unchainedshop/types/orders.payments.js';
6
5
  import { OrderPosition } from '@unchainedshop/types/orders.positions.js';
7
- import { log } from '@unchainedshop/logger';
8
6
  import { generateDbFilterById } from '@unchainedshop/utils';
9
7
  import { OrderDeliveriesCollection } from '../db/OrderDeliveriesCollection.js';
10
8
  import { OrderDiscountsCollection } from '../db/OrderDiscountsCollection.js';
@@ -51,71 +49,6 @@ export const configureOrdersModule = async ({
51
49
  const findOrderPayment = async (order: Order) =>
52
50
  OrderPayments.findOne(generateDbFilterById(order.paymentId), {});
53
51
 
54
- const findNewOrderNumber = async (order: Order, index = 0) => {
55
- const newHashID = ordersSettings.orderNumberHashFn(order, index);
56
- if ((await Orders.countDocuments({ orderNumber: newHashID }, { limit: 1 })) === 0) {
57
- return newHashID;
58
- }
59
- return findNewOrderNumber(order, index + 1);
60
- };
61
-
62
- const updateStatus: OrdersModule['updateStatus'] = async (orderId, { status, info }) => {
63
- const selector = generateDbFilterById(orderId);
64
- const order = await Orders.findOne(selector, {});
65
-
66
- if (order.status === status) return order;
67
-
68
- const date = new Date();
69
- const $set: Partial<Order> = {
70
- status,
71
- updated: new Date(),
72
- };
73
-
74
- switch (status) {
75
- // explicitly use fallthrough here!
76
- case OrderStatus.FULLFILLED:
77
- if (!order.fullfilled) {
78
- $set.fullfilled = date;
79
- }
80
- case OrderStatus.REJECTED: // eslint-disable-line no-fallthrough
81
- if (!order.rejected) {
82
- $set.rejected = date;
83
- }
84
- case OrderStatus.CONFIRMED: // eslint-disable-line no-fallthrough
85
- if (!order.confirmed) {
86
- $set.confirmed = date;
87
- }
88
- case OrderStatus.PENDING: // eslint-disable-line no-fallthrough
89
- if (!order.ordered) {
90
- $set.ordered = date;
91
- }
92
- if (!order.orderNumber) {
93
- // Order Numbers can be set by the user
94
- $set.orderNumber = await findNewOrderNumber(order);
95
- }
96
- break;
97
- default:
98
- break;
99
- }
100
-
101
- const modifier: Update<Order> = {
102
- $set,
103
- $push: {
104
- log: {
105
- date,
106
- status,
107
- info,
108
- },
109
- },
110
- };
111
-
112
- log(`New Status: ${status}`, { orderId });
113
-
114
- await Orders.updateOne(selector, modifier);
115
-
116
- return Orders.findOne(selector, {});
117
- };
118
-
119
52
  const updateDiscounts = async (order: Order, unchainedAPI: UnchainedCore) => {
120
53
  const { modules } = unchainedAPI;
121
54
 
@@ -300,15 +233,14 @@ export const configureOrdersModule = async ({
300
233
  OrderDeliveries,
301
234
  OrderPayments,
302
235
  OrderPositions,
303
- updateStatus,
304
236
  });
305
237
  const orderMutations = configureOrderModuleMutations({
306
238
  Orders,
307
239
  OrderDeliveries,
308
240
  OrderPayments,
241
+ OrderPositions,
309
242
  initProviders,
310
243
  updateCalculation,
311
- updateStatus,
312
244
  });
313
245
 
314
246
  const orderDiscountsModule = configureOrderDiscountsModule({