@unchainedshop/core-orders 4.0.0-rc.9 → 4.0.1
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/lib/db/OrderDeliveriesCollection.d.ts +2 -2
- package/lib/db/OrderDeliveriesCollection.d.ts.map +1 -1
- package/lib/db/OrderDeliveriesSchema.d.ts +3 -0
- package/lib/db/OrderDeliveriesSchema.d.ts.map +1 -0
- package/lib/db/OrderDeliveriesSchema.js +20 -0
- package/lib/db/OrderDeliveriesSchema.js.map +1 -0
- package/lib/db/OrderDiscountTrigger.d.ts +5 -0
- package/lib/db/OrderDiscountTrigger.d.ts.map +1 -0
- package/lib/db/OrderDiscountTrigger.js +6 -0
- package/lib/db/OrderDiscountTrigger.js.map +1 -0
- package/lib/db/OrderDiscountsCollection.d.ts +2 -2
- package/lib/db/OrderDiscountsCollection.d.ts.map +1 -1
- package/lib/db/OrderDiscountsSchema.d.ts +3 -0
- package/lib/db/OrderDiscountsSchema.d.ts.map +1 -0
- package/lib/db/OrderDiscountsSchema.js +12 -0
- package/lib/db/OrderDiscountsSchema.js.map +1 -0
- package/lib/db/OrderPaymentsCollection.d.ts +3 -3
- package/lib/db/OrderPaymentsCollection.d.ts.map +1 -1
- package/lib/db/OrderPaymentsSchema.d.ts +3 -0
- package/lib/db/OrderPaymentsSchema.d.ts.map +1 -0
- package/lib/db/OrderPaymentsSchema.js +20 -0
- package/lib/db/OrderPaymentsSchema.js.map +1 -0
- package/lib/db/OrderPositionsCollection.d.ts +2 -3
- package/lib/db/OrderPositionsCollection.d.ts.map +1 -1
- package/lib/db/OrderPositionsCollection.js.map +1 -1
- package/lib/db/OrderPositionsSchema.d.ts +3 -0
- package/lib/db/OrderPositionsSchema.d.ts.map +1 -0
- package/lib/db/OrderPositionsSchema.js +37 -0
- package/lib/db/OrderPositionsSchema.js.map +1 -0
- package/lib/db/OrdersCollection.d.ts +5 -1
- package/lib/db/OrdersCollection.d.ts.map +1 -1
- package/lib/db/OrdersCollection.js +25 -21
- package/lib/db/OrdersCollection.js.map +1 -1
- package/lib/db/OrdersSchema.d.ts +3 -0
- package/lib/db/OrdersSchema.d.ts.map +1 -0
- package/lib/db/OrdersSchema.js +30 -0
- package/lib/db/OrdersSchema.js.map +1 -0
- package/lib/director/OrderDiscountAdapter.d.ts +4 -0
- package/lib/director/OrderDiscountAdapter.d.ts.map +1 -0
- package/lib/director/OrderDiscountAdapter.js +3 -0
- package/lib/director/OrderDiscountAdapter.js.map +1 -0
- package/lib/director/OrderDiscountConfiguration.d.ts +6 -0
- package/lib/director/OrderDiscountConfiguration.d.ts.map +1 -0
- package/lib/director/OrderDiscountConfiguration.js +2 -0
- package/lib/director/OrderDiscountConfiguration.js.map +1 -0
- package/lib/director/OrderDiscountDirector.d.ts +3 -0
- package/lib/director/OrderDiscountDirector.d.ts.map +1 -0
- package/lib/director/OrderDiscountDirector.js +3 -0
- package/lib/director/OrderDiscountDirector.js.map +1 -0
- package/lib/director/OrderPricingAdapter.d.ts +4 -0
- package/lib/director/OrderPricingAdapter.d.ts.map +1 -0
- package/lib/director/OrderPricingAdapter.js +25 -0
- package/lib/director/OrderPricingAdapter.js.map +1 -0
- package/lib/director/OrderPricingDirector.d.ts +3 -0
- package/lib/director/OrderPricingDirector.d.ts.map +1 -0
- package/lib/director/OrderPricingDirector.js +39 -0
- package/lib/director/OrderPricingDirector.js.map +1 -0
- package/lib/director/OrderPricingSheet.d.ts +4 -0
- package/lib/director/OrderPricingSheet.d.ts.map +1 -0
- package/lib/director/OrderPricingSheet.js +101 -0
- package/lib/director/OrderPricingSheet.js.map +1 -0
- package/lib/migrations/20250502111800-currency-code copy.d.ts +3 -0
- package/lib/migrations/20250502111800-currency-code copy.d.ts.map +1 -0
- package/lib/migrations/20250502111800-currency-code copy.js +14 -0
- package/lib/migrations/20250502111800-currency-code copy.js.map +1 -0
- package/lib/migrations/20251020080000-position-config.d.ts +3 -0
- package/lib/migrations/20251020080000-position-config.d.ts.map +1 -0
- package/lib/migrations/20251020080000-position-config.js +14 -0
- package/lib/migrations/20251020080000-position-config.js.map +1 -0
- package/lib/module/buildFindSelector.d.ts +1 -1
- package/lib/module/buildFindSelector.d.ts.map +1 -1
- package/lib/module/buildFindSelector.js +17 -1
- package/lib/module/buildFindSelector.js.map +1 -1
- package/lib/module/configureOrderDeliveriesModule.d.ts +9 -6
- package/lib/module/configureOrderDeliveriesModule.d.ts.map +1 -1
- package/lib/module/configureOrderDeliveriesModule.js +14 -10
- package/lib/module/configureOrderDeliveriesModule.js.map +1 -1
- package/lib/module/configureOrderDiscountsModule.d.ts +5 -5
- package/lib/module/configureOrderDiscountsModule.d.ts.map +1 -1
- package/lib/module/configureOrderDiscountsModule.js +3 -3
- package/lib/module/configureOrderDiscountsModule.js.map +1 -1
- package/lib/module/configureOrderPaymentsModule.d.ts +10 -7
- package/lib/module/configureOrderPaymentsModule.d.ts.map +1 -1
- package/lib/module/configureOrderPaymentsModule.js +18 -10
- package/lib/module/configureOrderPaymentsModule.js.map +1 -1
- package/lib/module/configureOrderPositionsModule.d.ts +17 -6
- package/lib/module/configureOrderPositionsModule.d.ts.map +1 -1
- package/lib/module/configureOrderPositionsModule.js +25 -5
- package/lib/module/configureOrderPositionsModule.js.map +1 -1
- package/lib/module/configureOrdersModule-mutations.d.ts +14 -13
- package/lib/module/configureOrdersModule-mutations.d.ts.map +1 -1
- package/lib/module/configureOrdersModule-mutations.js +19 -11
- package/lib/module/configureOrdersModule-mutations.js.map +1 -1
- package/lib/module/configureOrdersModule-processing.d.ts +14 -0
- package/lib/module/configureOrdersModule-processing.d.ts.map +1 -0
- package/lib/module/configureOrdersModule-processing.js +348 -0
- package/lib/module/configureOrdersModule-processing.js.map +1 -0
- package/lib/module/configureOrdersModule-queries.d.ts +21 -6
- package/lib/module/configureOrdersModule-queries.d.ts.map +1 -1
- package/lib/module/configureOrdersModule-queries.js +19 -84
- package/lib/module/configureOrdersModule-queries.js.map +1 -1
- package/lib/module/configureOrdersModule-transformations.d.ts +6 -0
- package/lib/module/configureOrdersModule-transformations.d.ts.map +1 -0
- package/lib/module/configureOrdersModule-transformations.js +112 -0
- package/lib/module/configureOrdersModule-transformations.js.map +1 -0
- package/lib/module/configureOrdersModule.d.ts +154 -21
- package/lib/module/configureOrdersModule.d.ts.map +1 -1
- package/lib/module/configureOrdersModule.js +9 -3
- package/lib/module/configureOrdersModule.js.map +1 -1
- package/lib/orders-settings.d.ts +9 -13
- package/lib/orders-settings.d.ts.map +1 -1
- package/lib/orders-settings.js +8 -8
- package/lib/orders-settings.js.map +1 -1
- package/lib/service/migrateOrderCartService.d.ts +3 -0
- package/lib/service/migrateOrderCartService.d.ts.map +1 -0
- package/lib/service/migrateOrderCartService.js +32 -0
- package/lib/service/migrateOrderCartService.js.map +1 -0
- package/lib/service/nextUserCartService.d.ts +3 -0
- package/lib/service/nextUserCartService.d.ts.map +1 -0
- package/lib/service/nextUserCartService.js +34 -0
- package/lib/service/nextUserCartService.js.map +1 -0
- package/lib/service/orderServices.d.ts +3 -0
- package/lib/service/orderServices.d.ts.map +1 -0
- package/lib/service/orderServices.js +7 -0
- package/lib/service/orderServices.js.map +1 -0
- package/package.json +4 -4
- package/src/db/OrderDeliveriesCollection.ts +2 -2
- package/src/db/OrderDiscountsCollection.ts +2 -2
- package/src/db/OrderPaymentsCollection.ts +3 -3
- package/src/db/OrderPositionsCollection.ts +2 -3
- package/src/db/OrdersCollection.ts +31 -22
- package/src/module/buildFindSelector.ts +19 -1
- package/src/module/configureOrderDeliveriesModule.ts +28 -16
- package/src/module/configureOrderDiscountsModule.ts +11 -11
- package/src/module/configureOrderPaymentsModule.ts +31 -20
- package/src/module/configureOrderPositionsModule.ts +48 -17
- package/src/module/configureOrdersModule-mutations.ts +46 -44
- package/src/module/configureOrdersModule-queries.ts +42 -91
- package/src/module/configureOrdersModule.ts +21 -33
- package/src/orders-settings.ts +21 -20
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configureOrdersModule.js","sourceRoot":"","sources":["../../src/module/configureOrdersModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAwB,MAAM,wBAAwB,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAS,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACjF,OAAO,EAAE,cAAc,EAAyB,MAAM,uBAAuB,CAAC;AAC9E,OAAO,
|
|
1
|
+
{"version":3,"file":"configureOrdersModule.js","sourceRoot":"","sources":["../../src/module/configureOrdersModule.ts"],"names":[],"mappings":"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"}
|
package/lib/orders-settings.d.ts
CHANGED
|
@@ -6,22 +6,18 @@ export interface OrderSettingsOrderPositionValidation<Product = unknown> {
|
|
|
6
6
|
configuration?: {
|
|
7
7
|
key: string;
|
|
8
8
|
value: string;
|
|
9
|
-
}[];
|
|
9
|
+
}[] | null;
|
|
10
10
|
}
|
|
11
|
-
export interface
|
|
12
|
-
ensureUserHasCart
|
|
13
|
-
orderNumberHashFn
|
|
14
|
-
validateOrderPosition
|
|
15
|
-
lockOrderDuringCheckout
|
|
11
|
+
export interface OrdersSettings {
|
|
12
|
+
ensureUserHasCart: boolean;
|
|
13
|
+
orderNumberHashFn: (order: Order, index: number) => string;
|
|
14
|
+
validateOrderPosition: <UnchainedAPI = unknown>(validationParams: OrderSettingsOrderPositionValidation, unchainedAPI: UnchainedAPI) => Promise<void>;
|
|
15
|
+
lockOrderDuringCheckout: boolean;
|
|
16
|
+
configureSettings: (options?: OrdersSettingsOptions) => void;
|
|
16
17
|
}
|
|
18
|
+
export type OrdersSettingsOptions = Omit<Partial<OrdersSettings>, 'configureSettings'>;
|
|
17
19
|
export declare const defaultValidateOrderPosition: ({ product }: {
|
|
18
20
|
product: any;
|
|
19
21
|
}, { modules }: any) => Promise<void>;
|
|
20
|
-
export declare const ordersSettings:
|
|
21
|
-
ensureUserHasCart: any;
|
|
22
|
-
orderNumberHashFn: any;
|
|
23
|
-
validateOrderPosition: any;
|
|
24
|
-
lockOrderDuringCheckout: boolean;
|
|
25
|
-
configureSettings({ ensureUserHasCart, orderNumberHashFn, validateOrderPosition, lockOrderDuringCheckout, }?: OrdersSettingsOptions): void;
|
|
26
|
-
};
|
|
22
|
+
export declare const ordersSettings: OrdersSettings;
|
|
27
23
|
//# sourceMappingURL=orders-settings.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orders-settings.d.ts","sourceRoot":"","sources":["../src/orders-settings.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEjD,MAAM,WAAW,oCAAoC,CAAC,OAAO,GAAG,OAAO;IACrE,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"orders-settings.d.ts","sourceRoot":"","sources":["../src/orders-settings.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEjD,MAAM,WAAW,oCAAoC,CAAC,OAAO,GAAG,OAAO;IACrE,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,IAAI,CAAC;CACzD;AAED,MAAM,WAAW,cAAc;IAC7B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,iBAAiB,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3D,qBAAqB,EAAE,CAAC,YAAY,GAAG,OAAO,EAC5C,gBAAgB,EAAE,oCAAoC,EACtD,YAAY,EAAE,YAAY,KACvB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,uBAAuB,EAAE,OAAO,CAAC;IACjC,iBAAiB,EAAE,CAAC,OAAO,CAAC,EAAE,qBAAqB,KAAK,IAAI,CAAC;CAC9D;AACD,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,mBAAmB,CAAC,CAAC;AAEvF,eAAO,MAAM,4BAA4B,GAAU;;CAAW,EAAE,aAAa,GAAG,kBAI/E,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,cAgB5B,CAAC"}
|
package/lib/orders-settings.js
CHANGED
|
@@ -5,15 +5,15 @@ export const defaultValidateOrderPosition = async ({ product }, { modules }) =>
|
|
|
5
5
|
}
|
|
6
6
|
};
|
|
7
7
|
export const ordersSettings = {
|
|
8
|
-
ensureUserHasCart:
|
|
9
|
-
orderNumberHashFn:
|
|
10
|
-
validateOrderPosition:
|
|
8
|
+
ensureUserHasCart: false,
|
|
9
|
+
orderNumberHashFn: generateRandomHash,
|
|
10
|
+
validateOrderPosition: defaultValidateOrderPosition,
|
|
11
11
|
lockOrderDuringCheckout: false,
|
|
12
|
-
configureSettings({ ensureUserHasCart
|
|
13
|
-
this.ensureUserHasCart = ensureUserHasCart;
|
|
14
|
-
this.orderNumberHashFn = orderNumberHashFn;
|
|
15
|
-
this.validateOrderPosition = validateOrderPosition;
|
|
16
|
-
this.lockOrderDuringCheckout = lockOrderDuringCheckout;
|
|
12
|
+
configureSettings({ ensureUserHasCart, orderNumberHashFn, validateOrderPosition, lockOrderDuringCheckout, } = {}) {
|
|
13
|
+
this.ensureUserHasCart = ensureUserHasCart || false;
|
|
14
|
+
this.orderNumberHashFn = orderNumberHashFn || generateRandomHash;
|
|
15
|
+
this.validateOrderPosition = validateOrderPosition || defaultValidateOrderPosition;
|
|
16
|
+
this.lockOrderDuringCheckout = lockOrderDuringCheckout || false;
|
|
17
17
|
},
|
|
18
18
|
};
|
|
19
19
|
//# sourceMappingURL=orders-settings.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orders-settings.js","sourceRoot":"","sources":["../src/orders-settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"orders-settings.js","sourceRoot":"","sources":["../src/orders-settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAsB1D,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAO,EAAE,EAAE;IAClF,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAmB;IAC5C,iBAAiB,EAAE,KAAK;IACxB,iBAAiB,EAAE,kBAAkB;IACrC,qBAAqB,EAAE,4BAA4B;IACnD,uBAAuB,EAAE,KAAK;IAC9B,iBAAiB,CAAC,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,GACxB,GAAG,EAAE;QACJ,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,IAAI,KAAK,CAAC;QACpD,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,IAAI,kBAAkB,CAAC;QACjE,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,IAAI,4BAA4B,CAAC;QACnF,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,IAAI,KAAK,CAAC;IAClE,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unchainedshop/core-orders",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.1",
|
|
4
4
|
"main": "lib/orders-index.js",
|
|
5
5
|
"types": "lib/orders-index.d.ts",
|
|
6
6
|
"type": "module",
|
|
@@ -32,9 +32,9 @@
|
|
|
32
32
|
"homepage": "https://github.com/unchainedshop/unchained#readme",
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"@kontsedal/locco": "0.1.0",
|
|
35
|
-
"@unchainedshop/events": "^4.0.0
|
|
36
|
-
"@unchainedshop/logger": "^4.0.0
|
|
37
|
-
"@unchainedshop/utils": "^4.0.0
|
|
35
|
+
"@unchainedshop/events": "^4.0.0",
|
|
36
|
+
"@unchainedshop/logger": "^4.0.0",
|
|
37
|
+
"@unchainedshop/utils": "^4.0.0"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
40
|
"@types/node": "^24.0.13",
|
|
@@ -8,7 +8,7 @@ export enum OrderDeliveryStatus {
|
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
export type OrderDelivery = {
|
|
11
|
-
_id
|
|
11
|
+
_id: string;
|
|
12
12
|
orderId: string;
|
|
13
13
|
deliveryProviderId: string;
|
|
14
14
|
delivered?: Date;
|
|
@@ -19,7 +19,7 @@ export type OrderDelivery = {
|
|
|
19
19
|
TimestampFields;
|
|
20
20
|
|
|
21
21
|
export type OrderDeliveryDiscount = Omit<Price, '_id'> & {
|
|
22
|
-
_id
|
|
22
|
+
_id: string;
|
|
23
23
|
discountId: string;
|
|
24
24
|
item: OrderDelivery;
|
|
25
25
|
};
|
|
@@ -2,12 +2,12 @@ import { mongodb, buildDbIndexes, TimestampFields } from '@unchainedshop/mongodb
|
|
|
2
2
|
import { Price } from '@unchainedshop/utils';
|
|
3
3
|
|
|
4
4
|
export type OrderDiscount = {
|
|
5
|
-
_id
|
|
5
|
+
_id: string;
|
|
6
6
|
orderId: string;
|
|
7
7
|
code?: string;
|
|
8
8
|
total?: Price;
|
|
9
9
|
trigger?: OrderDiscountTrigger;
|
|
10
|
-
discountKey
|
|
10
|
+
discountKey: string;
|
|
11
11
|
reservation?: any;
|
|
12
12
|
context?: any;
|
|
13
13
|
} & TimestampFields;
|
|
@@ -8,19 +8,19 @@ export enum OrderPaymentStatus {
|
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
export type OrderPayment = {
|
|
11
|
-
_id
|
|
11
|
+
_id: string;
|
|
12
12
|
orderId: string;
|
|
13
13
|
context?: any;
|
|
14
14
|
paid?: Date;
|
|
15
15
|
transactionId?: string;
|
|
16
|
-
paymentProviderId
|
|
16
|
+
paymentProviderId: string;
|
|
17
17
|
status?: OrderPaymentStatus | null;
|
|
18
18
|
calculation?: any[];
|
|
19
19
|
} & LogFields &
|
|
20
20
|
TimestampFields;
|
|
21
21
|
|
|
22
22
|
export type OrderPaymentDiscount = Omit<Price, '_id'> & {
|
|
23
|
-
_id
|
|
23
|
+
_id: string;
|
|
24
24
|
discountId: string;
|
|
25
25
|
item: OrderPayment;
|
|
26
26
|
};
|
|
@@ -2,9 +2,9 @@ import { mongodb, buildDbIndexes, TimestampFields } from '@unchainedshop/mongodb
|
|
|
2
2
|
import { Price } from '@unchainedshop/utils';
|
|
3
3
|
|
|
4
4
|
export type OrderPosition = {
|
|
5
|
-
_id
|
|
5
|
+
_id: string;
|
|
6
6
|
calculation: any[];
|
|
7
|
-
configuration: { key: string; value: string }[];
|
|
7
|
+
configuration: { key: string; value: string }[] | null;
|
|
8
8
|
context?: any;
|
|
9
9
|
orderId: string;
|
|
10
10
|
originalProductId: string;
|
|
@@ -15,7 +15,6 @@ export type OrderPosition = {
|
|
|
15
15
|
} & TimestampFields;
|
|
16
16
|
|
|
17
17
|
export type OrderPositionDiscount = Omit<Price, '_id'> & {
|
|
18
|
-
_id?: string;
|
|
19
18
|
discountId: string;
|
|
20
19
|
item: OrderPosition;
|
|
21
20
|
};
|
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
TimestampFields,
|
|
8
8
|
isDocumentDBCompatModeEnabled,
|
|
9
9
|
} from '@unchainedshop/mongodb';
|
|
10
|
+
import { DateFilterInput } from '@unchainedshop/utils';
|
|
10
11
|
|
|
11
12
|
export enum OrderStatus {
|
|
12
13
|
PENDING = 'PENDING',
|
|
@@ -16,7 +17,7 @@ export enum OrderStatus {
|
|
|
16
17
|
}
|
|
17
18
|
|
|
18
19
|
export type Order = {
|
|
19
|
-
_id
|
|
20
|
+
_id: string;
|
|
20
21
|
billingAddress?: Address;
|
|
21
22
|
calculation: any[];
|
|
22
23
|
confirmed?: Date;
|
|
@@ -41,37 +42,45 @@ export interface OrderQuery extends mongodb.Filter<Order> {
|
|
|
41
42
|
queryString?: string;
|
|
42
43
|
status?: OrderStatus[];
|
|
43
44
|
userId?: string;
|
|
45
|
+
deliveryIds?: string[];
|
|
46
|
+
paymentIds?: string[];
|
|
47
|
+
dateRange?: DateFilterInput;
|
|
44
48
|
}
|
|
45
49
|
|
|
46
50
|
export const OrdersCollection = async (db: mongodb.Db) => {
|
|
47
51
|
const Orders = db.collection<Order>('orders');
|
|
48
52
|
|
|
53
|
+
if (!isDocumentDBCompatModeEnabled()) {
|
|
54
|
+
await buildDbIndexes<Order>(Orders, [
|
|
55
|
+
{
|
|
56
|
+
index: {
|
|
57
|
+
_id: 'text',
|
|
58
|
+
userId: 'text',
|
|
59
|
+
orderNumber: 'text',
|
|
60
|
+
status: 'text',
|
|
61
|
+
'contact.emailAddress': 'text',
|
|
62
|
+
'contact.telNumber': 'text',
|
|
63
|
+
} as any,
|
|
64
|
+
options: {
|
|
65
|
+
weights: {
|
|
66
|
+
_id: 8,
|
|
67
|
+
userId: 3,
|
|
68
|
+
orderNumber: 6,
|
|
69
|
+
'contact.telNumber': 5,
|
|
70
|
+
'contact.emailAddress': 4,
|
|
71
|
+
status: 1,
|
|
72
|
+
},
|
|
73
|
+
name: 'order_fulltext_search',
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
]);
|
|
77
|
+
}
|
|
78
|
+
|
|
49
79
|
// Order Indexes
|
|
50
80
|
await buildDbIndexes<Order>(Orders, [
|
|
51
81
|
{ index: { userId: 1 } },
|
|
52
82
|
{ index: { status: 1 } },
|
|
53
83
|
{ index: { orderNumber: 1 } },
|
|
54
|
-
!isDocumentDBCompatModeEnabled() && {
|
|
55
|
-
index: {
|
|
56
|
-
_id: 'text',
|
|
57
|
-
userId: 'text',
|
|
58
|
-
orderNumber: 'text',
|
|
59
|
-
status: 'text',
|
|
60
|
-
'contact.emailAddress': 'text',
|
|
61
|
-
'contact.telNumber': 'text',
|
|
62
|
-
} as any,
|
|
63
|
-
options: {
|
|
64
|
-
weights: {
|
|
65
|
-
_id: 8,
|
|
66
|
-
userId: 3,
|
|
67
|
-
orderNumber: 6,
|
|
68
|
-
'contact.telNumber': 5,
|
|
69
|
-
'contact.emailAddress': 4,
|
|
70
|
-
status: 1,
|
|
71
|
-
},
|
|
72
|
-
name: 'order_fulltext_search',
|
|
73
|
-
},
|
|
74
|
-
},
|
|
75
84
|
]);
|
|
76
85
|
|
|
77
86
|
return Orders;
|
|
@@ -6,6 +6,9 @@ export const buildFindSelector = ({
|
|
|
6
6
|
status,
|
|
7
7
|
userId,
|
|
8
8
|
queryString,
|
|
9
|
+
paymentIds,
|
|
10
|
+
deliveryIds,
|
|
11
|
+
dateRange,
|
|
9
12
|
...rest
|
|
10
13
|
}: OrderQuery) => {
|
|
11
14
|
const selector: mongodb.Filter<Order> = { ...rest };
|
|
@@ -13,13 +16,28 @@ export const buildFindSelector = ({
|
|
|
13
16
|
if (userId) {
|
|
14
17
|
selector.userId = userId;
|
|
15
18
|
}
|
|
19
|
+
if (dateRange) {
|
|
20
|
+
const dateFilter: mongodb.Filter<Order> = {};
|
|
21
|
+
if (dateRange.start) dateFilter.$gte = new Date(dateRange.start);
|
|
22
|
+
if (dateRange.end) dateFilter.$lte = new Date(dateRange.end);
|
|
23
|
+
if (Object.keys(dateFilter).length > 0) {
|
|
24
|
+
selector.ordered = dateFilter;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
if (Array.isArray(deliveryIds) && deliveryIds?.length) {
|
|
29
|
+
selector.deliveryId = { $in: deliveryIds };
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
if (Array.isArray(paymentIds) && paymentIds?.length) {
|
|
33
|
+
selector.paymentId = { $in: paymentIds };
|
|
34
|
+
}
|
|
16
35
|
|
|
17
36
|
if (Array.isArray(status) && status?.length) {
|
|
18
37
|
selector.status = { $in: status };
|
|
19
38
|
} else if (!includeCarts) {
|
|
20
39
|
selector.status = { $ne: null }; // TODO: Slow performance! IDXSCAN in common query!
|
|
21
40
|
}
|
|
22
|
-
|
|
23
41
|
if (queryString) {
|
|
24
42
|
assertDocumentDBCompatMode();
|
|
25
43
|
(selector as any).$text = { $search: queryString };
|
|
@@ -24,7 +24,7 @@ export const configureOrderDeliveriesModule = ({
|
|
|
24
24
|
const updateStatus = async (
|
|
25
25
|
orderDeliveryId: string,
|
|
26
26
|
{ status, info }: { status: OrderDeliveryStatus; info?: string },
|
|
27
|
-
)
|
|
27
|
+
) => {
|
|
28
28
|
const date = new Date();
|
|
29
29
|
const modifier: mongodb.UpdateFilter<OrderDelivery> = {
|
|
30
30
|
$set: { status, updated: new Date() },
|
|
@@ -51,15 +51,28 @@ export const configureOrderDeliveriesModule = ({
|
|
|
51
51
|
findDelivery: async (
|
|
52
52
|
{ orderDeliveryId }: { orderDeliveryId: string },
|
|
53
53
|
options?: mongodb.FindOptions,
|
|
54
|
-
)
|
|
54
|
+
) => {
|
|
55
55
|
return OrderDeliveries.findOne(buildFindByIdSelector(orderDeliveryId), options);
|
|
56
56
|
},
|
|
57
57
|
|
|
58
|
+
findDeliveryByProvidersId: async (
|
|
59
|
+
{ deliveryProviderIds }: { deliveryProviderIds: string[] },
|
|
60
|
+
options?: mongodb.FindOptions,
|
|
61
|
+
): Promise<OrderDelivery[]> => {
|
|
62
|
+
if (!deliveryProviderIds?.length) return [];
|
|
63
|
+
return OrderDeliveries.find(
|
|
64
|
+
{ deliveryProviderId: { $in: deliveryProviderIds } },
|
|
65
|
+
options,
|
|
66
|
+
).toArray();
|
|
67
|
+
},
|
|
68
|
+
|
|
58
69
|
normalizedStatus,
|
|
59
70
|
|
|
60
71
|
// Mutations
|
|
61
72
|
|
|
62
|
-
create: async (
|
|
73
|
+
create: async (
|
|
74
|
+
doc: Omit<OrderDelivery, '_id' | 'created'> & Pick<Partial<OrderDelivery>, '_id' | 'created'>,
|
|
75
|
+
) => {
|
|
63
76
|
const { insertedId: orderDeliveryId } = await OrderDeliveries.insertOne({
|
|
64
77
|
_id: generateDbObjectId(),
|
|
65
78
|
created: new Date(),
|
|
@@ -68,7 +81,9 @@ export const configureOrderDeliveriesModule = ({
|
|
|
68
81
|
status: null,
|
|
69
82
|
});
|
|
70
83
|
|
|
71
|
-
const orderDelivery = await OrderDeliveries.findOne(
|
|
84
|
+
const orderDelivery = (await OrderDeliveries.findOne(
|
|
85
|
+
buildFindByIdSelector(orderDeliveryId),
|
|
86
|
+
)) as OrderDelivery;
|
|
72
87
|
return orderDelivery;
|
|
73
88
|
},
|
|
74
89
|
|
|
@@ -87,14 +102,14 @@ export const configureOrderDeliveriesModule = ({
|
|
|
87
102
|
return updatedOrderDelivery;
|
|
88
103
|
},
|
|
89
104
|
|
|
90
|
-
updateContext: async (orderDeliveryId: string, context: any)
|
|
105
|
+
updateContext: async (orderDeliveryId: string, context: any) => {
|
|
91
106
|
const selector = buildFindByIdSelector(orderDeliveryId);
|
|
92
107
|
if (!context || Object.keys(context).length === 0) return OrderDeliveries.findOne(selector, {});
|
|
93
108
|
const contextSetters = Object.fromEntries(
|
|
94
109
|
Object.entries(context).map(([key, value]) => [`context.${key}`, value]),
|
|
95
110
|
);
|
|
96
111
|
|
|
97
|
-
const
|
|
112
|
+
const orderDelivery = await OrderDeliveries.findOneAndUpdate(
|
|
98
113
|
selector,
|
|
99
114
|
{
|
|
100
115
|
$set: {
|
|
@@ -102,17 +117,14 @@ export const configureOrderDeliveriesModule = ({
|
|
|
102
117
|
updated: new Date(),
|
|
103
118
|
},
|
|
104
119
|
},
|
|
105
|
-
{
|
|
120
|
+
{ returnDocument: 'after' },
|
|
106
121
|
);
|
|
107
122
|
|
|
108
|
-
if (
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
return null;
|
|
123
|
+
if (!orderDelivery) return null;
|
|
124
|
+
await emit('ORDER_UPDATE_DELIVERY', {
|
|
125
|
+
orderDelivery,
|
|
126
|
+
});
|
|
127
|
+
return orderDelivery;
|
|
116
128
|
},
|
|
117
129
|
|
|
118
130
|
updateStatus,
|
|
@@ -120,7 +132,7 @@ export const configureOrderDeliveriesModule = ({
|
|
|
120
132
|
updateCalculation: async <T extends PricingCalculation>(
|
|
121
133
|
orderDeliveryId: string,
|
|
122
134
|
calculation: T[],
|
|
123
|
-
)
|
|
135
|
+
) => {
|
|
124
136
|
return OrderDeliveries.findOneAndUpdate(
|
|
125
137
|
{ _id: orderDeliveryId },
|
|
126
138
|
{
|
|
@@ -20,10 +20,7 @@ export const configureOrderDiscountsModule = ({
|
|
|
20
20
|
|
|
21
21
|
return {
|
|
22
22
|
// Queries
|
|
23
|
-
findOrderDiscount: async (
|
|
24
|
-
{ discountId }: { discountId: string },
|
|
25
|
-
options?: mongodb.FindOptions,
|
|
26
|
-
): Promise<OrderDiscount> => {
|
|
23
|
+
findOrderDiscount: async ({ discountId }: { discountId: string }, options?: mongodb.FindOptions) => {
|
|
27
24
|
return OrderDiscounts.findOne(buildFindOrderDiscountByIdSelector(discountId), options);
|
|
28
25
|
},
|
|
29
26
|
|
|
@@ -32,7 +29,10 @@ export const configureOrderDiscountsModule = ({
|
|
|
32
29
|
return discounts.toArray();
|
|
33
30
|
},
|
|
34
31
|
|
|
35
|
-
create: async (
|
|
32
|
+
create: async (
|
|
33
|
+
doc: Omit<OrderDiscount, '_id' | 'created' | 'trigger'> &
|
|
34
|
+
Pick<Partial<OrderDiscount>, '_id' | 'created' | 'trigger'>,
|
|
35
|
+
): Promise<OrderDiscount> => {
|
|
36
36
|
const normalizedTrigger = doc.trigger || OrderDiscountTrigger.USER;
|
|
37
37
|
const { insertedId: discountId } = await OrderDiscounts.insertOne({
|
|
38
38
|
_id: generateDbObjectId(),
|
|
@@ -40,14 +40,14 @@ export const configureOrderDiscountsModule = ({
|
|
|
40
40
|
...doc,
|
|
41
41
|
trigger: normalizedTrigger,
|
|
42
42
|
});
|
|
43
|
-
const discount = await OrderDiscounts.findOne({
|
|
43
|
+
const discount = (await OrderDiscounts.findOne({
|
|
44
44
|
_id: discountId,
|
|
45
|
-
});
|
|
45
|
+
})) as OrderDiscount;
|
|
46
46
|
await emit('ORDER_CREATE_DISCOUNT', { discount });
|
|
47
47
|
return discount;
|
|
48
48
|
},
|
|
49
49
|
|
|
50
|
-
delete: async (orderDiscountId: string)
|
|
50
|
+
delete: async (orderDiscountId: string) => {
|
|
51
51
|
const selector = buildFindOrderDiscountByIdSelector(orderDiscountId);
|
|
52
52
|
const orderDiscount = await OrderDiscounts.findOneAndDelete(selector);
|
|
53
53
|
await emit('ORDER_REMOVE_DISCOUNT', { discount: orderDiscount });
|
|
@@ -63,14 +63,14 @@ export const configureOrderDiscountsModule = ({
|
|
|
63
63
|
);
|
|
64
64
|
},
|
|
65
65
|
|
|
66
|
-
findSpareDiscount: async ({ code })
|
|
66
|
+
findSpareDiscount: async ({ code }) => {
|
|
67
67
|
return OrderDiscounts.findOne({
|
|
68
68
|
code,
|
|
69
|
-
orderId: { $
|
|
69
|
+
orderId: { $exists: false },
|
|
70
70
|
});
|
|
71
71
|
},
|
|
72
72
|
|
|
73
|
-
update: async (orderDiscountId: string, doc:
|
|
73
|
+
update: async (orderDiscountId: string, doc: Partial<OrderDiscount>) => {
|
|
74
74
|
const discount = await OrderDiscounts.findOneAndUpdate(
|
|
75
75
|
{ _id: orderDiscountId },
|
|
76
76
|
{
|