@things-factory/marketplace-base 3.7.15 → 3.8.10

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