@things-factory/marketplace-base 8.0.7 → 9.0.0-beta.12

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 (229) hide show
  1. package/dist-server/tsconfig.tsbuildinfo +1 -1
  2. package/package.json +7 -7
  3. package/server/constants/attachment.ts +0 -3
  4. package/server/constants/index.ts +0 -4
  5. package/server/constants/order.ts +0 -11
  6. package/server/constants/platform.ts +0 -7
  7. package/server/constants/product.ts +0 -5
  8. package/server/constants/reserve-qty-order-statuses.ts +0 -7
  9. package/server/controllers/index.ts +0 -0
  10. package/server/entities/index.ts +0 -45
  11. package/server/entities/marketplace-order-item.ts +0 -137
  12. package/server/entities/marketplace-order-shipping-item.ts +0 -55
  13. package/server/entities/marketplace-order-shipping.ts +0 -168
  14. package/server/entities/marketplace-order.ts +0 -141
  15. package/server/entities/marketplace-product-attribute.ts +0 -83
  16. package/server/entities/marketplace-product-category.ts +0 -53
  17. package/server/entities/marketplace-product-variation-price.ts +0 -63
  18. package/server/entities/marketplace-product-variation.ts +0 -147
  19. package/server/entities/marketplace-product.ts +0 -164
  20. package/server/entities/marketplace-refund-order-item.ts +0 -56
  21. package/server/entities/marketplace-refund-order.ts +0 -51
  22. package/server/entities/marketplace-setting.ts +0 -49
  23. package/server/entities/store-replenishment-item.ts +0 -48
  24. package/server/entities/store-replenishment.ts +0 -79
  25. package/server/graphql/index.ts +0 -9
  26. package/server/graphql/resolvers/index.ts +0 -14
  27. package/server/graphql/resolvers/marketplace-order/auto-initialise-logistics-by-batch.ts +0 -164
  28. package/server/graphql/resolvers/marketplace-order/auto-update-order-ready-to-ship.ts +0 -136
  29. package/server/graphql/resolvers/marketplace-order/cancel-marketplace-order.ts +0 -64
  30. package/server/graphql/resolvers/marketplace-order/create-marketplace-order-note.ts +0 -21
  31. package/server/graphql/resolvers/marketplace-order/dashboard-marketplace-orders.ts +0 -82
  32. package/server/graphql/resolvers/marketplace-order/dashboard-marketplace-sales-average.ts +0 -82
  33. package/server/graphql/resolvers/marketplace-order/dashboard-marketplace-sales.ts +0 -93
  34. package/server/graphql/resolvers/marketplace-order/delete-marketplace-orders.ts +0 -17
  35. package/server/graphql/resolvers/marketplace-order/generate-marketplace-order.ts +0 -180
  36. package/server/graphql/resolvers/marketplace-order/get-address-list.ts +0 -9
  37. package/server/graphql/resolvers/marketplace-order/get-branch-list.ts +0 -9
  38. package/server/graphql/resolvers/marketplace-order/get-etrax-order-document.ts +0 -49
  39. package/server/graphql/resolvers/marketplace-order/get-logistics-param.ts +0 -47
  40. package/server/graphql/resolvers/marketplace-order/get-order-document.ts +0 -149
  41. package/server/graphql/resolvers/marketplace-order/get-store-logistics.ts +0 -9
  42. package/server/graphql/resolvers/marketplace-order/get-time-slot.ts +0 -9
  43. package/server/graphql/resolvers/marketplace-order/index.ts +0 -75
  44. package/server/graphql/resolvers/marketplace-order/initialise-lazada-logistics-by-batch.ts +0 -165
  45. package/server/graphql/resolvers/marketplace-order/initialise-logistics-by-batch.ts +0 -41
  46. package/server/graphql/resolvers/marketplace-order/initialise-logistics.ts +0 -29
  47. package/server/graphql/resolvers/marketplace-order/initialise-shopee-logistics-by-batch.ts +0 -97
  48. package/server/graphql/resolvers/marketplace-order/marketplace-order.ts +0 -12
  49. package/server/graphql/resolvers/marketplace-order/marketplace-orders-for-batch-init.ts +0 -52
  50. package/server/graphql/resolvers/marketplace-order/marketplace-orders-for-export.ts +0 -63
  51. package/server/graphql/resolvers/marketplace-order/marketplace-orders.ts +0 -56
  52. package/server/graphql/resolvers/marketplace-order/set-marketplace-order-delivered.ts +0 -25
  53. package/server/graphql/resolvers/marketplace-order/set-marketplace-order-failed-delivery.ts +0 -25
  54. package/server/graphql/resolvers/marketplace-order/set-own-shipping-provider-by-orders.ts +0 -39
  55. package/server/graphql/resolvers/marketplace-order/split-orders-by-batch.ts +0 -245
  56. package/server/graphql/resolvers/marketplace-order/sync-all-marketplace-order.ts +0 -39
  57. package/server/graphql/resolvers/marketplace-order/sync-marketplace-order.ts +0 -940
  58. package/server/graphql/resolvers/marketplace-order/sync-marketplace-orders-by-platform.ts +0 -31
  59. package/server/graphql/resolvers/marketplace-order/sync-shopee-awb.ts +0 -49
  60. package/server/graphql/resolvers/marketplace-order/update-marketplace-order.ts +0 -35
  61. package/server/graphql/resolvers/marketplace-order/update-order-ready-to-ship.ts +0 -142
  62. package/server/graphql/resolvers/marketplace-order-item/create-marketplace-order-item.ts +0 -14
  63. package/server/graphql/resolvers/marketplace-order-item/delete-marketplace-order-item.ts +0 -10
  64. package/server/graphql/resolvers/marketplace-order-item/delete-marketplace-order-items.ts +0 -17
  65. package/server/graphql/resolvers/marketplace-order-item/index.ts +0 -22
  66. package/server/graphql/resolvers/marketplace-order-item/marketplace-order-item.ts +0 -14
  67. package/server/graphql/resolvers/marketplace-order-item/marketplace-order-items.ts +0 -15
  68. package/server/graphql/resolvers/marketplace-order-item/update-marketplace-order-item.ts +0 -18
  69. package/server/graphql/resolvers/marketplace-order-item/update-multiple-marketplace-order-item.ts +0 -44
  70. package/server/graphql/resolvers/marketplace-order-shipping/create-marketplace-order-shipping.ts +0 -14
  71. package/server/graphql/resolvers/marketplace-order-shipping/delete-marketplace-order-shipping.ts +0 -10
  72. package/server/graphql/resolvers/marketplace-order-shipping/delete-marketplace-order-shippings.ts +0 -17
  73. package/server/graphql/resolvers/marketplace-order-shipping/index.ts +0 -23
  74. package/server/graphql/resolvers/marketplace-order-shipping/marketplace-order-shipping.ts +0 -25
  75. package/server/graphql/resolvers/marketplace-order-shipping/marketplace-order-shippings-for-batch-init.ts +0 -88
  76. package/server/graphql/resolvers/marketplace-order-shipping/marketplace-order-shippings.ts +0 -43
  77. package/server/graphql/resolvers/marketplace-order-shipping/update-marketplace-order-shipping.ts +0 -32
  78. package/server/graphql/resolvers/marketplace-order-shipping/update-multiple-marketplace-order-shipping.ts +0 -44
  79. package/server/graphql/resolvers/marketplace-order-shipping-item/create-marketplace-order-shipping-item.ts +0 -14
  80. package/server/graphql/resolvers/marketplace-order-shipping-item/delete-marketplace-order-shipping-item.ts +0 -10
  81. package/server/graphql/resolvers/marketplace-order-shipping-item/delete-marketplace-order-shipping-items.ts +0 -15
  82. package/server/graphql/resolvers/marketplace-order-shipping-item/index.ts +0 -20
  83. package/server/graphql/resolvers/marketplace-order-shipping-item/marketplace-order-shipping-item.ts +0 -21
  84. package/server/graphql/resolvers/marketplace-order-shipping-item/marketplace-order-shipping-items.ts +0 -14
  85. package/server/graphql/resolvers/marketplace-order-shipping-item/update-marketplace-order-shipping-item.ts +0 -18
  86. package/server/graphql/resolvers/marketplace-order-shipping-item/update-multiple-marketplace-order-shipping-item.ts +0 -44
  87. package/server/graphql/resolvers/marketplace-product/create-marketplace-product.ts +0 -35
  88. package/server/graphql/resolvers/marketplace-product/delete-marketplace-product.ts +0 -10
  89. package/server/graphql/resolvers/marketplace-product/delete-marketplace-products.ts +0 -17
  90. package/server/graphql/resolvers/marketplace-product/index.ts +0 -27
  91. package/server/graphql/resolvers/marketplace-product/marketplace-product.ts +0 -24
  92. package/server/graphql/resolvers/marketplace-product/marketplace-products.ts +0 -23
  93. package/server/graphql/resolvers/marketplace-product/sync-all-marketplace-store-products.ts +0 -225
  94. package/server/graphql/resolvers/marketplace-product/sync-marketplace-store-products.ts +0 -222
  95. package/server/graphql/resolvers/marketplace-product/update-marketplace-product.ts +0 -24
  96. package/server/graphql/resolvers/marketplace-product/upsert-marketplace-product.ts +0 -39
  97. package/server/graphql/resolvers/marketplace-product-attribute/create-marketplace-product-attribute.ts +0 -14
  98. package/server/graphql/resolvers/marketplace-product-attribute/delete-marketplace-product-attribute.ts +0 -10
  99. package/server/graphql/resolvers/marketplace-product-attribute/delete-marketplace-product-attributes.ts +0 -17
  100. package/server/graphql/resolvers/marketplace-product-attribute/index.ts +0 -22
  101. package/server/graphql/resolvers/marketplace-product-attribute/marketplace-product-attribute.ts +0 -14
  102. package/server/graphql/resolvers/marketplace-product-attribute/marketplace-product-attributes.ts +0 -14
  103. package/server/graphql/resolvers/marketplace-product-attribute/update-marketplace-product-attribute.ts +0 -18
  104. package/server/graphql/resolvers/marketplace-product-attribute/update-multiple-marketplace-product-attribute.ts +0 -44
  105. package/server/graphql/resolvers/marketplace-product-category/create-marketplace-product-category.ts +0 -14
  106. package/server/graphql/resolvers/marketplace-product-category/delete-marketplace-product-categories.ts +0 -17
  107. package/server/graphql/resolvers/marketplace-product-category/delete-marketplace-product-category.ts +0 -10
  108. package/server/graphql/resolvers/marketplace-product-category/index.ts +0 -22
  109. package/server/graphql/resolvers/marketplace-product-category/marketplace-product-categories.ts +0 -14
  110. package/server/graphql/resolvers/marketplace-product-category/marketplace-product-category.ts +0 -14
  111. package/server/graphql/resolvers/marketplace-product-category/update-marketplace-product-category.ts +0 -18
  112. package/server/graphql/resolvers/marketplace-product-category/update-multiple-marketplace-product-category.ts +0 -44
  113. package/server/graphql/resolvers/marketplace-product-variation/create-marketplace-product-variation.ts +0 -14
  114. package/server/graphql/resolvers/marketplace-product-variation/delete-marketplace-product-variation.ts +0 -10
  115. package/server/graphql/resolvers/marketplace-product-variation/delete-marketplace-product-variations.ts +0 -17
  116. package/server/graphql/resolvers/marketplace-product-variation/index.ts +0 -30
  117. package/server/graphql/resolvers/marketplace-product-variation/link-warehouse-marketplace-product-variations.ts +0 -59
  118. package/server/graphql/resolvers/marketplace-product-variation/marketplace-product-variation.ts +0 -14
  119. package/server/graphql/resolvers/marketplace-product-variation/marketplace-product-variations.ts +0 -79
  120. package/server/graphql/resolvers/marketplace-product-variation/update-marketplace-product-variation.ts +0 -32
  121. package/server/graphql/resolvers/marketplace-product-variation/update-multiple-marketplace-product-variation-quantity.ts +0 -76
  122. package/server/graphql/resolvers/marketplace-product-variation/update-multiple-marketplace-product-variations.ts +0 -49
  123. package/server/graphql/resolvers/marketplace-product-variation-price/create-marketplace-product-variation-price.ts +0 -16
  124. package/server/graphql/resolvers/marketplace-product-variation-price/delete-marketplace-product-variation-price.ts +0 -13
  125. package/server/graphql/resolvers/marketplace-product-variation-price/delete-marketplace-product-variation-prices.ts +0 -18
  126. package/server/graphql/resolvers/marketplace-product-variation-price/index.ts +0 -19
  127. package/server/graphql/resolvers/marketplace-product-variation-price/marketplace-product-variation-price-query.ts +0 -52
  128. package/server/graphql/resolvers/marketplace-product-variation-price/update-marketplace-product-variation-price.ts +0 -20
  129. package/server/graphql/resolvers/marketplace-product-variation-price/update-multiple-marketplace-product-variation-price.ts +0 -49
  130. package/server/graphql/resolvers/marketplace-refund-order/index.ts +0 -9
  131. package/server/graphql/resolvers/marketplace-refund-order/sync-all-marketplace-refund-orders.ts +0 -122
  132. package/server/graphql/resolvers/marketplace-refund-order/sync-marketplace-refund-orders.ts +0 -106
  133. package/server/graphql/resolvers/marketplace-report/index.ts +0 -7
  134. package/server/graphql/resolvers/marketplace-report/marketplace-sales-report.ts +0 -143
  135. package/server/graphql/resolvers/store-replenishment/create-store-replenishment.ts +0 -16
  136. package/server/graphql/resolvers/store-replenishment/delete-store-replenishment.ts +0 -13
  137. package/server/graphql/resolvers/store-replenishment/delete-store-replenishments.ts +0 -18
  138. package/server/graphql/resolvers/store-replenishment/index.ts +0 -19
  139. package/server/graphql/resolvers/store-replenishment/store-replenishment-query.ts +0 -52
  140. package/server/graphql/resolvers/store-replenishment/update-multiple-store-replenishment.ts +0 -49
  141. package/server/graphql/resolvers/store-replenishment/update-store-replenishment.ts +0 -20
  142. package/server/graphql/resolvers/store-replenishment-item/create-store-replenishment-item.ts +0 -16
  143. package/server/graphql/resolvers/store-replenishment-item/delete-store-replenishment-item.ts +0 -13
  144. package/server/graphql/resolvers/store-replenishment-item/delete-store-replenishment-items.ts +0 -18
  145. package/server/graphql/resolvers/store-replenishment-item/index.ts +0 -19
  146. package/server/graphql/resolvers/store-replenishment-item/store-replenishment-item-query.ts +0 -52
  147. package/server/graphql/resolvers/store-replenishment-item/update-multiple-store-replenishment-item.ts +0 -49
  148. package/server/graphql/resolvers/store-replenishment-item/update-store-replenishment-item.ts +0 -20
  149. package/server/graphql/types/index.ts +0 -13
  150. package/server/graphql/types/marketplace-order/dashboard-order.ts +0 -13
  151. package/server/graphql/types/marketplace-order/full-logistics-detail.ts +0 -10
  152. package/server/graphql/types/marketplace-order/index.ts +0 -69
  153. package/server/graphql/types/marketplace-order/logistics-detail.ts +0 -8
  154. package/server/graphql/types/marketplace-order/logistics-info.ts +0 -27
  155. package/server/graphql/types/marketplace-order/logistics-init.ts +0 -9
  156. package/server/graphql/types/marketplace-order/logistics-time.ts +0 -9
  157. package/server/graphql/types/marketplace-order/logistics.ts +0 -21
  158. package/server/graphql/types/marketplace-order/marketplace-logistics.ts +0 -11
  159. package/server/graphql/types/marketplace-order/marketplace-order-export.ts +0 -19
  160. package/server/graphql/types/marketplace-order/marketplace-order-list.ts +0 -8
  161. package/server/graphql/types/marketplace-order/marketplace-order-patch.ts +0 -14
  162. package/server/graphql/types/marketplace-order/marketplace-order.ts +0 -40
  163. package/server/graphql/types/marketplace-order/new-marketplace-order.ts +0 -22
  164. package/server/graphql/types/marketplace-order/order-address.ts +0 -16
  165. package/server/graphql/types/marketplace-order/order-document.ts +0 -13
  166. package/server/graphql/types/marketplace-order-item/index.ts +0 -21
  167. package/server/graphql/types/marketplace-order-item/marketplace-order-item-list.ts +0 -8
  168. package/server/graphql/types/marketplace-order-item/marketplace-order-item-patch.ts +0 -10
  169. package/server/graphql/types/marketplace-order-item/marketplace-order-item.ts +0 -32
  170. package/server/graphql/types/marketplace-order-item/new-marketplace-order-item.ts +0 -17
  171. package/server/graphql/types/marketplace-order-shipping/index.ts +0 -31
  172. package/server/graphql/types/marketplace-order-shipping/marketplace-order-shipping-list.ts +0 -8
  173. package/server/graphql/types/marketplace-order-shipping/marketplace-order-shipping-patch.ts +0 -45
  174. package/server/graphql/types/marketplace-order-shipping/marketplace-order-shipping.ts +0 -59
  175. package/server/graphql/types/marketplace-order-shipping/new-marketplace-order-shipping.ts +0 -44
  176. package/server/graphql/types/marketplace-order-shipping-item/index.ts +0 -32
  177. package/server/graphql/types/marketplace-order-shipping-item/marketplace-order-shipping-item-list.ts +0 -8
  178. package/server/graphql/types/marketplace-order-shipping-item/marketplace-order-shipping-item-patch.ts +0 -13
  179. package/server/graphql/types/marketplace-order-shipping-item/marketplace-order-shipping-item.ts +0 -16
  180. package/server/graphql/types/marketplace-order-shipping-item/new-marketplace-order-shipping-item.ts +0 -12
  181. package/server/graphql/types/marketplace-product/index.ts +0 -28
  182. package/server/graphql/types/marketplace-product/marketplace-product-list.ts +0 -8
  183. package/server/graphql/types/marketplace-product/marketplace-product-patch.ts +0 -24
  184. package/server/graphql/types/marketplace-product/marketplace-product.ts +0 -30
  185. package/server/graphql/types/marketplace-product/new-marketplace-product.ts +0 -24
  186. package/server/graphql/types/marketplace-product-attribute/index.ts +0 -35
  187. package/server/graphql/types/marketplace-product-attribute/marketplace-product-attribute-list.ts +0 -8
  188. package/server/graphql/types/marketplace-product-attribute/marketplace-product-attribute-patch.ts +0 -10
  189. package/server/graphql/types/marketplace-product-attribute/marketplace-product-attribute.ts +0 -20
  190. package/server/graphql/types/marketplace-product-attribute/new-marketplace-product-attribute.ts +0 -13
  191. package/server/graphql/types/marketplace-product-category/index.ts +0 -28
  192. package/server/graphql/types/marketplace-product-category/marketplace-product-category-list.ts +0 -8
  193. package/server/graphql/types/marketplace-product-category/marketplace-product-category-patch.ts +0 -10
  194. package/server/graphql/types/marketplace-product-category/marketplace-product-category.ts +0 -17
  195. package/server/graphql/types/marketplace-product-category/new-marketplace-product-category.ts +0 -10
  196. package/server/graphql/types/marketplace-product-variation/index.ts +0 -47
  197. package/server/graphql/types/marketplace-product-variation/marketplace-product-variation-list.ts +0 -8
  198. package/server/graphql/types/marketplace-product-variation/marketplace-product-variation-patch.ts +0 -32
  199. package/server/graphql/types/marketplace-product-variation/marketplace-product-variation.ts +0 -35
  200. package/server/graphql/types/marketplace-product-variation/new-marketplace-product-variation.ts +0 -26
  201. package/server/graphql/types/marketplace-product-variation/warehouse-product.ts +0 -9
  202. package/server/graphql/types/marketplace-product-variation-price/index.ts +0 -21
  203. package/server/graphql/types/marketplace-product-variation-price/marketplace-product-variation-price-list.ts +0 -8
  204. package/server/graphql/types/marketplace-product-variation-price/marketplace-product-variation-price-patch.ts +0 -17
  205. package/server/graphql/types/marketplace-product-variation-price/marketplace-product-variation-price.ts +0 -21
  206. package/server/graphql/types/marketplace-product-variation-price/new-marketplace-product-variation-price.ts +0 -14
  207. package/server/graphql/types/marketplace-refund-order/index.ts +0 -16
  208. package/server/graphql/types/marketplace-refund-order/marketplace-refund-order-list.ts +0 -8
  209. package/server/graphql/types/marketplace-refund-order/marketplace-refund-order.ts +0 -17
  210. package/server/graphql/types/marketplace-report/index.ts +0 -10
  211. package/server/graphql/types/marketplace-report/marketplace-sales-report-list.ts +0 -8
  212. package/server/graphql/types/marketplace-report/marketplace-sales-report.ts +0 -67
  213. package/server/graphql/types/store-replenishment/index.ts +0 -21
  214. package/server/graphql/types/store-replenishment/new-store-replenishment.ts +0 -8
  215. package/server/graphql/types/store-replenishment/store-replenishment-list.ts +0 -8
  216. package/server/graphql/types/store-replenishment/store-replenishment-patch.ts +0 -10
  217. package/server/graphql/types/store-replenishment/store-replenishment.ts +0 -24
  218. package/server/graphql/types/store-replenishment-item/index.ts +0 -21
  219. package/server/graphql/types/store-replenishment-item/new-store-replenishment-item.ts +0 -8
  220. package/server/graphql/types/store-replenishment-item/store-replenishment-item-list.ts +0 -8
  221. package/server/graphql/types/store-replenishment-item/store-replenishment-item-patch.ts +0 -10
  222. package/server/graphql/types/store-replenishment-item/store-replenishment-item.ts +0 -15
  223. package/server/index.ts +0 -6
  224. package/server/middlewares/index.ts +0 -3
  225. package/server/migrations/index.ts +0 -9
  226. package/server/routes.ts +0 -26
  227. package/server/utils/index.ts +0 -1
  228. package/server/utils/no-generator.ts +0 -25
  229. package/tsconfig.json +0 -9
@@ -1,940 +0,0 @@
1
- import { getConnection, IsNull, SelectQueryBuilder } from 'typeorm'
2
- import { v4 as uuidv4 } from 'uuid'
3
-
4
- import { Bizplace, getCustomerBizplaces } from '@things-factory/biz-base'
5
- import { logger } from '@things-factory/env'
6
- import { FulfillmentAPI, FulfillmentCenter } from '@things-factory/integration-fulfillment'
7
- import { MarketplaceStore, MarketplaceTransporter, StoreAPI } from '@things-factory/integration-marketplace'
8
- import { Product, ProductBundle, ProductBundleSetting } from '@things-factory/product-base'
9
- import { Domain } from '@things-factory/shell'
10
-
11
- import { RESERVE_QTY_ORDER_STATUSES } from '../../../constants/reserve-qty-order-statuses'
12
- import {
13
- MarketplaceOrder,
14
- MarketplaceOrderItem,
15
- MarketplaceOrderShipping,
16
- MarketplaceOrderShippingItem,
17
- MarketplaceProductVariation
18
- } from '../../../entities'
19
- import { NoGenerator } from '../../../utils'
20
-
21
- const cancelStatuses: string[] = [
22
- 'cancelled',
23
- 'canceled',
24
- 'failed',
25
- 'shipped_back_success',
26
- 'shipped_back',
27
- 'returned',
28
- 'to_return',
29
- 'refunded'
30
- ]
31
-
32
- export const syncMarketplaceOrder = {
33
- async syncMarketplaceOrder(
34
- _: any,
35
- { storeId, fromCreatedDate, toCreatedDate, scheduler = false },
36
- context: ResolverContext
37
- ) {
38
- const { domain, user } = context.state
39
-
40
- const marketplaceStore: MarketplaceStore = await StoreAPI.getMarketplaceStore(storeId)
41
-
42
- let page: number = 0
43
- let hasMorePage: boolean = true
44
- let lastOrderId: string
45
- var limit: number = 100
46
- const disallowCancelStatuses: string[] = ['CANCELLED', 'PENDING_CANCEL']
47
- let nextCursor: string
48
-
49
- while (hasMorePage) {
50
- const {
51
- results: marketplaceOrders,
52
- more,
53
- cursor
54
- } = await StoreAPI.getStoreOrders(marketplaceStore, {
55
- fromCreatedDate,
56
- toCreatedDate,
57
- pagination: { page, limit },
58
- lastOrderId,
59
- nextCursor
60
- })
61
-
62
- nextCursor = cursor
63
-
64
- if (marketplaceOrders?.length == 0) throw new Error('There is no order available to sync')
65
- for (var i = 0; i < marketplaceOrders.length; i++) {
66
- await getConnection().transaction(async tx => {
67
- try {
68
- var order = marketplaceOrders[i]
69
-
70
- let marketplaceOrderItems = []
71
- let tracking_code = ''
72
- let deliveryProvider: string
73
- let dropPickProvider: string
74
-
75
- if (marketplaceStore.platform == 'lazada') {
76
- if (order.trackingNo != '') {
77
- tracking_code = JSON.parse(order.trackingNo)
78
- .reduce((newItem, item) => {
79
- if (newItem.indexOf(item.tracking_code) < 0) {
80
- newItem.push(item.tracking_code)
81
- }
82
- return newItem
83
- }, [])
84
- .join(',')
85
- }
86
-
87
- const shippingProviderInfo: any = {}
88
- order.shippingProvider.split(', ').forEach(s => {
89
- var [key, value] = s.split(': ')
90
- shippingProviderInfo[key] = value
91
- })
92
-
93
- dropPickProvider = shippingProviderInfo?.Pickup
94
- ? shippingProviderInfo['Pickup']
95
- : shippingProviderInfo['Drop-off']
96
- deliveryProvider = shippingProviderInfo['Delivery']
97
- }
98
-
99
- const marketplaceTransporter: MarketplaceTransporter = await tx
100
- .getRepository(MarketplaceTransporter)
101
- .findOne({
102
- where: { marketplaceStore: { id: marketplaceStore.id } },
103
- relations: ['pickupTransporter']
104
- })
105
-
106
- let marketplaceOrder: MarketplaceOrder = new MarketplaceOrder()
107
- marketplaceOrder.name = order.name
108
- marketplaceOrder.orderNo = order.orderNo
109
- marketplaceOrder.itemCount = order.itemCount
110
- marketplaceOrder.totalAmount = order.totalAmount
111
- marketplaceOrder.status = order.status
112
- marketplaceOrder.remark = order?.remark
113
- marketplaceOrder.trackingNo = tracking_code ? tracking_code : order.trackingNo
114
- marketplaceOrder.shippingProvider =
115
- marketplaceStore.eTrax && marketplaceTransporter
116
- ? marketplaceTransporter.pickupTransporter.name
117
- : order.shippingProvider
118
- marketplaceOrder.orderCreatedAt = order.orderCreatedAt
119
- marketplaceOrder.orderUpdatedAt = order.orderUpdatedAt
120
- marketplaceOrder.marketplaceStore = marketplaceStore
121
- marketplaceOrder.domain = marketplaceStore.domain
122
- marketplaceOrder.buyerUsername = order.buyerUsername
123
- marketplaceOrder.payTime = order.payTime
124
- marketplaceOrder.serviceFee = order.serviceFee
125
- marketplaceOrder.commissionFee = order.commissionFee
126
- marketplaceOrder.transactionFee = order.transactionFee
127
- marketplaceOrder.shippingMode = order.shippingMode
128
- marketplaceOrder.voucherAmount = order.voucherAmount
129
- marketplaceOrder.totalRealeasedAmount = order.totalRealeasedAmount
130
- marketplaceOrder.voucherCode = order.voucherCode
131
- marketplaceOrder.shippingRebate = order.shippingRebate
132
-
133
- const existingMarketplaceOrder: MarketplaceOrder = await tx.getRepository(MarketplaceOrder).findOne({
134
- where: {
135
- domain: { id: marketplaceStore.domain.id },
136
- name: order.name,
137
- marketplaceStore: { id: marketplaceStore.id }
138
- },
139
- relations: [
140
- 'domain',
141
- 'fulfillmentCenter',
142
- 'marketplaceOrderItems',
143
- 'marketplaceOrderItems.marketplaceOrderShippingItems',
144
- 'marketplaceOrderItems.marketplaceOrderShippingItems.marketplaceOrderShipping',
145
- 'marketplaceOrderItems.marketplaceProductVariation',
146
- 'marketplaceStore'
147
- ]
148
- })
149
-
150
- if (existingMarketplaceOrder) {
151
- let otherInfoJSON: any = {}
152
-
153
- if (existingMarketplaceOrder?.otherInfoJSON && deliveryProvider) {
154
- otherInfoJSON = JSON.parse(existingMarketplaceOrder.otherInfoJSON)
155
- otherInfoJSON.shippingProvider = deliveryProvider
156
- }
157
-
158
- marketplaceOrder = {
159
- ...existingMarketplaceOrder,
160
- ...marketplaceOrder,
161
- otherInfoJSON: otherInfoJSON ? JSON.stringify(otherInfoJSON) : null,
162
- updater: user
163
- }
164
-
165
- if (
166
- !marketplaceOrder?.releaseOrderId &&
167
- RESERVE_QTY_ORDER_STATUSES[marketplaceOrder.marketplaceStore.platform.toUpperCase()].includes(
168
- existingMarketplaceOrder.status
169
- ) &&
170
- cancelStatuses.includes(marketplaceOrder.status)
171
- ) {
172
- for (let item of marketplaceOrder.marketplaceOrderItems) {
173
- await updateQtyAndReserveQty(
174
- tx,
175
- item.marketplaceProductVariation,
176
- marketplaceOrder,
177
- item.qty * -1,
178
- null,
179
- existingMarketplaceOrder
180
- )
181
- }
182
- }
183
-
184
- if (marketplaceOrder?.releaseOrderId) {
185
- const fulfillmentCenter: FulfillmentCenter = marketplaceOrder.fulfillmentCenter
186
- const centerId: string = fulfillmentCenter.centerId
187
- const warehouseDomain: Domain = await tx
188
- .getRepository(Domain)
189
- .findOne({ where: { subdomain: centerId } })
190
- const customerBizplaces: Bizplace[] = await getCustomerBizplaces(warehouseDomain)
191
- const customerBizplaceId: string = customerBizplaces.find(
192
- customerBizplace => customerBizplace.company.domain.id == domain.id
193
- ).id
194
-
195
- let { items: releaseOrders }: any = await FulfillmentAPI.getOutboundOrders(fulfillmentCenter, {
196
- customerBizplaceId,
197
- refNo: marketplaceOrder.orderNo
198
- })
199
-
200
- if (existingMarketplaceOrder.isSplitted) {
201
- for (let a = 0; a < releaseOrders.length; a++) {
202
- const releaseOrder: any = releaseOrders[a]
203
- const foundMarketplaceOrderShipping: MarketplaceOrderShipping = await tx
204
- .getRepository(MarketplaceOrderShipping)
205
- .findOne({
206
- where: { domain: { id: marketplaceStore.domain.id }, subOrderNoRef: releaseOrder.refNo2 }
207
- })
208
- let patch = {
209
- id: releaseOrder.id,
210
- marketplaceOrderStatus: marketplaceOrder.status,
211
- trackingNo: _extractTrackingNo(
212
- foundMarketplaceOrderShipping.ownTrackingNo,
213
- foundMarketplaceOrderShipping.trackingNo
214
- ),
215
- transporter: dropPickProvider ? dropPickProvider : marketplaceOrder.shippingProvider
216
- }
217
-
218
- await FulfillmentAPI.updateReleaseGoodDetails(fulfillmentCenter, {
219
- customerBizplaceId,
220
- releaseOrder: { ...patch },
221
- shippingOrder: null
222
- })
223
- }
224
- } else {
225
- let releaseOrder = Object.assign({}, releaseOrders[0])
226
- const foundMarketplaceOrderShipping: MarketplaceOrderShipping = await tx
227
- .getRepository(MarketplaceOrderShipping)
228
- .findOne({
229
- where: { domain: { id: marketplaceStore.domain.id }, orderNoRef: releaseOrder.refNo }
230
- })
231
- let patch = {
232
- id: releaseOrder.id,
233
- marketplaceOrderStatus: marketplaceOrder.status,
234
- trackingNo: _extractTrackingNo(
235
- foundMarketplaceOrderShipping.ownTrackingNo,
236
- foundMarketplaceOrderShipping.trackingNo
237
- ),
238
- transporter: dropPickProvider ? dropPickProvider : marketplaceOrder.shippingProvider
239
- }
240
-
241
- await FulfillmentAPI.updateReleaseGoodDetails(fulfillmentCenter, {
242
- customerBizplaceId,
243
- releaseOrder: { ...patch },
244
- shippingOrder: null
245
- })
246
- }
247
-
248
- if (cancelStatuses.includes(marketplaceOrder.status)) {
249
- if (existingMarketplaceOrder.isSplitted) {
250
- releaseOrders = releaseOrders.filter(function (order) {
251
- return !disallowCancelStatuses.includes(order.status)
252
- })
253
-
254
- if (releaseOrders?.length) {
255
- for (let a = 0; a < releaseOrders.length; a++) {
256
- const releaseOrderId: string = releaseOrders[a].id
257
- await FulfillmentAPI.cancelReleaseOrder(fulfillmentCenter, {
258
- customerBizplaceId,
259
- releaseOrderId
260
- })
261
- }
262
- }
263
- } else {
264
- const fulfillmentCenter: FulfillmentCenter = marketplaceOrder.fulfillmentCenter
265
- const centerId: string = fulfillmentCenter.centerId
266
-
267
- const warehouseDomain: Domain = await tx
268
- .getRepository(Domain)
269
- .findOne({ where: { subdomain: centerId } })
270
- const customerBizplaces: Bizplace[] = await getCustomerBizplaces(warehouseDomain)
271
- const customerBizplaceId: string = customerBizplaces[0].id
272
-
273
- const { items: releaseOrders }: any = await FulfillmentAPI.getOutboundOrders(fulfillmentCenter, {
274
- customerBizplaceId,
275
- refNo: marketplaceOrder.orderNo
276
- })
277
-
278
- const releaseOrderStatus = releaseOrders[0].status
279
-
280
- if (!disallowCancelStatuses.includes(releaseOrderStatus)) {
281
- await FulfillmentAPI.cancelReleaseOrder(fulfillmentCenter, {
282
- customerBizplaceId,
283
- releaseOrderId: releaseOrders[0].id
284
- })
285
- }
286
- }
287
- }
288
- }
289
- }
290
-
291
- let savedMarketplaceOrderShipping: MarketplaceOrderShipping = new MarketplaceOrderShipping()
292
- let savedMarketplaceOrderShippings: MarketplaceOrderShipping[] = []
293
-
294
- if (order?.orderShipping) {
295
- const orderShipping: any = order.orderShipping
296
-
297
- let marketplaceOrderShipping: MarketplaceOrderShipping = new MarketplaceOrderShipping()
298
- marketplaceOrderShipping.name = NoGenerator.orderShipping()
299
- marketplaceOrderShipping.address1 = orderShipping.address1
300
- marketplaceOrderShipping.address2 = orderShipping.address2
301
- marketplaceOrderShipping.address3 = orderShipping.address3
302
- marketplaceOrderShipping.address4 = orderShipping.address4
303
- marketplaceOrderShipping.address5 = orderShipping.address5
304
- marketplaceOrderShipping.attentionTo = orderShipping.attentionTo
305
- marketplaceOrderShipping.city = orderShipping.city
306
- marketplaceOrderShipping.country = orderShipping.country
307
- marketplaceOrderShipping.state = orderShipping?.state || null
308
- marketplaceOrderShipping.postCode = orderShipping.postCode
309
- marketplaceOrderShipping.phone1 = orderShipping.phone1
310
- marketplaceOrderShipping.phone2 = orderShipping.phone2
311
- marketplaceOrderShipping.trackingNo = order?.trackingNo || null
312
- marketplaceOrderShipping.orderNoRef = marketplaceOrder.orderNo
313
- marketplaceOrderShipping.subOrderNoRef = marketplaceOrder.orderNo
314
- marketplaceOrderShipping.marketplaceStore = marketplaceStore
315
- marketplaceOrderShipping.creator = user
316
- marketplaceOrderShipping.domain = marketplaceStore.domain
317
- marketplaceOrderShipping.shippingFee = orderShipping.shippingFee
318
- marketplaceOrderShipping.actualShippingFee = orderShipping.actualShippingFee
319
- marketplaceOrderShipping.marketplaceShippingFeeVoucher = orderShipping.marketplaceShippingFeeVoucher
320
- marketplaceOrderShipping.sellerShippingFeeVoucher = orderShipping.sellerShippingFeeVoucher
321
-
322
- if (existingMarketplaceOrder) {
323
- if (existingMarketplaceOrder.isSplitted) {
324
- let existingOrderShippings: MarketplaceOrderShipping[] = await tx
325
- .getRepository(MarketplaceOrderShipping)
326
- .find({
327
- where: {
328
- domain: { id: domain.id },
329
- marketplaceStore: { id: marketplaceStore.id },
330
- orderNoRef: marketplaceOrder.orderNo
331
- }
332
- })
333
-
334
- existingOrderShippings = existingOrderShippings.map(item => {
335
- return {
336
- ...item,
337
- address1: orderShipping.address1,
338
- address2: orderShipping.address2,
339
- address3: orderShipping.address3,
340
- address4: orderShipping.address4,
341
- address5: orderShipping.address5,
342
- attentionTo: orderShipping.attentionTo,
343
- city: orderShipping.city,
344
- country: orderShipping.country,
345
- state: orderShipping?.state,
346
- postCode: orderShipping.postCode,
347
- phone1: orderShipping.phone1,
348
- phone2: orderShipping.phone2,
349
- email: orderShipping?.email,
350
- trackingNo: marketplaceStore.eTrax ? item.trackingNo : order?.trackingNo,
351
- shippingFee: orderShipping.shippingFee,
352
- actualShippingFee: orderShipping.actualShippingFee,
353
- marketplaceShippingFeeVoucher: orderShipping.marketplaceShippingFeeVoucher,
354
- sellerShippingFeeVoucher: orderShipping.sellerShippingFeeVoucher
355
- }
356
- })
357
-
358
- savedMarketplaceOrderShippings = await tx
359
- .getRepository(MarketplaceOrderShipping)
360
- .save(existingOrderShippings)
361
- } else {
362
- if (existingMarketplaceOrder?.marketplaceOrderItems) {
363
- let existingOrderShipping: MarketplaceOrderShipping
364
- existingOrderShipping =
365
- existingMarketplaceOrder.marketplaceOrderItems[0].marketplaceOrderShippingItems[0]
366
- .marketplaceOrderShipping
367
-
368
- marketplaceOrderShipping = {
369
- ...existingOrderShipping,
370
- ...marketplaceOrderShipping,
371
- trackingNo: marketplaceStore.eTrax
372
- ? existingOrderShipping.trackingNo
373
- : marketplaceOrderShipping?.trackingNo
374
- ? marketplaceOrderShipping.trackingNo
375
- : existingOrderShipping?.trackingNo
376
- ? existingOrderShipping.trackingNo
377
- : marketplaceOrderShipping.trackingNo,
378
- updater: user
379
- }
380
-
381
- savedMarketplaceOrderShipping = await tx
382
- .getRepository(MarketplaceOrderShipping)
383
- .save(marketplaceOrderShipping)
384
- }
385
- }
386
- } else {
387
- if (marketplaceStore.eTrax) delete marketplaceOrderShipping.trackingNo
388
-
389
- savedMarketplaceOrderShipping = await tx
390
- .getRepository(MarketplaceOrderShipping)
391
- .save(marketplaceOrderShipping)
392
- }
393
- }
394
-
395
- let orderTotalWeight: number = 0
396
- let foundVariations = []
397
- for (var j = 0; j < order.orderItems.length; j++) {
398
- var item = order.orderItems[j]
399
-
400
- const qb: SelectQueryBuilder<MarketplaceProductVariation> = await tx
401
- .getRepository(MarketplaceProductVariation)
402
- .createQueryBuilder('mpv')
403
- .leftJoin('mpv.marketplaceProduct', 'mp')
404
- .leftJoin('mp.marketplaceStore', 'ms')
405
- .where('mpv.domain_id = :domainId')
406
- .andWhere('mpv.variation_id = :variationId')
407
- .andWhere('ms.id = :marketplaceStoreId')
408
- .setParameters({
409
- domainId: marketplaceStore.domain.id,
410
- variationId: item.variationId,
411
- marketplaceStoreId: marketplaceStore.id
412
- })
413
-
414
- let foundVariation: MarketplaceProductVariation = await qb.getOne()
415
-
416
- if (foundVariation) {
417
- foundVariations.push(foundVariation)
418
- } else {
419
- let newVariation: any = {
420
- variationId: item.variationId,
421
- name: item.variationName,
422
- variationSku: item.variationSku,
423
- channelSku: item.sku,
424
- status: 'INACTIVE',
425
- domain: marketplaceStore.domain
426
- }
427
-
428
- await tx.getRepository(MarketplaceProductVariation).save(newVariation)
429
- foundVariation = newVariation
430
- }
431
-
432
- let marketplaceOrderItem: MarketplaceOrderItem = new MarketplaceOrderItem()
433
- marketplaceOrderItem.domain = marketplaceStore.domain
434
- marketplaceOrderItem.name = item.name
435
- marketplaceOrderItem.qty = item.qty
436
- marketplaceOrderItem.paidPrice = item.paidPrice
437
- marketplaceOrderItem.status = marketplaceOrder.status
438
- marketplaceOrderItem.docRefNo = item.docRefNo
439
- marketplaceOrderItem.marketplaceProductVariation = foundVariation
440
- marketplaceOrderItem.trackingCode = order.trackingNo
441
- marketplaceOrderItem.marketplaceOrder = marketplaceOrder
442
- marketplaceOrderItem.originalPrice = item.originalPrice
443
- marketplaceOrderItem.discount = item.discount
444
- marketplaceOrderItem.promotionId = item.promotionId
445
- marketplaceOrderItem.creator = user
446
- marketplaceOrderItem.paymentFee = item.paymentFee || null
447
- marketplaceOrderItem.commissionFee = item.commissionFee || null
448
- marketplaceOrderItem.shippingFeePaidByCustomer = item.shippingFeePaidByCustomer || null
449
- marketplaceOrderItem.itemPriceCredit = item.itemPriceCredit || null
450
- marketplaceOrderItem.promotionalCharges = item.promotionalCharges || null
451
- marketplaceOrderItem.ordersMarketplaceFeesTotal = item.ordersMarketplaceFeesTotal || null
452
- marketplaceOrderItem.ordersSalesTotal = item.ordersSalesTotal || null
453
- marketplaceOrderItem.ordersMarketingFeesTotal = item.ordersMarketingFeesTotal || null
454
- marketplaceOrderItem.ordersLogisticsTotal = item.ordersLogisticsTotal || null
455
- marketplaceOrderItem.marketplaceBonus = item.marketplaceBonus
456
- marketplaceOrderItem.marketplaceBonusSeller = item.marketplaceBonusSeller
457
- marketplaceOrderItem.shippingFeeDiscountMarketplace = item.shippingFeeDiscountMarketplace
458
- marketplaceOrderItem.shippingFeeDiscountSeller = item.shippingFeeDiscountSeller
459
- marketplaceOrderItem.promotionalChargesFlexiCombo = item.promotionalChargesFlexiCombo
460
- marketplaceOrderItem.autoShippingSubsidyMarketplace = item.autoShippingSubsidyMarketplace
461
- marketplaceOrderItem.originalShippingFee = item.originalShippingFee
462
- marketplaceOrderItem.taxAmount = item.taxAmount
463
-
464
- marketplaceOrderItems.push({ ...marketplaceOrderItem })
465
-
466
- if (foundVariation?.primaryUnitValue)
467
- orderTotalWeight += parseFloat(foundVariation.primaryUnitValue.toFixed(3)) * item.qty || 0
468
- }
469
-
470
- if (existingMarketplaceOrder) {
471
- let existingOrderItems: MarketplaceOrderItem[] = []
472
- existingOrderItems = existingMarketplaceOrder.marketplaceOrderItems
473
-
474
- existingOrderItems = await checkUpdateItemId(existingOrderItems, marketplaceOrderItems)
475
-
476
- if (existingMarketplaceOrder.isSplitted) {
477
- marketplaceOrderItems = existingOrderItems.filter(
478
- itm => itm.name == item.name && itm.marketplaceProductVariation.variationId == item.variationId
479
- )
480
-
481
- marketplaceOrderItems = marketplaceOrderItems.map(marketplaceOrderitem => {
482
- return {
483
- ...marketplaceOrderitem,
484
- status: order.status,
485
- trackingCode: order.trackingNo
486
- }
487
- })
488
- } else {
489
- if (existingOrderItems.length > marketplaceOrderItems.length) {
490
- let nonMatchedOrderItems = []
491
- existingOrderItems.map(item => {
492
- const matchedOrderItem = marketplaceOrderItems.find(
493
- itm =>
494
- itm.name === item.name &&
495
- itm.marketplaceProductVariation.variationId == item.marketplaceProductVariation.variationId
496
- )
497
- if (!matchedOrderItem) {
498
- nonMatchedOrderItems.push({ ...item })
499
- }
500
- })
501
- if (nonMatchedOrderItems.length > 0 && !cancelStatuses.includes(marketplaceOrder.status)) {
502
- await Promise.all(
503
- nonMatchedOrderItems.map(async item => {
504
- let foundVariation = foundVariations.find(fv => fv.sku == item.marketplaceProductVariation.sku)
505
- if (foundVariation.sku) {
506
- await updateQtyAndReserveQty(tx, foundVariation, marketplaceOrder, item.qty * -1)
507
- }
508
- })
509
- )
510
-
511
- await tx.getRepository(MarketplaceOrderItem).delete(nonMatchedOrderItems)
512
- }
513
-
514
- if (!cancelStatuses.includes(marketplaceOrder.status)) {
515
- existingOrderItems = await Promise.all(
516
- marketplaceOrderItems.map(async item => {
517
- const matchedOrderItem = existingOrderItems.find(
518
- itm =>
519
- itm.name == item.name &&
520
- itm.marketplaceProductVariation.variationId == item.marketplaceProductVariation.variationId
521
- )
522
- if (matchedOrderItem) {
523
- foundVariation = foundVariations.find(
524
- fv => fv.variationId == matchedOrderItem.marketplaceProductVariation.variationId
525
- )
526
- if (foundVariation.sku) {
527
- await updateQtyAndReserveQty(
528
- tx,
529
- foundVariation,
530
- marketplaceOrder,
531
- item.qty,
532
- matchedOrderItem.qty,
533
- existingMarketplaceOrder
534
- )
535
- }
536
- return {
537
- ...matchedOrderItem,
538
- ...item,
539
- updater: user
540
- }
541
- }
542
- })
543
- )
544
- }
545
- } else {
546
- if (!cancelStatuses.includes(marketplaceOrder.status)) {
547
- existingOrderItems = await Promise.all(
548
- marketplaceOrderItems.map(async item => {
549
- const matchedOrderItem = existingOrderItems.find(
550
- itm =>
551
- itm.name == item.name &&
552
- itm.marketplaceProductVariation.variationId == item.marketplaceProductVariation.variationId
553
- )
554
- if (matchedOrderItem) {
555
- foundVariation = foundVariations.find(
556
- fv => fv.variationId == matchedOrderItem.marketplaceProductVariation.variationId
557
- )
558
- if (foundVariation.sku) {
559
- await updateQtyAndReserveQty(
560
- tx,
561
- foundVariation,
562
- marketplaceOrder,
563
- item.qty,
564
- matchedOrderItem.qty,
565
- existingMarketplaceOrder
566
- )
567
- }
568
- return {
569
- ...matchedOrderItem,
570
- ...item,
571
- updater: user
572
- }
573
- } else {
574
- let foundVariation = foundVariations.find(
575
- fv => (fv.sku = item.marketplaceProductVariation.sku)
576
- )
577
- if (foundVariation.sku) {
578
- await updateQtyAndReserveQty(tx, foundVariation, marketplaceOrder, item.qty)
579
- }
580
- return {
581
- ...item,
582
- updater: user
583
- }
584
- }
585
- })
586
- )
587
- }
588
- }
589
-
590
- marketplaceOrderItems = existingOrderItems
591
-
592
- if (order?.orderShipping) {
593
- savedMarketplaceOrderShipping.totalWeight = orderTotalWeight
594
-
595
- if (marketplaceStore.eTrax) delete savedMarketplaceOrderShipping.trackingNo
596
-
597
- savedMarketplaceOrderShipping = await tx
598
- .getRepository(MarketplaceOrderShipping)
599
- .save(savedMarketplaceOrderShipping)
600
- }
601
- }
602
- } else {
603
- if (!cancelStatuses.includes(marketplaceOrder.status)) {
604
- for (var foundVariation of foundVariations) {
605
- if (foundVariation.sku) {
606
- let item = order.orderItems.find(e => e.variationId == foundVariation.variationId)
607
- await updateQtyAndReserveQty(tx, foundVariation, marketplaceOrder, item.qty)
608
- }
609
-
610
- if (order?.orderShipping) {
611
- savedMarketplaceOrderShipping.totalWeight = orderTotalWeight
612
- if (marketplaceStore.eTrax) delete savedMarketplaceOrderShipping.trackingNo
613
-
614
- savedMarketplaceOrderShipping = await tx
615
- .getRepository(MarketplaceOrderShipping)
616
- .save(savedMarketplaceOrderShipping)
617
- }
618
- }
619
- }
620
- }
621
-
622
- await tx.getRepository(MarketplaceOrder).save(marketplaceOrder)
623
- await tx.getRepository(MarketplaceOrderItem).save(marketplaceOrderItems)
624
-
625
- for (let i = 0; i < marketplaceOrderItems.length; i++) {
626
- const marketplaceOrderItem: MarketplaceOrderItem = marketplaceOrderItems[i]
627
- const marketplaceProductVariation: MarketplaceProductVariation =
628
- marketplaceOrderItem.marketplaceProductVariation
629
- let existingMarketplaceOrderShippingItems: MarketplaceOrderShippingItem[] = await tx
630
- .getRepository(MarketplaceOrderShippingItem)
631
- .find({
632
- where: {
633
- domain: { id: marketplaceStore.domain.id },
634
- marketplaceOrderItem: { id: marketplaceOrderItem.id }
635
- },
636
- relations: ['product']
637
- })
638
-
639
- let product: Product = await tx.getRepository(Product).findOne({
640
- where: {
641
- domain: { id: marketplaceStore.domain.id },
642
- sku: marketplaceProductVariation.sku,
643
- deletedAt: IsNull()
644
- },
645
- relations: ['productDetails']
646
- })
647
-
648
- let productBundle: ProductBundle
649
- if (!product) {
650
- productBundle = await tx.getRepository(ProductBundle).findOne({
651
- where: { domain: { id: marketplaceStore.domain.id }, sku: marketplaceProductVariation.sku },
652
- relations: ['productBundleSettings', 'productBundleSettings.product']
653
- })
654
- }
655
-
656
- if (!marketplaceOrder.isSplitted && !marketplaceOrder.releaseOrderId) {
657
- if (
658
- existingMarketplaceOrderShippingItems?.length &&
659
- existingMarketplaceOrderShippingItems
660
- .map(e => {
661
- return e.product
662
- })
663
- .indexOf(null) != -1
664
- ) {
665
- await tx.getRepository(MarketplaceOrderShippingItem).remove(existingMarketplaceOrderShippingItems)
666
- }
667
- if (
668
- (existingMarketplaceOrderShippingItems?.length &&
669
- existingMarketplaceOrderShippingItems
670
- .map(e => {
671
- return e.product
672
- })
673
- .indexOf(null) != -1) ||
674
- !existingMarketplaceOrderShippingItems?.length
675
- ) {
676
- if (productBundle) {
677
- const productBundleSettings: ProductBundleSetting[] = productBundle.productBundleSettings
678
- let marketplaceOrderShippingItems: MarketplaceOrderShippingItem[] = []
679
- productBundleSettings.map(productBundleSetting => {
680
- let marketplaceOrderShippingItem: MarketplaceOrderShippingItem =
681
- new MarketplaceOrderShippingItem()
682
- marketplaceOrderShippingItem.name = uuidv4()
683
- marketplaceOrderShippingItem.qty = marketplaceOrderItem.qty * productBundleSetting.bundleQty
684
- marketplaceOrderShippingItem.domain = marketplaceStore.domain
685
- marketplaceOrderShippingItem.marketplaceOrderItem = marketplaceOrderItem
686
- marketplaceOrderShippingItem.marketplaceOrderShipping = savedMarketplaceOrderShipping
687
- marketplaceOrderShippingItem.product = productBundleSetting.product
688
-
689
- marketplaceOrderShippingItems.push(marketplaceOrderShippingItem)
690
- })
691
-
692
- await tx.getRepository(MarketplaceOrderShippingItem).save(marketplaceOrderShippingItems)
693
- } else {
694
- let marketplaceOrderShippingItem: MarketplaceOrderShippingItem = new MarketplaceOrderShippingItem()
695
- marketplaceOrderShippingItem.name = uuidv4()
696
- marketplaceOrderShippingItem.qty = marketplaceOrderItem.qty
697
- marketplaceOrderShippingItem.domain = marketplaceStore.domain
698
- marketplaceOrderShippingItem.marketplaceOrderItem = marketplaceOrderItem
699
- marketplaceOrderShippingItem.marketplaceOrderShipping = savedMarketplaceOrderShipping
700
- marketplaceOrderShippingItem.product = product ? product : null
701
-
702
- await tx.getRepository(MarketplaceOrderShippingItem).save(marketplaceOrderShippingItem)
703
- }
704
- }
705
- }
706
- }
707
-
708
- if (i == marketplaceOrders.length - 1) {
709
- lastOrderId = order.name
710
- }
711
- } catch (e) {
712
- if (scheduler) {
713
- logger.error(`Order no: ${marketplaceOrders[i].name}: ${e}`, e)
714
- } else {
715
- throw new Error(e)
716
- }
717
- }
718
- })
719
- }
720
-
721
- if (more) page++
722
- hasMorePage = more
723
- }
724
-
725
- try {
726
- if (marketplaceStore.platform === 'shopee') {
727
- let pageNo: number = 1
728
- let hasMore = true
729
- let perPage: number = 100
730
- var payoutDateList = []
731
-
732
- while (hasMore) {
733
- const { result: payoutDates, more } = await StoreAPI.getStoreOrderPayoutDates(marketplaceStore, {
734
- fromCreatedDate,
735
- toCreatedDate,
736
- pagination: { page: pageNo, limit: perPage }
737
- })
738
-
739
- payoutDateList.push(...payoutDates)
740
- if (more) pageNo++
741
- hasMore = more
742
- }
743
-
744
- await getConnection().transaction(async tx => {
745
- await Promise.all(
746
- payoutDateList.map(async item => {
747
- await tx.getRepository(MarketplaceOrder).update(
748
- {
749
- orderNo: item.orderNo
750
- },
751
- {
752
- payoutDate: item.payoutDate
753
- }
754
- )
755
- })
756
- )
757
- })
758
- }
759
- } catch (e) {}
760
- return true
761
- }
762
- }
763
-
764
- async function updateQtyAndReserveQtyBundle(
765
- tx,
766
- variation,
767
- domain,
768
- qty,
769
- marketplaceOrder,
770
- existingMarketplaceOrder = null,
771
- matchedOrderItemQty = null
772
- ) {
773
- let statusAllowed = RESERVE_QTY_ORDER_STATUSES[marketplaceOrder.marketplaceStore.platform.toUpperCase()].includes(
774
- marketplaceOrder.status
775
- )
776
- let existingStatusNotAllowed = existingMarketplaceOrder
777
- ? !RESERVE_QTY_ORDER_STATUSES[existingMarketplaceOrder.marketplaceStore.platform.toUpperCase()].includes(
778
- existingMarketplaceOrder.status
779
- )
780
- : false
781
- const productBundle: ProductBundle = await tx.getRepository(ProductBundle).findOne({
782
- where: { sku: variation.sku, domain: { id: domain.id } },
783
- relations: ['productBundleSettings', 'productBundleSettings.product']
784
- })
785
-
786
- if (productBundle) {
787
- for (let setting of productBundle.productBundleSettings) {
788
- const mpvs: MarketplaceProductVariation[] = await tx.getRepository(MarketplaceProductVariation).find({
789
- where: { domain: { id: domain.id }, sku: setting.product.sku },
790
- relations: ['domain']
791
- })
792
-
793
- for (let mpv of mpvs) {
794
- let updatedReserveQty = 0
795
- let updatedQty = 0
796
-
797
- if (existingMarketplaceOrder) {
798
- if (
799
- ((statusAllowed && existingStatusNotAllowed) ||
800
- (cancelStatuses.includes(marketplaceOrder.status) && !existingStatusNotAllowed)) &&
801
- marketplaceOrder.marketplaceStore.reserveEnabled
802
- ) {
803
- updatedReserveQty += setting.bundleQty * qty
804
- }
805
-
806
- updatedQty += setting.bundleQty * qty - matchedOrderItemQty * setting.bundleQty
807
- } else {
808
- if (statusAllowed && qty > 0 && marketplaceOrder.marketplaceStore.reserveEnabled) {
809
- updatedReserveQty += setting.bundleQty * qty
810
- }
811
-
812
- if (mpv.qty - setting.bundleQty * qty >= 0) {
813
- updatedQty += setting.bundleQty * qty
814
- }
815
- }
816
- await tx
817
- .createQueryBuilder()
818
- .update(MarketplaceProductVariation)
819
- .set({
820
- qty: () => `COALESCE("qty", 0) - ${updatedQty}`,
821
- reserveQty: () => `COALESCE("reserve_qty", 0) + ${updatedReserveQty}`
822
- })
823
- .where('id = :id', { id: mpv.id })
824
- .execute()
825
- }
826
- }
827
- }
828
- }
829
-
830
- function checkUpdateItemId(existingOrderItems, marketplaceOrderItems) {
831
- for (let item of marketplaceOrderItems) {
832
- let existingItem = existingOrderItems.find(i => i.name == item.name)
833
-
834
- if (!existingItem) {
835
- let existingItemByVariation = existingOrderItems.find(
836
- i => i.marketplaceProductVariation.id == item.marketplaceProductVariation.id
837
- )
838
- if (existingItemByVariation) {
839
- existingOrderItems = existingOrderItems.filter(i => i != existingItemByVariation)
840
- existingItemByVariation.name = item.name
841
- existingOrderItems.push(existingItemByVariation)
842
- }
843
- }
844
- }
845
- return existingOrderItems
846
- }
847
-
848
- async function updateQtyAndReserveQty(
849
- tx,
850
- foundVariation,
851
- marketplaceOrder,
852
- qty,
853
- matchedOrderItemQty = null,
854
- existingMarketplaceOrder = null
855
- ) {
856
- let roCreated = existingMarketplaceOrder ? existingMarketplaceOrder?.realaseOrderId : false
857
- let existingStatusNotAllowed = existingMarketplaceOrder
858
- ? !RESERVE_QTY_ORDER_STATUSES[existingMarketplaceOrder.marketplaceStore.platform.toUpperCase()].includes(
859
- existingMarketplaceOrder.status
860
- )
861
- : false
862
- let activeVariations: MarketplaceProductVariation[] = await tx
863
- .getRepository(MarketplaceProductVariation)
864
- .createQueryBuilder('mpv')
865
- .innerJoin('mpv.marketplaceProduct', 'marketplaceProduct')
866
- .innerJoin('marketplaceProduct.marketplaceStore', 'marketplaceStore')
867
- .where('mpv.domain_id = :domainId', { domainId: marketplaceOrder.domain.id })
868
- .andWhere('mpv.sku = :sku', { sku: foundVariation.sku })
869
- .andWhere(`marketplaceStore.status != 'TERMINATED'`)
870
- .getMany()
871
-
872
- let statusAllowed = RESERVE_QTY_ORDER_STATUSES[marketplaceOrder.marketplaceStore.platform.toUpperCase()].includes(
873
- marketplaceOrder.status
874
- )
875
-
876
- if (existingMarketplaceOrder && !roCreated) {
877
- await updateQtyAndReserveQtyBundle(
878
- tx,
879
- foundVariation,
880
- marketplaceOrder.domain,
881
- qty,
882
- marketplaceOrder,
883
- existingMarketplaceOrder,
884
- matchedOrderItemQty
885
- )
886
- } else {
887
- await updateQtyAndReserveQtyBundle(tx, foundVariation, marketplaceOrder.domain, qty, marketplaceOrder)
888
- }
889
- await Promise.all(
890
- activeVariations.map(async variation => {
891
- let updatedReserveQty = 0
892
- let updatedQty = 0
893
- if (matchedOrderItemQty) {
894
- if (marketplaceOrder.marketplaceStore.reserveEnabled) {
895
- updatedReserveQty = roCreated
896
- ? 0
897
- : statusAllowed && existingStatusNotAllowed
898
- ? qty
899
- : qty - matchedOrderItemQty
900
- }
901
- updatedQty = roCreated ? 0 : qty - matchedOrderItemQty
902
- } else {
903
- if (((statusAllowed && qty > 0) || qty < 0) && marketplaceOrder.marketplaceStore.reserveEnabled) {
904
- updatedReserveQty = qty
905
- }
906
- if (variation.qty - qty >= 0) {
907
- updatedQty = qty
908
- }
909
- }
910
- await tx
911
- .createQueryBuilder()
912
- .update(MarketplaceProductVariation)
913
- .set({
914
- qty: () => `COALESCE("qty", 0) - ${updatedQty}`,
915
- reserveQty: () => `COALESCE("reserve_qty", 0) + ${updatedReserveQty}`
916
- })
917
- .where('id = :id', { id: variation.id })
918
- .execute()
919
- })
920
- )
921
- }
922
-
923
- function _extractTrackingNo(ownTrackingNo, trackingNo): string {
924
- let finalTrackingNo: string = trackingNo == '[]' || !trackingNo ? ownTrackingNo : trackingNo
925
-
926
- // For lazada order, tracking code is passed as JSON
927
- // which will produce error in manifest stage later on
928
- // solution: extract the tracking code as follows:
929
- if (finalTrackingNo?.includes('tracking_code')) {
930
- let extratedTrackingNo: any[] = JSON.parse(finalTrackingNo)
931
- finalTrackingNo = extratedTrackingNo
932
- .reduce((trackingNos, item) => {
933
- if (!trackingNos.find(num => num === item.tracking_code)) trackingNos.push(item.tracking_code)
934
- return trackingNos
935
- }, [])
936
- .join(', ')
937
- }
938
-
939
- return finalTrackingNo
940
- }