@things-factory/operato-mms 4.1.3 → 4.1.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/client/pages/order/logistics/batch-init-popup.js +15 -3
- package/client/pages/order/logistics/lazada-order-init-batch-popup.js +32 -27
- package/client/pages/order/logistics/order-init-popup.js +13 -10
- package/client/pages/order/logistics/order-shipping-items.js +23 -26
- package/client/pages/order/logistics/request-ro-popup.js +18 -16
- package/client/pages/order/logistics/shopee-order-init-batch-popup.js +32 -27
- package/client/pages/order/order-by-store.js +34 -29
- package/client/pages/order/select-datetime-popup.js +2 -2
- package/config.development.js +160 -0
- package/dist-server/graphql/resolvers/interface-with-hub/add-release-order.js +25 -24
- package/dist-server/graphql/resolvers/interface-with-hub/add-release-order.js.map +1 -1
- package/dist-server/graphql/resolvers/interface-with-hub/auto-add-release-order.js +26 -24
- package/dist-server/graphql/resolvers/interface-with-hub/auto-add-release-order.js.map +1 -1
- package/dist-server/routers/etrax-router.js +26 -6
- package/dist-server/routers/etrax-router.js.map +1 -1
- package/package.json +61 -61
- package/server/graphql/resolvers/interface-with-hub/add-release-order.ts +41 -33
- package/server/graphql/resolvers/interface-with-hub/auto-add-release-order.ts +42 -33
- package/server/routers/etrax-router.ts +33 -7
- package/translations/en.json +1 -0
- package/translations/ko.json +1 -0
- package/translations/ms.json +1 -0
- package/translations/zh.json +1 -0
|
@@ -2,7 +2,12 @@ import { getRepository } from 'typeorm'
|
|
|
2
2
|
|
|
3
3
|
import { Bizplace, getCustomerBizplaces } from '@things-factory/biz-base'
|
|
4
4
|
import { FulfillmentAPI, FulfillmentCenter } from '@things-factory/integration-fulfillment'
|
|
5
|
-
import {
|
|
5
|
+
import {
|
|
6
|
+
MarketplaceOrder,
|
|
7
|
+
MarketplaceOrderItem,
|
|
8
|
+
MarketplaceOrderShipping,
|
|
9
|
+
MarketplaceOrderShippingItem
|
|
10
|
+
} from '@things-factory/marketplace-base'
|
|
6
11
|
import { Product, ProductBundle } from '@things-factory/product-base'
|
|
7
12
|
import { Domain } from '@things-factory/shell'
|
|
8
13
|
|
|
@@ -31,7 +36,8 @@ export const addReleaseOrderResolver = {
|
|
|
31
36
|
relations: [
|
|
32
37
|
'marketplaceOrderItems',
|
|
33
38
|
'marketplaceOrderItems.marketplaceProductVariation',
|
|
34
|
-
'marketplaceOrderItems.
|
|
39
|
+
'marketplaceOrderItems.marketplaceOrderShippingItems',
|
|
40
|
+
'marketplaceOrderItems.marketplaceOrderShippingItems.marketplaceOrderShipping',
|
|
35
41
|
'marketplaceStore'
|
|
36
42
|
]
|
|
37
43
|
})
|
|
@@ -39,17 +45,24 @@ export const addReleaseOrderResolver = {
|
|
|
39
45
|
let marketplaceOrderShippings: MarketplaceOrderShipping[] = await getRepository(MarketplaceOrderShipping).find({
|
|
40
46
|
where: { orderNoRef: marketplaceOrder.orderNo, domain },
|
|
41
47
|
order: { subOrderNoRef: 'ASC' },
|
|
42
|
-
relations: [
|
|
48
|
+
relations: [
|
|
49
|
+
'marketplaceOrderShippingItems',
|
|
50
|
+
'marketplaceOrderShippingItems.marketplaceOrderItem',
|
|
51
|
+
'marketplaceOrderShippingItems.product'
|
|
52
|
+
]
|
|
43
53
|
})
|
|
44
54
|
|
|
45
|
-
for (
|
|
55
|
+
for (let j = 0; j < marketplaceOrderShippings.length; j++) {
|
|
46
56
|
let marketplaceOrderShipping: MarketplaceOrderShipping = marketplaceOrderShippings[j]
|
|
57
|
+
let marketplaceOrderShippingItems: MarketplaceOrderShippingItem[] =
|
|
58
|
+
marketplaceOrderShipping.marketplaceOrderShippingItems
|
|
47
59
|
|
|
48
60
|
if (!marketplaceOrderShipping?.releaseOrderId) {
|
|
49
61
|
const date: Date = new Date()
|
|
50
|
-
const releaseDate = `${date.getFullYear()}-${(date.getMonth() + 1)
|
|
62
|
+
const releaseDate = `${date.getFullYear()}-${(date.getMonth() + 1).toString().padStart(2, '0')}-${date
|
|
63
|
+
.getDate()
|
|
51
64
|
.toString()
|
|
52
|
-
.padStart(2, '0')}
|
|
65
|
+
.padStart(2, '0')}`
|
|
53
66
|
|
|
54
67
|
const newReleaseOrder: any = {
|
|
55
68
|
releaseDate,
|
|
@@ -83,21 +96,14 @@ export const addReleaseOrderResolver = {
|
|
|
83
96
|
marketplaceOrderStatus: marketplaceOrder.status,
|
|
84
97
|
airwayBill: marketplaceOrderShipping?.airwayBill ? marketplaceOrderShipping.airwayBill : null,
|
|
85
98
|
invoice: marketplaceOrderShipping?.invoice ? marketplaceOrderShipping.invoice : null,
|
|
86
|
-
orderInventories:
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
return {
|
|
95
|
-
product: {
|
|
96
|
-
sku: productVariation.sku
|
|
97
|
-
},
|
|
98
|
-
releaseQty: orderItem.qty
|
|
99
|
-
}
|
|
100
|
-
})
|
|
99
|
+
orderInventories: marketplaceOrderShippingItems.map(marketplaceOrderShippingItem => {
|
|
100
|
+
return {
|
|
101
|
+
product: {
|
|
102
|
+
sku: marketplaceOrderShippingItem.product.sku
|
|
103
|
+
},
|
|
104
|
+
releaseQty: marketplaceOrderShippingItem.qty
|
|
105
|
+
}
|
|
106
|
+
})
|
|
101
107
|
}
|
|
102
108
|
|
|
103
109
|
try {
|
|
@@ -105,6 +111,16 @@ export const addReleaseOrderResolver = {
|
|
|
105
111
|
customerBizplaceId,
|
|
106
112
|
releaseOrder: newReleaseOrder
|
|
107
113
|
})
|
|
114
|
+
|
|
115
|
+
marketplaceOrderShipping.releaseOrderId = releaseOrder.id
|
|
116
|
+
marketplaceOrderShipping.fulfillmentCenter = fulfilmentCenter
|
|
117
|
+
await getRepository(MarketplaceOrderShipping).save(marketplaceOrderShipping)
|
|
118
|
+
|
|
119
|
+
if (releaseOrder && releaseOrder?.id) {
|
|
120
|
+
marketplaceOrder.releaseOrderId = releaseOrder.id
|
|
121
|
+
marketplaceOrder.fulfillmentCenter = fulfilmentCenter
|
|
122
|
+
await getRepository(MarketplaceOrder).save(marketplaceOrder)
|
|
123
|
+
}
|
|
108
124
|
} catch (e) {}
|
|
109
125
|
|
|
110
126
|
var invoiceProducts = await Promise.all(
|
|
@@ -119,10 +135,12 @@ export const addReleaseOrderResolver = {
|
|
|
119
135
|
})
|
|
120
136
|
}
|
|
121
137
|
|
|
122
|
-
let
|
|
123
|
-
|
|
138
|
+
let mosis: MarketplaceOrderShippingItem[] = marketplaceOrderShippingItems.filter(
|
|
139
|
+
mosi => mosi.product.sku === product.sku
|
|
124
140
|
)
|
|
125
141
|
|
|
142
|
+
let moi: MarketplaceOrderItem = mosis[0].marketplaceOrderItem
|
|
143
|
+
|
|
126
144
|
return {
|
|
127
145
|
sku: product.sku,
|
|
128
146
|
name: product.name,
|
|
@@ -135,10 +153,6 @@ export const addReleaseOrderResolver = {
|
|
|
135
153
|
})
|
|
136
154
|
)
|
|
137
155
|
|
|
138
|
-
marketplaceOrderShipping.releaseOrderId = releaseOrder.id
|
|
139
|
-
marketplaceOrderShipping.fulfillmentCenter = fulfilmentCenter
|
|
140
|
-
await getRepository(MarketplaceOrderShipping).save(marketplaceOrderShipping)
|
|
141
|
-
|
|
142
156
|
let newInvoice = {
|
|
143
157
|
invoiceProducts,
|
|
144
158
|
releaseGood: { id: releaseOrder.id, name: releaseOrder.name },
|
|
@@ -188,12 +202,6 @@ export const addReleaseOrderResolver = {
|
|
|
188
202
|
} catch (e) {}
|
|
189
203
|
}
|
|
190
204
|
}
|
|
191
|
-
|
|
192
|
-
if (releaseOrder && releaseOrder?.id) {
|
|
193
|
-
marketplaceOrder.releaseOrderId = releaseOrder.id
|
|
194
|
-
marketplaceOrder.fulfillmentCenter = fulfilmentCenter
|
|
195
|
-
await getRepository(MarketplaceOrder).save(marketplaceOrder)
|
|
196
|
-
}
|
|
197
205
|
}
|
|
198
206
|
}
|
|
199
207
|
}
|
|
@@ -2,7 +2,12 @@ import { createQueryBuilder, getRepository, SelectQueryBuilder } from 'typeorm'
|
|
|
2
2
|
|
|
3
3
|
import { Bizplace, getCustomerBizplaces } from '@things-factory/biz-base'
|
|
4
4
|
import { FulfillmentAPI } from '@things-factory/integration-fulfillment'
|
|
5
|
-
import {
|
|
5
|
+
import {
|
|
6
|
+
MarketplaceOrder,
|
|
7
|
+
MarketplaceOrderItem,
|
|
8
|
+
MarketplaceOrderShipping,
|
|
9
|
+
MarketplaceOrderShippingItem
|
|
10
|
+
} from '@things-factory/marketplace-base'
|
|
6
11
|
import { Product, ProductBundle } from '@things-factory/product-base'
|
|
7
12
|
import { Domain } from '@things-factory/shell'
|
|
8
13
|
|
|
@@ -13,7 +18,8 @@ export const autoAddReleaseOrderResolver = {
|
|
|
13
18
|
const qb: SelectQueryBuilder<MarketplaceOrder> = createQueryBuilder(MarketplaceOrder, 'MO')
|
|
14
19
|
const marketplaceOrders: MarketplaceOrder[] = await qb
|
|
15
20
|
.leftJoinAndSelect('MO.marketplaceOrderItems', 'MOI')
|
|
16
|
-
.leftJoinAndSelect('MOI.
|
|
21
|
+
.leftJoinAndSelect('MOI.marketplaceOrderShippingItems', 'MOSI')
|
|
22
|
+
.leftJoinAndSelect('MOSI.marketplaceOrderShipping', 'MOS')
|
|
17
23
|
.leftJoinAndSelect('MOI.marketplaceProductVariation', 'MPV')
|
|
18
24
|
.leftJoinAndSelect('MO.marketplaceStore', 'MPS')
|
|
19
25
|
.where('MO.domain = :domainId', { domainId: domain.id })
|
|
@@ -38,17 +44,25 @@ export const autoAddReleaseOrderResolver = {
|
|
|
38
44
|
|
|
39
45
|
const marketplaceOrderShippings: MarketplaceOrderShipping[] = await getRepository(MarketplaceOrderShipping).find({
|
|
40
46
|
where: { orderNoRef: marketplaceOrder.orderNo, domain },
|
|
41
|
-
order: { subOrderNoRef: 'ASC' }
|
|
47
|
+
order: { subOrderNoRef: 'ASC' },
|
|
48
|
+
relations: [
|
|
49
|
+
'marketplaceOrderShippingItems',
|
|
50
|
+
'marketplaceOrderShippingItems.marketplaceOrderItem',
|
|
51
|
+
'marketplaceOrderShippingItems.product'
|
|
52
|
+
]
|
|
42
53
|
})
|
|
43
54
|
|
|
44
|
-
for (
|
|
55
|
+
for (let j = 0; j < marketplaceOrderShippings.length; j++) {
|
|
45
56
|
let marketplaceOrderShipping: MarketplaceOrderShipping = marketplaceOrderShippings[j]
|
|
57
|
+
let marketplaceOrderShippingItems: MarketplaceOrderShippingItem[] =
|
|
58
|
+
marketplaceOrderShipping.marketplaceOrderShippingItems
|
|
46
59
|
|
|
47
60
|
if (!marketplaceOrderShipping?.releaseOrderId) {
|
|
48
61
|
const date: Date = new Date()
|
|
49
|
-
const releaseDate = `${date.getFullYear()}-${(date.getMonth() + 1)
|
|
62
|
+
const releaseDate = `${date.getFullYear()}-${(date.getMonth() + 1).toString().padStart(2, '0')}-${date
|
|
63
|
+
.getDate()
|
|
50
64
|
.toString()
|
|
51
|
-
.padStart(2, '0')}
|
|
65
|
+
.padStart(2, '0')}`
|
|
52
66
|
|
|
53
67
|
const newReleaseOrder: any = {
|
|
54
68
|
releaseDate,
|
|
@@ -82,21 +96,14 @@ export const autoAddReleaseOrderResolver = {
|
|
|
82
96
|
marketplaceOrderStatus: marketplaceOrder.status,
|
|
83
97
|
airwayBill: marketplaceOrderShipping?.airwayBill ? marketplaceOrderShipping.airwayBill : null,
|
|
84
98
|
invoice: marketplaceOrderShipping?.invoice ? marketplaceOrderShipping.invoice : null,
|
|
85
|
-
orderInventories:
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
return {
|
|
94
|
-
product: {
|
|
95
|
-
sku: productVariation.sku
|
|
96
|
-
},
|
|
97
|
-
releaseQty: orderItem.qty
|
|
98
|
-
}
|
|
99
|
-
})
|
|
99
|
+
orderInventories: marketplaceOrderShippingItems.map(marketplaceOrderShippingItem => {
|
|
100
|
+
return {
|
|
101
|
+
product: {
|
|
102
|
+
sku: marketplaceOrderShippingItem.product.sku
|
|
103
|
+
},
|
|
104
|
+
releaseQty: marketplaceOrderShippingItem.qty
|
|
105
|
+
}
|
|
106
|
+
})
|
|
100
107
|
}
|
|
101
108
|
|
|
102
109
|
try {
|
|
@@ -104,6 +111,16 @@ export const autoAddReleaseOrderResolver = {
|
|
|
104
111
|
customerBizplaceId,
|
|
105
112
|
releaseOrder: newReleaseOrder
|
|
106
113
|
})
|
|
114
|
+
|
|
115
|
+
marketplaceOrderShipping.releaseOrderId = releaseOrder.id
|
|
116
|
+
marketplaceOrderShipping.fulfillmentCenter = fulfilmentCenter
|
|
117
|
+
await getRepository(MarketplaceOrderShipping).save(marketplaceOrderShipping)
|
|
118
|
+
|
|
119
|
+
if (releaseOrder && releaseOrder?.id) {
|
|
120
|
+
marketplaceOrder.releaseOrderId = releaseOrder.id
|
|
121
|
+
marketplaceOrder.fulfillmentCenter = fulfilmentCenter
|
|
122
|
+
await getRepository(MarketplaceOrder).save(marketplaceOrder)
|
|
123
|
+
}
|
|
107
124
|
} catch (e) {}
|
|
108
125
|
|
|
109
126
|
var invoiceProducts = await Promise.all(
|
|
@@ -118,10 +135,12 @@ export const autoAddReleaseOrderResolver = {
|
|
|
118
135
|
})
|
|
119
136
|
}
|
|
120
137
|
|
|
121
|
-
let
|
|
122
|
-
|
|
138
|
+
let mosis: MarketplaceOrderShippingItem[] = marketplaceOrderShippingItems.filter(
|
|
139
|
+
mosi => mosi.product.sku === product.sku
|
|
123
140
|
)
|
|
124
141
|
|
|
142
|
+
let moi: MarketplaceOrderItem = mosis[0].marketplaceOrderItem
|
|
143
|
+
|
|
125
144
|
return {
|
|
126
145
|
sku: product.sku,
|
|
127
146
|
name: product.name,
|
|
@@ -134,10 +153,6 @@ export const autoAddReleaseOrderResolver = {
|
|
|
134
153
|
})
|
|
135
154
|
)
|
|
136
155
|
|
|
137
|
-
marketplaceOrderShipping.releaseOrderId = releaseOrder.id
|
|
138
|
-
marketplaceOrderShipping.fulfillmentCenter = fulfilmentCenter
|
|
139
|
-
await getRepository(MarketplaceOrderShipping).save(marketplaceOrderShipping)
|
|
140
|
-
|
|
141
156
|
let newInvoice = {
|
|
142
157
|
invoiceProducts,
|
|
143
158
|
releaseGood: { id: releaseOrder.id, name: releaseOrder.name },
|
|
@@ -187,12 +202,6 @@ export const autoAddReleaseOrderResolver = {
|
|
|
187
202
|
} catch (e) {}
|
|
188
203
|
}
|
|
189
204
|
}
|
|
190
|
-
|
|
191
|
-
if (releaseOrder && releaseOrder?.id) {
|
|
192
|
-
marketplaceOrder.releaseOrderId = releaseOrder.id
|
|
193
|
-
marketplaceOrder.fulfillmentCenter = fulfilmentCenter
|
|
194
|
-
await getRepository(MarketplaceOrder).save(marketplaceOrder)
|
|
195
|
-
}
|
|
196
205
|
}
|
|
197
206
|
}
|
|
198
207
|
}
|
|
@@ -5,7 +5,12 @@ import { Bizplace, getCustomerBizplaces } from '@things-factory/biz-base'
|
|
|
5
5
|
import { FulfillmentAPI, FulfillmentCenter } from '@things-factory/integration-fulfillment'
|
|
6
6
|
import { Etrax, LastMileDelivery } from '@things-factory/integration-lmd'
|
|
7
7
|
import { MarketplaceStore, MarketplaceTransporter, StoreAPI } from '@things-factory/integration-marketplace'
|
|
8
|
-
import {
|
|
8
|
+
import {
|
|
9
|
+
MarketplaceOrder,
|
|
10
|
+
MarketplaceOrderItem,
|
|
11
|
+
MarketplaceOrderShipping,
|
|
12
|
+
MarketplaceOrderShippingItem
|
|
13
|
+
} from '@things-factory/marketplace-base'
|
|
9
14
|
import { Domain } from '@things-factory/shell'
|
|
10
15
|
|
|
11
16
|
const debug = require('debug')('things-factory:jest.config')
|
|
@@ -70,15 +75,17 @@ etraxRouter.post(`/lmd/etrax/status_update`, async (context, next) => {
|
|
|
70
75
|
'domain',
|
|
71
76
|
'marketplaceStore',
|
|
72
77
|
'marketplaceOrderItems',
|
|
73
|
-
'marketplaceOrderItems.
|
|
74
|
-
'marketplaceOrderItems.marketplaceOrderShipping
|
|
78
|
+
'marketplaceOrderItems.marketplaceOrderShippingItems',
|
|
79
|
+
'marketplaceOrderItems.marketplaceOrderShippingItems.marketplaceOrderShipping',
|
|
80
|
+
'marketplaceOrderItems.marketplaceOrderShippingItems.marketplaceOrderShipping.fulfillmentCenter'
|
|
75
81
|
]
|
|
76
82
|
})
|
|
77
83
|
let orderItems: MarketplaceOrderItem[] = order.marketplaceOrderItems
|
|
78
84
|
|
|
79
85
|
for (const orderItem of orderItems) {
|
|
80
|
-
if (orderItem.marketplaceOrderShipping !== null) {
|
|
81
|
-
const
|
|
86
|
+
if (orderItem.marketplaceOrderShippingItems[0].marketplaceOrderShipping !== null) {
|
|
87
|
+
const orderShippingItems: MarketplaceOrderShippingItem[] = orderItem.marketplaceOrderShippingItems
|
|
88
|
+
const orderShipping: MarketplaceOrderShipping = orderShippingItems[0].marketplaceOrderShipping
|
|
82
89
|
const fulfillmentCenter: FulfillmentCenter = orderShipping?.fulfillmentCenter
|
|
83
90
|
const marketplaceStore: MarketplaceStore = order.marketplaceStore
|
|
84
91
|
|
|
@@ -119,9 +126,28 @@ etraxRouter.post(`/lmd/etrax/status_update`, async (context, next) => {
|
|
|
119
126
|
const marketplaceStore: MarketplaceStore = await StoreAPI.getMarketplaceStore(storeId)
|
|
120
127
|
|
|
121
128
|
// to-do update tracking no to every marketplaces
|
|
122
|
-
if (marketplaceStore.platform === 'woocommerce') {
|
|
129
|
+
if (marketplaceStore.platform === 'woocommerce' || marketplaceStore.platform === 'shopify') {
|
|
123
130
|
const note = 'http://ets.sntglobal.com/?mod=tracking&action=index&orders=' + trackingNo
|
|
124
|
-
|
|
131
|
+
let orderInfo: MarketplaceOrder = await getRepository(MarketplaceOrder).findOne({
|
|
132
|
+
where: {
|
|
133
|
+
name: order.name
|
|
134
|
+
},
|
|
135
|
+
relations: ['marketplaceOrderItems', 'marketplaceOrderItems.marketplaceProductVariation']
|
|
136
|
+
})
|
|
137
|
+
const result = await StoreAPI.setStoreOrderStatusReadyToShip(marketplaceStore, {
|
|
138
|
+
orderId: order.name,
|
|
139
|
+
trackingUrl: note,
|
|
140
|
+
trackingNo,
|
|
141
|
+
order: orderInfo,
|
|
142
|
+
note
|
|
143
|
+
})
|
|
144
|
+
|
|
145
|
+
if (marketplaceStore.platform === 'woocommerce') {
|
|
146
|
+
await StoreAPI.updateOrderStatus(marketplaceStore, {
|
|
147
|
+
orderId: order.name,
|
|
148
|
+
status: 'READY_TO_SHIP'
|
|
149
|
+
})
|
|
150
|
+
}
|
|
125
151
|
}
|
|
126
152
|
|
|
127
153
|
const resp = {
|
package/translations/en.json
CHANGED
package/translations/ko.json
CHANGED
|
@@ -143,6 +143,7 @@
|
|
|
143
143
|
"field.total_weight": "[ko] total weight",
|
|
144
144
|
"field.town": "[ko] town",
|
|
145
145
|
"field.tracking_no": "[ko] tracking no",
|
|
146
|
+
"field.tracking_url": "[ko] tracking URL",
|
|
146
147
|
"field.type": "[ko] type",
|
|
147
148
|
"field.unit": "[ko] unit",
|
|
148
149
|
"field.uom_value": "[ko] UOM value",
|
package/translations/ms.json
CHANGED
|
@@ -143,6 +143,7 @@
|
|
|
143
143
|
"field.total_weight": "[ms] total weight",
|
|
144
144
|
"field.town": "[ms] town",
|
|
145
145
|
"field.tracking_no": "[ms] tracking no",
|
|
146
|
+
"field.tracking_url": "[ms] tracking URL",
|
|
146
147
|
"field.type": "[ms] type",
|
|
147
148
|
"field.unit": "[ms] unit",
|
|
148
149
|
"field.uom_value": "[ms] UOM value",
|
package/translations/zh.json
CHANGED
|
@@ -143,6 +143,7 @@
|
|
|
143
143
|
"field.total_weight": "[zh] total weight",
|
|
144
144
|
"field.town": "[zh] town",
|
|
145
145
|
"field.tracking_no": "[zh] tracking no",
|
|
146
|
+
"field.tracking_url": "[zh] tracking URL",
|
|
146
147
|
"field.type": "[zh] type",
|
|
147
148
|
"field.unit": "[zh] unit",
|
|
148
149
|
"field.uom_value": "[zh] UOM value",
|