@things-factory/marketplace-base 4.1.2 → 4.1.8

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 (129) hide show
  1. package/dist-server/entities/index.js +13 -10
  2. package/dist-server/entities/index.js.map +1 -1
  3. package/dist-server/entities/marketplace-order-item.js +3 -3
  4. package/dist-server/entities/marketplace-order-item.js.map +1 -1
  5. package/dist-server/entities/marketplace-order-shipping-item.js +77 -0
  6. package/dist-server/entities/marketplace-order-shipping-item.js.map +1 -0
  7. package/dist-server/entities/marketplace-order-shipping.js +6 -2
  8. package/dist-server/entities/marketplace-order-shipping.js.map +1 -1
  9. package/dist-server/graphql/resolvers/index.js +1 -0
  10. package/dist-server/graphql/resolvers/index.js.map +1 -1
  11. package/dist-server/graphql/resolvers/marketplace-order/auto-initialise-logistics-by-batch.js +9 -6
  12. package/dist-server/graphql/resolvers/marketplace-order/auto-initialise-logistics-by-batch.js.map +1 -1
  13. package/dist-server/graphql/resolvers/marketplace-order/auto-update-order-ready-to-ship.js +10 -5
  14. package/dist-server/graphql/resolvers/marketplace-order/auto-update-order-ready-to-ship.js.map +1 -1
  15. package/dist-server/graphql/resolvers/marketplace-order/generate-marketplace-order.js +58 -3
  16. package/dist-server/graphql/resolvers/marketplace-order/generate-marketplace-order.js.map +1 -1
  17. package/dist-server/graphql/resolvers/marketplace-order/get-etrax-order-document.js +3 -2
  18. package/dist-server/graphql/resolvers/marketplace-order/get-etrax-order-document.js.map +1 -1
  19. package/dist-server/graphql/resolvers/marketplace-order/get-order-document.js +14 -6
  20. package/dist-server/graphql/resolvers/marketplace-order/get-order-document.js.map +1 -1
  21. package/dist-server/graphql/resolvers/marketplace-order/initialise-lazada-logistics-by-batch.js +2 -1
  22. package/dist-server/graphql/resolvers/marketplace-order/initialise-lazada-logistics-by-batch.js.map +1 -1
  23. package/dist-server/graphql/resolvers/marketplace-order/initialise-logistics-by-batch.js +2 -0
  24. package/dist-server/graphql/resolvers/marketplace-order/initialise-logistics-by-batch.js.map +1 -1
  25. package/dist-server/graphql/resolvers/marketplace-order/marketplace-orders-for-batch-init.js +3 -2
  26. package/dist-server/graphql/resolvers/marketplace-order/marketplace-orders-for-batch-init.js.map +1 -1
  27. package/dist-server/graphql/resolvers/marketplace-order/marketplace-orders-for-export.js +4 -2
  28. package/dist-server/graphql/resolvers/marketplace-order/marketplace-orders-for-export.js.map +1 -1
  29. package/dist-server/graphql/resolvers/marketplace-order/marketplace-orders.js +2 -1
  30. package/dist-server/graphql/resolvers/marketplace-order/marketplace-orders.js.map +1 -1
  31. package/dist-server/graphql/resolvers/marketplace-order/split-orders-by-batch.js +72 -243
  32. package/dist-server/graphql/resolvers/marketplace-order/split-orders-by-batch.js.map +1 -1
  33. package/dist-server/graphql/resolvers/marketplace-order/sync-all-marketplace-order.js +20 -12
  34. package/dist-server/graphql/resolvers/marketplace-order/sync-all-marketplace-order.js.map +1 -1
  35. package/dist-server/graphql/resolvers/marketplace-order/sync-marketplace-order.js +62 -5
  36. package/dist-server/graphql/resolvers/marketplace-order/sync-marketplace-order.js.map +1 -1
  37. package/dist-server/graphql/resolvers/marketplace-order/update-order-ready-to-ship.js +65 -37
  38. package/dist-server/graphql/resolvers/marketplace-order/update-order-ready-to-ship.js.map +1 -1
  39. package/dist-server/graphql/resolvers/marketplace-order-shipping/marketplace-order-shipping.js +7 -4
  40. package/dist-server/graphql/resolvers/marketplace-order-shipping/marketplace-order-shipping.js.map +1 -1
  41. package/dist-server/graphql/resolvers/marketplace-order-shipping/marketplace-order-shippings.js +2 -1
  42. package/dist-server/graphql/resolvers/marketplace-order-shipping/marketplace-order-shippings.js.map +1 -1
  43. package/dist-server/graphql/resolvers/marketplace-order-shipping-item/create-marketplace-order-shipping-item.js +11 -0
  44. package/dist-server/graphql/resolvers/marketplace-order-shipping-item/create-marketplace-order-shipping-item.js.map +1 -0
  45. package/dist-server/graphql/resolvers/marketplace-order-shipping-item/delete-marketplace-order-shipping-item.js +12 -0
  46. package/dist-server/graphql/resolvers/marketplace-order-shipping-item/delete-marketplace-order-shipping-item.js.map +1 -0
  47. package/dist-server/graphql/resolvers/marketplace-order-shipping-item/delete-marketplace-order-shipping-items.js +15 -0
  48. package/dist-server/graphql/resolvers/marketplace-order-shipping-item/delete-marketplace-order-shipping-items.js.map +1 -0
  49. package/dist-server/graphql/resolvers/marketplace-order-shipping-item/index.js +14 -0
  50. package/dist-server/graphql/resolvers/marketplace-order-shipping-item/index.js.map +1 -0
  51. package/dist-server/graphql/resolvers/marketplace-order-shipping-item/marketplace-order-shipping-item.js +22 -0
  52. package/dist-server/graphql/resolvers/marketplace-order-shipping-item/marketplace-order-shipping-item.js.map +1 -0
  53. package/dist-server/graphql/resolvers/marketplace-order-shipping-item/marketplace-order-shipping-items.js +14 -0
  54. package/dist-server/graphql/resolvers/marketplace-order-shipping-item/marketplace-order-shipping-items.js.map +1 -0
  55. package/dist-server/graphql/resolvers/marketplace-order-shipping-item/update-marketplace-order-shipping-item.js +15 -0
  56. package/dist-server/graphql/resolvers/marketplace-order-shipping-item/update-marketplace-order-shipping-item.js.map +1 -0
  57. package/dist-server/graphql/resolvers/marketplace-order-shipping-item/update-multiple-marketplace-order-shipping-item.js +30 -0
  58. package/dist-server/graphql/resolvers/marketplace-order-shipping-item/update-multiple-marketplace-order-shipping-item.js.map +1 -0
  59. package/dist-server/graphql/resolvers/marketplace-report/marketplace-sales-report.js +2 -1
  60. package/dist-server/graphql/resolvers/marketplace-report/marketplace-sales-report.js.map +1 -1
  61. package/dist-server/graphql/types/index.js +1 -0
  62. package/dist-server/graphql/types/index.js.map +1 -1
  63. package/dist-server/graphql/types/marketplace-order/index.js +8 -7
  64. package/dist-server/graphql/types/marketplace-order/index.js.map +1 -1
  65. package/dist-server/graphql/types/marketplace-order/logistics-info.js +1 -0
  66. package/dist-server/graphql/types/marketplace-order/logistics-info.js.map +1 -1
  67. package/dist-server/graphql/types/marketplace-order-item/marketplace-order-item.js +1 -1
  68. package/dist-server/graphql/types/marketplace-order-item/new-marketplace-order-item.js +0 -1
  69. package/dist-server/graphql/types/marketplace-order-item/new-marketplace-order-item.js.map +1 -1
  70. package/dist-server/graphql/types/marketplace-order-shipping/marketplace-order-shipping-patch.js +0 -1
  71. package/dist-server/graphql/types/marketplace-order-shipping/marketplace-order-shipping-patch.js.map +1 -1
  72. package/dist-server/graphql/types/marketplace-order-shipping/marketplace-order-shipping.js +2 -1
  73. package/dist-server/graphql/types/marketplace-order-shipping/marketplace-order-shipping.js.map +1 -1
  74. package/dist-server/graphql/types/marketplace-order-shipping/new-marketplace-order-shipping.js +0 -1
  75. package/dist-server/graphql/types/marketplace-order-shipping/new-marketplace-order-shipping.js.map +1 -1
  76. package/dist-server/graphql/types/marketplace-order-shipping-item/index.js +47 -0
  77. package/dist-server/graphql/types/marketplace-order-shipping-item/index.js.map +1 -0
  78. package/dist-server/graphql/types/marketplace-order-shipping-item/marketplace-order-shipping-item-list.js +14 -0
  79. package/dist-server/graphql/types/marketplace-order-shipping-item/marketplace-order-shipping-item-list.js.map +1 -0
  80. package/dist-server/graphql/types/marketplace-order-shipping-item/marketplace-order-shipping-item-patch.js +19 -0
  81. package/dist-server/graphql/types/marketplace-order-shipping-item/marketplace-order-shipping-item-patch.js.map +1 -0
  82. package/dist-server/graphql/types/marketplace-order-shipping-item/marketplace-order-shipping-item.js +22 -0
  83. package/dist-server/graphql/types/marketplace-order-shipping-item/marketplace-order-shipping-item.js.map +1 -0
  84. package/dist-server/graphql/types/marketplace-order-shipping-item/new-marketplace-order-shipping-item.js +18 -0
  85. package/dist-server/graphql/types/marketplace-order-shipping-item/new-marketplace-order-shipping-item.js.map +1 -0
  86. package/package.json +6 -6
  87. package/server/entities/index.ts +15 -12
  88. package/server/entities/marketplace-order-item.ts +17 -5
  89. package/server/entities/marketplace-order-shipping-item.ts +55 -0
  90. package/server/entities/marketplace-order-shipping.ts +9 -3
  91. package/server/graphql/resolvers/index.ts +1 -0
  92. package/server/graphql/resolvers/marketplace-order/auto-initialise-logistics-by-batch.ts +9 -6
  93. package/server/graphql/resolvers/marketplace-order/auto-update-order-ready-to-ship.ts +16 -6
  94. package/server/graphql/resolvers/marketplace-order/generate-marketplace-order.ts +65 -3
  95. package/server/graphql/resolvers/marketplace-order/get-etrax-order-document.ts +5 -2
  96. package/server/graphql/resolvers/marketplace-order/get-order-document.ts +22 -7
  97. package/server/graphql/resolvers/marketplace-order/initialise-lazada-logistics-by-batch.ts +4 -2
  98. package/server/graphql/resolvers/marketplace-order/initialise-logistics-by-batch.ts +2 -0
  99. package/server/graphql/resolvers/marketplace-order/marketplace-orders-for-batch-init.ts +5 -2
  100. package/server/graphql/resolvers/marketplace-order/marketplace-orders-for-export.ts +7 -3
  101. package/server/graphql/resolvers/marketplace-order/marketplace-orders.ts +2 -1
  102. package/server/graphql/resolvers/marketplace-order/split-orders-by-batch.ts +84 -280
  103. package/server/graphql/resolvers/marketplace-order/sync-all-marketplace-order.ts +25 -13
  104. package/server/graphql/resolvers/marketplace-order/sync-marketplace-order.ts +67 -6
  105. package/server/graphql/resolvers/marketplace-order/update-order-ready-to-ship.ts +80 -42
  106. package/server/graphql/resolvers/marketplace-order-shipping/marketplace-order-shipping.ts +9 -4
  107. package/server/graphql/resolvers/marketplace-order-shipping/marketplace-order-shippings.ts +2 -1
  108. package/server/graphql/resolvers/marketplace-order-shipping-item/create-marketplace-order-shipping-item.ts +14 -0
  109. package/server/graphql/resolvers/marketplace-order-shipping-item/delete-marketplace-order-shipping-item.ts +10 -0
  110. package/server/graphql/resolvers/marketplace-order-shipping-item/delete-marketplace-order-shipping-items.ts +13 -0
  111. package/server/graphql/resolvers/marketplace-order-shipping-item/index.ts +20 -0
  112. package/server/graphql/resolvers/marketplace-order-shipping-item/marketplace-order-shipping-item.ts +21 -0
  113. package/server/graphql/resolvers/marketplace-order-shipping-item/marketplace-order-shipping-items.ts +16 -0
  114. package/server/graphql/resolvers/marketplace-order-shipping-item/update-marketplace-order-shipping-item.ts +18 -0
  115. package/server/graphql/resolvers/marketplace-order-shipping-item/update-multiple-marketplace-order-shipping-item.ts +44 -0
  116. package/server/graphql/resolvers/marketplace-report/marketplace-sales-report.ts +2 -1
  117. package/server/graphql/types/index.ts +1 -0
  118. package/server/graphql/types/marketplace-order/index.ts +8 -7
  119. package/server/graphql/types/marketplace-order/logistics-info.ts +1 -0
  120. package/server/graphql/types/marketplace-order-item/marketplace-order-item.ts +1 -1
  121. package/server/graphql/types/marketplace-order-item/new-marketplace-order-item.ts +0 -1
  122. package/server/graphql/types/marketplace-order-shipping/marketplace-order-shipping-patch.ts +0 -1
  123. package/server/graphql/types/marketplace-order-shipping/marketplace-order-shipping.ts +2 -1
  124. package/server/graphql/types/marketplace-order-shipping/new-marketplace-order-shipping.ts +0 -1
  125. package/server/graphql/types/marketplace-order-shipping-item/index.ts +32 -0
  126. package/server/graphql/types/marketplace-order-shipping-item/marketplace-order-shipping-item-list.ts +8 -0
  127. package/server/graphql/types/marketplace-order-shipping-item/marketplace-order-shipping-item-patch.ts +13 -0
  128. package/server/graphql/types/marketplace-order-shipping-item/marketplace-order-shipping-item.ts +16 -0
  129. package/server/graphql/types/marketplace-order-shipping-item/new-marketplace-order-shipping-item.ts +12 -0
@@ -1,4 +1,5 @@
1
- import { EntityManager } from 'typeorm'
1
+ import { EntityManager, IsNull } from 'typeorm'
2
+ import uuid from 'uuid/v4'
2
3
 
3
4
  import { User } from '@things-factory/auth-base'
4
5
  import { Bizplace, getCustomerBizplaces } from '@things-factory/biz-base'
@@ -11,6 +12,7 @@ import {
11
12
  MarketplaceOrder,
12
13
  MarketplaceOrderItem,
13
14
  MarketplaceOrderShipping,
15
+ MarketplaceOrderShippingItem,
14
16
  MarketplaceProductVariation
15
17
  } from '../../../entities'
16
18
  import { NoGenerator } from '../../../utils'
@@ -100,8 +102,9 @@ export const syncMarketplaceOrder = {
100
102
  'domain',
101
103
  'fulfillmentCenter',
102
104
  'marketplaceOrderItems',
103
- 'marketplaceOrderItems.marketplaceProductVariation',
104
- 'marketplaceOrderItems.marketplaceOrderShipping'
105
+ 'marketplaceOrderItems.marketplaceOrderShippingItems',
106
+ 'marketplaceOrderItems.marketplaceOrderShippingItems.marketplaceOrderShipping',
107
+ 'marketplaceOrderItems.marketplaceProductVariation'
105
108
  ]
106
109
  })
107
110
 
@@ -317,7 +320,9 @@ export const syncMarketplaceOrder = {
317
320
  } else {
318
321
  if (existingMarketplaceOrder?.marketplaceOrderItems) {
319
322
  let existingOrderShipping: MarketplaceOrderShipping
320
- existingOrderShipping = existingMarketplaceOrder.marketplaceOrderItems[0].marketplaceOrderShipping
323
+ existingOrderShipping =
324
+ existingMarketplaceOrder.marketplaceOrderItems[0].marketplaceOrderShippingItems[0]
325
+ .marketplaceOrderShipping
321
326
 
322
327
  marketplaceOrderShipping = {
323
328
  ...existingOrderShipping,
@@ -346,11 +351,13 @@ export const syncMarketplaceOrder = {
346
351
  let foundVariations = []
347
352
  for (var j = 0; j < order.orderItems.length; j++) {
348
353
  var item = order.orderItems[j]
349
- let foundVariation = await tx.getRepository(MarketplaceProductVariation).findOne({
354
+ let foundVariationsQuery = await tx.getRepository(MarketplaceProductVariation).find({
350
355
  where: { domain: marketplaceStore.domain, variationId: item.variationId },
351
356
  relations: ['domain', 'marketplaceProduct', 'marketplaceProduct.marketplaceStore']
352
357
  })
353
358
 
359
+ let foundVariation = foundVariationsQuery.filter(fv => fv.marketplaceProduct.marketplaceStore.id == marketplaceStore.id)[0]
360
+
354
361
  if (foundVariation) {
355
362
  foundVariations.push(foundVariation)
356
363
  }
@@ -378,7 +385,6 @@ export const syncMarketplaceOrder = {
378
385
  marketplaceOrderItem.marketplaceProductVariation = foundVariation
379
386
  marketplaceOrderItem.trackingCode = order.trackingNo
380
387
  marketplaceOrderItem.marketplaceOrder = marketplaceOrder
381
- marketplaceOrderItem.marketplaceOrderShipping = savedMarketplaceOrderShipping
382
388
  marketplaceOrderItem.originalPrice = item.originalPrice
383
389
  marketplaceOrderItem.discount = item.discount
384
390
  marketplaceOrderItem.promotionId = item.promotionId
@@ -676,6 +682,61 @@ export const syncMarketplaceOrder = {
676
682
  await tx.getRepository(MarketplaceOrder).save(marketplaceOrder)
677
683
  await tx.getRepository(MarketplaceOrderItem).save(marketplaceOrderItems)
678
684
 
685
+ for (let i = 0; i < marketplaceOrderItems.length; i++) {
686
+ const marketplaceOrderItem: MarketplaceOrderItem = marketplaceOrderItems[i]
687
+ const marketplaceProductVariation: MarketplaceProductVariation =
688
+ marketplaceOrderItem.marketplaceProductVariation
689
+ let existingMarketplaceOrderShippingItems: MarketplaceOrderShippingItem[] = await tx
690
+ .getRepository(MarketplaceOrderShippingItem)
691
+ .find({
692
+ where: { domain: marketplaceStore.domain, marketplaceOrderItem }
693
+ })
694
+
695
+ let product: Product = await tx.getRepository(Product).findOne({
696
+ where: { domain: marketplaceStore.domain, sku: marketplaceProductVariation.sku, deletedAt: IsNull() },
697
+ relations: ['productDetails']
698
+ })
699
+
700
+ let productBundle: ProductBundle
701
+ if (!product) {
702
+ productBundle = await tx.getRepository(ProductBundle).findOne({
703
+ where: { domain: marketplaceStore.domain, sku: marketplaceProductVariation.sku },
704
+ relations: ['productBundleSettings', 'productBundleSettings.product']
705
+ })
706
+ }
707
+
708
+ if (existingMarketplaceOrderShippingItems && existingMarketplaceOrderShippingItems?.length) {
709
+ } else {
710
+ if (productBundle) {
711
+ const productBundleSettings: ProductBundleSetting[] = productBundle.productBundleSettings
712
+ let marketplaceOrderShippingItems: MarketplaceOrderShippingItem[] = []
713
+ productBundleSettings.map(productBundleSetting => {
714
+ let marketplaceOrderShippingItem: MarketplaceOrderShippingItem = new MarketplaceOrderShippingItem()
715
+ marketplaceOrderShippingItem.name = uuid()
716
+ marketplaceOrderShippingItem.qty = marketplaceOrderItem.qty * productBundleSetting.bundleQty
717
+ marketplaceOrderShippingItem.domain = marketplaceStore.domain
718
+ marketplaceOrderShippingItem.marketplaceOrderItem = marketplaceOrderItem
719
+ marketplaceOrderShippingItem.marketplaceOrderShipping = savedMarketplaceOrderShipping
720
+ marketplaceOrderShippingItem.product = productBundleSetting.product
721
+
722
+ marketplaceOrderShippingItems.push(marketplaceOrderShippingItem)
723
+ })
724
+
725
+ await tx.getRepository(MarketplaceOrderShippingItem).save(marketplaceOrderShippingItems)
726
+ } else {
727
+ let marketplaceOrderShippingItem: MarketplaceOrderShippingItem = new MarketplaceOrderShippingItem()
728
+ marketplaceOrderShippingItem.name = uuid()
729
+ marketplaceOrderShippingItem.qty = marketplaceOrderItem.qty
730
+ marketplaceOrderShippingItem.domain = marketplaceStore.domain
731
+ marketplaceOrderShippingItem.marketplaceOrderItem = marketplaceOrderItem
732
+ marketplaceOrderShippingItem.marketplaceOrderShipping = savedMarketplaceOrderShipping
733
+ marketplaceOrderShippingItem.product = product ? product : null
734
+
735
+ await tx.getRepository(MarketplaceOrderShippingItem).save(marketplaceOrderShippingItem)
736
+ }
737
+ }
738
+ }
739
+
679
740
  if (i == marketplaceOrders.length - 1) {
680
741
  lastOrderId = order.name
681
742
  }
@@ -1,18 +1,28 @@
1
1
  import { EntityManager } from 'typeorm'
2
2
 
3
3
  import { MarketplaceStore, StoreAPI } from '@things-factory/integration-marketplace'
4
+ import { Domain } from '@things-factory/shell'
4
5
 
5
- import { MarketplaceOrder, MarketplaceOrderItem, MarketplaceOrderShipping } from '../../../entities'
6
+ import {
7
+ MarketplaceOrder,
8
+ MarketplaceOrderItem,
9
+ MarketplaceOrderShipping,
10
+ MarketplaceOrderShippingItem
11
+ } from '../../../entities'
6
12
 
7
13
  export const updateOrderReadyToShip = {
8
- async updateOrderReadyToShip(_: any, { shippingProvider, deliveryType, orderNo }, context: any) {
14
+ async updateOrderReadyToShip(_: any, { shippingProvider, deliveryType, orderNo, orderId, domainId }, context: any) {
9
15
  const { tx }: { tx: EntityManager } = context.state
16
+
17
+ const domain: Domain = await tx.getRepository(Domain).findOne(domainId)
18
+
10
19
  let foundMarketplaceOrder: MarketplaceOrder = await tx.getRepository(MarketplaceOrder).findOne({
11
- where: { name: orderNo },
20
+ where: { name: orderId, orderNo, domain },
12
21
  relations: [
13
22
  'marketplaceStore',
14
23
  'marketplaceOrderItems',
15
- 'marketplaceOrderItems.marketplaceOrderShipping',
24
+ 'marketplaceOrderItems.marketplaceOrderShippingItems',
25
+ 'marketplaceOrderItems.marketplaceOrderShippingItems.marketplaceOrderShipping',
16
26
  'marketplaceOrderItems.marketplaceProductVariation'
17
27
  ]
18
28
  })
@@ -25,54 +35,82 @@ export const updateOrderReadyToShip = {
25
35
  let marketplaceOrderShippings: MarketplaceOrderShipping[] = []
26
36
 
27
37
  foundMarketplaceOrder.marketplaceOrderItems.map(item => {
28
- if (item?.marketplaceOrderShipping) {
29
- marketplaceOrderShippings.push(item.marketplaceOrderShipping)
30
- }
38
+ const marketplaceOrderShippingItems: MarketplaceOrderShippingItem[] = item.marketplaceOrderShippingItems
39
+ marketplaceOrderShippingItems.map(itm => {
40
+ if (itm?.marketplaceOrderShipping) {
41
+ marketplaceOrderShippings.push(itm.marketplaceOrderShipping)
42
+ }
43
+ })
31
44
  })
32
45
 
33
46
  const uniqueMarketplaceOrderShippings = Array.from(new Set(marketplaceOrderShippings.map(a => a.id))).map(id => {
34
47
  return marketplaceOrderShippings.find(a => a.id === id)
35
48
  })
36
49
 
37
- if (uniqueMarketplaceOrderShippings.some(marketplaceOrderShipping => marketplaceOrderShipping.trackingNo != null)) {
38
- uniqueMarketplaceOrderShippings.map((orderShipping: MarketplaceOrderShipping) => {
39
- if (orderShipping?.trackingNo) {
40
- const trackingNoInfo: any[] = JSON.parse(orderShipping.trackingNo)
41
- const orderTrackingNos: string[] = trackingNoInfo.map(item => item.tracking_code)
42
- const uniqueTrackingNos = [...new Set(orderTrackingNos)]
43
-
44
- let orderItemIds: string[] = []
45
-
46
- if (uniqueTrackingNos?.length == 1) {
47
- orderItemIds = trackingNoInfo.map(item => item.order_item_id)
48
- trackingInfoArr.push({ orderItemIds, trackingNo: uniqueTrackingNos[0] })
49
- } else {
50
- uniqueTrackingNos.map(trackingNo => {
51
- orderItemIds = trackingNoInfo
52
- .filter(info => info.tracking_code === trackingNo)
53
- .map(filteredInfo => filteredInfo.order_item_id)
54
-
55
- trackingInfoArr.push({ orderItemIds, trackingNo })
56
- })
50
+ if (marketplaceStore.platform === 'lazada') {
51
+ if (
52
+ uniqueMarketplaceOrderShippings.some(marketplaceOrderShipping => marketplaceOrderShipping.trackingNo != null)
53
+ ) {
54
+ uniqueMarketplaceOrderShippings.map((orderShipping: MarketplaceOrderShipping) => {
55
+ if (orderShipping?.trackingNo) {
56
+ const trackingNoInfo: any[] = JSON.parse(orderShipping.trackingNo)
57
+ const orderTrackingNos: string[] = trackingNoInfo.map(item => item.tracking_code)
58
+ const uniqueTrackingNos = [...new Set(orderTrackingNos)]
59
+
60
+ let orderItemIds: string[] = []
61
+
62
+ if (uniqueTrackingNos?.length == 1) {
63
+ orderItemIds = trackingNoInfo.map(item => item.order_item_id)
64
+ trackingInfoArr.push({ orderItemIds, trackingNo: uniqueTrackingNos[0] })
65
+ } else {
66
+ uniqueTrackingNos.map(trackingNo => {
67
+ orderItemIds = trackingNoInfo
68
+ .filter(info => info.tracking_code === trackingNo)
69
+ .map(filteredInfo => filteredInfo.order_item_id)
70
+
71
+ trackingInfoArr.push({ orderItemIds, trackingNo })
72
+ })
73
+ }
57
74
  }
58
- }
59
- })
60
- }
61
-
62
- for (var i = 0; i < trackingInfoArr?.length; i++) {
63
- const trackingInfo = trackingInfoArr[i]
64
- const trackingNo = trackingInfo.trackingNo
65
- const orderItemId = trackingInfo.orderItemIds
75
+ })
76
+ }
66
77
 
67
- await StoreAPI.setStoreOrderStatusReadyToShip(marketplaceStore, {
68
- shipmentProvider: shippingProvider,
69
- deliveryType,
70
- orderItemId,
71
- trackingNo
72
- })
78
+ for (var i = 0; i < trackingInfoArr?.length; i++) {
79
+ const trackingInfo = trackingInfoArr[i]
80
+ const trackingNo = trackingInfo.trackingNo
81
+ const orderItemId = trackingInfo.orderItemIds
82
+
83
+ const res = await StoreAPI.setStoreOrderStatusReadyToShip(marketplaceStore, {
84
+ shipmentProvider: shippingProvider,
85
+ deliveryType,
86
+ orderItemId,
87
+ trackingNo
88
+ })
89
+ }
90
+ } else {
91
+ let mos = uniqueMarketplaceOrderShippings.filter(mos => mos.trackingNo != null || mos.ownTrackingNo != null)
92
+ if (mos.length > 0) {
93
+ let trackingNo = mos[0].ownTrackingNo
94
+ const note = mos[0].trackingUrl || trackingNo
95
+
96
+ const res = await StoreAPI.setStoreOrderStatusReadyToShip(marketplaceStore, {
97
+ orderId,
98
+ trackingUrl: mos[0].trackingUrl || '',
99
+ trackingNo,
100
+ order: foundMarketplaceOrder,
101
+ note
102
+ })
103
+
104
+ if (marketplaceStore.platform === 'woocommerce') {
105
+ await StoreAPI.updateOrderStatus(marketplaceStore, {
106
+ orderId,
107
+ status: 'READY_TO_SHIP'
108
+ })
109
+ }
110
+ }
73
111
  }
74
112
 
75
- const updatedOrder = await StoreAPI.getStoreOrder(marketplaceStore, { orderId: orderNo })
113
+ const updatedOrder = await StoreAPI.getStoreOrder(marketplaceStore, { orderId })
76
114
 
77
115
  foundMarketplaceOrder.status = updatedOrder.status
78
116
  foundMarketplaceOrder.orderUpdatedAt = updatedOrder.orderUpdatedAt
@@ -1,20 +1,25 @@
1
1
  import { getRepository } from 'typeorm'
2
+
2
3
  import { MarketplaceOrderShipping } from '../../../entities'
3
4
 
4
5
  export const marketplaceOrderShippingResolver = {
5
6
  async marketplaceOrderShipping(_: any, { name }, context: any) {
6
7
  const repository = getRepository(MarketplaceOrderShipping)
7
8
 
8
- return await getRepository(MarketplaceOrderShipping).findOne({
9
+ const items: MarketplaceOrderShipping = await repository.findOne({
9
10
  where: { domain: context.state.domain, name },
10
11
  relations: [
11
12
  'domain',
12
13
  'creator',
13
14
  'updater',
14
- 'marketplaceOrderItems',
15
- 'marketplaceOrderItems.marketplaceProductVariation',
16
- 'marketplaceOrderItems.marketplaceProductVariation.marketplaceProduct'
15
+ 'marketplaceOrderShippingItems',
16
+ 'marketplaceOrderShippingItems.product',
17
+ 'marketplaceOrderShippingItems.marketplaceOrderItem',
18
+ 'marketplaceOrderShippingItems.marketplaceOrderItem.marketplaceProductVariation',
19
+ 'marketplaceOrderShippingItems.marketplaceOrderItem.marketplaceProductVariation.marketplaceProduct'
17
20
  ]
18
21
  })
22
+
23
+ return items
19
24
  }
20
25
  }
@@ -12,7 +12,8 @@ export const marketplaceOrderShippingsResolver = {
12
12
 
13
13
  const qb: SelectQueryBuilder<MarketplaceOrderShipping> = getRepository(MarketplaceOrderShipping)
14
14
  .createQueryBuilder('MOS')
15
- .innerJoinAndSelect('MOS.marketplaceOrderItems', 'MOI')
15
+ .innerJoinAndSelect('MOS.marketplaceOrderShippingItems', 'MOSI')
16
+ .innerJoinAndSelect('MOSI.marketplaceOrderItem', 'MOI')
16
17
  .innerJoinAndSelect('MOI.marketplaceOrder', 'MO')
17
18
  .innerJoinAndSelect('MOI.marketplaceProductVariation', 'MPV')
18
19
  .innerJoinAndSelect('MOS.marketplaceStore', 'MS')
@@ -0,0 +1,14 @@
1
+ import { getRepository } from 'typeorm'
2
+
3
+ import { MarketplaceOrderShippingItem } from '../../../entities'
4
+
5
+ export const createMarketplaceOrderShippingItem = {
6
+ async createMarketplaceOrderShippingItem(_: any, { marketplaceOrderShippingItem }, context: any) {
7
+ return await getRepository(MarketplaceOrderShippingItem).save({
8
+ ...marketplaceOrderShippingItem,
9
+ domain: context.state.domain,
10
+ creator: context.state.user,
11
+ updater: context.state.user
12
+ })
13
+ }
14
+ }
@@ -0,0 +1,10 @@
1
+ import { getRepository } from 'typeorm'
2
+
3
+ import { MarketplaceOrderShippingItem } from '../../../entities'
4
+
5
+ export const deleteMarketplaceOrderShippingItem = {
6
+ async deleteMarketplaceOrderShippingItem(_: any, { name }, context: any) {
7
+ await getRepository(MarketplaceOrderShippingItem).delete({ domain: context.state.domain, name })
8
+ return true
9
+ }
10
+ }
@@ -0,0 +1,13 @@
1
+ import { getRepository, In } from 'typeorm'
2
+
3
+ import { MarketplaceOrderShippingItem } from '../../../entities'
4
+
5
+ export const deleteMarketplaceOrderShippingItems = {
6
+ async deleteMarketplaceOrderShippingItems(_: any, { names }, context: any) {
7
+ await getRepository(MarketplaceOrderShippingItem).delete({
8
+ domain: context.state.domain,
9
+ name: In(names)
10
+ })
11
+ return true
12
+ }
13
+ }
@@ -0,0 +1,20 @@
1
+ import { createMarketplaceOrderShippingItem } from './create-marketplace-order-shipping-item'
2
+ import { deleteMarketplaceOrderShippingItem } from './delete-marketplace-order-shipping-item'
3
+ import { deleteMarketplaceOrderShippingItems } from './delete-marketplace-order-shipping-items'
4
+ import { marketplaceOrderShippingItemResolver } from './marketplace-order-shipping-item'
5
+ import { updateMarketplaceOrderShippingItem } from './update-marketplace-order-shipping-item'
6
+ import { updateMultipleMarketplaceOrderShippingItem } from './update-multiple-marketplace-order-shipping-item'
7
+
8
+ export const MarketplaceOrderShippingItemResolver = {
9
+ Query: {
10
+ ...marketplaceOrderShippingItemResolver,
11
+ ...marketplaceOrderShippingItemResolver
12
+ },
13
+ Mutation: {
14
+ ...updateMarketplaceOrderShippingItem,
15
+ ...updateMultipleMarketplaceOrderShippingItem,
16
+ ...createMarketplaceOrderShippingItem,
17
+ ...deleteMarketplaceOrderShippingItem,
18
+ ...deleteMarketplaceOrderShippingItems
19
+ }
20
+ }
@@ -0,0 +1,21 @@
1
+ import { getRepository } from 'typeorm'
2
+
3
+ import { MarketplaceOrderShippingItem } from '../../../entities'
4
+
5
+ export const marketplaceOrderShippingItemResolver = {
6
+ async marketplaceOrderShippingItem(_: any, { name }, context: any) {
7
+ const repository = getRepository(MarketplaceOrderShippingItem)
8
+
9
+ return await getRepository(MarketplaceOrderShippingItem).findOne({
10
+ where: { domain: context.state.domain, name },
11
+ relations: [
12
+ 'domain',
13
+ 'creator',
14
+ 'updater',
15
+ 'marketplaceOrderItem',
16
+ 'marketplaceOrderItem.marketplaceProductVariation',
17
+ 'marketplaceOrderItem.marketplaceProductVariation.marketplaceProduct'
18
+ ]
19
+ })
20
+ }
21
+ }
@@ -0,0 +1,16 @@
1
+ import { getRepository } from 'typeorm'
2
+
3
+ import { convertListParams, ListParam } from '@things-factory/shell'
4
+
5
+ import { MarketplaceOrderShippingItem } from '../../../entities'
6
+
7
+ export const marketplaceOrderShippingItemsResolver = {
8
+ async marketplaceOrderShippingItems(_: any, params: ListParam, context: any) {
9
+ const convertedParams = convertListParams(params)
10
+ const [items, total] = await getRepository(MarketplaceOrderShippingItem).findAndCount({
11
+ ...convertedParams,
12
+ relations: ['domain', 'creator', 'updater']
13
+ })
14
+ return { items, total }
15
+ }
16
+ }
@@ -0,0 +1,18 @@
1
+ import { getRepository } from 'typeorm'
2
+
3
+ import { MarketplaceOrderShippingItem } from '../../../entities'
4
+
5
+ export const updateMarketplaceOrderShippingItem = {
6
+ async updateMarketplaceOrderShippingItem(_: any, { name, patch }, context: any) {
7
+ const repository = getRepository(MarketplaceOrderShippingItem)
8
+ const marketplaceOrderShippingItem = await repository.findOne({
9
+ where: { domain: context.state.domain, name }
10
+ })
11
+
12
+ return await repository.save({
13
+ ...marketplaceOrderShippingItem,
14
+ ...patch,
15
+ updater: context.state.user
16
+ })
17
+ }
18
+ }
@@ -0,0 +1,44 @@
1
+ import { getRepository } from 'typeorm'
2
+
3
+ import { MarketplaceOrderShippingItem } from '../../../entities'
4
+
5
+ export const updateMultipleMarketplaceOrderShippingItem = {
6
+ async updateMultipleMarketplaceOrderShippingItem(_: any, { patches }, context: any) {
7
+ let results = []
8
+ const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')
9
+ const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')
10
+ const marketplaceOrderShippingItemRepo = getRepository(MarketplaceOrderShippingItem)
11
+
12
+ if (_createRecords.length > 0) {
13
+ for (let i = 0; i < _createRecords.length; i++) {
14
+ const newRecord = _createRecords[i]
15
+
16
+ const result = await marketplaceOrderShippingItemRepo.save({
17
+ ...newRecord,
18
+ domain: context.state.domain,
19
+ creator: context.state.user,
20
+ updater: context.state.user
21
+ })
22
+
23
+ results.push({ ...result, cuFlag: '+' })
24
+ }
25
+ }
26
+
27
+ if (_updateRecords.length > 0) {
28
+ for (let i = 0; i < _updateRecords.length; i++) {
29
+ const newRecord = _updateRecords[i]
30
+ const marketplaceOrderShippingItem = await marketplaceOrderShippingItemRepo.findOne(newRecord.id)
31
+
32
+ const result = await marketplaceOrderShippingItemRepo.save({
33
+ ...marketplaceOrderShippingItem,
34
+ ...newRecord,
35
+ updater: context.state.user
36
+ })
37
+
38
+ results.push({ ...result, cuFlag: 'M' })
39
+ }
40
+ }
41
+
42
+ return results
43
+ }
44
+ }
@@ -24,7 +24,8 @@ export const marketplaceSalesReportsResolver = {
24
24
  let qb: SelectQueryBuilder<MarketplaceOrderItem> = getRepository(MarketplaceOrderItem).createQueryBuilder('moi')
25
25
  buildQuery(qb, params, context)
26
26
  qb.leftJoinAndSelect('moi.domain', 'domain')
27
- .leftJoinAndSelect('moi.marketplaceOrderShipping', 'mos')
27
+ .leftJoinAndSelect('moi.marketplaceOrderShippingItems', 'mosi')
28
+ .leftJoinAndSelect('mosi.marketplaceOrderShipping', 'mos')
28
29
  .leftJoinAndSelect('moi.marketplaceOrder', 'mo')
29
30
  .leftJoinAndSelect('mo.fulfillmentCenter', 'fc')
30
31
  .leftJoinAndSelect('mo.marketplaceStore', 'ms')
@@ -10,3 +10,4 @@ export * from './store-replenishment-item'
10
10
  export * from './marketplace-product-variation-price'
11
11
  export * from './marketplace-refund-order'
12
12
  export * from './marketplace-report'
13
+ export * from './marketplace-order-shipping-item'
@@ -23,13 +23,14 @@ export const MarketplaceOrderResolver = gql`
23
23
  generateMarketplaceOrder(marketplaceOrder: NewMarketplaceOrder!): MarketplaceOrder @transaction
24
24
  cancelMarketplaceOrder(orderNo: String!, patch: MarketplaceOrderPatch!): MarketplaceOrder @transaction
25
25
  syncMarketplaceOrder(storeId: String!, fromDate: String, toDate: String): Boolean @transaction
26
- syncAllMarketplaceOrder(
27
- companyDomainId: String
28
- fromDate: String
29
- toDate: String
30
- blackListStores: String
31
- ): Boolean
32
- updateOrderReadyToShip(shippingProvider: String!, deliveryType: String, orderNo: String!): Boolean @transaction
26
+ syncAllMarketplaceOrder(companyDomainId: String, fromDate: String, toDate: String, blackListStores: String): Boolean
27
+ updateOrderReadyToShip(
28
+ shippingProvider: String
29
+ deliveryType: String
30
+ orderNo: String!
31
+ orderId: String!
32
+ domainId: String!
33
+ ): Boolean @transaction
33
34
  initialiseLogistics(deliveryType: LogisticsInit, orderNo: String!): Boolean @transaction
34
35
  initialiseLogisticsByBatch(patches: [LogisticsInfo]!): Boolean @transaction
35
36
  initialiseShopeeLogisticsByBatch(patches: [LogisticsInfo]!): Boolean
@@ -22,5 +22,6 @@ export const LogisticsInfo = gql`
22
22
  addressFlag: [String]
23
23
  trackingNo: String
24
24
  ownTrackingNo: String
25
+ trackingUrl: String
25
26
  }
26
27
  `
@@ -6,8 +6,8 @@ export const MarketplaceOrderItem = gql`
6
6
  name: String
7
7
  domain: Domain
8
8
  marketplaceOrder: MarketplaceOrder
9
+ marketplaceOrderShippingItems: [MarketplaceOrderShippingItem]
9
10
  marketplaceProductVariation: MarketplaceProductVariation
10
- marketplaceOrderShipping: MarketplaceOrderShipping
11
11
  orderType: String
12
12
  cancelBy: String
13
13
  returnStatus: String
@@ -12,7 +12,6 @@ export const NewMarketplaceOrderItem = gql`
12
12
  packageId: String
13
13
  invoiceNo: String
14
14
  status: String
15
- marketplaceOrderShipping: NewMarketplaceOrderShipping
16
15
  marketplaceProductVariation: MarketplaceProductVariationPatch
17
16
  }
18
17
  `
@@ -5,7 +5,6 @@ export const MarketplaceOrderShippingPatch = gql`
5
5
  id: String
6
6
  name: String
7
7
  description: String
8
- marketplaceOrderItems: [ObjectRef]
9
8
  orderNoRef: String
10
9
  subOrderNoRef: String
11
10
  address1: String
@@ -7,7 +7,7 @@ export const MarketplaceOrderShipping = gql`
7
7
  domain: Domain
8
8
  description: String
9
9
  marketplaceOrder: MarketplaceOrder
10
- marketplaceOrderItems: [MarketplaceOrderItem]
10
+ marketplaceOrderShippingItems: [MarketplaceOrderShippingItem]
11
11
  marketplaceStore: MarketplaceStore
12
12
  orderNoRef: String
13
13
  subOrderNoRef: String
@@ -50,6 +50,7 @@ export const MarketplaceOrderShipping = gql`
50
50
  sellerShippingFeeVoucher: Float
51
51
  releaseOrderId: String
52
52
  fulfillmentCenter: FulfillmentCenter
53
+ trackingUrl: String
53
54
  updater: User
54
55
  creator: User
55
56
  updatedAt: String
@@ -4,7 +4,6 @@ export const NewMarketplaceOrderShipping = gql`
4
4
  input NewMarketplaceOrderShipping {
5
5
  name: String
6
6
  description: String
7
- marketplaceOrderItems: [ObjectRef]
8
7
  orderNoRef: String
9
8
  subOrderNoRef: String
10
9
  shippingId: String
@@ -0,0 +1,32 @@
1
+ import gql from 'graphql-tag'
2
+
3
+ export * from './marketplace-order-shipping-item'
4
+ export * from './marketplace-order-shipping-item-list'
5
+ export * from './marketplace-order-shipping-item-patch'
6
+ export * from './new-marketplace-order-shipping-item'
7
+
8
+ export const MarketplaceOrderShippingItemResolver = gql`
9
+ extend type Mutation {
10
+ createMarketplaceOrderShippingItem(
11
+ marketplaceOrderShippingItem: NewMarketplaceOrderShippingItem!
12
+ ): MarketplaceOrderShippingItem
13
+ updateMarketplaceOrderShippingItem(
14
+ name: String!
15
+ patch: MarketplaceOrderShippingItemPatch!
16
+ ): MarketplaceOrderShippingItem @transaction
17
+ updateMultipleMarketplaceOrderShippingItem(
18
+ patches: [MarketplaceOrderShippingItemPatch]!
19
+ ): [MarketplaceOrderShippingItem]
20
+ deleteMarketplaceOrderShippingItem(name: String!): Boolean
21
+ deleteMarketplaceOrderShippingItems(names: [String]!): Boolean
22
+ }
23
+
24
+ extend type Query {
25
+ marketplaceOrderShippingItems(
26
+ filters: [Filter]
27
+ pagination: Pagination
28
+ sortings: [Sorting]
29
+ ): MarketplaceOrderShippingItemList
30
+ marketplaceOrderShippingItem(name: String!): MarketplaceOrderShippingItem
31
+ }
32
+ `
@@ -0,0 +1,8 @@
1
+ import gql from 'graphql-tag'
2
+
3
+ export const MarketplaceOrderShippingItemList = gql`
4
+ type MarketplaceOrderShippingItemList {
5
+ items: [MarketplaceOrderShippingItemList]
6
+ total: Int
7
+ }
8
+ `
@@ -0,0 +1,13 @@
1
+ import gql from 'graphql-tag'
2
+
3
+ export const MarketplaceOrderShippingItemPatch = gql`
4
+ input MarketplaceOrderShippingItemPatch {
5
+ id: String
6
+ name: String
7
+ marketplaceOrderItem: ObjectRef
8
+ marketplaceOrderShipping: ObjectRef
9
+ product: ObjectRef
10
+ qty: Int
11
+ cuFlag: String
12
+ }
13
+ `