@things-factory/marketplace-base 4.0.9 → 4.0.13

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 (85) hide show
  1. package/dist-server/entities/index.js +8 -2
  2. package/dist-server/entities/index.js.map +1 -1
  3. package/dist-server/entities/marketplace-order-item.js +80 -0
  4. package/dist-server/entities/marketplace-order-item.js.map +1 -1
  5. package/dist-server/entities/marketplace-order-shipping.js +16 -0
  6. package/dist-server/entities/marketplace-order-shipping.js.map +1 -1
  7. package/dist-server/entities/marketplace-order.js +36 -0
  8. package/dist-server/entities/marketplace-order.js.map +1 -1
  9. package/dist-server/entities/marketplace-refund-order-item.js +82 -0
  10. package/dist-server/entities/marketplace-refund-order-item.js.map +1 -0
  11. package/dist-server/entities/marketplace-refund-order.js +77 -0
  12. package/dist-server/entities/marketplace-refund-order.js.map +1 -0
  13. package/dist-server/graphql/resolvers/index.js +2 -0
  14. package/dist-server/graphql/resolvers/index.js.map +1 -1
  15. package/dist-server/graphql/resolvers/marketplace-order/marketplace-orders.js +19 -17
  16. package/dist-server/graphql/resolvers/marketplace-order/marketplace-orders.js.map +1 -1
  17. package/dist-server/graphql/resolvers/marketplace-order/sync-all-marketplace-order.js +267 -205
  18. package/dist-server/graphql/resolvers/marketplace-order/sync-all-marketplace-order.js.map +1 -1
  19. package/dist-server/graphql/resolvers/marketplace-order/sync-marketplace-order.js +100 -43
  20. package/dist-server/graphql/resolvers/marketplace-order/sync-marketplace-order.js.map +1 -1
  21. package/dist-server/graphql/resolvers/marketplace-order-item/marketplace-order-items.js +1 -1
  22. package/dist-server/graphql/resolvers/marketplace-order-item/marketplace-order-items.js.map +1 -1
  23. package/dist-server/graphql/resolvers/marketplace-order-shipping/marketplace-order-shippings.js +28 -10
  24. package/dist-server/graphql/resolvers/marketplace-order-shipping/marketplace-order-shippings.js.map +1 -1
  25. package/dist-server/graphql/resolvers/marketplace-order-shipping/update-marketplace-order-shipping.js +7 -0
  26. package/dist-server/graphql/resolvers/marketplace-order-shipping/update-marketplace-order-shipping.js.map +1 -1
  27. package/dist-server/graphql/resolvers/marketplace-refund-order/index.js +9 -0
  28. package/dist-server/graphql/resolvers/marketplace-refund-order/index.js.map +1 -0
  29. package/dist-server/graphql/resolvers/marketplace-refund-order/sync-all-marketplace-refund-orders.js +93 -0
  30. package/dist-server/graphql/resolvers/marketplace-refund-order/sync-all-marketplace-refund-orders.js.map +1 -0
  31. package/dist-server/graphql/resolvers/marketplace-refund-order/sync-marketplace-refund-orders.js +79 -0
  32. package/dist-server/graphql/resolvers/marketplace-refund-order/sync-marketplace-refund-orders.js.map +1 -0
  33. package/dist-server/graphql/resolvers/marketplace-report/index.js +8 -0
  34. package/dist-server/graphql/resolvers/marketplace-report/index.js.map +1 -0
  35. package/dist-server/graphql/resolvers/marketplace-report/marketplace-sales-report.js +112 -0
  36. package/dist-server/graphql/resolvers/marketplace-report/marketplace-sales-report.js.map +1 -0
  37. package/dist-server/graphql/types/index.js +2 -0
  38. package/dist-server/graphql/types/index.js.map +1 -1
  39. package/dist-server/graphql/types/marketplace-order/marketplace-order.js +2 -0
  40. package/dist-server/graphql/types/marketplace-order/marketplace-order.js.map +1 -1
  41. package/dist-server/graphql/types/marketplace-order-item/marketplace-order-item.js +4 -0
  42. package/dist-server/graphql/types/marketplace-order-item/marketplace-order-item.js.map +1 -1
  43. package/dist-server/graphql/types/marketplace-order-shipping/marketplace-order-shipping.js +4 -0
  44. package/dist-server/graphql/types/marketplace-order-shipping/marketplace-order-shipping.js.map +1 -1
  45. package/dist-server/graphql/types/marketplace-refund-order/index.js +31 -0
  46. package/dist-server/graphql/types/marketplace-refund-order/index.js.map +1 -0
  47. package/dist-server/graphql/types/marketplace-refund-order/marketplace-refund-order-list.js +14 -0
  48. package/dist-server/graphql/types/marketplace-refund-order/marketplace-refund-order-list.js.map +1 -0
  49. package/dist-server/graphql/types/marketplace-refund-order/marketplace-refund-order.js +23 -0
  50. package/dist-server/graphql/types/marketplace-refund-order/marketplace-refund-order.js.map +1 -0
  51. package/dist-server/graphql/types/marketplace-report/index.js +25 -0
  52. package/dist-server/graphql/types/marketplace-report/index.js.map +1 -0
  53. package/dist-server/graphql/types/marketplace-report/marketplace-sales-report-list.js +14 -0
  54. package/dist-server/graphql/types/marketplace-report/marketplace-sales-report-list.js.map +1 -0
  55. package/dist-server/graphql/types/marketplace-report/marketplace-sales-report.js +65 -0
  56. package/dist-server/graphql/types/marketplace-report/marketplace-sales-report.js.map +1 -0
  57. package/package.json +5 -5
  58. package/server/entities/index.ts +8 -2
  59. package/server/entities/marketplace-order-item.ts +60 -0
  60. package/server/entities/marketplace-order-shipping.ts +12 -0
  61. package/server/entities/marketplace-order.ts +27 -0
  62. package/server/entities/marketplace-refund-order-item.ts +65 -0
  63. package/server/entities/marketplace-refund-order.ts +62 -0
  64. package/server/graphql/resolvers/index.ts +2 -0
  65. package/server/graphql/resolvers/marketplace-order/marketplace-orders.ts +25 -17
  66. package/server/graphql/resolvers/marketplace-order/sync-all-marketplace-order.ts +337 -278
  67. package/server/graphql/resolvers/marketplace-order/sync-marketplace-order.ts +107 -45
  68. package/server/graphql/resolvers/marketplace-order-item/marketplace-order-items.ts +5 -2
  69. package/server/graphql/resolvers/marketplace-order-shipping/marketplace-order-shippings.ts +35 -14
  70. package/server/graphql/resolvers/marketplace-order-shipping/update-marketplace-order-shipping.ts +8 -0
  71. package/server/graphql/resolvers/marketplace-refund-order/index.ts +9 -0
  72. package/server/graphql/resolvers/marketplace-refund-order/sync-all-marketplace-refund-orders.ts +121 -0
  73. package/server/graphql/resolvers/marketplace-refund-order/sync-marketplace-refund-orders.ts +103 -0
  74. package/server/graphql/resolvers/marketplace-report/index.ts +7 -0
  75. package/server/graphql/resolvers/marketplace-report/marketplace-sales-report.ts +130 -0
  76. package/server/graphql/types/index.ts +2 -0
  77. package/server/graphql/types/marketplace-order/marketplace-order.ts +2 -0
  78. package/server/graphql/types/marketplace-order-item/marketplace-order-item.ts +4 -0
  79. package/server/graphql/types/marketplace-order-shipping/marketplace-order-shipping.ts +4 -0
  80. package/server/graphql/types/marketplace-refund-order/index.ts +16 -0
  81. package/server/graphql/types/marketplace-refund-order/marketplace-refund-order-list.ts +8 -0
  82. package/server/graphql/types/marketplace-refund-order/marketplace-refund-order.ts +17 -0
  83. package/server/graphql/types/marketplace-report/index.ts +10 -0
  84. package/server/graphql/types/marketplace-report/marketplace-sales-report-list.ts +8 -0
  85. package/server/graphql/types/marketplace-report/marketplace-sales-report.ts +59 -0
@@ -39,6 +39,8 @@ export const syncAllMarketplaceOrder = {
39
39
  let hasMorePage: boolean = true
40
40
  let lastOrderId: string
41
41
  var limit: number = 100
42
+ const cancelStatuses: string[] = ['cancelled', 'canceled']
43
+ const disallowCancelStatuses: string[] = ['CANCELLED', 'PENDING_CANCEL']
42
44
 
43
45
  while (hasMorePage) {
44
46
  const { results: marketplaceOrders, more } = await StoreAPI.getStoreOrders(marketplaceStore, {
@@ -50,83 +52,87 @@ export const syncAllMarketplaceOrder = {
50
52
 
51
53
  if (marketplaceOrders?.length > 0) {
52
54
  for (var m = 0; m < marketplaceOrders.length; m++) {
53
- var order = marketplaceOrders[m]
54
-
55
- let marketplaceOrderItems = []
56
- let tracking_code = ''
57
- let deliveryProvider: string
58
-
59
- if (marketplaceStore.platform == 'lazada') {
60
- if (order.trackingNo != '') {
61
- tracking_code = JSON.parse(order.trackingNo)
62
- .reduce((newItem, item) => {
63
- if (newItem.indexOf(item.tracking_code) < 0) {
64
- newItem.push(item.tracking_code)
65
- }
66
- return newItem
67
- }, [])
68
- .join(',')
69
- }
55
+ try {
56
+ var order = marketplaceOrders[m]
57
+
58
+ let marketplaceOrderItems = []
59
+ let tracking_code = ''
60
+ let deliveryProvider: string
61
+ let dropPickProvider: string
62
+
63
+ if (marketplaceStore.platform == 'lazada') {
64
+ if (order.trackingNo != '') {
65
+ tracking_code = JSON.parse(order.trackingNo)
66
+ .reduce((newItem, item) => {
67
+ if (newItem.indexOf(item.tracking_code) < 0) {
68
+ newItem.push(item.tracking_code)
69
+ }
70
+ return newItem
71
+ }, [])
72
+ .join(',')
73
+ }
70
74
 
71
- const shippingProviderInfo: any = {}
72
- order.shippingProvider.split(', ').forEach(s => {
73
- var [key, value] = s.split(': ')
74
- shippingProviderInfo[key] = value
75
- })
75
+ const shippingProviderInfo: any = {}
76
+ order.shippingProvider.split(', ').forEach(s => {
77
+ var [key, value] = s.split(': ')
78
+ shippingProviderInfo[key] = value
79
+ })
76
80
 
77
- deliveryProvider = shippingProviderInfo.Delivery
78
- }
79
-
80
- let marketplaceOrder: MarketplaceOrder = new MarketplaceOrder()
81
- marketplaceOrder.name = order.name
82
- marketplaceOrder.orderNo = order.orderNo
83
- marketplaceOrder.itemCount = order.itemCount
84
- marketplaceOrder.totalAmount = order.totalAmount
85
- marketplaceOrder.status = order.status
86
- marketplaceOrder.remark = order?.remark
87
- marketplaceOrder.trackingNo = tracking_code ? tracking_code : order.trackingNo
88
- marketplaceOrder.shippingProvider = order.shippingProvider
89
- marketplaceOrder.orderCreatedAt = order.orderCreatedAt
90
- marketplaceOrder.orderUpdatedAt = order.orderUpdatedAt
91
- marketplaceOrder.marketplaceStore = marketplaceStore
92
- marketplaceOrder.domain = marketplaceStore.domain
93
-
94
- const existingMarketplaceOrder: MarketplaceOrder = await getRepository(MarketplaceOrder).findOne({
95
- where: { domain: marketplaceStore.domain, name: order.name },
96
- relations: [
97
- 'domain',
98
- 'fulfillmentCenter',
99
- 'marketplaceOrderItems',
100
- 'marketplaceOrderItems.marketplaceProductVariation',
101
- 'marketplaceOrderItems.marketplaceOrderShipping'
102
- ]
103
- })
104
-
105
- if (existingMarketplaceOrder) {
106
- let otherInfoJSON: any = {}
107
-
108
- if (existingMarketplaceOrder?.otherInfoJSON && deliveryProvider) {
109
- otherInfoJSON = JSON.parse(existingMarketplaceOrder.otherInfoJSON)
110
- otherInfoJSON.shippingProvider = deliveryProvider
81
+ dropPickProvider = shippingProviderInfo?.Pickup
82
+ ? shippingProviderInfo['Pickup']
83
+ : shippingProviderInfo['Drop-off']
84
+ deliveryProvider = shippingProviderInfo['Delivery']
111
85
  }
112
86
 
113
- marketplaceOrder = {
114
- ...existingMarketplaceOrder,
115
- ...marketplaceOrder,
116
- otherInfoJSON: otherInfoJSON ? JSON.stringify(otherInfoJSON) : null,
117
- updater: user
118
- }
87
+ let marketplaceOrder: MarketplaceOrder = new MarketplaceOrder()
88
+ marketplaceOrder.name = order.name
89
+ marketplaceOrder.orderNo = order.orderNo
90
+ marketplaceOrder.itemCount = order.itemCount
91
+ marketplaceOrder.totalAmount = order.totalAmount
92
+ marketplaceOrder.status = order.status
93
+ marketplaceOrder.remark = order?.remark
94
+ marketplaceOrder.trackingNo = tracking_code ? tracking_code : order.trackingNo
95
+ marketplaceOrder.shippingProvider = order.shippingProvider
96
+ marketplaceOrder.orderCreatedAt = order.orderCreatedAt
97
+ marketplaceOrder.orderUpdatedAt = order.orderUpdatedAt
98
+ marketplaceOrder.marketplaceStore = marketplaceStore
99
+ marketplaceOrder.domain = marketplaceStore.domain
100
+ marketplaceOrder.buyerUsername = order.buyerUsername
101
+ marketplaceOrder.payTime = order.payTime
102
+ marketplaceOrder.serviceFee = order.serviceFee
103
+ marketplaceOrder.commissionFee = order.commissionFee
104
+ marketplaceOrder.transactionFee = order.transactionFee
105
+ marketplaceOrder.shippingMode = order.shippingMode
106
+ marketplaceOrder.voucherAmount = order.voucherAmount
107
+ marketplaceOrder.totalRealeasedAmount = order.totalRealeasedAmount
108
+ marketplaceOrder.voucherCode = order.voucherCode
109
+ marketplaceOrder.shippingRebate = order.shippingRebate
110
+
111
+ const existingMarketplaceOrder: MarketplaceOrder = await getRepository(MarketplaceOrder).findOne({
112
+ where: { domain: marketplaceStore.domain, name: order.name },
113
+ relations: [
114
+ 'domain',
115
+ 'fulfillmentCenter',
116
+ 'marketplaceOrderItems',
117
+ 'marketplaceOrderItems.marketplaceProductVariation',
118
+ 'marketplaceOrderItems.marketplaceOrderShipping'
119
+ ]
120
+ })
121
+
122
+ if (existingMarketplaceOrder) {
123
+ let otherInfoJSON: any = {}
119
124
 
120
- const cancelStatuses: string[] = ['cancelled', 'canceled']
121
- const disallowCancelStatuses: string[] = ['CANCELLED', 'PENDING_CANCEL']
125
+ if (existingMarketplaceOrder?.otherInfoJSON && deliveryProvider) {
126
+ otherInfoJSON = JSON.parse(existingMarketplaceOrder.otherInfoJSON)
127
+ otherInfoJSON.shippingProvider = deliveryProvider
128
+ }
122
129
 
123
- if (cancelStatuses.includes(marketplaceOrder.status) && marketplaceOrder?.releaseOrderId) {
124
- if (existingMarketplaceOrder.isSplitted) {
130
+ if (marketplaceOrder?.releaseOrderId) {
125
131
  const fulfillmentCenter: FulfillmentCenter = marketplaceOrder.fulfillmentCenter
126
132
  const centerId: string = fulfillmentCenter.centerId
127
- const warehouseDomain: Domain = await getRepository(Domain).findOne({
128
- where: { subdomain: centerId }
129
- })
133
+ const warehouseDomain: Domain = await tx
134
+ .getRepository(Domain)
135
+ .findOne({ where: { subdomain: centerId } })
130
136
  const customerBizplaces: Bizplace[] = await getCustomerBizplaces(warehouseDomain)
131
137
  const customerBizplaceId: string = customerBizplaces[0].id
132
138
 
@@ -135,236 +141,294 @@ export const syncAllMarketplaceOrder = {
135
141
  refNo: marketplaceOrder.orderNo
136
142
  })
137
143
 
138
- releaseOrders = releaseOrders.filter(function (order) {
139
- return !disallowCancelStatuses.includes(order.status)
140
- })
141
-
142
- if (releaseOrders?.length) {
143
- for (var a = 0; a < releaseOrders.length; a++) {
144
- const releaseOrderId: string = releaseOrders[a].id
145
- await FulfillmentAPI.cancelReleaseOrder(fulfillmentCenter, { customerBizplaceId, releaseOrderId })
146
- }
144
+ let releaseOrder = Object.assign({}, releaseOrders[0])
145
+ let patch = {
146
+ id: releaseOrder.id,
147
+ marketplaceOrderStatus: marketplaceOrder.status,
148
+ trackingNo: marketplaceOrder.trackingNo,
149
+ transporter: dropPickProvider ? dropPickProvider : marketplaceOrder.shippingProvider
147
150
  }
148
- } else {
149
- const fulfillmentCenter: FulfillmentCenter = marketplaceOrder.fulfillmentCenter
150
- const centerId: string = fulfillmentCenter.centerId
151
-
152
- const warehouseDomain: Domain = await getRepository(Domain).findOne({
153
- where: { subdomain: centerId }
154
- })
155
- const customerBizplaces: Bizplace[] = await getCustomerBizplaces(warehouseDomain)
156
- const customerBizplaceId: string = customerBizplaces[0].id
157
151
 
158
- const { items: releaseOrders }: any = await FulfillmentAPI.getOutboundOrders(fulfillmentCenter, {
152
+ await FulfillmentAPI.updateReleaseGoodDetails(fulfillmentCenter, {
159
153
  customerBizplaceId,
160
- refNo: marketplaceOrder.orderNo
154
+ releaseOrder: { ...patch },
155
+ shippingOrder: null
161
156
  })
162
157
 
163
- const releaseOrderStatus = releaseOrders[0].status
164
-
165
- if (!disallowCancelStatuses.includes(releaseOrderStatus)) {
166
- await FulfillmentAPI.cancelReleaseOrder(fulfillmentCenter, {
167
- customerBizplaceId,
168
- releaseOrderId: releaseOrders[0].id
169
- })
158
+ if (cancelStatuses.includes(marketplaceOrder.status)) {
159
+ if (existingMarketplaceOrder.isSplitted) {
160
+ releaseOrders = releaseOrders.filter(function (order) {
161
+ return !disallowCancelStatuses.includes(order.status)
162
+ })
163
+
164
+ if (releaseOrders?.length) {
165
+ for (var a = 0; a < releaseOrders.length; a++) {
166
+ const releaseOrderId: string = releaseOrders[a].id
167
+ await FulfillmentAPI.cancelReleaseOrder(fulfillmentCenter, {
168
+ customerBizplaceId,
169
+ releaseOrderId
170
+ })
171
+ }
172
+ }
173
+ } else {
174
+ const fulfillmentCenter: FulfillmentCenter = marketplaceOrder.fulfillmentCenter
175
+ const centerId: string = fulfillmentCenter.centerId
176
+
177
+ const warehouseDomain: Domain = await tx
178
+ .getRepository(Domain)
179
+ .findOne({ where: { subdomain: centerId } })
180
+ const customerBizplaces: Bizplace[] = await getCustomerBizplaces(warehouseDomain)
181
+ const customerBizplaceId: string = customerBizplaces[0].id
182
+
183
+ const { items: releaseOrders }: any = await FulfillmentAPI.getOutboundOrders(fulfillmentCenter, {
184
+ customerBizplaceId,
185
+ refNo: marketplaceOrder.orderNo
186
+ })
187
+
188
+ const releaseOrderStatus = releaseOrders[0].status
189
+
190
+ if (!disallowCancelStatuses.includes(releaseOrderStatus)) {
191
+ await FulfillmentAPI.cancelReleaseOrder(fulfillmentCenter, {
192
+ customerBizplaceId,
193
+ releaseOrderId: releaseOrders[0].id
194
+ })
195
+ }
196
+ }
170
197
  }
171
198
  }
172
199
  }
173
- }
174
200
 
175
- marketplaceOrder = await getRepository(MarketplaceOrder).save(marketplaceOrder)
201
+ marketplaceOrder = await getRepository(MarketplaceOrder).save(marketplaceOrder)
176
202
 
177
- let savedMarketplaceOrderShipping: MarketplaceOrderShipping = new MarketplaceOrderShipping()
178
-
179
- if (order?.orderShipping) {
203
+ let savedMarketplaceOrderShipping: MarketplaceOrderShipping = new MarketplaceOrderShipping()
180
204
  let savedMarketplaceOrderShippings: MarketplaceOrderShipping[] = []
181
- const orderShipping: any = order.orderShipping
182
-
183
- let marketplaceOrderShipping: MarketplaceOrderShipping = new MarketplaceOrderShipping()
184
- marketplaceOrderShipping.name = NoGenerator.orderShipping()
185
- marketplaceOrderShipping.address1 = orderShipping.address1
186
- marketplaceOrderShipping.address2 = orderShipping.address2
187
- marketplaceOrderShipping.address3 = orderShipping.address3
188
- marketplaceOrderShipping.address4 = orderShipping.address4
189
- marketplaceOrderShipping.address5 = orderShipping.address5
190
- marketplaceOrderShipping.attentionTo = orderShipping.attentionTo
191
- marketplaceOrderShipping.city = orderShipping.city
192
- marketplaceOrderShipping.country = orderShipping.country
193
- marketplaceOrderShipping.postCode = orderShipping.postCode
194
- marketplaceOrderShipping.phone1 = orderShipping.phone1
195
- marketplaceOrderShipping.phone2 = orderShipping.phone2
196
- marketplaceOrderShipping.trackingNo = order.trackingNo
197
- marketplaceOrderShipping.orderNoRef = marketplaceOrder.orderNo
198
- marketplaceOrderShipping.subOrderNoRef = marketplaceOrder.orderNo
199
- marketplaceOrderShipping.marketplaceStore = marketplaceStore
200
- marketplaceOrderShipping.creator = user
201
- marketplaceOrderShipping.domain = marketplaceStore.domain
202
205
 
203
- if (existingMarketplaceOrder) {
204
- if (existingMarketplaceOrder.isSplitted) {
205
- let existingOrderShippings: MarketplaceOrderShipping[] = await getRepository(
206
- MarketplaceOrderShipping
207
- ).find({
208
- where: { domain, marketplaceStore, orderNoRef: marketplaceOrder.orderNo }
209
- })
206
+ if (order?.orderShipping) {
207
+ const orderShipping: any = order.orderShipping
208
+
209
+ let marketplaceOrderShipping: MarketplaceOrderShipping = new MarketplaceOrderShipping()
210
+ marketplaceOrderShipping.name = NoGenerator.orderShipping()
211
+ marketplaceOrderShipping.address1 = orderShipping.address1
212
+ marketplaceOrderShipping.address2 = orderShipping.address2
213
+ marketplaceOrderShipping.address3 = orderShipping.address3
214
+ marketplaceOrderShipping.address4 = orderShipping.address4
215
+ marketplaceOrderShipping.address5 = orderShipping.address5
216
+ marketplaceOrderShipping.attentionTo = orderShipping.attentionTo
217
+ marketplaceOrderShipping.city = orderShipping.city
218
+ marketplaceOrderShipping.country = orderShipping.country
219
+ marketplaceOrderShipping.state = orderShipping?.state || null
220
+ marketplaceOrderShipping.postCode = orderShipping.postCode
221
+ marketplaceOrderShipping.phone1 = orderShipping.phone1
222
+ marketplaceOrderShipping.phone2 = orderShipping.phone2
223
+ marketplaceOrderShipping.trackingNo = order?.trackingNo || null
224
+ marketplaceOrderShipping.orderNoRef = marketplaceOrder.orderNo
225
+ marketplaceOrderShipping.subOrderNoRef = marketplaceOrder.orderNo
226
+ marketplaceOrderShipping.marketplaceStore = marketplaceStore
227
+ marketplaceOrderShipping.creator = user
228
+ marketplaceOrderShipping.domain = marketplaceStore.domain
229
+ marketplaceOrderShipping.shippingFee = orderShipping.shippingFee
230
+ marketplaceOrderShipping.actualShippingFee = orderShipping.actualShippingFee
231
+ marketplaceOrderShipping.marketplaceShippingFeeVoucher = orderShipping.marketplaceShippingFeeVoucher
232
+ marketplaceOrderShipping.sellerShippingFeeVoucher = orderShipping.sellerShippingFeeVoucher
233
+
234
+ if (existingMarketplaceOrder) {
235
+ if (existingMarketplaceOrder.isSplitted) {
236
+ let existingOrderShippings: MarketplaceOrderShipping[] = await getRepository(
237
+ MarketplaceOrderShipping
238
+ ).find({
239
+ where: { domain, marketplaceStore, orderNoRef: marketplaceOrder.orderNo }
240
+ })
210
241
 
211
- existingOrderShippings = existingOrderShippings.map(item => {
212
- return {
213
- ...item,
214
- address1: orderShipping.address1,
215
- address2: orderShipping.address2,
216
- address3: orderShipping.address3,
217
- address4: orderShipping.address4,
218
- address5: orderShipping.address5,
219
- attentionTo: orderShipping.attentionTo,
220
- city: orderShipping.city,
221
- country: orderShipping.country,
222
- postCode: orderShipping.postCode,
223
- phone1: orderShipping.phone1,
224
- phone2: orderShipping.phone2,
225
- trackingNo: order.trackingNo
226
- }
227
- })
242
+ existingOrderShippings = existingOrderShippings.map(item => {
243
+ return {
244
+ ...item,
245
+ address1: orderShipping.address1,
246
+ address2: orderShipping.address2,
247
+ address3: orderShipping.address3,
248
+ address4: orderShipping.address4,
249
+ address5: orderShipping.address5,
250
+ attentionTo: orderShipping.attentionTo,
251
+ city: orderShipping.city,
252
+ country: orderShipping.country,
253
+ postCode: orderShipping.postCode,
254
+ phone1: orderShipping.phone1,
255
+ phone2: orderShipping.phone2,
256
+ trackingNo: order.trackingNo,
257
+ shippingFee: orderShipping.shippingFee,
258
+ actualShippingFee: orderShipping.actualShippingFee,
259
+ marketplaceShippingFeeVoucher: orderShipping.marketplaceShippingFeeVoucher,
260
+ sellerShippingFeeVoucher: orderShipping.sellerShippingFeeVoucher
261
+ }
262
+ })
228
263
 
229
- savedMarketplaceOrderShippings = await getRepository(MarketplaceOrderShipping).save(
230
- existingOrderShippings
231
- )
232
- } else {
233
- let existingOrderShipping: MarketplaceOrderShipping
234
- existingOrderShipping = existingMarketplaceOrder.marketplaceOrderItems[0].marketplaceOrderShipping
264
+ savedMarketplaceOrderShippings = await getRepository(MarketplaceOrderShipping).save(
265
+ existingOrderShippings
266
+ )
267
+ } else {
268
+ if (existingMarketplaceOrder?.marketplaceOrderItems) {
269
+ let existingOrderShipping: MarketplaceOrderShipping
270
+ existingOrderShipping = existingMarketplaceOrder.marketplaceOrderItems[0].marketplaceOrderShipping
271
+
272
+ marketplaceOrderShipping = {
273
+ ...existingOrderShipping,
274
+ ...marketplaceOrderShipping,
275
+ trackingNo: order?.trackingNo ? order.trackingNo : existingOrderShipping.trackingNo,
276
+ updater: user
277
+ }
235
278
 
236
- marketplaceOrderShipping = {
237
- ...existingOrderShipping,
238
- ...marketplaceOrderShipping,
239
- updater: user
279
+ savedMarketplaceOrderShipping = await getRepository(MarketplaceOrderShipping).save(
280
+ marketplaceOrderShipping
281
+ )
282
+ }
240
283
  }
241
-
284
+ } else {
242
285
  savedMarketplaceOrderShipping = await getRepository(MarketplaceOrderShipping).save(
243
286
  marketplaceOrderShipping
244
287
  )
245
288
  }
246
- } else {
247
- savedMarketplaceOrderShipping = await getRepository(MarketplaceOrderShipping).save(
248
- marketplaceOrderShipping
249
- )
250
289
  }
251
- }
252
-
253
- let orderTotalWeight: number = 0
254
- let foundVariation
255
- for (var j = 0; j < order.orderItems.length; j++) {
256
- var item = order.orderItems[j]
257
- foundVariation = await getRepository(MarketplaceProductVariation).findOne({
258
- where: { variationId: item.variationId }
259
- })
260
290
 
261
- if (!foundVariation) {
262
- let newVariation: any = {
263
- variationId: item.variationId,
264
- name: item.variationName,
265
- variationSku: item.variationSku,
266
- channelSku: item.sku,
267
- status: 'INACTIVE'
291
+ let orderTotalWeight: number = 0
292
+ let foundVariation
293
+ for (var j = 0; j < order.orderItems.length; j++) {
294
+ var item = order.orderItems[j]
295
+ foundVariation = await getRepository(MarketplaceProductVariation).findOne({
296
+ where: { domain: marketplaceStore.domain, variationId: item.variationId }
297
+ })
298
+
299
+ if (!foundVariation) {
300
+ let newVariation: any = {
301
+ variationId: item.variationId,
302
+ name: item.variationName,
303
+ variationSku: item.variationSku,
304
+ channelSku: item.sku,
305
+ status: 'INACTIVE'
306
+ }
307
+
308
+ await getRepository(MarketplaceProductVariation).save(newVariation)
309
+ foundVariation = newVariation
268
310
  }
269
311
 
270
- await getRepository(MarketplaceProductVariation).save(newVariation)
271
- foundVariation = newVariation
312
+ let marketplaceOrderItem: MarketplaceOrderItem = new MarketplaceOrderItem()
313
+ marketplaceOrderItem.domain = marketplaceStore.domain
314
+ marketplaceOrderItem.name = item.name
315
+ marketplaceOrderItem.qty = item.qty
316
+ marketplaceOrderItem.paidPrice = item.paidPrice
317
+ marketplaceOrderItem.status = marketplaceOrder.status
318
+ marketplaceOrderItem.docRefNo = item.docRefNo
319
+ marketplaceOrderItem.marketplaceProductVariation = foundVariation
320
+ marketplaceOrderItem.marketplaceOrder = marketplaceOrder
321
+ marketplaceOrderItem.trackingCode = order.trackingNo
322
+ marketplaceOrderItem.marketplaceOrderShipping = savedMarketplaceOrderShipping
323
+ marketplaceOrderItem.originalPrice = item.originalPrice
324
+ marketplaceOrderItem.discount = item.discount
325
+ marketplaceOrderItem.promotionId = item.promotionId
326
+ marketplaceOrderItem.creator = user
327
+ marketplaceOrderItem.paymentFee = item.paymentFee || null
328
+ marketplaceOrderItem.commissionFee = item.commissionFee || null
329
+ marketplaceOrderItem.shippingFeePaidByCustomer = item.shippingFeePaidByCustomer || null
330
+ marketplaceOrderItem.itemPriceCredit = item.itemPriceCredit || null
331
+ marketplaceOrderItem.promotionalCharges = item.promotionalCharges || null
332
+ marketplaceOrderItem.ordersMarketplaceFeesTotal = item.ordersMarketplaceFeesTotal || null
333
+ marketplaceOrderItem.ordersSalesTotal = item.ordersSalesTotal || null
334
+ marketplaceOrderItem.ordersMarketingFeesTotal = item.ordersMarketingFeesTotal || null
335
+ marketplaceOrderItem.ordersLogisticsTotal = item.ordersLogisticsTotal || null
336
+ marketplaceOrderItem.marketplaceBonus = item.marketplaceBonus
337
+ marketplaceOrderItem.marketplaceBonusSeller = item.marketplaceBonusSeller
338
+ marketplaceOrderItem.shippingFeeDiscountMarketplace = item.shippingFeeDiscountMarketplace
339
+ marketplaceOrderItem.shippingFeeDiscountSeller = item.shippingFeeDiscountSeller
340
+ marketplaceOrderItem.promotionalChargesFlexiCombo = item.promotionalChargesFlexiCombo
341
+ marketplaceOrderItem.autoShippingSubsidyMarketplace = item.autoShippingSubsidyMarketplace
342
+ marketplaceOrderItem.originalShippingFee = item.originalShippingFee
343
+ marketplaceOrderItem.taxAmount = item.autoShippingSubsidyMarketplace
344
+
345
+ marketplaceOrderItems.push({ ...marketplaceOrderItem })
346
+
347
+ if (foundVariation?.primaryUnitValue)
348
+ orderTotalWeight += parseFloat(foundVariation.primaryUnitValue.toFixed(3)) * item.qty || 0
272
349
  }
273
350
 
274
- let marketplaceOrderItem: MarketplaceOrderItem = new MarketplaceOrderItem()
275
- marketplaceOrderItem.domain = marketplaceStore.domain
276
- marketplaceOrderItem.name = item.name
277
- marketplaceOrderItem.qty = item.qty
278
- marketplaceOrderItem.paidPrice = item.paidPrice
279
- marketplaceOrderItem.status = marketplaceOrder.status
280
- marketplaceOrderItem.docRefNo = item.docRefNo
281
- marketplaceOrderItem.marketplaceProductVariation = foundVariation
282
- marketplaceOrderItem.marketplaceOrder = marketplaceOrder
283
- marketplaceOrderItem.trackingCode = order.trackingNo
284
- marketplaceOrderItem.marketplaceOrderShipping = savedMarketplaceOrderShipping
285
- marketplaceOrderItem.creator = user
286
-
287
- marketplaceOrderItems.push({ ...marketplaceOrderItem })
288
-
289
- if (foundVariation?.primaryUnitValue)
290
- orderTotalWeight += parseFloat(foundVariation.primaryUnitValue.toFixed(3)) * item.qty || 0
291
- }
292
-
293
- if (existingMarketplaceOrder) {
294
- if (existingMarketplaceOrder.isSplitted) {
295
- let existingOrderItems: MarketplaceOrderItem[] = []
296
- existingOrderItems = existingMarketplaceOrder.marketplaceOrderItems
297
-
298
- marketplaceOrderItems = existingOrderItems.filter(
299
- itm =>
300
- itm.name == item.name &&
301
- itm.marketplaceProductVariation.variationId == item.marketplaceProductVariation.variationId
302
- )
303
- marketplaceOrderItems = marketplaceOrderItems.map(marketplaceOrderitem => {
304
- return {
305
- ...marketplaceOrderitem,
306
- status: order.status,
307
- marketplaceProductVariation: foundVariation,
308
- trackingCode: order.trackingNo
309
- }
310
- })
311
- } else {
312
- let existingOrderItems: MarketplaceOrderItem[] = []
313
- existingOrderItems = existingMarketplaceOrder.marketplaceOrderItems
314
-
315
- if (existingOrderItems.length > marketplaceOrderItems.length) {
316
- let nonMatchedOrderItems = []
317
- existingOrderItems.map(item => {
318
- const matchedOrderItem = marketplaceOrderItems.find(
319
- itm =>
320
- itm.name === item.name &&
321
- itm.marketplaceProductVariation.variationId == item.marketplaceProductVariation.variationId
322
- )
323
- if (!matchedOrderItem) {
324
- nonMatchedOrderItems.push({ ...item })
325
- }
326
- })
327
- if (nonMatchedOrderItems.length > 0)
328
- await getRepository(MarketplaceOrderItem).delete(nonMatchedOrderItems)
329
-
330
- existingOrderItems = marketplaceOrderItems.map(item => {
331
- const matchedOrderItem = existingOrderItems.find(
332
- itm =>
333
- itm.name == item.name &&
334
- itm.marketplaceProductVariation.variationId == item.marketplaceProductVariation.variationId
335
- )
336
- if (matchedOrderItem) {
337
- return {
338
- ...matchedOrderItem,
339
- ...item,
340
- updater: user
341
- }
351
+ if (existingMarketplaceOrder) {
352
+ if (existingMarketplaceOrder.isSplitted) {
353
+ let existingOrderItems: MarketplaceOrderItem[] = []
354
+ existingOrderItems = existingMarketplaceOrder.marketplaceOrderItems
355
+
356
+ marketplaceOrderItems = existingOrderItems.filter(
357
+ itm => itm.name == item.name && itm.marketplaceProductVariation.variationId == item.variationId
358
+ )
359
+ marketplaceOrderItems = marketplaceOrderItems.map(marketplaceOrderitem => {
360
+ return {
361
+ ...marketplaceOrderitem,
362
+ status: order.status,
363
+ marketplaceProductVariation: foundVariation,
364
+ trackingCode: order.trackingNo
342
365
  }
343
366
  })
344
367
  } else {
345
- existingOrderItems = marketplaceOrderItems.map(item => {
346
- const matchedOrderItem = existingOrderItems.find(
347
- itm =>
348
- itm.name == item.name &&
349
- itm.marketplaceProductVariation.variationId == item.marketplaceProductVariation.variationId
350
- )
351
- if (matchedOrderItem) {
352
- return {
353
- ...matchedOrderItem,
354
- ...item,
355
- updater: user
368
+ let existingOrderItems: MarketplaceOrderItem[] = []
369
+ existingOrderItems = existingMarketplaceOrder.marketplaceOrderItems
370
+
371
+ if (existingOrderItems.length > marketplaceOrderItems.length) {
372
+ let nonMatchedOrderItems = []
373
+ existingOrderItems.map(item => {
374
+ const matchedOrderItem = marketplaceOrderItems.find(
375
+ itm =>
376
+ itm.name === item.name &&
377
+ itm.marketplaceProductVariation.variationId == item.marketplaceProductVariation.variationId
378
+ )
379
+ if (!matchedOrderItem) {
380
+ nonMatchedOrderItems.push({ ...item })
356
381
  }
357
- } else {
358
- return {
359
- ...item,
360
- updater: user
382
+ })
383
+ if (nonMatchedOrderItems.length > 0 && !cancelStatuses.includes(marketplaceOrder.status))
384
+ await getRepository(MarketplaceOrderItem).delete(nonMatchedOrderItems)
385
+
386
+ existingOrderItems = marketplaceOrderItems.map(item => {
387
+ const matchedOrderItem = existingOrderItems.find(
388
+ itm =>
389
+ itm.name == item.name &&
390
+ itm.marketplaceProductVariation.variationId == item.marketplaceProductVariation.variationId
391
+ )
392
+ if (matchedOrderItem) {
393
+ return {
394
+ ...matchedOrderItem,
395
+ ...item,
396
+ updater: user
397
+ }
361
398
  }
362
- }
363
- })
364
- }
399
+ })
400
+ } else {
401
+ existingOrderItems = marketplaceOrderItems.map(item => {
402
+ const matchedOrderItem = existingOrderItems.find(
403
+ itm =>
404
+ itm.name == item.name &&
405
+ itm.marketplaceProductVariation.variationId == item.marketplaceProductVariation.variationId
406
+ )
407
+ if (matchedOrderItem) {
408
+ return {
409
+ ...matchedOrderItem,
410
+ ...item,
411
+ updater: user
412
+ }
413
+ } else {
414
+ return {
415
+ ...item,
416
+ updater: user
417
+ }
418
+ }
419
+ })
420
+ }
365
421
 
366
- marketplaceOrderItems = existingOrderItems
422
+ marketplaceOrderItems = existingOrderItems
367
423
 
424
+ if (order?.orderShipping) {
425
+ savedMarketplaceOrderShipping.totalWeight = orderTotalWeight
426
+ savedMarketplaceOrderShipping = await getRepository(MarketplaceOrderShipping).save(
427
+ savedMarketplaceOrderShipping
428
+ )
429
+ }
430
+ }
431
+ } else {
368
432
  if (order?.orderShipping) {
369
433
  savedMarketplaceOrderShipping.totalWeight = orderTotalWeight
370
434
  savedMarketplaceOrderShipping = await getRepository(MarketplaceOrderShipping).save(
@@ -372,24 +436,19 @@ export const syncAllMarketplaceOrder = {
372
436
  )
373
437
  }
374
438
  }
375
- } else {
376
- if (order?.orderShipping) {
377
- savedMarketplaceOrderShipping.totalWeight = orderTotalWeight
378
- savedMarketplaceOrderShipping = await getRepository(MarketplaceOrderShipping).save(
379
- savedMarketplaceOrderShipping
380
- )
381
- }
382
- }
383
439
 
384
- await getRepository(MarketplaceOrderItem).save(marketplaceOrderItems)
440
+ await getRepository(MarketplaceOrderItem).save(marketplaceOrderItems)
385
441
 
386
- if (m == marketplaceOrders.length - 1) {
387
- lastOrderId = order.name
388
- }
442
+ if (m == marketplaceOrders.length - 1) {
443
+ lastOrderId = order.name
444
+ }
445
+ } catch (e) {}
389
446
  }
390
447
 
391
448
  if (more) page++
392
449
  hasMorePage = more
450
+ } else {
451
+ hasMorePage = false
393
452
  }
394
453
  }
395
454
  }