@things-factory/marketplace-base 3.7.10 → 3.8.3

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