@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.
Files changed (166) hide show
  1. package/dist/api/api-internal-modules.d.ts +2 -1
  2. package/dist/api/api-internal-modules.js +4 -0
  3. package/dist/api/api-internal-modules.js.map +1 -1
  4. package/dist/api/middleware/validate-custom-fields-interceptor.js +6 -0
  5. package/dist/api/middleware/validate-custom-fields-interceptor.js.map +1 -1
  6. package/dist/api/resolvers/admin/draft-order.resolver.js +1 -1
  7. package/dist/api/resolvers/admin/draft-order.resolver.js.map +1 -1
  8. package/dist/api/resolvers/admin/seller.resolver.d.ts +13 -0
  9. package/dist/api/resolvers/admin/seller.resolver.js +96 -0
  10. package/dist/api/resolvers/admin/seller.resolver.js.map +1 -0
  11. package/dist/api/resolvers/entity/channel-entity.resolver.d.ts +9 -0
  12. package/dist/api/resolvers/entity/channel-entity.resolver.js +45 -0
  13. package/dist/api/resolvers/entity/channel-entity.resolver.js.map +1 -0
  14. package/dist/api/resolvers/entity/order-entity.resolver.d.ts +3 -0
  15. package/dist/api/resolvers/entity/order-entity.resolver.js +46 -0
  16. package/dist/api/resolvers/entity/order-entity.resolver.js.map +1 -1
  17. package/dist/api/schema/admin-api/channel.api.graphql +2 -0
  18. package/dist/api/schema/admin-api/order-admin.type.graphql +4 -0
  19. package/dist/api/schema/admin-api/seller.api.graphql +29 -0
  20. package/dist/api/schema/common/channel.type.graphql +1 -0
  21. package/dist/api/schema/common/order.type.graphql +7 -0
  22. package/dist/api/schema/common/seller.type.graphql +6 -0
  23. package/dist/api/schema/shop-api/shop.api.graphql +7 -2
  24. package/dist/common/constants.js +1 -0
  25. package/dist/common/constants.js.map +1 -1
  26. package/dist/common/finite-state-machine/finite-state-machine.d.ts +3 -1
  27. package/dist/common/finite-state-machine/finite-state-machine.js +18 -6
  28. package/dist/common/finite-state-machine/finite-state-machine.js.map +1 -1
  29. package/dist/config/auth/native-authentication-strategy.js +10 -7
  30. package/dist/config/auth/native-authentication-strategy.js.map +1 -1
  31. package/dist/config/config.module.js +8 -4
  32. package/dist/config/config.module.js.map +1 -1
  33. package/dist/config/custom-field/custom-field-types.d.ts +1 -0
  34. package/dist/config/default-config.js +11 -1
  35. package/dist/config/default-config.js.map +1 -1
  36. package/dist/config/fulfillment/default-fulfillment-process.d.ts +15 -0
  37. package/dist/config/fulfillment/default-fulfillment-process.js +150 -0
  38. package/dist/config/fulfillment/default-fulfillment-process.js.map +1 -0
  39. package/dist/config/fulfillment/{custom-fulfillment-process.d.ts → fulfillment-process.d.ts} +16 -2
  40. package/dist/config/{order/custom-order-process.js → fulfillment/fulfillment-process.js} +1 -1
  41. package/dist/config/fulfillment/fulfillment-process.js.map +1 -0
  42. package/dist/config/index.d.ts +10 -3
  43. package/dist/config/index.js +10 -3
  44. package/dist/config/index.js.map +1 -1
  45. package/dist/config/order/default-order-process.d.ts +143 -0
  46. package/dist/config/order/default-order-process.js +317 -0
  47. package/dist/config/order/default-order-process.js.map +1 -0
  48. package/dist/config/order/default-order-seller-strategy.d.ts +11 -0
  49. package/dist/config/order/default-order-seller-strategy.js +15 -0
  50. package/dist/config/order/default-order-seller-strategy.js.map +1 -0
  51. package/dist/config/order/{custom-order-process.d.ts → order-process.d.ts} +15 -2
  52. package/dist/config/{payment/custom-payment-process.js → order/order-process.js} +1 -1
  53. package/dist/config/order/order-process.js.map +1 -0
  54. package/dist/config/order/order-seller-strategy.d.ts +53 -0
  55. package/dist/config/{fulfillment/custom-fulfillment-process.js → order/order-seller-strategy.js} +1 -1
  56. package/dist/config/order/order-seller-strategy.js.map +1 -0
  57. package/dist/config/payment/default-payment-process.d.ts +16 -0
  58. package/dist/config/payment/default-payment-process.js +89 -0
  59. package/dist/config/payment/default-payment-process.js.map +1 -0
  60. package/dist/config/payment/payment-method-handler.d.ts +2 -2
  61. package/dist/config/payment/payment-method-handler.js +1 -1
  62. package/dist/config/payment/{custom-payment-process.d.ts → payment-process.d.ts} +17 -3
  63. package/dist/config/payment/payment-process.js +3 -0
  64. package/dist/config/payment/payment-process.js.map +1 -0
  65. package/dist/config/shipping-method/default-shipping-calculator.d.ts +1 -2
  66. package/dist/config/shipping-method/default-shipping-calculator.js +2 -2
  67. package/dist/config/shipping-method/default-shipping-calculator.js.map +1 -1
  68. package/dist/config/shipping-method/default-shipping-line-assignment-strategy.d.ts +6 -0
  69. package/dist/config/shipping-method/default-shipping-line-assignment-strategy.js +10 -0
  70. package/dist/config/shipping-method/default-shipping-line-assignment-strategy.js.map +1 -0
  71. package/dist/config/shipping-method/shipping-line-assignment-strategy.d.ts +18 -0
  72. package/dist/config/shipping-method/shipping-line-assignment-strategy.js +3 -0
  73. package/dist/config/shipping-method/shipping-line-assignment-strategy.js.map +1 -0
  74. package/dist/config/vendure-config.d.ts +46 -9
  75. package/dist/connection/connection.module.d.ts +1 -1
  76. package/dist/entity/address/address.entity.d.ts +1 -1
  77. package/dist/entity/address/address.entity.js +1 -1
  78. package/dist/entity/channel/channel.entity.d.ts +5 -1
  79. package/dist/entity/channel/channel.entity.js +14 -0
  80. package/dist/entity/channel/channel.entity.js.map +1 -1
  81. package/dist/entity/custom-entity-fields.d.ts +2 -0
  82. package/dist/entity/custom-entity-fields.js +4 -1
  83. package/dist/entity/custom-entity-fields.js.map +1 -1
  84. package/dist/entity/entities.d.ts +2 -0
  85. package/dist/entity/entities.js +2 -0
  86. package/dist/entity/entities.js.map +1 -1
  87. package/dist/entity/order/order.entity.d.ts +5 -1
  88. package/dist/entity/order/order.entity.js +16 -0
  89. package/dist/entity/order/order.entity.js.map +1 -1
  90. package/dist/entity/order-line/order-line.entity.d.ts +7 -1
  91. package/dist/entity/order-line/order-line.entity.js +20 -0
  92. package/dist/entity/order-line/order-line.entity.js.map +1 -1
  93. package/dist/entity/register-custom-entity-fields.js +1 -0
  94. package/dist/entity/register-custom-entity-fields.js.map +1 -1
  95. package/dist/entity/seller/seller.entity.d.ts +17 -0
  96. package/dist/entity/seller/seller.entity.js +44 -0
  97. package/dist/entity/seller/seller.entity.js.map +1 -0
  98. package/dist/entity/shipping-line/shipping-line.entity.d.ts +1 -1
  99. package/dist/entity/shipping-line/shipping-line.entity.js +1 -1
  100. package/dist/entity/shipping-line/shipping-line.entity.js.map +1 -1
  101. package/dist/entity/user/user.entity.d.ts +1 -0
  102. package/dist/entity/user/user.entity.js +2 -2
  103. package/dist/entity/user/user.entity.js.map +1 -1
  104. package/dist/job-queue/job.js +8 -3
  105. package/dist/job-queue/job.js.map +1 -1
  106. package/dist/service/helpers/external-authentication/external-authentication.service.js +6 -5
  107. package/dist/service/helpers/external-authentication/external-authentication.service.js.map +1 -1
  108. package/dist/service/helpers/fulfillment-state-machine/fulfillment-state-machine.d.ts +6 -12
  109. package/dist/service/helpers/fulfillment-state-machine/fulfillment-state-machine.js +13 -43
  110. package/dist/service/helpers/fulfillment-state-machine/fulfillment-state-machine.js.map +1 -1
  111. package/dist/service/helpers/fulfillment-state-machine/fulfillment-state.d.ts +13 -5
  112. package/dist/service/helpers/fulfillment-state-machine/fulfillment-state.js +0 -18
  113. package/dist/service/helpers/fulfillment-state-machine/fulfillment-state.js.map +1 -1
  114. package/dist/service/helpers/order-modifier/order-modifier.js +10 -0
  115. package/dist/service/helpers/order-modifier/order-modifier.js.map +1 -1
  116. package/dist/service/helpers/order-splitter/order-splitter.d.ts +16 -0
  117. package/dist/service/helpers/order-splitter/order-splitter.js +121 -0
  118. package/dist/service/helpers/order-splitter/order-splitter.js.map +1 -0
  119. package/dist/service/helpers/order-state-machine/order-state-machine.d.ts +6 -23
  120. package/dist/service/helpers/order-state-machine/order-state-machine.js +12 -184
  121. package/dist/service/helpers/order-state-machine/order-state-machine.js.map +1 -1
  122. package/dist/service/helpers/order-state-machine/order-state.d.ts +32 -4
  123. package/dist/service/helpers/order-state-machine/order-state.js +0 -64
  124. package/dist/service/helpers/order-state-machine/order-state.js.map +1 -1
  125. package/dist/service/helpers/payment-state-machine/payment-state-machine.d.ts +4 -9
  126. package/dist/service/helpers/payment-state-machine/payment-state-machine.js +10 -32
  127. package/dist/service/helpers/payment-state-machine/payment-state-machine.js.map +1 -1
  128. package/dist/service/helpers/payment-state-machine/payment-state.d.ts +10 -4
  129. package/dist/service/helpers/payment-state-machine/payment-state.js +0 -21
  130. package/dist/service/helpers/payment-state-machine/payment-state.js.map +1 -1
  131. package/dist/service/helpers/refund-state-machine/refund-state-machine.d.ts +3 -1
  132. package/dist/service/helpers/refund-state-machine/refund-state-machine.js +2 -1
  133. package/dist/service/helpers/refund-state-machine/refund-state-machine.js.map +1 -1
  134. package/dist/service/index.d.ts +3 -0
  135. package/dist/service/index.js +3 -0
  136. package/dist/service/index.js.map +1 -1
  137. package/dist/service/initializer.service.d.ts +3 -1
  138. package/dist/service/initializer.service.js +5 -1
  139. package/dist/service/initializer.service.js.map +1 -1
  140. package/dist/service/service.module.js +4 -0
  141. package/dist/service/service.module.js.map +1 -1
  142. package/dist/service/services/auth.service.js +4 -2
  143. package/dist/service/services/auth.service.js.map +1 -1
  144. package/dist/service/services/channel.service.d.ts +2 -2
  145. package/dist/service/services/channel.service.js +26 -8
  146. package/dist/service/services/channel.service.js.map +1 -1
  147. package/dist/service/services/collection.service.js +10 -0
  148. package/dist/service/services/collection.service.js.map +1 -1
  149. package/dist/service/services/customer.service.js +3 -1
  150. package/dist/service/services/customer.service.js.map +1 -1
  151. package/dist/service/services/fulfillment.service.js +4 -1
  152. package/dist/service/services/fulfillment.service.js.map +1 -1
  153. package/dist/service/services/order.service.d.ts +5 -5
  154. package/dist/service/services/order.service.js +93 -116
  155. package/dist/service/services/order.service.js.map +1 -1
  156. package/dist/service/services/payment.service.js +24 -4
  157. package/dist/service/services/payment.service.js.map +1 -1
  158. package/dist/service/services/seller.service.d.ts +25 -0
  159. package/dist/service/services/seller.service.js +76 -0
  160. package/dist/service/services/seller.service.js.map +1 -0
  161. package/dist/service/services/user.service.js +11 -5
  162. package/dist/service/services/user.service.js.map +1 -1
  163. package/package.json +3 -3
  164. package/dist/config/fulfillment/custom-fulfillment-process.js.map +0 -1
  165. package/dist/config/order/custom-order-process.js.map +0 -1
  166. 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
- * @docsCategory fulfillment
8
+ * @deprecated use FulfillmentStates
10
9
  */
11
10
  export interface CustomFulfillmentStates {
12
11
  }
13
12
  /**
14
13
  * @description
15
- * These are the default states of the fulfillment process.
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' | 'Shipped' | 'Delivered' | 'Cancelled' | keyof CustomFulfillmentStates;
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":";;;AA2Ba,QAAA,2BAA2B,GAAkC;IACtE,OAAO,EAAE;QACL,EAAE,EAAE,CAAC,SAAS,CAAC;KAClB;IACD,OAAO,EAAE;QACL,EAAE,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC;KAC5C;IACD,OAAO,EAAE;QACL,EAAE,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC;KACjC;IACD,SAAS,EAAE;QACP,EAAE,EAAE,CAAC,WAAW,CAAC;KACpB;IACD,SAAS,EAAE;QACP,EAAE,EAAE,EAAE;KACT;CACJ,CAAC"}
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/transactional-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 stockMovementService;
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(connection: TransactionalConnection, configService: ConfigService, stockMovementService: StockMovementService, historyService: HistoryService, promotionService: PromotionService, eventBus: EventBus, productVariantService: ProductVariantService);
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<void>;
27
- private findOrderWithFulfillments;
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 transactional_connection_1 = require("../../../connection/transactional-connection");
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(connection, configService, stockMovementService, historyService, promotionService, eventBus, productVariantService) {
37
- this.connection = connection;
22
+ constructor(configService, connection) {
38
23
  this.configService = configService;
39
- this.stockMovementService = stockMovementService;
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 customProcesses = (_a = this.configService.orderOptions.process) !== null && _a !== void 0 ? _a : [];
212
- const allTransitions = customProcesses.reduce((transitions, process) => (0, merge_transition_definitions_1.mergeTransitionDefinitions)(transitions, process.transitions), order_state_1.orderStateTransitions);
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 customProcesses) {
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 customProcesses) {
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 customProcesses) {
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", [transactional_connection_1.TransactionalConnection,
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