@vendure/core 2.0.0-next.27 → 2.0.0-next.28
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/dist/api/api-internal-modules.d.ts +2 -1
- package/dist/api/api-internal-modules.js +4 -0
- package/dist/api/api-internal-modules.js.map +1 -1
- package/dist/api/middleware/validate-custom-fields-interceptor.js +6 -0
- package/dist/api/middleware/validate-custom-fields-interceptor.js.map +1 -1
- package/dist/api/resolvers/admin/draft-order.resolver.js +1 -1
- package/dist/api/resolvers/admin/draft-order.resolver.js.map +1 -1
- package/dist/api/resolvers/admin/seller.resolver.d.ts +13 -0
- package/dist/api/resolvers/admin/seller.resolver.js +96 -0
- package/dist/api/resolvers/admin/seller.resolver.js.map +1 -0
- package/dist/api/resolvers/entity/channel-entity.resolver.d.ts +9 -0
- package/dist/api/resolvers/entity/channel-entity.resolver.js +45 -0
- package/dist/api/resolvers/entity/channel-entity.resolver.js.map +1 -0
- package/dist/api/resolvers/entity/order-entity.resolver.d.ts +3 -0
- package/dist/api/resolvers/entity/order-entity.resolver.js +46 -0
- package/dist/api/resolvers/entity/order-entity.resolver.js.map +1 -1
- package/dist/api/schema/admin-api/channel.api.graphql +2 -0
- package/dist/api/schema/admin-api/order-admin.type.graphql +4 -0
- package/dist/api/schema/admin-api/seller.api.graphql +29 -0
- package/dist/api/schema/common/channel.type.graphql +1 -0
- package/dist/api/schema/common/order.type.graphql +7 -0
- package/dist/api/schema/common/seller.type.graphql +6 -0
- package/dist/api/schema/shop-api/shop.api.graphql +7 -2
- package/dist/common/constants.js +1 -0
- package/dist/common/constants.js.map +1 -1
- package/dist/common/finite-state-machine/finite-state-machine.d.ts +3 -1
- package/dist/common/finite-state-machine/finite-state-machine.js +18 -6
- package/dist/common/finite-state-machine/finite-state-machine.js.map +1 -1
- package/dist/config/auth/native-authentication-strategy.js +10 -7
- package/dist/config/auth/native-authentication-strategy.js.map +1 -1
- package/dist/config/config.module.js +8 -4
- package/dist/config/config.module.js.map +1 -1
- package/dist/config/custom-field/custom-field-types.d.ts +1 -0
- package/dist/config/default-config.js +11 -1
- package/dist/config/default-config.js.map +1 -1
- package/dist/config/fulfillment/default-fulfillment-process.d.ts +15 -0
- package/dist/config/fulfillment/default-fulfillment-process.js +150 -0
- package/dist/config/fulfillment/default-fulfillment-process.js.map +1 -0
- package/dist/config/fulfillment/{custom-fulfillment-process.d.ts → fulfillment-process.d.ts} +16 -2
- package/dist/config/{order/custom-order-process.js → fulfillment/fulfillment-process.js} +1 -1
- package/dist/config/fulfillment/fulfillment-process.js.map +1 -0
- package/dist/config/index.d.ts +10 -3
- package/dist/config/index.js +10 -3
- package/dist/config/index.js.map +1 -1
- package/dist/config/order/default-order-process.d.ts +143 -0
- package/dist/config/order/default-order-process.js +317 -0
- package/dist/config/order/default-order-process.js.map +1 -0
- package/dist/config/order/default-order-seller-strategy.d.ts +11 -0
- package/dist/config/order/default-order-seller-strategy.js +15 -0
- package/dist/config/order/default-order-seller-strategy.js.map +1 -0
- package/dist/config/order/{custom-order-process.d.ts → order-process.d.ts} +15 -2
- package/dist/config/{payment/custom-payment-process.js → order/order-process.js} +1 -1
- package/dist/config/order/order-process.js.map +1 -0
- package/dist/config/order/order-seller-strategy.d.ts +53 -0
- package/dist/config/{fulfillment/custom-fulfillment-process.js → order/order-seller-strategy.js} +1 -1
- package/dist/config/order/order-seller-strategy.js.map +1 -0
- package/dist/config/payment/default-payment-process.d.ts +16 -0
- package/dist/config/payment/default-payment-process.js +89 -0
- package/dist/config/payment/default-payment-process.js.map +1 -0
- package/dist/config/payment/payment-method-handler.d.ts +2 -2
- package/dist/config/payment/payment-method-handler.js +1 -1
- package/dist/config/payment/{custom-payment-process.d.ts → payment-process.d.ts} +17 -3
- package/dist/config/payment/payment-process.js +3 -0
- package/dist/config/payment/payment-process.js.map +1 -0
- package/dist/config/shipping-method/default-shipping-calculator.d.ts +1 -2
- package/dist/config/shipping-method/default-shipping-calculator.js +2 -2
- package/dist/config/shipping-method/default-shipping-calculator.js.map +1 -1
- package/dist/config/shipping-method/default-shipping-line-assignment-strategy.d.ts +6 -0
- package/dist/config/shipping-method/default-shipping-line-assignment-strategy.js +10 -0
- package/dist/config/shipping-method/default-shipping-line-assignment-strategy.js.map +1 -0
- package/dist/config/shipping-method/shipping-line-assignment-strategy.d.ts +18 -0
- package/dist/config/shipping-method/shipping-line-assignment-strategy.js +3 -0
- package/dist/config/shipping-method/shipping-line-assignment-strategy.js.map +1 -0
- package/dist/config/vendure-config.d.ts +46 -9
- package/dist/connection/connection.module.d.ts +1 -1
- package/dist/entity/address/address.entity.d.ts +1 -1
- package/dist/entity/address/address.entity.js +1 -1
- package/dist/entity/channel/channel.entity.d.ts +5 -1
- package/dist/entity/channel/channel.entity.js +14 -0
- package/dist/entity/channel/channel.entity.js.map +1 -1
- package/dist/entity/custom-entity-fields.d.ts +2 -0
- package/dist/entity/custom-entity-fields.js +4 -1
- package/dist/entity/custom-entity-fields.js.map +1 -1
- package/dist/entity/entities.d.ts +2 -0
- package/dist/entity/entities.js +2 -0
- package/dist/entity/entities.js.map +1 -1
- package/dist/entity/order/order.entity.d.ts +5 -1
- package/dist/entity/order/order.entity.js +16 -0
- package/dist/entity/order/order.entity.js.map +1 -1
- package/dist/entity/order-line/order-line.entity.d.ts +7 -1
- package/dist/entity/order-line/order-line.entity.js +20 -0
- package/dist/entity/order-line/order-line.entity.js.map +1 -1
- package/dist/entity/register-custom-entity-fields.js +1 -0
- package/dist/entity/register-custom-entity-fields.js.map +1 -1
- package/dist/entity/seller/seller.entity.d.ts +17 -0
- package/dist/entity/seller/seller.entity.js +44 -0
- package/dist/entity/seller/seller.entity.js.map +1 -0
- package/dist/entity/shipping-line/shipping-line.entity.d.ts +1 -1
- package/dist/entity/shipping-line/shipping-line.entity.js +1 -1
- package/dist/entity/shipping-line/shipping-line.entity.js.map +1 -1
- package/dist/entity/user/user.entity.d.ts +1 -0
- package/dist/entity/user/user.entity.js +2 -2
- package/dist/entity/user/user.entity.js.map +1 -1
- package/dist/job-queue/job.js +8 -3
- package/dist/job-queue/job.js.map +1 -1
- package/dist/service/helpers/external-authentication/external-authentication.service.js +6 -5
- package/dist/service/helpers/external-authentication/external-authentication.service.js.map +1 -1
- package/dist/service/helpers/fulfillment-state-machine/fulfillment-state-machine.d.ts +6 -12
- package/dist/service/helpers/fulfillment-state-machine/fulfillment-state-machine.js +13 -43
- package/dist/service/helpers/fulfillment-state-machine/fulfillment-state-machine.js.map +1 -1
- package/dist/service/helpers/fulfillment-state-machine/fulfillment-state.d.ts +13 -5
- package/dist/service/helpers/fulfillment-state-machine/fulfillment-state.js +0 -18
- package/dist/service/helpers/fulfillment-state-machine/fulfillment-state.js.map +1 -1
- package/dist/service/helpers/order-modifier/order-modifier.js +10 -0
- package/dist/service/helpers/order-modifier/order-modifier.js.map +1 -1
- package/dist/service/helpers/order-splitter/order-splitter.d.ts +16 -0
- package/dist/service/helpers/order-splitter/order-splitter.js +121 -0
- package/dist/service/helpers/order-splitter/order-splitter.js.map +1 -0
- package/dist/service/helpers/order-state-machine/order-state-machine.d.ts +6 -23
- package/dist/service/helpers/order-state-machine/order-state-machine.js +12 -184
- package/dist/service/helpers/order-state-machine/order-state-machine.js.map +1 -1
- package/dist/service/helpers/order-state-machine/order-state.d.ts +32 -4
- package/dist/service/helpers/order-state-machine/order-state.js +0 -64
- package/dist/service/helpers/order-state-machine/order-state.js.map +1 -1
- package/dist/service/helpers/payment-state-machine/payment-state-machine.d.ts +4 -9
- package/dist/service/helpers/payment-state-machine/payment-state-machine.js +10 -32
- package/dist/service/helpers/payment-state-machine/payment-state-machine.js.map +1 -1
- package/dist/service/helpers/payment-state-machine/payment-state.d.ts +10 -4
- package/dist/service/helpers/payment-state-machine/payment-state.js +0 -21
- package/dist/service/helpers/payment-state-machine/payment-state.js.map +1 -1
- package/dist/service/helpers/refund-state-machine/refund-state-machine.d.ts +3 -1
- package/dist/service/helpers/refund-state-machine/refund-state-machine.js +2 -1
- package/dist/service/helpers/refund-state-machine/refund-state-machine.js.map +1 -1
- package/dist/service/index.d.ts +3 -0
- package/dist/service/index.js +3 -0
- package/dist/service/index.js.map +1 -1
- package/dist/service/initializer.service.d.ts +3 -1
- package/dist/service/initializer.service.js +5 -1
- package/dist/service/initializer.service.js.map +1 -1
- package/dist/service/service.module.js +4 -0
- package/dist/service/service.module.js.map +1 -1
- package/dist/service/services/auth.service.js +4 -2
- package/dist/service/services/auth.service.js.map +1 -1
- package/dist/service/services/channel.service.d.ts +2 -2
- package/dist/service/services/channel.service.js +26 -8
- package/dist/service/services/channel.service.js.map +1 -1
- package/dist/service/services/collection.service.js +10 -0
- package/dist/service/services/collection.service.js.map +1 -1
- package/dist/service/services/customer.service.js +3 -1
- package/dist/service/services/customer.service.js.map +1 -1
- package/dist/service/services/fulfillment.service.js +4 -1
- package/dist/service/services/fulfillment.service.js.map +1 -1
- package/dist/service/services/order.service.d.ts +5 -5
- package/dist/service/services/order.service.js +93 -116
- package/dist/service/services/order.service.js.map +1 -1
- package/dist/service/services/payment.service.js +24 -4
- package/dist/service/services/payment.service.js.map +1 -1
- package/dist/service/services/seller.service.d.ts +25 -0
- package/dist/service/services/seller.service.js +76 -0
- package/dist/service/services/seller.service.js.map +1 -0
- package/dist/service/services/user.service.js +11 -5
- package/dist/service/services/user.service.js.map +1 -1
- package/package.json +3 -3
- package/dist/config/fulfillment/custom-fulfillment-process.js.map +0 -1
- package/dist/config/order/custom-order-process.js.map +0 -1
- package/dist/config/payment/custom-payment-process.js.map +0 -1
|
@@ -1,23 +1,31 @@
|
|
|
1
1
|
import { RequestContext } from '../../../api/common/request-context';
|
|
2
|
-
import { Transitions } from '../../../common/finite-state-machine/types';
|
|
3
2
|
import { Fulfillment } from '../../../entity/fulfillment/fulfillment.entity';
|
|
4
3
|
import { Order } from '../../../entity/order/order.entity';
|
|
5
4
|
/**
|
|
6
5
|
* @description
|
|
7
6
|
* An interface to extend standard {@link FulfillmentState}.
|
|
8
7
|
*
|
|
9
|
-
* @
|
|
8
|
+
* @deprecated use FulfillmentStates
|
|
10
9
|
*/
|
|
11
10
|
export interface CustomFulfillmentStates {
|
|
12
11
|
}
|
|
13
12
|
/**
|
|
14
13
|
* @description
|
|
15
|
-
*
|
|
14
|
+
* An interface to extend standard {@link FulfillmentState}.
|
|
15
|
+
*
|
|
16
|
+
* @docsCategory fulfillment
|
|
17
|
+
*/
|
|
18
|
+
export interface FulfillmentStates {
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* @description
|
|
22
|
+
* These are the default states of the fulfillment process. By default, they will be extended
|
|
23
|
+
* by the {@link defaultFulfillmentProcess} to also include `Shipped` and `Delivered`.
|
|
24
|
+
*
|
|
16
25
|
*
|
|
17
26
|
* @docsCategory fulfillment
|
|
18
27
|
*/
|
|
19
|
-
export declare type FulfillmentState = 'Created' | 'Pending' | '
|
|
20
|
-
export declare const fulfillmentStateTransitions: Transitions<FulfillmentState>;
|
|
28
|
+
export declare type FulfillmentState = 'Created' | 'Pending' | 'Cancelled' | keyof CustomFulfillmentStates | keyof FulfillmentStates;
|
|
21
29
|
/**
|
|
22
30
|
* @description
|
|
23
31
|
* The data which is passed to the state transition handlers of the FulfillmentStateMachine.
|
|
@@ -1,21 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.fulfillmentStateTransitions = void 0;
|
|
4
|
-
exports.fulfillmentStateTransitions = {
|
|
5
|
-
Created: {
|
|
6
|
-
to: ['Pending'],
|
|
7
|
-
},
|
|
8
|
-
Pending: {
|
|
9
|
-
to: ['Shipped', 'Delivered', 'Cancelled'],
|
|
10
|
-
},
|
|
11
|
-
Shipped: {
|
|
12
|
-
to: ['Delivered', 'Cancelled'],
|
|
13
|
-
},
|
|
14
|
-
Delivered: {
|
|
15
|
-
to: ['Cancelled'],
|
|
16
|
-
},
|
|
17
|
-
Cancelled: {
|
|
18
|
-
to: [],
|
|
19
|
-
},
|
|
20
|
-
};
|
|
21
3
|
//# sourceMappingURL=fulfillment-state.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fulfillment-state.js","sourceRoot":"","sources":["../../../../src/service/helpers/fulfillment-state-machine/fulfillment-state.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fulfillment-state.js","sourceRoot":"","sources":["../../../../src/service/helpers/fulfillment-state-machine/fulfillment-state.ts"],"names":[],"mappings":""}
|
|
@@ -114,6 +114,16 @@ let OrderModifier = class OrderModifier {
|
|
|
114
114
|
featuredAsset: (_a = productVariant.featuredAsset) !== null && _a !== void 0 ? _a : productVariant.product.featuredAsset,
|
|
115
115
|
customFields,
|
|
116
116
|
}));
|
|
117
|
+
const { orderSellerStrategy } = this.configService.orderOptions;
|
|
118
|
+
if (typeof orderSellerStrategy.setOrderLineSellerChannel === 'function') {
|
|
119
|
+
orderLine.sellerChannel = await orderSellerStrategy.setOrderLineSellerChannel(ctx, orderLine);
|
|
120
|
+
await this.connection
|
|
121
|
+
.getRepository(ctx, order_line_entity_1.OrderLine)
|
|
122
|
+
.createQueryBuilder()
|
|
123
|
+
.relation('sellerChannel')
|
|
124
|
+
.of(orderLine)
|
|
125
|
+
.set(orderLine.sellerChannel);
|
|
126
|
+
}
|
|
117
127
|
await this.customFieldRelationService.updateRelations(ctx, order_line_entity_1.OrderLine, { customFields }, orderLine);
|
|
118
128
|
const lineWithRelations = await this.connection.getEntityOrThrow(ctx, order_line_entity_1.OrderLine, orderLine.id, {
|
|
119
129
|
relations: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"order-modifier.js","sourceRoot":"","sources":["../../../../src/service/helpers/order-modifier/order-modifier.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"order-modifier.js","sourceRoot":"","sources":["../../../../src/service/helpers/order-modifier/order-modifier.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { RequestContext } from '../../../api/index';
|
|
2
|
+
import { ConfigService } from '../../../config/index';
|
|
3
|
+
import { TransactionalConnection } from '../../../connection/index';
|
|
4
|
+
import { Order } from '../../../entity/index';
|
|
5
|
+
import { ChannelService } from '../../services/channel.service';
|
|
6
|
+
import { OrderService } from '../../services/order.service';
|
|
7
|
+
export declare class OrderSplitter {
|
|
8
|
+
private connection;
|
|
9
|
+
private configService;
|
|
10
|
+
private channelService;
|
|
11
|
+
private orderService;
|
|
12
|
+
constructor(connection: TransactionalConnection, configService: ConfigService, channelService: ChannelService, orderService: OrderService);
|
|
13
|
+
createSellerOrders(ctx: RequestContext, order: Order): Promise<Order[]>;
|
|
14
|
+
private duplicateOrderLine;
|
|
15
|
+
private duplicateShippingLine;
|
|
16
|
+
}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.OrderSplitter = void 0;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const generated_types_1 = require("@vendure/common/lib/generated-types");
|
|
15
|
+
const pick_1 = require("@vendure/common/lib/pick");
|
|
16
|
+
const index_1 = require("../../../config/index");
|
|
17
|
+
const index_2 = require("../../../connection/index");
|
|
18
|
+
const index_3 = require("../../../entity/index");
|
|
19
|
+
const channel_service_1 = require("../../services/channel.service");
|
|
20
|
+
const order_service_1 = require("../../services/order.service");
|
|
21
|
+
let OrderSplitter = class OrderSplitter {
|
|
22
|
+
constructor(connection, configService, channelService, orderService) {
|
|
23
|
+
this.connection = connection;
|
|
24
|
+
this.configService = configService;
|
|
25
|
+
this.channelService = channelService;
|
|
26
|
+
this.orderService = orderService;
|
|
27
|
+
}
|
|
28
|
+
async createSellerOrders(ctx, order) {
|
|
29
|
+
var _a, _b;
|
|
30
|
+
const { orderSellerStrategy } = this.configService.orderOptions;
|
|
31
|
+
const partialOrders = await ((_a = orderSellerStrategy.splitOrder) === null || _a === void 0 ? void 0 : _a.call(orderSellerStrategy, ctx, order));
|
|
32
|
+
if (!partialOrders || partialOrders.length === 0) {
|
|
33
|
+
// No split is needed
|
|
34
|
+
return [];
|
|
35
|
+
}
|
|
36
|
+
const defaultChannel = await this.channelService.getDefaultChannel(ctx);
|
|
37
|
+
order.type = generated_types_1.OrderType.Aggregate;
|
|
38
|
+
const sellerOrders = [];
|
|
39
|
+
for (const partialOrder of partialOrders) {
|
|
40
|
+
const lines = [];
|
|
41
|
+
for (const line of partialOrder.lines) {
|
|
42
|
+
lines.push(await this.duplicateOrderLine(ctx, line));
|
|
43
|
+
}
|
|
44
|
+
const shippingLines = [];
|
|
45
|
+
for (const shippingLine of partialOrder.shippingLines) {
|
|
46
|
+
shippingLines.push(await this.duplicateShippingLine(ctx, shippingLine));
|
|
47
|
+
}
|
|
48
|
+
const sellerOrder = await this.connection.getRepository(ctx, index_3.Order).save(new index_3.Order({
|
|
49
|
+
type: generated_types_1.OrderType.Seller,
|
|
50
|
+
aggregateOrderId: order.id,
|
|
51
|
+
code: await this.configService.orderOptions.orderCodeStrategy.generate(ctx),
|
|
52
|
+
active: false,
|
|
53
|
+
orderPlacedAt: new Date(),
|
|
54
|
+
customer: order.customer,
|
|
55
|
+
channels: [new index_3.Channel({ id: partialOrder.channelId }), defaultChannel],
|
|
56
|
+
state: partialOrder.state,
|
|
57
|
+
lines,
|
|
58
|
+
surcharges: [],
|
|
59
|
+
shippingLines,
|
|
60
|
+
couponCodes: order.couponCodes,
|
|
61
|
+
modifications: [],
|
|
62
|
+
shippingAddress: order.shippingAddress,
|
|
63
|
+
billingAddress: order.billingAddress,
|
|
64
|
+
subTotal: 0,
|
|
65
|
+
subTotalWithTax: 0,
|
|
66
|
+
currencyCode: order.currencyCode,
|
|
67
|
+
}));
|
|
68
|
+
await this.connection
|
|
69
|
+
.getRepository(ctx, index_3.Order)
|
|
70
|
+
.createQueryBuilder()
|
|
71
|
+
.relation('sellerOrders')
|
|
72
|
+
.of(order)
|
|
73
|
+
.add(sellerOrder);
|
|
74
|
+
await this.orderService.applyPriceAdjustments(ctx, sellerOrder);
|
|
75
|
+
sellerOrders.push(sellerOrder);
|
|
76
|
+
}
|
|
77
|
+
await ((_b = orderSellerStrategy.afterSellerOrdersCreated) === null || _b === void 0 ? void 0 : _b.call(orderSellerStrategy, ctx, order, sellerOrders));
|
|
78
|
+
return order.sellerOrders;
|
|
79
|
+
}
|
|
80
|
+
async duplicateOrderLine(ctx, line) {
|
|
81
|
+
const newLine = await this.connection.getRepository(ctx, index_3.OrderLine).save(new index_3.OrderLine(Object.assign(Object.assign({}, (0, pick_1.pick)(line, [
|
|
82
|
+
'productVariant',
|
|
83
|
+
'taxCategory',
|
|
84
|
+
'featuredAsset',
|
|
85
|
+
'shippingLine',
|
|
86
|
+
'shippingLineId',
|
|
87
|
+
'customFields',
|
|
88
|
+
'sellerChannel',
|
|
89
|
+
'sellerChannelId',
|
|
90
|
+
])), { items: [] })));
|
|
91
|
+
newLine.items = line.items.map(item => new index_3.OrderItem(Object.assign(Object.assign({}, (0, pick_1.pick)(item, [
|
|
92
|
+
'initialListPrice',
|
|
93
|
+
'listPrice',
|
|
94
|
+
'listPriceIncludesTax',
|
|
95
|
+
'adjustments',
|
|
96
|
+
'taxLines',
|
|
97
|
+
'cancelled',
|
|
98
|
+
])), { lineId: newLine.id })));
|
|
99
|
+
await this.connection.getRepository(ctx, index_3.OrderItem).save(newLine.items);
|
|
100
|
+
return newLine;
|
|
101
|
+
}
|
|
102
|
+
async duplicateShippingLine(ctx, shippingLine) {
|
|
103
|
+
return await this.connection.getRepository(ctx, index_3.ShippingLine).save(new index_3.ShippingLine(Object.assign({}, (0, pick_1.pick)(shippingLine, [
|
|
104
|
+
'shippingMethodId',
|
|
105
|
+
'order',
|
|
106
|
+
'listPrice',
|
|
107
|
+
'listPriceIncludesTax',
|
|
108
|
+
'adjustments',
|
|
109
|
+
'taxLines',
|
|
110
|
+
]))));
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
OrderSplitter = __decorate([
|
|
114
|
+
(0, common_1.Injectable)(),
|
|
115
|
+
__metadata("design:paramtypes", [index_2.TransactionalConnection,
|
|
116
|
+
index_1.ConfigService,
|
|
117
|
+
channel_service_1.ChannelService,
|
|
118
|
+
order_service_1.OrderService])
|
|
119
|
+
], OrderSplitter);
|
|
120
|
+
exports.OrderSplitter = OrderSplitter;
|
|
121
|
+
//# sourceMappingURL=order-splitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"order-splitter.js","sourceRoot":"","sources":["../../../../src/service/helpers/order-splitter/order-splitter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,37 +1,20 @@
|
|
|
1
1
|
import { RequestContext } from '../../../api/common/request-context';
|
|
2
2
|
import { StateMachineConfig } from '../../../common/finite-state-machine/types';
|
|
3
3
|
import { ConfigService } from '../../../config/config.service';
|
|
4
|
-
import { TransactionalConnection } from '../../../connection/
|
|
4
|
+
import { TransactionalConnection } from '../../../connection/index';
|
|
5
5
|
import { Order } from '../../../entity/order/order.entity';
|
|
6
|
-
import { EventBus } from '../../../event-bus/index';
|
|
7
|
-
import { HistoryService } from '../../services/history.service';
|
|
8
|
-
import { ProductVariantService } from '../../services/product-variant.service';
|
|
9
|
-
import { PromotionService } from '../../services/promotion.service';
|
|
10
|
-
import { StockMovementService } from '../../services/stock-movement.service';
|
|
11
6
|
import { OrderState, OrderTransitionData } from './order-state';
|
|
12
7
|
export declare class OrderStateMachine {
|
|
13
|
-
private connection;
|
|
14
8
|
private configService;
|
|
15
|
-
private
|
|
16
|
-
private historyService;
|
|
17
|
-
private promotionService;
|
|
18
|
-
private eventBus;
|
|
19
|
-
private productVariantService;
|
|
9
|
+
private connection;
|
|
20
10
|
readonly config: StateMachineConfig<OrderState, OrderTransitionData>;
|
|
21
11
|
private readonly initialState;
|
|
22
|
-
constructor(
|
|
12
|
+
constructor(configService: ConfigService, connection: TransactionalConnection);
|
|
23
13
|
getInitialState(): OrderState;
|
|
24
14
|
canTransition(currentState: OrderState, newState: OrderState): boolean;
|
|
25
15
|
getNextStates(order: Order): ReadonlyArray<OrderState>;
|
|
26
|
-
transition(ctx: RequestContext, order: Order, state: OrderState): Promise<
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
* Specific business logic to be executed on Order state transitions.
|
|
30
|
-
*/
|
|
31
|
-
private onTransitionStart;
|
|
32
|
-
/**
|
|
33
|
-
* Specific business logic to be executed after Order state transition completes.
|
|
34
|
-
*/
|
|
35
|
-
private onTransitionEnd;
|
|
16
|
+
transition(ctx: RequestContext, order: Order, state: OrderState): Promise<{
|
|
17
|
+
finalize: () => Promise<any>;
|
|
18
|
+
}>;
|
|
36
19
|
private initConfig;
|
|
37
20
|
}
|
|
@@ -11,36 +11,17 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.OrderStateMachine = void 0;
|
|
13
13
|
const common_1 = require("@nestjs/common");
|
|
14
|
-
const generated_types_1 = require("@vendure/common/lib/generated-types");
|
|
15
|
-
const unique_1 = require("@vendure/common/lib/unique");
|
|
16
14
|
const errors_1 = require("../../../common/error/errors");
|
|
17
15
|
const finite_state_machine_1 = require("../../../common/finite-state-machine/finite-state-machine");
|
|
18
16
|
const merge_transition_definitions_1 = require("../../../common/finite-state-machine/merge-transition-definitions");
|
|
19
17
|
const validate_transition_definition_1 = require("../../../common/finite-state-machine/validate-transition-definition");
|
|
20
18
|
const utils_1 = require("../../../common/utils");
|
|
21
19
|
const config_service_1 = require("../../../config/config.service");
|
|
22
|
-
const
|
|
23
|
-
const order_modification_entity_1 = require("../../../entity/order-modification/order-modification.entity");
|
|
24
|
-
const order_entity_1 = require("../../../entity/order/order.entity");
|
|
25
|
-
const payment_entity_1 = require("../../../entity/payment/payment.entity");
|
|
26
|
-
const product_variant_entity_1 = require("../../../entity/product-variant/product-variant.entity");
|
|
27
|
-
const order_placed_event_1 = require("../../../event-bus/events/order-placed-event");
|
|
28
|
-
const index_1 = require("../../../event-bus/index");
|
|
29
|
-
const history_service_1 = require("../../services/history.service");
|
|
30
|
-
const product_variant_service_1 = require("../../services/product-variant.service");
|
|
31
|
-
const promotion_service_1 = require("../../services/promotion.service");
|
|
32
|
-
const stock_movement_service_1 = require("../../services/stock-movement.service");
|
|
33
|
-
const order_utils_1 = require("../utils/order-utils");
|
|
34
|
-
const order_state_1 = require("./order-state");
|
|
20
|
+
const index_1 = require("../../../connection/index");
|
|
35
21
|
let OrderStateMachine = class OrderStateMachine {
|
|
36
|
-
constructor(
|
|
37
|
-
this.connection = connection;
|
|
22
|
+
constructor(configService, connection) {
|
|
38
23
|
this.configService = configService;
|
|
39
|
-
this.
|
|
40
|
-
this.historyService = historyService;
|
|
41
|
-
this.promotionService = promotionService;
|
|
42
|
-
this.eventBus = eventBus;
|
|
43
|
-
this.productVariantService = productVariantService;
|
|
24
|
+
this.connection = connection;
|
|
44
25
|
this.initialState = 'Created';
|
|
45
26
|
this.config = this.initConfig();
|
|
46
27
|
}
|
|
@@ -56,165 +37,20 @@ let OrderStateMachine = class OrderStateMachine {
|
|
|
56
37
|
}
|
|
57
38
|
async transition(ctx, order, state) {
|
|
58
39
|
const fsm = new finite_state_machine_1.FSM(this.config, order.state);
|
|
59
|
-
await fsm.transitionTo(state, { ctx, order });
|
|
40
|
+
const result = await fsm.transitionTo(state, { ctx, order });
|
|
60
41
|
order.state = fsm.currentState;
|
|
61
|
-
|
|
62
|
-
async findOrderWithFulfillments(ctx, id) {
|
|
63
|
-
return await this.connection.getEntityOrThrow(ctx, order_entity_1.Order, id, {
|
|
64
|
-
relations: ['lines', 'lines.items', 'lines.items.fulfillments'],
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Specific business logic to be executed on Order state transitions.
|
|
69
|
-
*/
|
|
70
|
-
async onTransitionStart(fromState, toState, data) {
|
|
71
|
-
if (fromState === 'Modifying') {
|
|
72
|
-
const modifications = await this.connection
|
|
73
|
-
.getRepository(data.ctx, order_modification_entity_1.OrderModification)
|
|
74
|
-
.find({ where: { order: data.order }, relations: ['refund', 'payment'] });
|
|
75
|
-
if (toState === 'ArrangingAdditionalPayment') {
|
|
76
|
-
if (0 < modifications.length && modifications.every(modification => modification.isSettled)) {
|
|
77
|
-
return `message.cannot-transition-no-additional-payments-needed`;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
if (modifications.some(modification => !modification.isSettled)) {
|
|
82
|
-
return `message.cannot-transition-without-modification-payment`;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
if (fromState === 'ArrangingAdditionalPayment') {
|
|
87
|
-
if (toState === 'Cancelled') {
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
|
-
const existingPayments = await this.connection.getRepository(data.ctx, payment_entity_1.Payment).find({
|
|
91
|
-
relations: ['refunds'],
|
|
92
|
-
where: {
|
|
93
|
-
order: { id: data.order.id },
|
|
94
|
-
},
|
|
95
|
-
});
|
|
96
|
-
data.order.payments = existingPayments;
|
|
97
|
-
const deficit = data.order.totalWithTax - (0, order_utils_1.totalCoveredByPayments)(data.order);
|
|
98
|
-
if (0 < deficit) {
|
|
99
|
-
return `message.cannot-transition-from-arranging-additional-payment`;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
if (fromState === 'AddingItems' && toState !== 'Cancelled' && data.order.lines.length > 0) {
|
|
103
|
-
const variantIds = (0, unique_1.unique)(data.order.lines.map(l => l.productVariant.id));
|
|
104
|
-
const qb = this.connection
|
|
105
|
-
.getRepository(data.ctx, product_variant_entity_1.ProductVariant)
|
|
106
|
-
.createQueryBuilder('variant')
|
|
107
|
-
.leftJoin('variant.product', 'product')
|
|
108
|
-
.where('variant.deletedAt IS NULL')
|
|
109
|
-
.andWhere('product.deletedAt IS NULL')
|
|
110
|
-
.andWhere('variant.id IN (:...variantIds)', { variantIds });
|
|
111
|
-
const availableVariants = await qb.getMany();
|
|
112
|
-
if (availableVariants.length !== variantIds.length) {
|
|
113
|
-
return `message.cannot-transition-order-contains-products-which-are-unavailable`;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
if (toState === 'ArrangingPayment') {
|
|
117
|
-
if (data.order.lines.length === 0) {
|
|
118
|
-
return `message.cannot-transition-to-payment-when-order-is-empty`;
|
|
119
|
-
}
|
|
120
|
-
if (!data.order.customer) {
|
|
121
|
-
return `message.cannot-transition-to-payment-without-customer`;
|
|
122
|
-
}
|
|
123
|
-
if (!data.order.shippingLines || data.order.shippingLines.length === 0) {
|
|
124
|
-
return `message.cannot-transition-to-payment-without-shipping-method`;
|
|
125
|
-
}
|
|
126
|
-
const variantsWithInsufficientSaleableStock = [];
|
|
127
|
-
for (const line of data.order.lines) {
|
|
128
|
-
const availableStock = await this.productVariantService.getSaleableStockLevel(data.ctx, line.productVariant);
|
|
129
|
-
if (line.quantity > availableStock) {
|
|
130
|
-
variantsWithInsufficientSaleableStock.push(line.productVariant);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
if (variantsWithInsufficientSaleableStock.length) {
|
|
134
|
-
return data.ctx.translate('message.cannot-transition-to-payment-due-to-insufficient-stock', {
|
|
135
|
-
productVariantNames: variantsWithInsufficientSaleableStock.map(v => v.name).join(', '),
|
|
136
|
-
});
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
if (toState === 'PaymentAuthorized') {
|
|
140
|
-
const hasAnAuthorizedPayment = !!data.order.payments.find(p => p.state === 'Authorized');
|
|
141
|
-
if (!(0, order_utils_1.orderTotalIsCovered)(data.order, ['Authorized', 'Settled']) || !hasAnAuthorizedPayment) {
|
|
142
|
-
return `message.cannot-transition-without-authorized-payments`;
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
if (toState === 'PaymentSettled' && !(0, order_utils_1.orderTotalIsCovered)(data.order, 'Settled')) {
|
|
146
|
-
return `message.cannot-transition-without-settled-payments`;
|
|
147
|
-
}
|
|
148
|
-
if (toState === 'Cancelled' && fromState !== 'AddingItems' && fromState !== 'ArrangingPayment') {
|
|
149
|
-
if (!(0, order_utils_1.orderItemsAreAllCancelled)(data.order)) {
|
|
150
|
-
return `message.cannot-transition-unless-all-cancelled`;
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
if (toState === 'PartiallyShipped') {
|
|
154
|
-
const orderWithFulfillments = await this.findOrderWithFulfillments(data.ctx, data.order.id);
|
|
155
|
-
if (!(0, order_utils_1.orderItemsArePartiallyShipped)(orderWithFulfillments)) {
|
|
156
|
-
return `message.cannot-transition-unless-some-order-items-shipped`;
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
if (toState === 'Shipped') {
|
|
160
|
-
const orderWithFulfillments = await this.findOrderWithFulfillments(data.ctx, data.order.id);
|
|
161
|
-
if (!(0, order_utils_1.orderItemsAreShipped)(orderWithFulfillments)) {
|
|
162
|
-
return `message.cannot-transition-unless-all-order-items-shipped`;
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
if (toState === 'PartiallyDelivered') {
|
|
166
|
-
const orderWithFulfillments = await this.findOrderWithFulfillments(data.ctx, data.order.id);
|
|
167
|
-
if (!(0, order_utils_1.orderItemsArePartiallyDelivered)(orderWithFulfillments)) {
|
|
168
|
-
return `message.cannot-transition-unless-some-order-items-delivered`;
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
if (toState === 'Delivered') {
|
|
172
|
-
const orderWithFulfillments = await this.findOrderWithFulfillments(data.ctx, data.order.id);
|
|
173
|
-
if (!(0, order_utils_1.orderItemsAreDelivered)(orderWithFulfillments)) {
|
|
174
|
-
return `message.cannot-transition-unless-all-order-items-delivered`;
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
/**
|
|
179
|
-
* Specific business logic to be executed after Order state transition completes.
|
|
180
|
-
*/
|
|
181
|
-
async onTransitionEnd(fromState, toState, data) {
|
|
182
|
-
const { ctx, order } = data;
|
|
183
|
-
const { stockAllocationStrategy, orderPlacedStrategy } = this.configService.orderOptions;
|
|
184
|
-
if (order.active) {
|
|
185
|
-
const shouldSetAsPlaced = orderPlacedStrategy.shouldSetAsPlaced(ctx, fromState, toState, order);
|
|
186
|
-
if (shouldSetAsPlaced) {
|
|
187
|
-
order.active = false;
|
|
188
|
-
order.orderPlacedAt = new Date();
|
|
189
|
-
this.eventBus.publish(new order_placed_event_1.OrderPlacedEvent(fromState, toState, ctx, order));
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
const shouldAllocateStock = await stockAllocationStrategy.shouldAllocateStock(ctx, fromState, toState, order);
|
|
193
|
-
if (shouldAllocateStock) {
|
|
194
|
-
await this.stockMovementService.createAllocationsForOrder(ctx, order);
|
|
195
|
-
}
|
|
196
|
-
if (toState === 'Cancelled') {
|
|
197
|
-
order.active = false;
|
|
198
|
-
}
|
|
199
|
-
await this.historyService.createHistoryEntryForOrder({
|
|
200
|
-
orderId: order.id,
|
|
201
|
-
type: generated_types_1.HistoryEntryType.ORDER_STATE_TRANSITION,
|
|
202
|
-
ctx,
|
|
203
|
-
data: {
|
|
204
|
-
from: fromState,
|
|
205
|
-
to: toState,
|
|
206
|
-
},
|
|
207
|
-
});
|
|
42
|
+
return result;
|
|
208
43
|
}
|
|
209
44
|
initConfig() {
|
|
210
45
|
var _a;
|
|
211
|
-
const
|
|
212
|
-
const
|
|
46
|
+
const orderProcesses = (_a = this.configService.orderOptions.process) !== null && _a !== void 0 ? _a : [];
|
|
47
|
+
const emptyProcess = { transitions: {} };
|
|
48
|
+
const allTransitions = orderProcesses.reduce((transitions, process) => (0, merge_transition_definitions_1.mergeTransitionDefinitions)(transitions, process.transitions), {});
|
|
213
49
|
const validationResult = (0, validate_transition_definition_1.validateTransitionDefinition)(allTransitions, 'AddingItems');
|
|
214
50
|
return {
|
|
215
51
|
transitions: allTransitions,
|
|
216
52
|
onTransitionStart: async (fromState, toState, data) => {
|
|
217
|
-
for (const process of
|
|
53
|
+
for (const process of orderProcesses) {
|
|
218
54
|
if (typeof process.onTransitionStart === 'function') {
|
|
219
55
|
const result = await (0, utils_1.awaitPromiseOrObservable)(process.onTransitionStart(fromState, toState, data));
|
|
220
56
|
if (result === false || typeof result === 'string') {
|
|
@@ -222,18 +58,16 @@ let OrderStateMachine = class OrderStateMachine {
|
|
|
222
58
|
}
|
|
223
59
|
}
|
|
224
60
|
}
|
|
225
|
-
return this.onTransitionStart(fromState, toState, data);
|
|
226
61
|
},
|
|
227
62
|
onTransitionEnd: async (fromState, toState, data) => {
|
|
228
|
-
for (const process of
|
|
63
|
+
for (const process of orderProcesses) {
|
|
229
64
|
if (typeof process.onTransitionEnd === 'function') {
|
|
230
65
|
await (0, utils_1.awaitPromiseOrObservable)(process.onTransitionEnd(fromState, toState, data));
|
|
231
66
|
}
|
|
232
67
|
}
|
|
233
|
-
await this.onTransitionEnd(fromState, toState, data);
|
|
234
68
|
},
|
|
235
69
|
onError: async (fromState, toState, message) => {
|
|
236
|
-
for (const process of
|
|
70
|
+
for (const process of orderProcesses) {
|
|
237
71
|
if (typeof process.onTransitionError === 'function') {
|
|
238
72
|
await (0, utils_1.awaitPromiseOrObservable)(process.onTransitionError(fromState, toState, message));
|
|
239
73
|
}
|
|
@@ -248,13 +82,7 @@ let OrderStateMachine = class OrderStateMachine {
|
|
|
248
82
|
};
|
|
249
83
|
OrderStateMachine = __decorate([
|
|
250
84
|
(0, common_1.Injectable)(),
|
|
251
|
-
__metadata("design:paramtypes", [
|
|
252
|
-
config_service_1.ConfigService,
|
|
253
|
-
stock_movement_service_1.StockMovementService,
|
|
254
|
-
history_service_1.HistoryService,
|
|
255
|
-
promotion_service_1.PromotionService,
|
|
256
|
-
index_1.EventBus,
|
|
257
|
-
product_variant_service_1.ProductVariantService])
|
|
85
|
+
__metadata("design:paramtypes", [config_service_1.ConfigService, index_1.TransactionalConnection])
|
|
258
86
|
], OrderStateMachine);
|
|
259
87
|
exports.OrderStateMachine = OrderStateMachine;
|
|
260
88
|
//# sourceMappingURL=order-state-machine.js.map
|