@things-factory/marketplace-base 3.7.11 → 3.8.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. package/dist-server/entities/marketplace-order-item.js +64 -0
  2. package/dist-server/entities/marketplace-order-item.js.map +1 -1
  3. package/dist-server/graphql/resolvers/marketplace-order/marketplace-orders.js +17 -0
  4. package/dist-server/graphql/resolvers/marketplace-order/marketplace-orders.js.map +1 -1
  5. package/dist-server/graphql/resolvers/marketplace-order/sync-all-marketplace-order.js +262 -226
  6. package/dist-server/graphql/resolvers/marketplace-order/sync-all-marketplace-order.js.map +1 -1
  7. package/dist-server/graphql/resolvers/marketplace-order/sync-marketplace-order.js +72 -39
  8. package/dist-server/graphql/resolvers/marketplace-order/sync-marketplace-order.js.map +1 -1
  9. package/dist-server/graphql/resolvers/marketplace-order-shipping/marketplace-order-shippings.js +28 -10
  10. package/dist-server/graphql/resolvers/marketplace-order-shipping/marketplace-order-shippings.js.map +1 -1
  11. package/dist-server/graphql/resolvers/marketplace-order-shipping/update-marketplace-order-shipping.js +7 -0
  12. package/dist-server/graphql/resolvers/marketplace-order-shipping/update-marketplace-order-shipping.js.map +1 -1
  13. package/dist-server/graphql/resolvers/marketplace-report/marketplace-sales-report.js +19 -1
  14. package/dist-server/graphql/resolvers/marketplace-report/marketplace-sales-report.js.map +1 -1
  15. package/dist-server/graphql/types/marketplace-report/marketplace-sales-report.js +19 -0
  16. package/dist-server/graphql/types/marketplace-report/marketplace-sales-report.js.map +1 -1
  17. package/package.json +5 -5
  18. package/server/entities/marketplace-order-item.ts +48 -0
  19. package/server/graphql/resolvers/marketplace-order/marketplace-orders.ts +23 -0
  20. package/server/graphql/resolvers/marketplace-order/sync-all-marketplace-order.ts +337 -307
  21. package/server/graphql/resolvers/marketplace-order/sync-marketplace-order.ts +76 -42
  22. package/server/graphql/resolvers/marketplace-order-shipping/marketplace-order-shippings.ts +35 -14
  23. package/server/graphql/resolvers/marketplace-order-shipping/update-marketplace-order-shipping.ts +8 -0
  24. package/server/graphql/resolvers/marketplace-report/marketplace-sales-report.ts +19 -1
  25. package/server/graphql/types/marketplace-report/marketplace-sales-report.ts +19 -0
@@ -43,6 +43,7 @@ export const syncMarketplaceOrder = {
43
43
  let marketplaceOrderItems = []
44
44
  let tracking_code = ''
45
45
  let deliveryProvider: string
46
+ let dropPickProvider: string
46
47
 
47
48
  if (marketplaceStore.platform == 'lazada') {
48
49
  if (order.trackingNo != '') {
@@ -62,7 +63,10 @@ export const syncMarketplaceOrder = {
62
63
  shippingProviderInfo[key] = value
63
64
  })
64
65
 
65
- deliveryProvider = shippingProviderInfo.Delivery
66
+ dropPickProvider = shippingProviderInfo?.Pickup
67
+ ? shippingProviderInfo['Pickup']
68
+ : shippingProviderInfo['Drop-off']
69
+ deliveryProvider = shippingProviderInfo['Delivery']
66
70
  }
67
71
 
68
72
  let marketplaceOrder: MarketplaceOrder = new MarketplaceOrder()
@@ -115,49 +119,67 @@ export const syncMarketplaceOrder = {
115
119
  updater: user
116
120
  }
117
121
 
118
- if (cancelStatuses.includes(marketplaceOrder.status) && marketplaceOrder?.releaseOrderId) {
119
- if (existingMarketplaceOrder.isSplitted) {
120
- const fulfillmentCenter: FulfillmentCenter = marketplaceOrder.fulfillmentCenter
121
- const centerId: string = fulfillmentCenter.centerId
122
- const warehouseDomain: Domain = await tx.getRepository(Domain).findOne({ where: { subdomain: centerId } })
123
- const customerBizplaces: Bizplace[] = await getCustomerBizplaces(warehouseDomain)
124
- const customerBizplaceId: string = customerBizplaces[0].id
125
-
126
- let { items: releaseOrders }: any = await FulfillmentAPI.getOutboundOrders(fulfillmentCenter, {
127
- customerBizplaceId,
128
- refNo: marketplaceOrder.orderNo
129
- })
122
+ if (marketplaceOrder?.releaseOrderId) {
123
+ const fulfillmentCenter: FulfillmentCenter = marketplaceOrder.fulfillmentCenter
124
+ const centerId: string = fulfillmentCenter.centerId
125
+ const warehouseDomain: Domain = await tx.getRepository(Domain).findOne({ where: { subdomain: centerId } })
126
+ const customerBizplaces: Bizplace[] = await getCustomerBizplaces(warehouseDomain)
127
+ const customerBizplaceId: string = customerBizplaces[0].id
130
128
 
131
- releaseOrders = releaseOrders.filter(function (order) {
132
- return !disallowCancelStatuses.includes(order.status)
133
- })
129
+ let { items: releaseOrders }: any = await FulfillmentAPI.getOutboundOrders(fulfillmentCenter, {
130
+ customerBizplaceId,
131
+ refNo: marketplaceOrder.orderNo
132
+ })
134
133
 
135
- if (releaseOrders?.length) {
136
- for (var a = 0; a < releaseOrders.length; a++) {
137
- const releaseOrderId: string = releaseOrders[a].id
138
- await FulfillmentAPI.cancelReleaseOrder(fulfillmentCenter, { customerBizplaceId, releaseOrderId })
139
- }
140
- }
141
- } else {
142
- const fulfillmentCenter: FulfillmentCenter = marketplaceOrder.fulfillmentCenter
143
- const centerId: string = fulfillmentCenter.centerId
134
+ let releaseOrder = Object.assign({}, releaseOrders[0])
135
+ let patch = {
136
+ id: releaseOrder.id,
137
+ marketplaceOrderStatus: marketplaceOrder.status,
138
+ trackingNo: marketplaceOrder.trackingNo,
139
+ transporter: dropPickProvider ? dropPickProvider : marketplaceOrder.shippingProvider
140
+ }
141
+
142
+ await FulfillmentAPI.updateReleaseGoodDetails(fulfillmentCenter, {
143
+ customerBizplaceId,
144
+ releaseOrder: { ...patch },
145
+ shippingOrder: null
146
+ })
144
147
 
145
- const warehouseDomain: Domain = await tx.getRepository(Domain).findOne({ where: { subdomain: centerId } })
146
- const customerBizplaces: Bizplace[] = await getCustomerBizplaces(warehouseDomain)
147
- const customerBizplaceId: string = customerBizplaces[0].id
148
+ if (cancelStatuses.includes(marketplaceOrder.status)) {
149
+ if (existingMarketplaceOrder.isSplitted) {
150
+ releaseOrders = releaseOrders.filter(function (order) {
151
+ return !disallowCancelStatuses.includes(order.status)
152
+ })
148
153
 
149
- const { items: releaseOrders }: any = await FulfillmentAPI.getOutboundOrders(fulfillmentCenter, {
150
- customerBizplaceId,
151
- refNo: marketplaceOrder.orderNo
152
- })
154
+ if (releaseOrders?.length) {
155
+ for (var a = 0; a < releaseOrders.length; a++) {
156
+ const releaseOrderId: string = releaseOrders[a].id
157
+ await FulfillmentAPI.cancelReleaseOrder(fulfillmentCenter, { customerBizplaceId, releaseOrderId })
158
+ }
159
+ }
160
+ } else {
161
+ const fulfillmentCenter: FulfillmentCenter = marketplaceOrder.fulfillmentCenter
162
+ const centerId: string = fulfillmentCenter.centerId
153
163
 
154
- const releaseOrderStatus = releaseOrders[0].status
164
+ const warehouseDomain: Domain = await tx
165
+ .getRepository(Domain)
166
+ .findOne({ where: { subdomain: centerId } })
167
+ const customerBizplaces: Bizplace[] = await getCustomerBizplaces(warehouseDomain)
168
+ const customerBizplaceId: string = customerBizplaces[0].id
155
169
 
156
- if (!disallowCancelStatuses.includes(releaseOrderStatus)) {
157
- await FulfillmentAPI.cancelReleaseOrder(fulfillmentCenter, {
170
+ const { items: releaseOrders }: any = await FulfillmentAPI.getOutboundOrders(fulfillmentCenter, {
158
171
  customerBizplaceId,
159
- releaseOrderId: releaseOrders[0].id
172
+ refNo: marketplaceOrder.orderNo
160
173
  })
174
+
175
+ const releaseOrderStatus = releaseOrders[0].status
176
+
177
+ if (!disallowCancelStatuses.includes(releaseOrderStatus)) {
178
+ await FulfillmentAPI.cancelReleaseOrder(fulfillmentCenter, {
179
+ customerBizplaceId,
180
+ releaseOrderId: releaseOrders[0].id
181
+ })
182
+ }
161
183
  }
162
184
  }
163
185
  }
@@ -295,9 +317,23 @@ export const syncMarketplaceOrder = {
295
317
  marketplaceOrderItem.discount = item.discount
296
318
  marketplaceOrderItem.promotionId = item.promotionId
297
319
  marketplaceOrderItem.creator = user
298
- if (marketplaceStore.platform === 'lazada' && item.paymentFee) {
299
- marketplaceOrderItem.paymentFee = item.paymentFee
300
- }
320
+ marketplaceOrderItem.paymentFee = item.paymentFee || null
321
+ marketplaceOrderItem.commissionFee = item.commissionFee || null
322
+ marketplaceOrderItem.shippingFeePaidByCustomer = item.shippingFeePaidByCustomer || null
323
+ marketplaceOrderItem.itemPriceCredit = item.itemPriceCredit || null
324
+ marketplaceOrderItem.promotionalCharges = item.promotionalCharges || null
325
+ marketplaceOrderItem.ordersMarketplaceFeesTotal = item.ordersMarketplaceFeesTotal || null
326
+ marketplaceOrderItem.ordersSalesTotal = item.ordersSalesTotal || null
327
+ marketplaceOrderItem.ordersMarketingFeesTotal = item.ordersMarketingFeesTotal || null
328
+ marketplaceOrderItem.ordersLogisticsTotal = item.ordersLogisticsTotal || null
329
+ marketplaceOrderItem.marketplaceBonus = item.marketplaceBonus
330
+ marketplaceOrderItem.marketplaceBonusSeller = item.marketplaceBonusSeller
331
+ marketplaceOrderItem.shippingFeeDiscountMarketplace = item.shippingFeeDiscountMarketplace
332
+ marketplaceOrderItem.shippingFeeDiscountSeller = item.shippingFeeDiscountSeller
333
+ marketplaceOrderItem.promotionalChargesFlexiCombo = item.promotionalChargesFlexiCombo
334
+ marketplaceOrderItem.autoShippingSubsidyMarketplace = item.autoShippingSubsidyMarketplace
335
+ marketplaceOrderItem.originalShippingFee = item.originalShippingFee
336
+ marketplaceOrderItem.taxAmount = item.taxAmount
301
337
 
302
338
  marketplaceOrderItems.push({ ...marketplaceOrderItem })
303
339
 
@@ -311,9 +347,7 @@ export const syncMarketplaceOrder = {
311
347
  existingOrderItems = existingMarketplaceOrder.marketplaceOrderItems
312
348
 
313
349
  marketplaceOrderItems = existingOrderItems.filter(
314
- itm =>
315
- itm.name == item.name &&
316
- itm.marketplaceProductVariation.variationId == item.marketplaceProductVariation.variationId
350
+ itm => itm.name == item.name && itm.marketplaceProductVariation.variationId == item.variationId
317
351
  )
318
352
  marketplaceOrderItems = marketplaceOrderItems.map(marketplaceOrderitem => {
319
353
  return {
@@ -1,21 +1,42 @@
1
- import { ListParam, convertListParams } from '@things-factory/shell'
2
- import { getRepository } from 'typeorm'
1
+ import { getRepository, SelectQueryBuilder } from 'typeorm'
2
+
3
+ import { buildQuery, ListParam } from '@things-factory/shell'
4
+
3
5
  import { MarketplaceOrderShipping } from '../../../entities'
4
6
 
5
7
  export const marketplaceOrderShippingsResolver = {
6
8
  async marketplaceOrderShippings(_: any, params: ListParam, context: any) {
7
- const convertedParams = convertListParams(params)
8
- const [items, total] = await getRepository(MarketplaceOrderShipping).findAndCount({
9
- ...convertedParams,
10
- relations: [
11
- 'domain',
12
- 'marketplaceOrderItems',
13
- 'marketplaceOrderItems.marketplaceProductVariation',
14
- 'marketplaceStore',
15
- 'creator',
16
- 'updater'
17
- ]
18
- })
9
+ let dateFilter = params.filters.filter(filter => filter.name == 'createdAt')
10
+
11
+ params.filters = params.filters.filter(x => x.name != 'createdAt')
12
+
13
+ const qb: SelectQueryBuilder<MarketplaceOrderShipping> = getRepository(MarketplaceOrderShipping)
14
+ .createQueryBuilder('MOS')
15
+ .innerJoinAndSelect('MOS.marketplaceOrderItems', 'MOI')
16
+ .innerJoinAndSelect('MOI.marketplaceOrder', 'MO')
17
+ .innerJoinAndSelect('MOI.marketplaceProductVariation', 'MPV')
18
+ .innerJoinAndSelect('MOS.marketplaceStore', 'MS')
19
+ .innerJoinAndSelect('MOS.domain', 'domain')
20
+ .leftJoinAndSelect('MOS.creator', 'creator')
21
+ .leftJoinAndSelect('MOS.updater', 'updater')
22
+
23
+ buildQuery(qb, params, context, false)
24
+
25
+ if (dateFilter) {
26
+ if (dateFilter[0].operator == 'between') {
27
+ qb.andWhere('MO.orderCreatedAt BETWEEN :begin AND :end', {
28
+ begin: dateFilter[0].value[0],
29
+ end: dateFilter[0].value[1]
30
+ })
31
+ } else if (dateFilter[0].operator == 'gte') {
32
+ qb.andWhere('MO.orderCreatedAt >= :begin', { begin: dateFilter[0].value })
33
+ } else if (dateFilter[0].operator == 'lte') {
34
+ qb.andWhere('MO.orderCreatedAt <= :begin', { begin: dateFilter[0].value })
35
+ }
36
+ }
37
+
38
+ const [items, total] = await qb.getManyAndCount()
39
+
19
40
  return { items, total }
20
41
  }
21
42
  }
@@ -8,8 +8,16 @@ export const updateMarketplaceOrderShipping = {
8
8
  relations: ['marketplaceStore']
9
9
  })
10
10
 
11
+ if (!marketplaceOrderShipping) throw new Error(`Shipping not exist`)
12
+
11
13
  marketplaceOrderShipping.ownTrackingNo = patch.trackingNo
12
14
 
15
+ if (marketplaceOrderShipping.marketplaceStore.platform == 'lazada') {
16
+ if (patch?.trackingNo) {
17
+ patch.trackingNo = marketplaceOrderShipping.trackingNo
18
+ }
19
+ }
20
+
13
21
  marketplaceOrderShipping = await tx.getRepository(MarketplaceOrderShippingEntity).save({
14
22
  ...marketplaceOrderShipping,
15
23
  ...patch,
@@ -103,7 +103,25 @@ export const marketplaceSalesReportsResolver = {
103
103
  totalRealeasedAmount: item.mo_total_realeased_amount,
104
104
  voucherCode: item.mo_voucher_code,
105
105
  shippingMode: item.mo_shipping_mode,
106
- status: item.mo_status
106
+ status: item.mo_status,
107
+ shippingFeePaidByCustomer: item.moi_shipping_fee_paid_by_customer,
108
+ promotionalCharges: item.moi_promotional_charges,
109
+ ordersMarketplaceFeesTotal: item.moi_orders_marketplace_fees_total,
110
+ ordersMarketingFeesTotal: item.moi_orders_marketing_fees_total,
111
+ ordersSalesTotal: item.moi_orders_sales_total,
112
+ ordersLogisticsTotal: item.moi_orders_logistics_total,
113
+ itemPriceCredit: item.moi_item_price_credit,
114
+ marketplaceBonus: item.moi_marketplace_bonus + item.moi_marketplace_bonus_seller,
115
+ marketplaceBonusSeller: item.moi_marketplace_bonus_seller,
116
+ shippingFeeDiscountMarketplace: item.moi_shipping_fee_discount_marketplace,
117
+ shippingFeeDiscountSeller: item.moi_shipping_fee_discount_seller,
118
+ promotionalChargesFlexiCombo: item.moi_promotional_charges_flexi_combo,
119
+ autoShippingSubsidyMarketplace: item.moi_auto_shipping_subsidy_marketplace,
120
+ grandTotal: item.moi_orders_marketplace_fees_total + item.moi_orders_marketing_fees_total + item.moi_orders_sales_total + item.moi_orders_logistics_total,
121
+ originalShippingFee: item.moi_original_shipping_fee,
122
+ taxAmount: item.moi_tax_amount,
123
+ itemCommissionFee: item.moi_commission_fee,
124
+ variationSku: item.mpv_variation_sku
107
125
  }
108
126
  })
109
127
 
@@ -36,5 +36,24 @@ export const MarketplaceSalesReport = gql`
36
36
  actualShippingFee: Float
37
37
  marketplaceShippingFeeVoucher: Float
38
38
  sellerShippingFeeVoucher: Float
39
+ shippingFeePaidByCustomer: Float
40
+ promotionalCharges: Float
41
+ ordersMarketplaceFeesTotal: Float
42
+ ordersMarketingFeesTotal: Float
43
+ ordersSalesTotal: Float
44
+ ordersLogisticsTotal: Float
45
+ itemPriceCredit: Float
46
+ marketplaceBonus: Float
47
+ marketplaceBonusSeller: Float
48
+ shippingFeeDiscountMarketplace: Float
49
+ shippingFeeDiscountSeller: Float
50
+ promotionalChargesFlexiCombo: Float
51
+ autoShippingSubsidyMarketplace: Float
52
+ grandTotal: Float
53
+ originalShippingFee: Float
54
+ taxAmount: Float
55
+ fulfillmentCenter: String
56
+ variationSku: String
57
+ itemCommissionFee: Float
39
58
  }
40
59
  `