@things-factory/marketplace-base 3.7.9 → 3.8.0

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 +265 -212
  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 +336 -290
  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,248 +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
151
 
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
-
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
200
 
178
- let savedMarketplaceOrderShipping: MarketplaceOrderShipping = new MarketplaceOrderShipping()
201
+ marketplaceOrder = await getRepository(MarketplaceOrder).save(marketplaceOrder)
179
202
 
180
- if (order?.orderShipping) {
203
+ let savedMarketplaceOrderShipping: MarketplaceOrderShipping = new MarketplaceOrderShipping()
181
204
  let savedMarketplaceOrderShippings: MarketplaceOrderShipping[] = []
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.postCode = orderShipping.postCode
195
- marketplaceOrderShipping.phone1 = orderShipping.phone1
196
- marketplaceOrderShipping.phone2 = orderShipping.phone2
197
- marketplaceOrderShipping.trackingNo = order?.trackingNo
198
- marketplaceOrderShipping.orderNoRef = marketplaceOrder.orderNo
199
- marketplaceOrderShipping.subOrderNoRef = marketplaceOrder.orderNo
200
- marketplaceOrderShipping.marketplaceStore = marketplaceStore
201
- marketplaceOrderShipping.creator = user
202
- marketplaceOrderShipping.domain = marketplaceStore.domain
203
- marketplaceOrderShipping.shippingFee = orderShipping.shippingFee
204
- marketplaceOrderShipping.actualShippingFee = orderShipping.actualShippingFee
205
- marketplaceOrderShipping.marketplaceShippingFeeVoucher = orderShipping.marketplaceShippingFeeVoucher
206
- marketplaceOrderShipping.sellerShippingFeeVoucher = orderShipping.sellerShippingFeeVoucher
207
205
 
208
- if (existingMarketplaceOrder) {
209
- if (existingMarketplaceOrder.isSplitted) {
210
- let existingOrderShippings: MarketplaceOrderShipping[] = await getRepository(
211
- MarketplaceOrderShipping
212
- ).find({
213
- where: { domain, marketplaceStore, orderNoRef: marketplaceOrder.orderNo }
214
- })
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
+ })
215
241
 
216
- existingOrderShippings = existingOrderShippings.map(item => {
217
- return {
218
- ...item,
219
- address1: orderShipping.address1,
220
- address2: orderShipping.address2,
221
- address3: orderShipping.address3,
222
- address4: orderShipping.address4,
223
- address5: orderShipping.address5,
224
- attentionTo: orderShipping.attentionTo,
225
- city: orderShipping.city,
226
- country: orderShipping.country,
227
- postCode: orderShipping.postCode,
228
- phone1: orderShipping.phone1,
229
- phone2: orderShipping.phone2,
230
- trackingNo: order.trackingNo,
231
- shippingFee: orderShipping.shippingFee,
232
- actualShippingFee: orderShipping.actualShippingFee,
233
- marketplaceShippingFeeVoucher: orderShipping.marketplaceShippingFeeVoucher,
234
- sellerShippingFeeVoucher: orderShipping.sellerShippingFeeVoucher
235
- }
236
- })
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
+ })
237
263
 
238
- savedMarketplaceOrderShippings = await getRepository(MarketplaceOrderShipping).save(
239
- existingOrderShippings
240
- )
241
- } else {
242
- let existingOrderShipping: MarketplaceOrderShipping
243
- existingOrderShipping = existingMarketplaceOrder.marketplaceOrderItems[0].marketplaceOrderShipping
244
-
245
- marketplaceOrderShipping = {
246
- ...existingOrderShipping,
247
- ...marketplaceOrderShipping,
248
- trackingNo: order?.trackingNo ? order.trackingNo : existingOrderShipping.trackingNo,
249
- updater: user
250
- }
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
+ }
251
278
 
279
+ savedMarketplaceOrderShipping = await getRepository(MarketplaceOrderShipping).save(
280
+ marketplaceOrderShipping
281
+ )
282
+ }
283
+ }
284
+ } else {
252
285
  savedMarketplaceOrderShipping = await getRepository(MarketplaceOrderShipping).save(
253
286
  marketplaceOrderShipping
254
287
  )
255
288
  }
256
- } else {
257
- savedMarketplaceOrderShipping = await getRepository(MarketplaceOrderShipping).save(
258
- marketplaceOrderShipping
259
- )
260
289
  }
261
- }
262
-
263
- let orderTotalWeight: number = 0
264
- let foundVariation
265
- for (var j = 0; j < order.orderItems.length; j++) {
266
- var item = order.orderItems[j]
267
- foundVariation = await getRepository(MarketplaceProductVariation).findOne({
268
- where: { variationId: item.variationId }
269
- })
270
290
 
271
- if (!foundVariation) {
272
- let newVariation: any = {
273
- variationId: item.variationId,
274
- name: item.variationName,
275
- variationSku: item.variationSku,
276
- channelSku: item.sku,
277
- 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
278
310
  }
279
311
 
280
- await getRepository(MarketplaceProductVariation).save(newVariation)
281
- 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
282
349
  }
283
350
 
284
- let marketplaceOrderItem: MarketplaceOrderItem = new MarketplaceOrderItem()
285
- marketplaceOrderItem.domain = marketplaceStore.domain
286
- marketplaceOrderItem.name = item.name
287
- marketplaceOrderItem.qty = item.qty
288
- marketplaceOrderItem.paidPrice = item.paidPrice
289
- marketplaceOrderItem.status = marketplaceOrder.status
290
- marketplaceOrderItem.docRefNo = item.docRefNo
291
- marketplaceOrderItem.marketplaceProductVariation = foundVariation
292
- marketplaceOrderItem.marketplaceOrder = marketplaceOrder
293
- marketplaceOrderItem.trackingCode = order.trackingNo
294
- marketplaceOrderItem.marketplaceOrderShipping = savedMarketplaceOrderShipping
295
- marketplaceOrderItem.originalPrice = item.originalPrice
296
- marketplaceOrderItem.discount = item.discount
297
- marketplaceOrderItem.promotionId = item.promotionId
298
- marketplaceOrderItem.creator = user
299
-
300
- marketplaceOrderItems.push({ ...marketplaceOrderItem })
301
-
302
- if (foundVariation?.primaryUnitValue)
303
- orderTotalWeight += parseFloat(foundVariation.primaryUnitValue.toFixed(3)) * item.qty || 0
304
- }
305
-
306
- if (existingMarketplaceOrder) {
307
- if (existingMarketplaceOrder.isSplitted) {
308
- let existingOrderItems: MarketplaceOrderItem[] = []
309
- existingOrderItems = existingMarketplaceOrder.marketplaceOrderItems
310
-
311
- marketplaceOrderItems = existingOrderItems.filter(
312
- itm =>
313
- itm.name == item.name &&
314
- itm.marketplaceProductVariation.variationId == item.marketplaceProductVariation.variationId
315
- )
316
- marketplaceOrderItems = marketplaceOrderItems.map(marketplaceOrderitem => {
317
- return {
318
- ...marketplaceOrderitem,
319
- status: order.status,
320
- marketplaceProductVariation: foundVariation,
321
- trackingCode: order.trackingNo
322
- }
323
- })
324
- } else {
325
- let existingOrderItems: MarketplaceOrderItem[] = []
326
- existingOrderItems = existingMarketplaceOrder.marketplaceOrderItems
327
-
328
- if (existingOrderItems.length > marketplaceOrderItems.length) {
329
- let nonMatchedOrderItems = []
330
- existingOrderItems.map(item => {
331
- const matchedOrderItem = marketplaceOrderItems.find(
332
- itm =>
333
- itm.name === item.name &&
334
- itm.marketplaceProductVariation.variationId == item.marketplaceProductVariation.variationId
335
- )
336
- if (!matchedOrderItem) {
337
- nonMatchedOrderItems.push({ ...item })
338
- }
339
- })
340
- if (nonMatchedOrderItems.length > 0 && cancelStatuses.includes(marketplaceOrder.status))
341
- await getRepository(MarketplaceOrderItem).delete(nonMatchedOrderItems)
342
-
343
- existingOrderItems = marketplaceOrderItems.map(item => {
344
- const matchedOrderItem = existingOrderItems.find(
345
- itm =>
346
- itm.name == item.name &&
347
- itm.marketplaceProductVariation.variationId == item.marketplaceProductVariation.variationId
348
- )
349
- if (matchedOrderItem) {
350
- return {
351
- ...matchedOrderItem,
352
- ...item,
353
- updater: user
354
- }
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
355
365
  }
356
366
  })
357
367
  } else {
358
- existingOrderItems = marketplaceOrderItems.map(item => {
359
- const matchedOrderItem = existingOrderItems.find(
360
- itm =>
361
- itm.name == item.name &&
362
- itm.marketplaceProductVariation.variationId == item.marketplaceProductVariation.variationId
363
- )
364
- if (matchedOrderItem) {
365
- return {
366
- ...matchedOrderItem,
367
- ...item,
368
- 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 })
369
381
  }
370
- } else {
371
- return {
372
- ...item,
373
- 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
+ }
374
398
  }
375
- }
376
- })
377
- }
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
+ }
378
421
 
379
- marketplaceOrderItems = existingOrderItems
422
+ marketplaceOrderItems = existingOrderItems
380
423
 
424
+ if (order?.orderShipping) {
425
+ savedMarketplaceOrderShipping.totalWeight = orderTotalWeight
426
+ savedMarketplaceOrderShipping = await getRepository(MarketplaceOrderShipping).save(
427
+ savedMarketplaceOrderShipping
428
+ )
429
+ }
430
+ }
431
+ } else {
381
432
  if (order?.orderShipping) {
382
433
  savedMarketplaceOrderShipping.totalWeight = orderTotalWeight
383
434
  savedMarketplaceOrderShipping = await getRepository(MarketplaceOrderShipping).save(
@@ -385,24 +436,19 @@ export const syncAllMarketplaceOrder = {
385
436
  )
386
437
  }
387
438
  }
388
- } else {
389
- if (order?.orderShipping) {
390
- savedMarketplaceOrderShipping.totalWeight = orderTotalWeight
391
- savedMarketplaceOrderShipping = await getRepository(MarketplaceOrderShipping).save(
392
- savedMarketplaceOrderShipping
393
- )
394
- }
395
- }
396
439
 
397
- await getRepository(MarketplaceOrderItem).save(marketplaceOrderItems)
440
+ await getRepository(MarketplaceOrderItem).save(marketplaceOrderItems)
398
441
 
399
- if (m == marketplaceOrders.length - 1) {
400
- lastOrderId = order.name
401
- }
442
+ if (m == marketplaceOrders.length - 1) {
443
+ lastOrderId = order.name
444
+ }
445
+ } catch (e) {}
402
446
  }
403
447
 
404
448
  if (more) page++
405
449
  hasMorePage = more
450
+ } else {
451
+ hasMorePage = false
406
452
  }
407
453
  }
408
454
  }