@unchainedshop/core-orders 4.3.2 → 4.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/lib/db/OrderDeliveriesSchema.d.ts +0 -3
- package/lib/db/OrderDeliveriesSchema.d.ts.map +0 -1
- package/lib/db/OrderDeliveriesSchema.js +0 -20
- package/lib/db/OrderDeliveriesSchema.js.map +0 -1
- package/lib/db/OrderDiscountTrigger.d.ts +0 -5
- package/lib/db/OrderDiscountTrigger.d.ts.map +0 -1
- package/lib/db/OrderDiscountTrigger.js +0 -6
- package/lib/db/OrderDiscountTrigger.js.map +0 -1
- package/lib/db/OrderDiscountsSchema.d.ts +0 -3
- package/lib/db/OrderDiscountsSchema.d.ts.map +0 -1
- package/lib/db/OrderDiscountsSchema.js +0 -12
- package/lib/db/OrderDiscountsSchema.js.map +0 -1
- package/lib/db/OrderPaymentsSchema.d.ts +0 -3
- package/lib/db/OrderPaymentsSchema.d.ts.map +0 -1
- package/lib/db/OrderPaymentsSchema.js +0 -20
- package/lib/db/OrderPaymentsSchema.js.map +0 -1
- package/lib/db/OrderPositionsSchema.d.ts +0 -3
- package/lib/db/OrderPositionsSchema.d.ts.map +0 -1
- package/lib/db/OrderPositionsSchema.js +0 -37
- package/lib/db/OrderPositionsSchema.js.map +0 -1
- package/lib/db/OrdersSchema.d.ts +0 -3
- package/lib/db/OrdersSchema.d.ts.map +0 -1
- package/lib/db/OrdersSchema.js +0 -30
- package/lib/db/OrdersSchema.js.map +0 -1
- package/lib/director/OrderDiscountAdapter.d.ts +0 -4
- package/lib/director/OrderDiscountAdapter.d.ts.map +0 -1
- package/lib/director/OrderDiscountAdapter.js +0 -3
- package/lib/director/OrderDiscountAdapter.js.map +0 -1
- package/lib/director/OrderDiscountConfiguration.d.ts +0 -6
- package/lib/director/OrderDiscountConfiguration.d.ts.map +0 -1
- package/lib/director/OrderDiscountConfiguration.js +0 -2
- package/lib/director/OrderDiscountConfiguration.js.map +0 -1
- package/lib/director/OrderDiscountDirector.d.ts +0 -3
- package/lib/director/OrderDiscountDirector.d.ts.map +0 -1
- package/lib/director/OrderDiscountDirector.js +0 -3
- package/lib/director/OrderDiscountDirector.js.map +0 -1
- package/lib/director/OrderPricingAdapter.d.ts +0 -4
- package/lib/director/OrderPricingAdapter.d.ts.map +0 -1
- package/lib/director/OrderPricingAdapter.js +0 -25
- package/lib/director/OrderPricingAdapter.js.map +0 -1
- package/lib/director/OrderPricingDirector.d.ts +0 -3
- package/lib/director/OrderPricingDirector.d.ts.map +0 -1
- package/lib/director/OrderPricingDirector.js +0 -39
- package/lib/director/OrderPricingDirector.js.map +0 -1
- package/lib/director/OrderPricingSheet.d.ts +0 -4
- package/lib/director/OrderPricingSheet.d.ts.map +0 -1
- package/lib/director/OrderPricingSheet.js +0 -101
- package/lib/director/OrderPricingSheet.js.map +0 -1
- package/lib/migrations/20250502111800-currency-code copy.d.ts +0 -3
- package/lib/migrations/20250502111800-currency-code copy.d.ts.map +0 -1
- package/lib/migrations/20250502111800-currency-code copy.js +0 -14
- package/lib/migrations/20250502111800-currency-code copy.js.map +0 -1
- package/lib/migrations/20251020080000-position-config.d.ts +0 -3
- package/lib/migrations/20251020080000-position-config.d.ts.map +0 -1
- package/lib/migrations/20251020080000-position-config.js +0 -14
- package/lib/migrations/20251020080000-position-config.js.map +0 -1
- package/lib/module/configureOrdersModule-processing.d.ts +0 -14
- package/lib/module/configureOrdersModule-processing.d.ts.map +0 -1
- package/lib/module/configureOrdersModule-processing.js +0 -348
- package/lib/module/configureOrdersModule-processing.js.map +0 -1
- package/lib/module/configureOrdersModule-transformations.d.ts +0 -6
- package/lib/module/configureOrdersModule-transformations.d.ts.map +0 -1
- package/lib/module/configureOrdersModule-transformations.js +0 -112
- package/lib/module/configureOrdersModule-transformations.js.map +0 -1
- package/lib/service/migrateOrderCartService.d.ts +0 -3
- package/lib/service/migrateOrderCartService.d.ts.map +0 -1
- package/lib/service/migrateOrderCartService.js +0 -32
- package/lib/service/migrateOrderCartService.js.map +0 -1
- package/lib/service/nextUserCartService.d.ts +0 -3
- package/lib/service/nextUserCartService.d.ts.map +0 -1
- package/lib/service/nextUserCartService.js +0 -34
- package/lib/service/nextUserCartService.js.map +0 -1
- package/lib/service/orderServices.d.ts +0 -3
- package/lib/service/orderServices.d.ts.map +0 -1
- package/lib/service/orderServices.js +0 -7
- package/lib/service/orderServices.js.map +0 -1
|
@@ -1,348 +0,0 @@
|
|
|
1
|
-
import { generateDbFilterById } from '@unchainedshop/mongodb';
|
|
2
|
-
import { OrderStatus } from '@unchainedshop/types/orders.js';
|
|
3
|
-
import { emit, registerEvents } from '@unchainedshop/events';
|
|
4
|
-
import { log } from '@unchainedshop/logger';
|
|
5
|
-
import { ProductType } from '@unchainedshop/types/products.js';
|
|
6
|
-
import { ordersSettings } from '../orders-settings.js';
|
|
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, locker, }) => {
|
|
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
|
-
$set.fullfilled = order.fullfilled || date;
|
|
36
|
-
case OrderStatus.REJECTED: // eslint-disable-line no-fallthrough
|
|
37
|
-
case OrderStatus.CONFIRMED: // eslint-disable-line no-fallthrough
|
|
38
|
-
if (status === OrderStatus.REJECTED) {
|
|
39
|
-
$set.rejected = order.rejected || date;
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
$set.confirmed = order.confirmed || date;
|
|
43
|
-
}
|
|
44
|
-
case OrderStatus.PENDING: // eslint-disable-line no-fallthrough
|
|
45
|
-
$set.ordered = order.ordered || date;
|
|
46
|
-
$set.orderNumber = order.orderNumber || (await findNewOrderNumber(order));
|
|
47
|
-
break;
|
|
48
|
-
default:
|
|
49
|
-
break;
|
|
50
|
-
}
|
|
51
|
-
const modifier = {
|
|
52
|
-
$set,
|
|
53
|
-
$push: {
|
|
54
|
-
log: {
|
|
55
|
-
date,
|
|
56
|
-
status,
|
|
57
|
-
info,
|
|
58
|
-
},
|
|
59
|
-
},
|
|
60
|
-
};
|
|
61
|
-
const modificationResult = await Orders.findOneAndUpdate({
|
|
62
|
-
...selector,
|
|
63
|
-
status: { $ne: status }, // Only update if status is different
|
|
64
|
-
}, modifier, {
|
|
65
|
-
returnDocument: 'after',
|
|
66
|
-
includeResultMetadata: true,
|
|
67
|
-
});
|
|
68
|
-
if (modificationResult.ok) {
|
|
69
|
-
log(`New Status: ${status}`, { orderId });
|
|
70
|
-
if (order.status === null) {
|
|
71
|
-
// The first time that an order transitions away from cart is a checkout event
|
|
72
|
-
await emit('ORDER_CHECKOUT', { order: modificationResult.value, oldStatus: order.status });
|
|
73
|
-
}
|
|
74
|
-
switch (status) {
|
|
75
|
-
case OrderStatus.FULLFILLED:
|
|
76
|
-
await emit('ORDER_FULLFILLED', { order: modificationResult.value, oldStatus: order.status });
|
|
77
|
-
break;
|
|
78
|
-
case OrderStatus.REJECTED:
|
|
79
|
-
await emit('ORDER_REJECTED', { order: modificationResult.value, oldStatus: order.status });
|
|
80
|
-
break;
|
|
81
|
-
case OrderStatus.CONFIRMED:
|
|
82
|
-
await emit('ORDER_CONFIRMED', { order: modificationResult.value, oldStatus: order.status });
|
|
83
|
-
break;
|
|
84
|
-
default:
|
|
85
|
-
break;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
return modificationResult.value || Orders.findOne(selector, {});
|
|
89
|
-
};
|
|
90
|
-
const findOrderPositions = async (order) => OrderPositions.find({
|
|
91
|
-
orderId: order._id,
|
|
92
|
-
quantity: { $gt: 0 },
|
|
93
|
-
}).toArray();
|
|
94
|
-
const findOrderDelivery = async (order) => OrderDeliveries.findOne(generateDbFilterById(order.deliveryId), {});
|
|
95
|
-
const findOrderPayment = async (order) => OrderPayments.findOne(generateDbFilterById(order.paymentId), {});
|
|
96
|
-
const missingInputDataForCheckout = async (order) => {
|
|
97
|
-
const errors = [];
|
|
98
|
-
if (!order.contact)
|
|
99
|
-
errors.push(new Error('Contact data not provided'));
|
|
100
|
-
if (!order.billingAddress)
|
|
101
|
-
errors.push(new Error('Billing address not provided'));
|
|
102
|
-
if (!(await findOrderDelivery(order)))
|
|
103
|
-
errors.push('No delivery provider selected');
|
|
104
|
-
if (!(await findOrderPayment(order)))
|
|
105
|
-
errors.push('No payment provider selected');
|
|
106
|
-
return errors;
|
|
107
|
-
};
|
|
108
|
-
const itemValidationErrors = async (order, unchainedAPI) => {
|
|
109
|
-
// Check if items are valid
|
|
110
|
-
const orderPositions = await findOrderPositions(order);
|
|
111
|
-
if (orderPositions.length === 0) {
|
|
112
|
-
const NoItemsError = new Error('No items to checkout');
|
|
113
|
-
NoItemsError.name = 'NoItemsError';
|
|
114
|
-
return [NoItemsError];
|
|
115
|
-
}
|
|
116
|
-
const validationErrors = await Promise.all(orderPositions.map(async (orderPosition) => {
|
|
117
|
-
const errors = [];
|
|
118
|
-
log(`OrderPosition ${orderPosition._id} -> Validate ${orderPosition.quantity}`, {
|
|
119
|
-
orderId: orderPosition.orderId,
|
|
120
|
-
});
|
|
121
|
-
const product = await unchainedAPI.modules.products.findProduct({
|
|
122
|
-
productId: orderPosition.productId,
|
|
123
|
-
});
|
|
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);
|
|
134
|
-
}
|
|
135
|
-
const quotation = orderPosition.quotationId &&
|
|
136
|
-
(await unchainedAPI.modules.quotations.findQuotation({
|
|
137
|
-
quotationId: orderPosition.quotationId,
|
|
138
|
-
}));
|
|
139
|
-
if (quotation && !unchainedAPI.modules.quotations.isProposalValid(quotation)) {
|
|
140
|
-
errors.push(new Error('Quotation expired or fullfiled, please request a new offer'));
|
|
141
|
-
}
|
|
142
|
-
return errors;
|
|
143
|
-
}));
|
|
144
|
-
return validationErrors.flatMap((f) => f);
|
|
145
|
-
};
|
|
146
|
-
const isAutoConfirmationEnabled = async (order, unchainedAPI) => {
|
|
147
|
-
const { modules } = unchainedAPI;
|
|
148
|
-
if (order.status === OrderStatus.FULLFILLED || order.status === OrderStatus.CONFIRMED) {
|
|
149
|
-
return false;
|
|
150
|
-
}
|
|
151
|
-
const orderPayment = await findOrderPayment(order);
|
|
152
|
-
let isBlockingOrderConfirmation = orderPayment &&
|
|
153
|
-
(await modules.orders.payments.isBlockingOrderConfirmation(orderPayment, unchainedAPI));
|
|
154
|
-
if (isBlockingOrderConfirmation)
|
|
155
|
-
return false;
|
|
156
|
-
const orderDelivery = await findOrderDelivery(order);
|
|
157
|
-
isBlockingOrderConfirmation =
|
|
158
|
-
orderDelivery &&
|
|
159
|
-
(await modules.orders.deliveries.isBlockingOrderConfirmation(orderDelivery, unchainedAPI));
|
|
160
|
-
if (isBlockingOrderConfirmation)
|
|
161
|
-
return false;
|
|
162
|
-
return true;
|
|
163
|
-
};
|
|
164
|
-
const isAutoFullfillmentEnabled = async (order, unchainedAPI) => {
|
|
165
|
-
const { modules } = unchainedAPI;
|
|
166
|
-
const orderPayment = await findOrderPayment(order);
|
|
167
|
-
let isBlockingOrderFullfillment = orderPayment && modules.orders.payments.isBlockingOrderFullfillment(orderPayment);
|
|
168
|
-
if (isBlockingOrderFullfillment)
|
|
169
|
-
return false;
|
|
170
|
-
const orderDelivery = await findOrderDelivery(order);
|
|
171
|
-
isBlockingOrderFullfillment =
|
|
172
|
-
orderDelivery && modules.orders.deliveries.isBlockingOrderFullfillment(orderDelivery);
|
|
173
|
-
if (isBlockingOrderFullfillment)
|
|
174
|
-
return false;
|
|
175
|
-
if (order.status === OrderStatus.FULLFILLED) {
|
|
176
|
-
return false;
|
|
177
|
-
}
|
|
178
|
-
return true;
|
|
179
|
-
};
|
|
180
|
-
const findNextStatus = async (status, order, unchainedAPI) => {
|
|
181
|
-
if (status === null) {
|
|
182
|
-
return OrderStatus.PENDING;
|
|
183
|
-
}
|
|
184
|
-
if (status === OrderStatus.PENDING) {
|
|
185
|
-
if (await isAutoConfirmationEnabled(order, unchainedAPI)) {
|
|
186
|
-
return OrderStatus.CONFIRMED;
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
if (status === OrderStatus.CONFIRMED) {
|
|
190
|
-
if (await isAutoFullfillmentEnabled(order, unchainedAPI)) {
|
|
191
|
-
return OrderStatus.FULLFILLED;
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
return status;
|
|
195
|
-
};
|
|
196
|
-
return {
|
|
197
|
-
checkout: async (orderId, transactionContext, unchainedAPI) => {
|
|
198
|
-
const { modules, services } = unchainedAPI;
|
|
199
|
-
const order = await Orders.findOne(generateDbFilterById(orderId), {});
|
|
200
|
-
if (order.status !== null)
|
|
201
|
-
return order;
|
|
202
|
-
const errors = [
|
|
203
|
-
...(await missingInputDataForCheckout(order)),
|
|
204
|
-
...(await itemValidationErrors(order, unchainedAPI)),
|
|
205
|
-
].filter(Boolean);
|
|
206
|
-
if (errors.length > 0) {
|
|
207
|
-
throw new Error(errors[0]);
|
|
208
|
-
}
|
|
209
|
-
const lock = await locker.lock(`order:checkout:${order._id}`, 5000).acquire();
|
|
210
|
-
try {
|
|
211
|
-
const processedOrder = await modules.orders.processOrder(order, transactionContext, unchainedAPI);
|
|
212
|
-
// After checkout, store last checkout information on user
|
|
213
|
-
await modules.users.updateLastBillingAddress(processedOrder.userId, processedOrder.billingAddress);
|
|
214
|
-
await modules.users.updateLastContact(processedOrder.userId, processedOrder.contact);
|
|
215
|
-
// Then eventually build next cart
|
|
216
|
-
const user = await modules.users.findUserById(processedOrder.userId);
|
|
217
|
-
const locale = modules.users.userLocale(user);
|
|
218
|
-
await services.orders.nextUserCart({
|
|
219
|
-
user,
|
|
220
|
-
countryCode: locale.country,
|
|
221
|
-
}, unchainedAPI);
|
|
222
|
-
return processedOrder;
|
|
223
|
-
}
|
|
224
|
-
finally {
|
|
225
|
-
await lock.release();
|
|
226
|
-
}
|
|
227
|
-
},
|
|
228
|
-
confirm: async (order, transactionContext, unchainedAPI) => {
|
|
229
|
-
const { modules } = unchainedAPI;
|
|
230
|
-
if (order.status !== OrderStatus.PENDING)
|
|
231
|
-
return order;
|
|
232
|
-
const lock = await locker.lock(`order:confirm-reject:${order._id}`, 1500).acquire();
|
|
233
|
-
try {
|
|
234
|
-
return await modules.orders.processOrder(order, {
|
|
235
|
-
...transactionContext,
|
|
236
|
-
nextStatus: OrderStatus.CONFIRMED,
|
|
237
|
-
}, unchainedAPI);
|
|
238
|
-
}
|
|
239
|
-
finally {
|
|
240
|
-
await lock.release();
|
|
241
|
-
}
|
|
242
|
-
},
|
|
243
|
-
reject: async (order, transactionContext, unchainedAPI) => {
|
|
244
|
-
const { modules } = unchainedAPI;
|
|
245
|
-
if (order.status !== OrderStatus.PENDING)
|
|
246
|
-
return order;
|
|
247
|
-
const lock = await locker.lock(`order:confirm-reject:${order._id}`, 1500).acquire();
|
|
248
|
-
try {
|
|
249
|
-
return await modules.orders.processOrder(order, {
|
|
250
|
-
...transactionContext,
|
|
251
|
-
nextStatus: OrderStatus.REJECTED,
|
|
252
|
-
}, unchainedAPI);
|
|
253
|
-
}
|
|
254
|
-
finally {
|
|
255
|
-
await lock.release();
|
|
256
|
-
}
|
|
257
|
-
},
|
|
258
|
-
processOrder: async (initialOrder, orderTransactionContext, unchainedAPI) => {
|
|
259
|
-
const { modules } = unchainedAPI;
|
|
260
|
-
const { paymentContext, deliveryContext, nextStatus: forceNextStatus, comment, } = orderTransactionContext;
|
|
261
|
-
const orderId = initialOrder._id;
|
|
262
|
-
let order = initialOrder;
|
|
263
|
-
let nextStatus = forceNextStatus || (await findNextStatus(initialOrder.status, order, unchainedAPI));
|
|
264
|
-
if (nextStatus === OrderStatus.PENDING) {
|
|
265
|
-
// auto charge during transition to pending
|
|
266
|
-
const orderPayment = await modules.orders.payments.findOrderPayment({
|
|
267
|
-
orderPaymentId: order.paymentId,
|
|
268
|
-
});
|
|
269
|
-
await modules.orders.payments.charge(orderPayment, { userId: order.userId, transactionContext: paymentContext }, unchainedAPI);
|
|
270
|
-
nextStatus = await findNextStatus(nextStatus, order, unchainedAPI);
|
|
271
|
-
}
|
|
272
|
-
if (nextStatus === OrderStatus.REJECTED) {
|
|
273
|
-
// auto cancel during transition to rejected
|
|
274
|
-
const orderPayment = await modules.orders.payments.findOrderPayment({
|
|
275
|
-
orderPaymentId: order.paymentId,
|
|
276
|
-
});
|
|
277
|
-
await modules.orders.payments.cancel(orderPayment, { userId: order.userId, transactionContext: paymentContext }, unchainedAPI);
|
|
278
|
-
}
|
|
279
|
-
if (nextStatus === OrderStatus.CONFIRMED) {
|
|
280
|
-
// confirm pre-authorized payments
|
|
281
|
-
const orderPayment = await modules.orders.payments.findOrderPayment({
|
|
282
|
-
orderPaymentId: order.paymentId,
|
|
283
|
-
});
|
|
284
|
-
await modules.orders.payments.confirm(orderPayment, { userId: order.userId, transactionContext: paymentContext }, unchainedAPI);
|
|
285
|
-
if (order.status !== OrderStatus.CONFIRMED) {
|
|
286
|
-
// we have to stop here shortly to complete the confirmation
|
|
287
|
-
// before auto delivery is started, else we have no chance to create
|
|
288
|
-
// numbers that are needed for delivery
|
|
289
|
-
order = await updateStatus(orderId, {
|
|
290
|
-
status: OrderStatus.CONFIRMED,
|
|
291
|
-
info: comment,
|
|
292
|
-
});
|
|
293
|
-
const orderDelivery = await modules.orders.deliveries.findDelivery({
|
|
294
|
-
orderDeliveryId: order.deliveryId,
|
|
295
|
-
});
|
|
296
|
-
await modules.orders.deliveries.send(orderDelivery, {
|
|
297
|
-
order,
|
|
298
|
-
deliveryContext,
|
|
299
|
-
}, unchainedAPI);
|
|
300
|
-
const orderPositions = await findOrderPositions(order);
|
|
301
|
-
const mappedProductOrderPositions = await Promise.all(orderPositions.map(async (orderPosition) => {
|
|
302
|
-
const product = await modules.products.findProduct({
|
|
303
|
-
productId: orderPosition.productId,
|
|
304
|
-
});
|
|
305
|
-
return {
|
|
306
|
-
orderPosition,
|
|
307
|
-
product,
|
|
308
|
-
};
|
|
309
|
-
}));
|
|
310
|
-
const tokenizedItems = mappedProductOrderPositions.filter((item) => item.product?.type === ProductType.TokenizedProduct);
|
|
311
|
-
if (tokenizedItems.length > 0) {
|
|
312
|
-
// Give virtual warehouse a chance to instantiate new virtual objects
|
|
313
|
-
await modules.warehousing.tokenizeItems(order, {
|
|
314
|
-
items: tokenizedItems,
|
|
315
|
-
}, unchainedAPI);
|
|
316
|
-
}
|
|
317
|
-
// Enrollments: Generate enrollments for plan products
|
|
318
|
-
const planItems = mappedProductOrderPositions.filter((item) => item.product?.type === ProductType.PlanProduct && !order.originEnrollmentId);
|
|
319
|
-
if (planItems.length > 0) {
|
|
320
|
-
await modules.enrollments.createFromCheckout(order, {
|
|
321
|
-
items: planItems,
|
|
322
|
-
context: {
|
|
323
|
-
paymentContext,
|
|
324
|
-
deliveryContext,
|
|
325
|
-
},
|
|
326
|
-
}, unchainedAPI);
|
|
327
|
-
}
|
|
328
|
-
// Quotations: If we came here, the checkout succeeded, so we can fullfill underlying quotations
|
|
329
|
-
const quotationItems = mappedProductOrderPositions.filter((item) => item.orderPosition.quotationId);
|
|
330
|
-
await Promise.all(quotationItems.map(async ({ orderPosition }) => {
|
|
331
|
-
await modules.quotations.fullfillQuotation(orderPosition.quotationId, {
|
|
332
|
-
orderId,
|
|
333
|
-
orderPositionId: orderPosition._id,
|
|
334
|
-
}, unchainedAPI);
|
|
335
|
-
}));
|
|
336
|
-
// TODO: we will use this function to keep a "Ordered in Flight" amount, allowing us to
|
|
337
|
-
// do live stock stuff
|
|
338
|
-
// 2. Reserve quantity at Warehousing Provider until order is CANCELLED/FULLFILLED
|
|
339
|
-
// ???
|
|
340
|
-
}
|
|
341
|
-
nextStatus = await findNextStatus(nextStatus, order, unchainedAPI);
|
|
342
|
-
}
|
|
343
|
-
return updateStatus(order._id, { status: nextStatus, info: comment });
|
|
344
|
-
},
|
|
345
|
-
updateStatus,
|
|
346
|
-
};
|
|
347
|
-
};
|
|
348
|
-
//# 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,6 +0,0 @@
|
|
|
1
|
-
import { Order, OrderTransformations } from '@unchainedshop/types/orders.js';
|
|
2
|
-
import { mongodb } from '@unchainedshop/mongodb';
|
|
3
|
-
export declare const configureOrderModuleTransformations: ({ Orders, }: {
|
|
4
|
-
Orders: mongodb.Collection<Order>;
|
|
5
|
-
}) => OrderTransformations;
|
|
6
|
-
//# 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,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAOjD,eAAO,MAAM,mCAAmC,gBAE7C;IACD,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;CACnC,KAAG,oBAwIH,CAAC"}
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
import { DeliveryPricingRowCategory } from '@unchainedshop/types/delivery.pricing.js';
|
|
2
|
-
import { PaymentPricingRowCategory } from '@unchainedshop/types/payments.pricing.js';
|
|
3
|
-
import { ProductPricingRowCategory } from '@unchainedshop/types/products.pricing.js';
|
|
4
|
-
import { OrderPricingRowCategory } from '@unchainedshop/types/orders.pricing.js';
|
|
5
|
-
import { OrderPricingSheet } from '../director/OrderPricingSheet.js';
|
|
6
|
-
export const configureOrderModuleTransformations = ({ Orders, }) => {
|
|
7
|
-
return {
|
|
8
|
-
discounted: async (order, orderDiscount, unchainedAPI) => {
|
|
9
|
-
const { modules } = unchainedAPI;
|
|
10
|
-
// Delivery discounts
|
|
11
|
-
const orderDelivery = await modules.orders.deliveries.findDelivery({
|
|
12
|
-
orderDeliveryId: order.deliveryId,
|
|
13
|
-
});
|
|
14
|
-
const orderDeliveryDiscounts = modules.orders.deliveries.discounts(orderDelivery, { order, orderDiscount }, unchainedAPI);
|
|
15
|
-
// Payment discounts
|
|
16
|
-
const orderPayment = await modules.orders.payments.findOrderPayment({
|
|
17
|
-
orderPaymentId: order.paymentId,
|
|
18
|
-
});
|
|
19
|
-
const orderPaymentDiscounts = modules.orders.payments.discounts(orderPayment, { order, orderDiscount }, unchainedAPI);
|
|
20
|
-
// Position discounts
|
|
21
|
-
const orderPositions = await modules.orders.positions.findOrderPositions({
|
|
22
|
-
orderId: order._id,
|
|
23
|
-
});
|
|
24
|
-
const orderPositionDiscounts = orderPositions.flatMap((orderPosition) => modules.orders.positions.discounts(orderPosition, { order, orderDiscount }, unchainedAPI));
|
|
25
|
-
// order discounts
|
|
26
|
-
const pricingSheet = OrderPricingSheet({
|
|
27
|
-
calculation: order.calculation,
|
|
28
|
-
currency: order.currency,
|
|
29
|
-
});
|
|
30
|
-
const orderDiscounts = pricingSheet
|
|
31
|
-
.discountPrices(orderDiscount._id)
|
|
32
|
-
.map((discount) => ({ order, ...discount }));
|
|
33
|
-
// All discounts
|
|
34
|
-
const discounted = [
|
|
35
|
-
...orderPaymentDiscounts,
|
|
36
|
-
...orderDeliveryDiscounts,
|
|
37
|
-
...orderPositionDiscounts,
|
|
38
|
-
...orderDiscounts,
|
|
39
|
-
].filter(Boolean);
|
|
40
|
-
return discounted;
|
|
41
|
-
},
|
|
42
|
-
discountTotal: async (order, orderDiscount, unchainedAPI) => {
|
|
43
|
-
const { modules } = unchainedAPI;
|
|
44
|
-
const orderDiscountId = orderDiscount._id;
|
|
45
|
-
// Delivery discounts
|
|
46
|
-
const orderDelivery = await modules.orders.deliveries.findDelivery({
|
|
47
|
-
orderDeliveryId: order.deliveryId,
|
|
48
|
-
});
|
|
49
|
-
const orderDeliveryDiscountSum = orderDelivery &&
|
|
50
|
-
modules.orders.deliveries
|
|
51
|
-
.pricingSheet(orderDelivery, order.currency, unchainedAPI)
|
|
52
|
-
.total({ category: DeliveryPricingRowCategory.Discount, discountId: orderDiscountId });
|
|
53
|
-
// Payment discounts
|
|
54
|
-
const orderPayment = await modules.orders.payments.findOrderPayment({
|
|
55
|
-
orderPaymentId: order.paymentId,
|
|
56
|
-
});
|
|
57
|
-
const orderPaymentDiscountSum = orderPayment &&
|
|
58
|
-
modules.orders.payments
|
|
59
|
-
.pricingSheet(orderPayment, order.currency, unchainedAPI)
|
|
60
|
-
.total({ category: PaymentPricingRowCategory.Discount, discountId: orderDiscountId });
|
|
61
|
-
// Position discounts
|
|
62
|
-
const orderPositions = await modules.orders.positions.findOrderPositions({
|
|
63
|
-
orderId: order._id,
|
|
64
|
-
});
|
|
65
|
-
const orderPositionDiscounts = orderPositions.map((orderPosition) => modules.orders.positions
|
|
66
|
-
.pricingSheet(orderPosition, order.currency, unchainedAPI)
|
|
67
|
-
.total({ category: ProductPricingRowCategory.Discount, discountId: orderDiscountId }));
|
|
68
|
-
// order discounts
|
|
69
|
-
const orderDiscountSum = OrderPricingSheet({
|
|
70
|
-
calculation: order.calculation,
|
|
71
|
-
currency: order.currency,
|
|
72
|
-
}).total({ category: OrderPricingRowCategory.Discounts, discountId: orderDiscountId });
|
|
73
|
-
const prices = [
|
|
74
|
-
orderDeliveryDiscountSum.amount,
|
|
75
|
-
orderPaymentDiscountSum.amount,
|
|
76
|
-
...orderPositionDiscounts.map((positionDiscount) => positionDiscount.amount),
|
|
77
|
-
orderDiscountSum.amount,
|
|
78
|
-
];
|
|
79
|
-
const amount = prices.reduce((oldValue, price) => oldValue + (price || 0), 0);
|
|
80
|
-
return {
|
|
81
|
-
amount,
|
|
82
|
-
currency: order.currency,
|
|
83
|
-
};
|
|
84
|
-
},
|
|
85
|
-
isCart: (order) => {
|
|
86
|
-
return order.status === null;
|
|
87
|
-
},
|
|
88
|
-
cart: async ({ orderNumber, countryContext, userId }) => {
|
|
89
|
-
const selector = {
|
|
90
|
-
countryCode: countryContext,
|
|
91
|
-
status: { $eq: null },
|
|
92
|
-
userId,
|
|
93
|
-
};
|
|
94
|
-
if (orderNumber) {
|
|
95
|
-
selector.orderNumber = orderNumber;
|
|
96
|
-
}
|
|
97
|
-
const options = {
|
|
98
|
-
sort: {
|
|
99
|
-
updated: -1,
|
|
100
|
-
},
|
|
101
|
-
};
|
|
102
|
-
return Orders.findOne(selector, options);
|
|
103
|
-
},
|
|
104
|
-
pricingSheet: (order) => {
|
|
105
|
-
return OrderPricingSheet({
|
|
106
|
-
calculation: order.calculation,
|
|
107
|
-
currency: order.currency,
|
|
108
|
-
});
|
|
109
|
-
},
|
|
110
|
-
};
|
|
111
|
-
};
|
|
112
|
-
//# sourceMappingURL=configureOrdersModule-transformations.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"configureOrdersModule-transformations.js","sourceRoot":"","sources":["../../src/module/configureOrdersModule-transformations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"migrateOrderCartService.d.ts","sourceRoot":"","sources":["../../src/service/migrateOrderCartService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAE1E,eAAO,MAAM,wBAAwB,EAAE,wBA2CtC,CAAC"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
export const migrateOrderCartsService = async ({ fromUserId, toUserId, shouldMerge, countryContext }, unchainedAPI) => {
|
|
2
|
-
const fromCart = await unchainedAPI.modules.orders.cart({
|
|
3
|
-
countryContext,
|
|
4
|
-
userId: fromUserId,
|
|
5
|
-
});
|
|
6
|
-
const toCart = await unchainedAPI.modules.orders.cart({
|
|
7
|
-
countryContext,
|
|
8
|
-
userId: toUserId,
|
|
9
|
-
});
|
|
10
|
-
if (!fromCart) {
|
|
11
|
-
// No cart, don't copy
|
|
12
|
-
return toCart;
|
|
13
|
-
}
|
|
14
|
-
if (!toCart || !shouldMerge) {
|
|
15
|
-
// No destination cart, move whole cart
|
|
16
|
-
unchainedAPI.modules.orders.setCartOwner({ orderId: fromCart._id, userId: toUserId });
|
|
17
|
-
return unchainedAPI.modules.orders.updateCalculation(fromCart._id, unchainedAPI);
|
|
18
|
-
}
|
|
19
|
-
// Move positions
|
|
20
|
-
unchainedAPI.modules.orders.moveCartPositions({ fromOrderId: fromCart._id, toOrderId: toCart._id });
|
|
21
|
-
// Move billing address if target order has none
|
|
22
|
-
if (fromCart.billingAddress && !toCart.billingAddress) {
|
|
23
|
-
await unchainedAPI.modules.orders.updateBillingAddress(toCart._id, fromCart.billingAddress, unchainedAPI);
|
|
24
|
-
}
|
|
25
|
-
// Move contact data if target order has none
|
|
26
|
-
if (fromCart.contact && !toCart.contact) {
|
|
27
|
-
await unchainedAPI.modules.orders.updateContact(toCart._id, fromCart.contact, unchainedAPI);
|
|
28
|
-
}
|
|
29
|
-
await unchainedAPI.modules.orders.updateCalculation(fromCart._id, unchainedAPI);
|
|
30
|
-
return unchainedAPI.modules.orders.updateCalculation(toCart._id, unchainedAPI);
|
|
31
|
-
};
|
|
32
|
-
//# sourceMappingURL=migrateOrderCartService.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"migrateOrderCartService.js","sourceRoot":"","sources":["../../src/service/migrateOrderCartService.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,wBAAwB,GAA6B,KAAK,EACrE,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,EACrD,YAAY,EACZ,EAAE;IACF,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;QACtD,cAAc;QACd,MAAM,EAAE,UAAU;KACnB,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;QACpD,cAAc;QACd,MAAM,EAAE,QAAQ;KACjB,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,sBAAsB;QACtB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5B,uCAAuC;QACvC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QACtF,OAAO,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IACnF,CAAC;IAED,iBAAiB;IACjB,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;IAEpG,gDAAgD;IAChD,IAAI,QAAQ,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;QACtD,MAAM,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,oBAAoB,CACpD,MAAM,CAAC,GAAG,EACV,QAAQ,CAAC,cAAc,EACvB,YAAY,CACb,CAAC;IACJ,CAAC;IAED,6CAA6C;IAC7C,IAAI,QAAQ,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACxC,MAAM,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC9F,CAAC;IAED,MAAM,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAChF,OAAO,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;AACjF,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"nextUserCartService.d.ts","sourceRoot":"","sources":["../../src/service/nextUserCartService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAIrE,eAAO,MAAM,mBAAmB,EAAE,mBAqCjC,CAAC"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { ordersSettings } from '../orders-settings.js';
|
|
2
|
-
import { resolveBestCurrency } from '@unchainedshop/utils';
|
|
3
|
-
export const nextUserCartService = async ({ user, orderNumber, countryCode, forceCartCreation }, unchainedAPI) => {
|
|
4
|
-
const { modules } = unchainedAPI;
|
|
5
|
-
const cart = await modules.orders.cart({
|
|
6
|
-
countryContext: countryCode || user.lastLogin?.countryCode,
|
|
7
|
-
orderNumber,
|
|
8
|
-
userId: user._id,
|
|
9
|
-
});
|
|
10
|
-
if (cart)
|
|
11
|
-
return cart;
|
|
12
|
-
const shouldCreateNewCart = forceCartCreation || ordersSettings.ensureUserHasCart;
|
|
13
|
-
if (!shouldCreateNewCart)
|
|
14
|
-
return null;
|
|
15
|
-
const countryObject = await modules.countries.findCountry({ isoCode: countryCode });
|
|
16
|
-
const currencies = await modules.currencies.findCurrencies({ includeInactive: false });
|
|
17
|
-
const currency = resolveBestCurrency(countryObject.defaultCurrencyCode, currencies);
|
|
18
|
-
const order = await modules.orders.create({
|
|
19
|
-
userId: user._id,
|
|
20
|
-
orderNumber,
|
|
21
|
-
currency,
|
|
22
|
-
countryCode,
|
|
23
|
-
billingAddress: user.lastBillingAddress || user.profile?.address,
|
|
24
|
-
contact: user.lastContact ||
|
|
25
|
-
(!user.guest
|
|
26
|
-
? {
|
|
27
|
-
telNumber: user.profile?.phoneMobile,
|
|
28
|
-
emailAddress: modules.users.primaryEmail(user)?.address,
|
|
29
|
-
}
|
|
30
|
-
: {}),
|
|
31
|
-
});
|
|
32
|
-
return modules.orders.initProviders(order, unchainedAPI);
|
|
33
|
-
};
|
|
34
|
-
//# sourceMappingURL=nextUserCartService.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"nextUserCartService.js","sourceRoot":"","sources":["../../src/service/nextUserCartService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,MAAM,CAAC,MAAM,mBAAmB,GAAwB,KAAK,EAC3D,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAE,EACrD,YAAY,EACZ,EAAE;IACF,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC;IAEjC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;QACrC,cAAc,EAAE,WAAW,IAAI,IAAI,CAAC,SAAS,EAAE,WAAW;QAC1D,WAAW;QACX,MAAM,EAAE,IAAI,CAAC,GAAG;KACjB,CAAC,CAAC;IACH,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAEtB,MAAM,mBAAmB,GAAG,iBAAiB,IAAI,cAAc,CAAC,iBAAiB,CAAC;IAClF,IAAI,CAAC,mBAAmB;QAAE,OAAO,IAAI,CAAC;IAEtC,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;IACpF,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC;IACvF,MAAM,QAAQ,GAAG,mBAAmB,CAAC,aAAa,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;IAEpF,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;QACxC,MAAM,EAAE,IAAI,CAAC,GAAG;QAChB,WAAW;QACX,QAAQ;QACR,WAAW;QACX,cAAc,EAAE,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO;QAChE,OAAO,EACL,IAAI,CAAC,WAAW;YAChB,CAAC,CAAC,IAAI,CAAC,KAAK;gBACV,CAAC,CAAC;oBACE,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW;oBACpC,YAAY,EAAE,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO;iBACxD;gBACH,CAAC,CAAC,EAAE,CAAC;KACV,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;AAC3D,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"orderServices.d.ts","sourceRoot":"","sources":["../../src/service/orderServices.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAI/D,eAAO,MAAM,aAAa,EAAE,aAG3B,CAAC"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { migrateOrderCartsService } from './migrateOrderCartService.js';
|
|
2
|
-
import { nextUserCartService } from './nextUserCartService.js';
|
|
3
|
-
export const orderServices = {
|
|
4
|
-
migrateOrderCarts: migrateOrderCartsService,
|
|
5
|
-
nextUserCart: nextUserCartService,
|
|
6
|
-
};
|
|
7
|
-
//# sourceMappingURL=orderServices.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"orderServices.js","sourceRoot":"","sources":["../../src/service/orderServices.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,MAAM,CAAC,MAAM,aAAa,GAAkB;IAC1C,iBAAiB,EAAE,wBAAwB;IAC3C,YAAY,EAAE,mBAAmB;CAClC,CAAC"}
|