@things-factory/integration-marketplace 5.0.0-alpha.9 → 5.0.0-y.0
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/dist-server/controllers/index.js +1 -0
- package/dist-server/controllers/index.js.map +1 -1
- package/dist-server/controllers/lazada/apis/get-store-orders.js +3 -3
- package/dist-server/controllers/lazada/apis/get-store-orders.js.map +1 -1
- package/dist-server/controllers/lazada/apis/update-store-product-stock.js +2 -2
- package/dist-server/controllers/lazada/apis/update-store-product-stock.js.map +1 -1
- package/dist-server/controllers/lazada/apis/update-store-product-variation-stock.js +2 -2
- package/dist-server/controllers/lazada/apis/update-store-product-variation-stock.js.map +1 -1
- package/dist-server/controllers/magento/apis/get-store-order.js +20 -0
- package/dist-server/controllers/magento/apis/get-store-order.js.map +1 -0
- package/dist-server/controllers/magento/apis/get-store-orders.js +38 -7
- package/dist-server/controllers/magento/apis/get-store-orders.js.map +1 -1
- package/dist-server/controllers/magento/apis/get-store-product-categories.js +47 -0
- package/dist-server/controllers/magento/apis/get-store-product-categories.js.map +1 -0
- package/dist-server/controllers/magento/apis/get-store-products.js +29 -11
- package/dist-server/controllers/magento/apis/get-store-products.js.map +1 -1
- package/dist-server/controllers/magento/apis/get-store-stock-item.js +1 -1
- package/dist-server/controllers/magento/apis/get-store-stock-item.js.map +1 -1
- package/dist-server/controllers/magento/apis/index.js +5 -0
- package/dist-server/controllers/magento/apis/index.js.map +1 -1
- package/dist-server/controllers/magento/apis/update-order-status.js +62 -0
- package/dist-server/controllers/magento/apis/update-order-status.js.map +1 -0
- package/dist-server/controllers/magento/apis/update-store-product-price.js +28 -0
- package/dist-server/controllers/magento/apis/update-store-product-price.js.map +1 -0
- package/dist-server/controllers/magento/apis/update-store-product-stock.js +1 -1
- package/dist-server/controllers/magento/apis/update-store-product-stock.js.map +1 -1
- package/dist-server/controllers/magento/apis/update-store-product-variation-price.js +28 -0
- package/dist-server/controllers/magento/apis/update-store-product-variation-price.js.map +1 -0
- package/dist-server/controllers/magento/apis/update-store-product-variation-stock.js +1 -1
- package/dist-server/controllers/magento/apis/update-store-product-variation-stock.js.map +1 -1
- package/dist-server/controllers/magento/magento.js +4 -4
- package/dist-server/controllers/magento/magento.js.map +1 -1
- package/dist-server/controllers/magento/platform-action.js +1 -0
- package/dist-server/controllers/magento/platform-action.js.map +1 -1
- package/dist-server/controllers/shopee/apis/get-store-order-payout-dates.js +3 -3
- package/dist-server/controllers/shopee/apis/get-store-order-payout-dates.js.map +1 -1
- package/dist-server/controllers/shopee/apis/get-store-orders.js +3 -3
- package/dist-server/controllers/shopee/apis/get-store-orders.js.map +1 -1
- package/dist-server/controllers/shopify/apis/get-store-orders.js +72 -12
- package/dist-server/controllers/shopify/apis/get-store-orders.js.map +1 -1
- package/dist-server/controllers/shopify/apis/get-store-product-variation-stock.js +23 -0
- package/dist-server/controllers/shopify/apis/get-store-product-variation-stock.js.map +1 -0
- package/dist-server/controllers/shopify/apis/get-store-products.js +38 -3
- package/dist-server/controllers/shopify/apis/get-store-products.js.map +1 -1
- package/dist-server/controllers/shopify/apis/index.js +4 -0
- package/dist-server/controllers/shopify/apis/index.js.map +1 -1
- package/dist-server/controllers/shopify/apis/update-order-status.js +15 -5
- package/dist-server/controllers/shopify/apis/update-order-status.js.map +1 -1
- package/dist-server/controllers/shopify/apis/update-store-product-price.js +29 -0
- package/dist-server/controllers/shopify/apis/update-store-product-price.js.map +1 -0
- package/dist-server/controllers/shopify/apis/update-store-product-stock.js +24 -0
- package/dist-server/controllers/shopify/apis/update-store-product-stock.js.map +1 -0
- package/dist-server/controllers/shopify/apis/update-store-product-variation-price.js +29 -0
- package/dist-server/controllers/shopify/apis/update-store-product-variation-price.js.map +1 -0
- package/dist-server/controllers/shopify/apis/update-store-product-variation-stock.js +1 -1
- package/dist-server/controllers/shopify/apis/update-store-product-variation-stock.js.map +1 -1
- package/dist-server/controllers/shopify/shopify.js +36 -0
- package/dist-server/controllers/shopify/shopify.js.map +1 -1
- package/dist-server/controllers/store-api/index.js +21 -0
- package/dist-server/controllers/store-api/index.js.map +1 -1
- package/dist-server/controllers/tiktok/apis/echo.js +19 -0
- package/dist-server/controllers/tiktok/apis/echo.js.map +1 -0
- package/dist-server/controllers/tiktok/apis/get-store-order-document.js +27 -0
- package/dist-server/controllers/tiktok/apis/get-store-order-document.js.map +1 -0
- package/dist-server/controllers/tiktok/apis/get-store-order-package.js +47 -0
- package/dist-server/controllers/tiktok/apis/get-store-order-package.js.map +1 -0
- package/dist-server/controllers/tiktok/apis/get-store-order-packages.js +39 -0
- package/dist-server/controllers/tiktok/apis/get-store-order-packages.js.map +1 -0
- package/dist-server/controllers/tiktok/apis/get-store-order.js +140 -0
- package/dist-server/controllers/tiktok/apis/get-store-order.js.map +1 -0
- package/dist-server/controllers/tiktok/apis/get-store-orders.js +49 -0
- package/dist-server/controllers/tiktok/apis/get-store-orders.js.map +1 -0
- package/dist-server/controllers/tiktok/apis/get-store-product-attributes.js +30 -0
- package/dist-server/controllers/tiktok/apis/get-store-product-attributes.js.map +1 -0
- package/dist-server/controllers/tiktok/apis/get-store-product-categories.js +28 -0
- package/dist-server/controllers/tiktok/apis/get-store-product-categories.js.map +1 -0
- package/dist-server/controllers/tiktok/apis/get-store-product.js +91 -0
- package/dist-server/controllers/tiktok/apis/get-store-product.js.map +1 -0
- package/dist-server/controllers/tiktok/apis/get-store-products.js +41 -0
- package/dist-server/controllers/tiktok/apis/get-store-products.js.map +1 -0
- package/dist-server/controllers/tiktok/apis/index.js +30 -0
- package/dist-server/controllers/tiktok/apis/index.js.map +1 -0
- package/dist-server/controllers/tiktok/apis/update-order-status.js +28 -0
- package/dist-server/controllers/tiktok/apis/update-order-status.js.map +1 -0
- package/dist-server/controllers/tiktok/apis/update-store-product-variation-price.js +28 -0
- package/dist-server/controllers/tiktok/apis/update-store-product-variation-price.js.map +1 -0
- package/dist-server/controllers/tiktok/apis/update-store-product-variation-stock.js +32 -0
- package/dist-server/controllers/tiktok/apis/update-store-product-variation-stock.js.map +1 -0
- package/dist-server/controllers/tiktok/client/index.js +19 -0
- package/dist-server/controllers/tiktok/client/index.js.map +1 -0
- package/dist-server/controllers/tiktok/client/signature.js +63 -0
- package/dist-server/controllers/tiktok/client/signature.js.map +1 -0
- package/dist-server/controllers/tiktok/client/tiktok.js +109 -0
- package/dist-server/controllers/tiktok/client/tiktok.js.map +1 -0
- package/dist-server/controllers/tiktok/client/types.js +3 -0
- package/dist-server/controllers/tiktok/client/types.js.map +1 -0
- package/dist-server/controllers/tiktok/index.js +34 -0
- package/dist-server/controllers/tiktok/index.js.map +1 -0
- package/dist-server/controllers/tiktok/platform-action.js +53 -0
- package/dist-server/controllers/tiktok/platform-action.js.map +1 -0
- package/dist-server/controllers/woocommerce/apis/get-store-orders.js +8 -6
- package/dist-server/controllers/woocommerce/apis/get-store-orders.js.map +1 -1
- package/dist-server/controllers/woocommerce/apis/get-store-products.js +38 -11
- package/dist-server/controllers/woocommerce/apis/get-store-products.js.map +1 -1
- package/dist-server/controllers/woocommerce/apis/update-order-status.js +17 -15
- package/dist-server/controllers/woocommerce/apis/update-order-status.js.map +1 -1
- package/dist-server/controllers/woocommerce/apis/update-store-product-variation-price.js +1 -1
- package/dist-server/controllers/woocommerce/apis/update-store-product-variation-price.js.map +1 -1
- package/dist-server/graphql/resolvers/marketplace-store/lazada/generate-lazada-access-token.js +2 -5
- package/dist-server/graphql/resolvers/marketplace-store/lazada/generate-lazada-access-token.js.map +1 -1
- package/dist-server/graphql/resolvers/marketplace-store/magento/activate-magento-store.js +2 -2
- package/dist-server/graphql/resolvers/marketplace-store/magento/activate-magento-store.js.map +1 -1
- package/dist-server/graphql/resolvers/marketplace-store/shopee/generate-shopee-access-token.js +2 -2
- package/dist-server/graphql/resolvers/marketplace-store/shopee/generate-shopee-access-token.js.map +1 -1
- package/dist-server/graphql/resolvers/marketplace-store/zalora/generate-zalora-access-token.js +2 -5
- package/dist-server/graphql/resolvers/marketplace-store/zalora/generate-zalora-access-token.js.map +1 -1
- package/dist-server/graphql/resolvers/marketplace-transporter/create-marketplace-transporter.js +2 -5
- package/dist-server/graphql/resolvers/marketplace-transporter/create-marketplace-transporter.js.map +1 -1
- package/dist-server/routers/magento-private-router.js +2 -2
- package/dist-server/routers/magento-private-router.js.map +1 -1
- package/dist-server/routers/shopify-install-private-router.js +2 -2
- package/dist-server/routers/shopify-install-private-router.js.map +1 -1
- package/dist-server/routers/shopify-private-router.js +2 -2
- package/dist-server/routers/shopify-private-router.js.map +1 -1
- package/dist-server/routers/shopify-public-router.js +2 -2
- package/dist-server/routers/shopify-public-router.js.map +1 -1
- package/dist-server/routers/woocommerce-router.js +2 -2
- package/dist-server/routers/woocommerce-router.js.map +1 -1
- package/package.json +15 -15
- package/server/controllers/index.ts +1 -0
- package/server/controllers/lazada/apis/get-store-orders.ts +3 -3
- package/server/controllers/lazada/apis/update-store-product-stock.ts +2 -2
- package/server/controllers/lazada/apis/update-store-product-variation-stock.ts +2 -2
- package/server/controllers/magento/apis/get-store-order.ts +15 -0
- package/server/controllers/magento/apis/get-store-orders.ts +40 -7
- package/server/controllers/magento/apis/get-store-product-categories.ts +43 -0
- package/server/controllers/magento/apis/get-store-products.ts +35 -11
- package/server/controllers/magento/apis/get-store-stock-item.ts +1 -1
- package/server/controllers/magento/apis/index.ts +5 -0
- package/server/controllers/magento/apis/update-order-status.ts +56 -0
- package/server/controllers/magento/apis/update-store-product-price.ts +24 -0
- package/server/controllers/magento/apis/update-store-product-stock.ts +1 -1
- package/server/controllers/magento/apis/update-store-product-variation-price.ts +24 -0
- package/server/controllers/magento/apis/update-store-product-variation-stock.ts +1 -1
- package/server/controllers/magento/magento.ts +5 -4
- package/server/controllers/magento/platform-action.ts +1 -0
- package/server/controllers/shopee/apis/get-store-order-payout-dates.ts +3 -3
- package/server/controllers/shopee/apis/get-store-orders.ts +3 -3
- package/server/controllers/shopify/apis/get-store-orders.ts +74 -13
- package/server/controllers/shopify/apis/get-store-product-variation-stock.ts +17 -0
- package/server/controllers/shopify/apis/get-store-products.ts +38 -3
- package/server/controllers/shopify/apis/index.ts +4 -0
- package/server/controllers/shopify/apis/update-order-status.ts +17 -5
- package/server/controllers/shopify/apis/update-store-product-price.ts +26 -0
- package/server/controllers/shopify/apis/update-store-product-stock.ts +20 -0
- package/server/controllers/shopify/apis/update-store-product-variation-price.ts +26 -0
- package/server/controllers/shopify/apis/update-store-product-variation-stock.ts +1 -1
- package/server/controllers/shopify/shopify.ts +41 -0
- package/server/controllers/store-api/index.ts +9 -0
- package/server/controllers/tiktok/apis/echo.ts +14 -0
- package/server/controllers/tiktok/apis/get-store-order-document.ts +26 -0
- package/server/controllers/tiktok/apis/get-store-order-package.ts +46 -0
- package/server/controllers/tiktok/apis/get-store-order-packages.ts +43 -0
- package/server/controllers/tiktok/apis/get-store-order.ts +174 -0
- package/server/controllers/tiktok/apis/get-store-orders.ts +55 -0
- package/server/controllers/tiktok/apis/get-store-product-attributes.ts +29 -0
- package/server/controllers/tiktok/apis/get-store-product-categories.ts +27 -0
- package/server/controllers/tiktok/apis/get-store-product.ts +95 -0
- package/server/controllers/tiktok/apis/get-store-products.ts +45 -0
- package/server/controllers/tiktok/apis/index.ts +13 -0
- package/server/controllers/tiktok/apis/update-order-status.ts +24 -0
- package/server/controllers/tiktok/apis/update-store-product-variation-price.ts +24 -0
- package/server/controllers/tiktok/apis/update-store-product-variation-stock.ts +28 -0
- package/server/controllers/tiktok/client/index.ts +2 -0
- package/server/controllers/tiktok/client/signature.ts +78 -0
- package/server/controllers/tiktok/client/tiktok.ts +150 -0
- package/server/controllers/tiktok/client/types.ts +20 -0
- package/server/controllers/tiktok/index.ts +8 -0
- package/server/controllers/tiktok/platform-action.ts +72 -0
- package/server/controllers/woocommerce/apis/get-store-orders.ts +9 -6
- package/server/controllers/woocommerce/apis/get-store-products.ts +47 -20
- package/server/controllers/woocommerce/apis/update-order-status.ts +18 -14
- package/server/controllers/woocommerce/apis/update-store-product-variation-price.ts +1 -1
- package/server/graphql/resolvers/marketplace-store/lazada/generate-lazada-access-token.ts +2 -2
- package/server/graphql/resolvers/marketplace-store/magento/activate-magento-store.ts +2 -2
- package/server/graphql/resolvers/marketplace-store/shopee/generate-shopee-access-token.ts +2 -2
- package/server/graphql/resolvers/marketplace-store/zalora/generate-zalora-access-token.ts +2 -2
- package/server/graphql/resolvers/marketplace-transporter/create-marketplace-transporter.ts +2 -2
- package/server/routers/magento-private-router.ts +2 -2
- package/server/routers/shopify-install-private-router.ts +2 -2
- package/server/routers/shopify-private-router.ts +2 -2
- package/server/routers/shopify-public-router.ts +2 -2
- package/server/routers/woocommerce-router.ts +2 -2
|
@@ -5,22 +5,28 @@ export function getStoreOrders() {
|
|
|
5
5
|
method: 'get',
|
|
6
6
|
path: '/orders.json',
|
|
7
7
|
denormalize(req) {
|
|
8
|
-
var { pagination,
|
|
8
|
+
var { pagination, fromCreatedDate, toCreatedDate, fromUpdatedDate, toUpdatedDate, lastOrderId } = req || {}
|
|
9
9
|
var { page = 0, limit = 100 } = pagination || {}
|
|
10
10
|
|
|
11
|
-
var created_at_min = new Date(fromDate).toISOString()
|
|
12
|
-
var created_at_max = new Date(toDate).toISOString()
|
|
13
|
-
/* Must include only create_time or update_time in the request. */
|
|
14
|
-
// var update_time_from = lastOneDay
|
|
15
|
-
// var update_time_to = now
|
|
16
|
-
|
|
17
11
|
var payload: any = {
|
|
18
12
|
limit,
|
|
19
|
-
created_at_min,
|
|
20
|
-
created_at_max,
|
|
21
13
|
status: 'any'
|
|
22
14
|
}
|
|
23
15
|
|
|
16
|
+
if (fromCreatedDate && toCreatedDate) {
|
|
17
|
+
var created_at_min = new Date(fromCreatedDate).toISOString()
|
|
18
|
+
var created_at_max = new Date(toCreatedDate).toISOString()
|
|
19
|
+
payload.created_at_min = created_at_min
|
|
20
|
+
payload.created_at_max = created_at_max
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
if (fromUpdatedDate && toUpdatedDate) {
|
|
24
|
+
var updated_at_min = new Date(fromUpdatedDate).toISOString()
|
|
25
|
+
var updated_at_max = new Date(toUpdatedDate).toISOString()
|
|
26
|
+
payload.updated_at_min = updated_at_min
|
|
27
|
+
payload.updated_at_max = updated_at_max
|
|
28
|
+
}
|
|
29
|
+
|
|
24
30
|
if (lastOrderId) payload.since_id = Number(lastOrderId)
|
|
25
31
|
|
|
26
32
|
return { payload }
|
|
@@ -45,7 +51,9 @@ export function getStoreOrders() {
|
|
|
45
51
|
.map(order => {
|
|
46
52
|
const orderId = order.id
|
|
47
53
|
const fulfillmentStatus = order.fulfillment_status
|
|
54
|
+
const paymentStatus = order?.financial_status || ''
|
|
48
55
|
let orderStatus = order?.cancelled_at ? 'cancelled' : fulfillmentStatus ? fulfillmentStatus : 'unfulfilled'
|
|
56
|
+
let sellercraftStatus = getSellercraftStatus(fulfillmentStatus, paymentStatus)
|
|
49
57
|
|
|
50
58
|
let itemCount: Number = 0
|
|
51
59
|
let result: any
|
|
@@ -63,6 +71,7 @@ export function getStoreOrders() {
|
|
|
63
71
|
orderUpdatedAt: new Date(order.updated_at).toUTCString(),
|
|
64
72
|
discountValue: order.total_discounts,
|
|
65
73
|
status: order.financial_status == 'pending' ? 'unpaid' : orderStatus,
|
|
74
|
+
sellercraftStatus,
|
|
66
75
|
trackingNo: fulfillment.tracking_number,
|
|
67
76
|
shippingProvider: fulfillment.tracking_company,
|
|
68
77
|
recipientAddress:
|
|
@@ -78,7 +87,10 @@ export function getStoreOrders() {
|
|
|
78
87
|
variationId: lineItem.product_exists === true ? lineItem.variant_id : lineItem.id.toString(),
|
|
79
88
|
variationSku: lineItem.sku,
|
|
80
89
|
channelSku: lineItem.sku,
|
|
81
|
-
variationName: lineItem.name
|
|
90
|
+
variationName: lineItem.name,
|
|
91
|
+
originalPrice: lineItem.price,
|
|
92
|
+
total: lineItem.price,
|
|
93
|
+
subtotal: lineItem.price
|
|
82
94
|
}
|
|
83
95
|
})
|
|
84
96
|
}
|
|
@@ -122,7 +134,8 @@ export function getStoreOrders() {
|
|
|
122
134
|
variationId: lineItem.product_exists === true ? lineItem.variant_id : lineItem.id.toString(),
|
|
123
135
|
variationSku: lineItem.sku,
|
|
124
136
|
channelSku: lineItem.sku,
|
|
125
|
-
variationName: lineItem.name
|
|
137
|
+
variationName: lineItem.name,
|
|
138
|
+
originalPrice: lineItem.price
|
|
126
139
|
}
|
|
127
140
|
|
|
128
141
|
lineItems.push(lineItem)
|
|
@@ -135,7 +148,8 @@ export function getStoreOrders() {
|
|
|
135
148
|
variationId: lineItem.product_exists === true ? lineItem.variant_id : lineItem.id.toString(),
|
|
136
149
|
variationSku: lineItem.sku,
|
|
137
150
|
channelSku: lineItem.sku,
|
|
138
|
-
variationName: lineItem.name
|
|
151
|
+
variationName: lineItem.name,
|
|
152
|
+
originalPrice: lineItem.price
|
|
139
153
|
}
|
|
140
154
|
|
|
141
155
|
if (lineItem.qty >= 0) lineItems.push(lineItem)
|
|
@@ -153,6 +167,7 @@ export function getStoreOrders() {
|
|
|
153
167
|
discountValue: order.total_discounts,
|
|
154
168
|
recipientAddress: order.billing_address,
|
|
155
169
|
status: order.financial_status == 'pending' ? 'unpaid' : orderStatus,
|
|
170
|
+
sellercraftStatus,
|
|
156
171
|
reason: order.cancel_reason,
|
|
157
172
|
orderItems: lineItems
|
|
158
173
|
}
|
|
@@ -183,11 +198,44 @@ export function getStoreOrders() {
|
|
|
183
198
|
city,
|
|
184
199
|
state,
|
|
185
200
|
country: country === 'MY' ? 'Malaysia' : country,
|
|
186
|
-
collectionCurrency:
|
|
201
|
+
collectionCurrency: order.currency,
|
|
187
202
|
attentionTo: `${first_name} ${last_name}`
|
|
188
203
|
}
|
|
189
204
|
|
|
190
205
|
result.orderShipping = orderShipping
|
|
206
|
+
|
|
207
|
+
// For SC mapping
|
|
208
|
+
|
|
209
|
+
let shippingAddress = order?.shipping_address
|
|
210
|
+
let billingAddress = order?.billing_address || shippingAddress
|
|
211
|
+
|
|
212
|
+
result.shipping = {
|
|
213
|
+
address_1: shippingAddress.address1,
|
|
214
|
+
address_2: shippingAddress.address2,
|
|
215
|
+
address_3: shippingAddress.province,
|
|
216
|
+
postcode: shippingAddress.zip,
|
|
217
|
+
country: shippingAddress.country_code,
|
|
218
|
+
city: shippingAddress.city,
|
|
219
|
+
first_name: shippingAddress.first_name,
|
|
220
|
+
last_name: shippingAddress.last_name,
|
|
221
|
+
phone: shippingAddress.phone,
|
|
222
|
+
email: order.email
|
|
223
|
+
}
|
|
224
|
+
result.billing = {
|
|
225
|
+
address_1: billingAddress.address1,
|
|
226
|
+
address_2: billingAddress.address2,
|
|
227
|
+
address_3: billingAddress.province,
|
|
228
|
+
postcode: billingAddress.zip,
|
|
229
|
+
country: billingAddress.country_code,
|
|
230
|
+
city: billingAddress.city,
|
|
231
|
+
first_name: billingAddress.first_name,
|
|
232
|
+
last_name: billingAddress.last_name,
|
|
233
|
+
phone: billingAddress.phone,
|
|
234
|
+
email: order.email
|
|
235
|
+
}
|
|
236
|
+
result.isSOF = true
|
|
237
|
+
result.firstName = order?.customer?.first_name || ''
|
|
238
|
+
result.lastName = order?.customer?.last_name || ''
|
|
191
239
|
}
|
|
192
240
|
|
|
193
241
|
itemCount = result.orderItems.length
|
|
@@ -211,3 +259,16 @@ function checkNextPage(link) {
|
|
|
211
259
|
|
|
212
260
|
return nextPage
|
|
213
261
|
}
|
|
262
|
+
|
|
263
|
+
function getSellercraftStatus(fulfillmentStatus, paymentStatus) {
|
|
264
|
+
if (
|
|
265
|
+
(fulfillmentStatus == 'unfulfilled' || !fulfillmentStatus) &&
|
|
266
|
+
(paymentStatus == 'pending' || paymentStatus == 'unpaid')
|
|
267
|
+
)
|
|
268
|
+
return 'payment_pending'
|
|
269
|
+
if ((fulfillmentStatus == 'unfulfilled' || !fulfillmentStatus) && paymentStatus == 'paid') return 'processing'
|
|
270
|
+
if (fulfillmentStatus == 'fulfilled' && paymentStatus == 'paid') return 'shipped'
|
|
271
|
+
if (paymentStatus == 'refunded') return 'refunded'
|
|
272
|
+
if (paymentStatus == 'voided') return 'cancelled'
|
|
273
|
+
if (paymentStatus == 'overdue') return 'cancelled'
|
|
274
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export function getStoreProductVariationStock() {
|
|
2
|
+
return {
|
|
3
|
+
path: '/variants/{variantId}.json',
|
|
4
|
+
method: 'get',
|
|
5
|
+
denormalize(req) {
|
|
6
|
+
let { variantId } = req
|
|
7
|
+
return {
|
|
8
|
+
resource: {
|
|
9
|
+
variantId
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
normalize(res) {
|
|
14
|
+
return res?.variant?.inventory_quantity
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -9,13 +9,18 @@ export function getStoreProducts() {
|
|
|
9
9
|
method: 'get',
|
|
10
10
|
path: '/products.json',
|
|
11
11
|
denormalize(req) {
|
|
12
|
-
var { pagination, pageInfo } = req || {}
|
|
12
|
+
var { pagination, pageInfo, fromUpdatedDate, toUpdatedDate } = req || {}
|
|
13
13
|
var { page, limit } = pagination || { page: 0, limit: 100 }
|
|
14
14
|
|
|
15
15
|
var payload: any = {
|
|
16
16
|
limit: limit
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
+
if (fromUpdatedDate && toUpdatedDate) {
|
|
20
|
+
payload.updated_at_max = toUpdatedDate
|
|
21
|
+
payload.updated_at_min = fromUpdatedDate
|
|
22
|
+
}
|
|
23
|
+
|
|
19
24
|
if (pageInfo) payload.page_info = pageInfo
|
|
20
25
|
|
|
21
26
|
return { payload }
|
|
@@ -72,7 +77,24 @@ export function getStoreProducts() {
|
|
|
72
77
|
marketplaceStatus: product.status,
|
|
73
78
|
hasVariation: true,
|
|
74
79
|
categoryId: product?.collection_id ? product.collection_id : null,
|
|
75
|
-
attributes:
|
|
80
|
+
attributes: product?.options?.map(option => {
|
|
81
|
+
return {
|
|
82
|
+
native_attribute_id: option.id,
|
|
83
|
+
attribute_key: option.name,
|
|
84
|
+
values: option.values
|
|
85
|
+
}
|
|
86
|
+
}) || [],
|
|
87
|
+
sellercraftAttributes: [
|
|
88
|
+
{
|
|
89
|
+
native_attribute_id: 'description',
|
|
90
|
+
attribute_key: 'description',
|
|
91
|
+
display_name: 'Description',
|
|
92
|
+
values: [product.body_html]
|
|
93
|
+
}
|
|
94
|
+
],
|
|
95
|
+
images: product?.images?.map(image => {
|
|
96
|
+
return image.src
|
|
97
|
+
}) || [],
|
|
76
98
|
variations: productVariations.map(variant => {
|
|
77
99
|
return {
|
|
78
100
|
variationId: variant.id,
|
|
@@ -83,10 +105,14 @@ export function getStoreProducts() {
|
|
|
83
105
|
inventoryPolicy: variant.inventory_policy,
|
|
84
106
|
inventoryItemId: variant.inventory_item_id,
|
|
85
107
|
locationId: variant.location_id,
|
|
108
|
+
extraMetadata: {
|
|
109
|
+
inventoryItemId: variant.inventory_item_id,
|
|
110
|
+
locationId: variant.location_id,
|
|
111
|
+
},
|
|
86
112
|
primaryUnit: variant.weight_unit,
|
|
87
113
|
primaryUnitValue: variant.weight,
|
|
88
114
|
costPrice: variant.price,
|
|
89
|
-
sellPrice: variant.compare_at_price,
|
|
115
|
+
sellPrice: variant.compare_at_price || variant.price,
|
|
90
116
|
attributes: [
|
|
91
117
|
{
|
|
92
118
|
attributeId: variant.option1,
|
|
@@ -101,6 +127,15 @@ export function getStoreProducts() {
|
|
|
101
127
|
name: variant.option3
|
|
102
128
|
}
|
|
103
129
|
],
|
|
130
|
+
sellercraftAttributes: product?.options.map(option => {
|
|
131
|
+
return {
|
|
132
|
+
native_attribute_id: option.name,
|
|
133
|
+
attribute_key: option.name,
|
|
134
|
+
display_name: option.name,
|
|
135
|
+
values: [variant[`option${option.position}`]]
|
|
136
|
+
}
|
|
137
|
+
}) || [],
|
|
138
|
+
weight: variant.grams,
|
|
104
139
|
presentmentPrices: variant?.presentment_prices
|
|
105
140
|
? variant.presentment_prices.map(presentmentPrice => {
|
|
106
141
|
return {
|
|
@@ -7,3 +7,7 @@ export * from './update-store-product-variation-stock'
|
|
|
7
7
|
export * from './update-order-status'
|
|
8
8
|
export * from './set-store-order-status-ready-to-ship'
|
|
9
9
|
export * from './get-store-order'
|
|
10
|
+
export * from './update-store-product-variation-price'
|
|
11
|
+
export * from './update-store-product-price'
|
|
12
|
+
export * from './update-store-product-stock'
|
|
13
|
+
export * from './get-store-product-variation-stock'
|
|
@@ -1,15 +1,27 @@
|
|
|
1
|
-
/* https://shopify.dev/api/admin-rest/2021-10/resources/fulfillment#[post]/admin/api/2021-10/
|
|
1
|
+
/* https://shopify.dev/api/admin-rest/2021-10/resources/fulfillment#[post]/admin/api/2021-10/fulfillments.json */
|
|
2
2
|
|
|
3
3
|
export function updateOrderStatus() {
|
|
4
4
|
return {
|
|
5
|
-
path: '/orders/{orderId}/fulfillments/{fulfillmentId}/complete.json',
|
|
6
5
|
method: 'post',
|
|
6
|
+
path: '/orders/{orderId}/fulfillments.json',
|
|
7
7
|
denormalize(req) {
|
|
8
|
-
const { orderId,
|
|
8
|
+
const { orderId, trackingNo, locations, carrier, status } = req || {}
|
|
9
|
+
|
|
10
|
+
if (status != 'READY_TO_SHIP') {
|
|
11
|
+
throw new Error('Shopify cannot create fulfillment, order status is not READY_TO_SHIP')
|
|
12
|
+
}
|
|
13
|
+
|
|
9
14
|
return {
|
|
15
|
+
payload: {
|
|
16
|
+
fulfillment: {
|
|
17
|
+
location_id: locations[0],
|
|
18
|
+
tracking_number: trackingNo,
|
|
19
|
+
notify_customer: true,
|
|
20
|
+
tracking_company: carrier
|
|
21
|
+
}
|
|
22
|
+
},
|
|
10
23
|
resource: {
|
|
11
|
-
orderId
|
|
12
|
-
fulfillmentId: fulfillmentId.toString()
|
|
24
|
+
orderId
|
|
13
25
|
}
|
|
14
26
|
}
|
|
15
27
|
},
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/*https://shopify.dev/api/admin-rest/2021-10/resources/product-variant#put-variants-variant-id */
|
|
2
|
+
|
|
3
|
+
export function updateStoreProductPrice() {
|
|
4
|
+
return {
|
|
5
|
+
path: '/variants/{variantId}.json',
|
|
6
|
+
method: 'put',
|
|
7
|
+
denormalize(req) {
|
|
8
|
+
let { costPrice, sellPrice, variationId } = req
|
|
9
|
+
|
|
10
|
+
return {
|
|
11
|
+
payload: {
|
|
12
|
+
variant: {
|
|
13
|
+
price: costPrice,
|
|
14
|
+
compare_at_price: sellPrice
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
resource: {
|
|
18
|
+
variantId: variationId
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
normalize(res) {
|
|
23
|
+
return res
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export function updateStoreProductStock() {
|
|
2
|
+
return {
|
|
3
|
+
method: 'post',
|
|
4
|
+
path: '/inventory_levels/adjust.json',
|
|
5
|
+
denormalize(req) {
|
|
6
|
+
const { inventoryItemId, locationId: location_id, qty } = (Array.isArray(req) ? req[0] : req) || {}
|
|
7
|
+
|
|
8
|
+
return {
|
|
9
|
+
payload: {
|
|
10
|
+
inventory_item_id: parseInt(inventoryItemId),
|
|
11
|
+
location_id,
|
|
12
|
+
available_adjustment: parseInt(qty)
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
normalize(res) {
|
|
17
|
+
return res
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/*https://shopify.dev/api/admin-rest/2021-10/resources/product-variant#put-variants-variant-id */
|
|
2
|
+
|
|
3
|
+
export function updateStoreProductVariationPrice() {
|
|
4
|
+
return {
|
|
5
|
+
path: '/variants/{variantId}.json',
|
|
6
|
+
method: 'put',
|
|
7
|
+
denormalize(req) {
|
|
8
|
+
let { costPrice, sellPrice, variationId } = req
|
|
9
|
+
|
|
10
|
+
return {
|
|
11
|
+
payload: {
|
|
12
|
+
variant: {
|
|
13
|
+
price: costPrice,
|
|
14
|
+
compare_at_price: sellPrice
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
resource: {
|
|
18
|
+
variantId: variationId
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
normalize(res) {
|
|
23
|
+
return res
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -3,7 +3,7 @@ export function updateStoreProductVariationStock() {
|
|
|
3
3
|
method: 'post',
|
|
4
4
|
path: '/inventory_levels/adjust.json',
|
|
5
5
|
denormalize(req) {
|
|
6
|
-
const { inventoryItemId, locationId: location_id, qty } = req[0]
|
|
6
|
+
const { inventoryItemId, locationId: location_id, qty } = (Array.isArray(req) ? req[0] : req) || {}
|
|
7
7
|
|
|
8
8
|
return {
|
|
9
9
|
payload: {
|
|
@@ -2,6 +2,8 @@ import fetch from 'node-fetch'
|
|
|
2
2
|
import crypto from 'crypto'
|
|
3
3
|
import querystring from 'querystring'
|
|
4
4
|
|
|
5
|
+
import { createPayloadLog } from '@things-factory/integration-base'
|
|
6
|
+
|
|
5
7
|
const debug = require('debug')('things-factory:integration-marketplace:shopify')
|
|
6
8
|
|
|
7
9
|
export type ShopifyConfig = {
|
|
@@ -77,6 +79,11 @@ export class Shopify {
|
|
|
77
79
|
var result = await response.json()
|
|
78
80
|
result.link = link
|
|
79
81
|
|
|
82
|
+
try {
|
|
83
|
+
createPayloadLog(shop, path, qs || '', result, {
|
|
84
|
+
state: { domain: null }
|
|
85
|
+
})
|
|
86
|
+
} catch (e) {}
|
|
80
87
|
debug('response result', result)
|
|
81
88
|
|
|
82
89
|
return result
|
|
@@ -101,6 +108,40 @@ export class Shopify {
|
|
|
101
108
|
})
|
|
102
109
|
|
|
103
110
|
const result = await response.json()
|
|
111
|
+
try {
|
|
112
|
+
createPayloadLog(shop, path, jsondata, result, {
|
|
113
|
+
state: { domain: null }
|
|
114
|
+
})
|
|
115
|
+
} catch (e) {}
|
|
116
|
+
debug('response result', result)
|
|
117
|
+
|
|
118
|
+
return result
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
async put(path: string, data: any = {}) {
|
|
122
|
+
const { shop, accessToken } = this.config
|
|
123
|
+
|
|
124
|
+
debug('data', data)
|
|
125
|
+
|
|
126
|
+
const jsondata = JSON.stringify(data)
|
|
127
|
+
|
|
128
|
+
const endpoint = `https://${shop}.myshopify.com/admin/api/2020-01${path}`
|
|
129
|
+
|
|
130
|
+
const response = await fetch(endpoint, {
|
|
131
|
+
method: 'put',
|
|
132
|
+
headers: {
|
|
133
|
+
'Content-Type': 'application/json',
|
|
134
|
+
'X-Shopify-Access-Token': accessToken
|
|
135
|
+
},
|
|
136
|
+
body: jsondata
|
|
137
|
+
})
|
|
138
|
+
|
|
139
|
+
const result = await response.json()
|
|
140
|
+
try {
|
|
141
|
+
createPayloadLog(shop, path, jsondata, result, {
|
|
142
|
+
state: { domain: null }
|
|
143
|
+
})
|
|
144
|
+
} catch (e) {}
|
|
104
145
|
debug('response result', result)
|
|
105
146
|
|
|
106
147
|
return result
|
|
@@ -66,6 +66,12 @@ export class StoreAPI {
|
|
|
66
66
|
@api
|
|
67
67
|
static getStoreOrder(store, req): any {}
|
|
68
68
|
|
|
69
|
+
@api
|
|
70
|
+
static getStoreOrderPackages(store, req): any {}
|
|
71
|
+
|
|
72
|
+
@api
|
|
73
|
+
static getStoreOrderPackage(store, req): any {}
|
|
74
|
+
|
|
69
75
|
@api
|
|
70
76
|
static getStoreOrderItems(store, req): any {}
|
|
71
77
|
|
|
@@ -185,4 +191,7 @@ export class StoreAPI {
|
|
|
185
191
|
|
|
186
192
|
@api
|
|
187
193
|
static getStoreOrderPayoutDates(store, req): any {}
|
|
194
|
+
|
|
195
|
+
@api
|
|
196
|
+
static getStoreProductVariationStock(store, req): any {}
|
|
188
197
|
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/* https://bytedance.feishu.cn/docs/doccnDyz5Bbk26iOdejbBRBlLrb#ytBXoS */
|
|
2
|
+
|
|
3
|
+
export function getStoreOrderDocument() {
|
|
4
|
+
return {
|
|
5
|
+
method: 'get',
|
|
6
|
+
path: '/api/fulfillment/shipping_document',
|
|
7
|
+
denormalize(req) {
|
|
8
|
+
var { packageId, documentType } = req || {}
|
|
9
|
+
|
|
10
|
+
return { payload: { package_id: packageId, document_type: documentType } }
|
|
11
|
+
},
|
|
12
|
+
async normalize(res) {
|
|
13
|
+
const { data } = res
|
|
14
|
+
|
|
15
|
+
let result: any[] = [
|
|
16
|
+
{
|
|
17
|
+
file: data.doc_url,
|
|
18
|
+
fileTypeValue: 'AWB',
|
|
19
|
+
mimeType: 'application/pdf'
|
|
20
|
+
}
|
|
21
|
+
]
|
|
22
|
+
|
|
23
|
+
return result
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/* https://bytedance.feishu.cn/docs/doccnDyz5Bbk26iOdejbBRBlLrb#ytBXoS */
|
|
2
|
+
|
|
3
|
+
export function getStoreOrderPackage() {
|
|
4
|
+
return {
|
|
5
|
+
method: 'get',
|
|
6
|
+
path: '/api/fulfillment/detail',
|
|
7
|
+
denormalize(req) {
|
|
8
|
+
var { packageId } = req || {}
|
|
9
|
+
|
|
10
|
+
return { payload: { package_id: packageId } }
|
|
11
|
+
},
|
|
12
|
+
async normalize(res) {
|
|
13
|
+
const { data } = res
|
|
14
|
+
|
|
15
|
+
let result: any = {
|
|
16
|
+
packageId: data.package_id,
|
|
17
|
+
orderInfoList: data.order_info_list.map(itm => {
|
|
18
|
+
return {
|
|
19
|
+
orderId: itm.order_id,
|
|
20
|
+
skuList: itm.sku_list.map(sku => {
|
|
21
|
+
return {
|
|
22
|
+
skuId: sku.sku_id,
|
|
23
|
+
skuName: sku.sku_name,
|
|
24
|
+
skuImage: sku.sku_image,
|
|
25
|
+
quantity: sku.quantity
|
|
26
|
+
}
|
|
27
|
+
})
|
|
28
|
+
}
|
|
29
|
+
}),
|
|
30
|
+
packageStatus: data.package_status,
|
|
31
|
+
deliveryOption: data.delivery_option,
|
|
32
|
+
shippingProvider: data.shipping_provider,
|
|
33
|
+
shippingProviderId: data.shipping_provider_id,
|
|
34
|
+
trackingNumber: data.tracking_number,
|
|
35
|
+
orderListIdList: data.order_line_id_list,
|
|
36
|
+
pickUpType: data.pick_up_type,
|
|
37
|
+
pickUpStartTime: data.pick_up_start_time,
|
|
38
|
+
pickupEndTime: data.pick_up_end_time,
|
|
39
|
+
createTime: data.create_time,
|
|
40
|
+
updateTime: data.update_time
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
return result
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/* https://bytedance.feishu.cn/wiki/wikcntMLczW460imZUfYqaa1Dng#jIY8hJ */
|
|
2
|
+
|
|
3
|
+
import { StoreAPI } from '../../store-api'
|
|
4
|
+
|
|
5
|
+
export function getStoreOrderPackages() {
|
|
6
|
+
return {
|
|
7
|
+
method: 'post',
|
|
8
|
+
path: '/api/fulfillment/search',
|
|
9
|
+
denormalize(req) {
|
|
10
|
+
var { pagination, fromDate, toDate, nextCursor } = req || {}
|
|
11
|
+
var { page, limit } = pagination || { page: 0, limit: 100 }
|
|
12
|
+
|
|
13
|
+
var create_time_from = Math.floor(new Date(fromDate).getTime() / 1000)
|
|
14
|
+
var create_time_to = Math.floor(new Date(toDate).getTime() / 1000)
|
|
15
|
+
|
|
16
|
+
var payload = {
|
|
17
|
+
page_size: limit,
|
|
18
|
+
cursor: nextCursor,
|
|
19
|
+
create_time_from,
|
|
20
|
+
create_time_to
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
return { payload }
|
|
24
|
+
},
|
|
25
|
+
async normalize(res, { store }) {
|
|
26
|
+
const { data } = res
|
|
27
|
+
|
|
28
|
+
var more: boolean = data?.more || false
|
|
29
|
+
var nextCursor: string = more ? data.next_cursor : null
|
|
30
|
+
const packageList: any[] = data?.package_list || []
|
|
31
|
+
|
|
32
|
+
let results: any[] = []
|
|
33
|
+
for (let i = 0; i < packageList.length; i++) {
|
|
34
|
+
const packageObj: any = packageList[i]
|
|
35
|
+
const packageDetail: any = await StoreAPI.getStoreOrderPackage(store, { packageId: packageObj.package_id })
|
|
36
|
+
|
|
37
|
+
results.push({ ...packageDetail })
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
return { results, more, nextCursor }
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|