@things-factory/integration-marketplace 5.0.14 → 6.0.0-alpha.3
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/lazada/client/lazada.js +2 -2
- package/dist-server/controllers/lazada/client/lazada.js.map +1 -1
- package/dist-server/controllers/magento/apis/create-order-ship.js +1 -1
- package/dist-server/controllers/magento/apis/create-order-ship.js.map +1 -1
- package/dist-server/controllers/shopee/index.js +10 -1
- package/dist-server/controllers/shopee/index.js.map +1 -1
- package/dist-server/controllers/shopee/platform-action.js +33 -1
- package/dist-server/controllers/shopee/platform-action.js.map +1 -1
- package/dist-server/controllers/shopee/refresh-access-token.js +2 -1
- package/dist-server/controllers/shopee/refresh-access-token.js.map +1 -1
- package/dist-server/controllers/shopee/shopee.js +81 -0
- package/dist-server/controllers/shopee/shopee.js.map +1 -1
- package/dist-server/controllers/shopify/apis/get-store-orders.js +45 -30
- package/dist-server/controllers/shopify/apis/get-store-orders.js.map +1 -1
- package/dist-server/controllers/shopify/apis/get-store-products.js +5 -10
- package/dist-server/controllers/shopify/apis/get-store-products.js.map +1 -1
- package/dist-server/controllers/shopify/shopify.js +15 -19
- package/dist-server/controllers/shopify/shopify.js.map +1 -1
- package/dist-server/controllers/store-api/index.js +32 -4
- package/dist-server/controllers/store-api/index.js.map +1 -1
- package/dist-server/controllers/tiktok/apis/get-store-order.js +20 -18
- package/dist-server/controllers/tiktok/apis/get-store-order.js.map +1 -1
- package/dist-server/controllers/tiktok/apis/get-store-orders.js +1 -1
- package/dist-server/controllers/tiktok/apis/get-store-orders.js.map +1 -1
- package/dist-server/controllers/tiktok/apis/update-order-status.js +4 -4
- package/dist-server/controllers/tiktok/apis/update-order-status.js.map +1 -1
- package/dist-server/controllers/tiktok/platform-action.js +14 -3
- package/dist-server/controllers/tiktok/platform-action.js.map +1 -1
- package/dist-server/engine/connector/lazada-connector.js +5 -5
- package/dist-server/engine/connector/lazada-connector.js.map +1 -1
- package/dist-server/engine/task/marketplace-api.js +4 -4
- package/dist-server/engine/task/marketplace-api.js.map +1 -1
- package/dist-server/entities/marketplace-distributor.js +3 -4
- package/dist-server/entities/marketplace-distributor.js.map +1 -1
- package/dist-server/entities/marketplace-setting.js +3 -4
- package/dist-server/entities/marketplace-setting.js.map +1 -1
- package/dist-server/entities/marketplace-store.js +3 -4
- package/dist-server/entities/marketplace-store.js.map +1 -1
- package/dist-server/entities/marketplace-transporter.js +6 -6
- package/dist-server/entities/marketplace-transporter.js.map +1 -1
- package/dist-server/graphql/resolvers/marketplace-distributor/create-marketplace-distributor.js +1 -1
- package/dist-server/graphql/resolvers/marketplace-distributor/create-marketplace-distributor.js.map +1 -1
- package/dist-server/graphql/resolvers/marketplace-distributor/delete-marketplace-distributor.js +2 -2
- package/dist-server/graphql/resolvers/marketplace-distributor/delete-marketplace-distributor.js.map +1 -1
- package/dist-server/graphql/resolvers/marketplace-distributor/delete-marketplace-distributors.js +3 -2
- package/dist-server/graphql/resolvers/marketplace-distributor/delete-marketplace-distributors.js.map +1 -1
- package/dist-server/graphql/resolvers/marketplace-distributor/marketplace-distributor-query.js +8 -6
- package/dist-server/graphql/resolvers/marketplace-distributor/marketplace-distributor-query.js.map +1 -1
- package/dist-server/graphql/resolvers/marketplace-distributor/update-marketplace-distributor.js +4 -2
- package/dist-server/graphql/resolvers/marketplace-distributor/update-marketplace-distributor.js.map +1 -1
- package/dist-server/graphql/resolvers/marketplace-distributor/update-multiple-marketplace-distributor.js +6 -3
- package/dist-server/graphql/resolvers/marketplace-distributor/update-multiple-marketplace-distributor.js.map +1 -1
- package/dist-server/graphql/resolvers/marketplace-setting/create-marketplace-setting.js +2 -2
- package/dist-server/graphql/resolvers/marketplace-setting/create-marketplace-setting.js.map +1 -1
- package/dist-server/graphql/resolvers/marketplace-setting/delete-marketplace-setting.js +2 -2
- package/dist-server/graphql/resolvers/marketplace-setting/delete-marketplace-setting.js.map +1 -1
- package/dist-server/graphql/resolvers/marketplace-setting/delete-marketplace-settings.js +2 -1
- package/dist-server/graphql/resolvers/marketplace-setting/delete-marketplace-settings.js.map +1 -1
- package/dist-server/graphql/resolvers/marketplace-setting/marketplace-setting-query.js +7 -5
- package/dist-server/graphql/resolvers/marketplace-setting/marketplace-setting-query.js.map +1 -1
- package/dist-server/graphql/resolvers/marketplace-setting/update-marketplace-setting.js +8 -2
- package/dist-server/graphql/resolvers/marketplace-setting/update-marketplace-setting.js.map +1 -1
- package/dist-server/graphql/resolvers/marketplace-setting/update-multiple-marketplace-setting.js +6 -3
- package/dist-server/graphql/resolvers/marketplace-setting/update-multiple-marketplace-setting.js.map +1 -1
- package/dist-server/graphql/resolvers/marketplace-store/create-marketplace-store.js +2 -2
- package/dist-server/graphql/resolvers/marketplace-store/create-marketplace-store.js.map +1 -1
- package/dist-server/graphql/resolvers/marketplace-store/delete-marketplace-store.js +4 -4
- package/dist-server/graphql/resolvers/marketplace-store/delete-marketplace-store.js.map +1 -1
- package/dist-server/graphql/resolvers/marketplace-store/delete-marketplace-stores.js +4 -3
- package/dist-server/graphql/resolvers/marketplace-store/delete-marketplace-stores.js.map +1 -1
- package/dist-server/graphql/resolvers/marketplace-store/lazada/deactivate-lazada-store.js +3 -3
- package/dist-server/graphql/resolvers/marketplace-store/lazada/deactivate-lazada-store.js.map +1 -1
- package/dist-server/graphql/resolvers/marketplace-store/lazada/generate-lazada-access-token.js +1 -1
- package/dist-server/graphql/resolvers/marketplace-store/lazada/generate-lazada-access-token.js.map +1 -1
- package/dist-server/graphql/resolvers/marketplace-store/lazada/get-lazada-auth-url.js.map +1 -1
- package/dist-server/graphql/resolvers/marketplace-store/magento/activate-magento-store.js +4 -2
- package/dist-server/graphql/resolvers/marketplace-store/magento/activate-magento-store.js.map +1 -1
- package/dist-server/graphql/resolvers/marketplace-store/magento/deactivate-magento-store.js +3 -4
- package/dist-server/graphql/resolvers/marketplace-store/magento/deactivate-magento-store.js.map +1 -1
- package/dist-server/graphql/resolvers/marketplace-store/magento/get-magento-auth-url.js +2 -2
- package/dist-server/graphql/resolvers/marketplace-store/magento/get-magento-auth-url.js.map +1 -1
- package/dist-server/graphql/resolvers/marketplace-store/marketplace-store.js +3 -3
- package/dist-server/graphql/resolvers/marketplace-store/marketplace-store.js.map +1 -1
- package/dist-server/graphql/resolvers/marketplace-store/marketplace-stores.js +1 -2
- package/dist-server/graphql/resolvers/marketplace-store/marketplace-stores.js.map +1 -1
- package/dist-server/graphql/resolvers/marketplace-store/shopee/deactivate-shopee-store.js +3 -3
- package/dist-server/graphql/resolvers/marketplace-store/shopee/deactivate-shopee-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/shopee/get-shopee-auth-url.js.map +1 -1
- package/dist-server/graphql/resolvers/marketplace-store/shopify/deactivate-shopify-store.js +3 -3
- package/dist-server/graphql/resolvers/marketplace-store/shopify/deactivate-shopify-store.js.map +1 -1
- package/dist-server/graphql/resolvers/marketplace-store/shopify/get-shopify-auth-url.js +3 -3
- package/dist-server/graphql/resolvers/marketplace-store/shopify/get-shopify-auth-url.js.map +1 -1
- package/dist-server/graphql/resolvers/marketplace-store/update-marketplace-store.js +3 -3
- package/dist-server/graphql/resolvers/marketplace-store/update-marketplace-store.js.map +1 -1
- package/dist-server/graphql/resolvers/marketplace-store/update-multiple-marketplace-store.js +3 -3
- package/dist-server/graphql/resolvers/marketplace-store/update-multiple-marketplace-store.js.map +1 -1
- package/dist-server/graphql/resolvers/marketplace-store/woocommerce/deactivate-woocommerce-store.js +4 -4
- package/dist-server/graphql/resolvers/marketplace-store/woocommerce/deactivate-woocommerce-store.js.map +1 -1
- package/dist-server/graphql/resolvers/marketplace-store/woocommerce/get-woocommerce-auth-url.js +2 -2
- package/dist-server/graphql/resolvers/marketplace-store/woocommerce/get-woocommerce-auth-url.js.map +1 -1
- package/dist-server/graphql/resolvers/marketplace-store/zalora/deactivate-zalora-store.js +3 -3
- package/dist-server/graphql/resolvers/marketplace-store/zalora/deactivate-zalora-store.js.map +1 -1
- package/dist-server/graphql/resolvers/marketplace-store/zalora/generate-zalora-access-token.js +1 -1
- 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 +4 -4
- package/dist-server/graphql/resolvers/marketplace-transporter/create-marketplace-transporter.js.map +1 -1
- package/dist-server/graphql/resolvers/marketplace-transporter/delete-marketplace-transporter.js +2 -2
- package/dist-server/graphql/resolvers/marketplace-transporter/delete-marketplace-transporter.js.map +1 -1
- package/dist-server/graphql/resolvers/marketplace-transporter/delete-marketplace-transporters.js +2 -1
- package/dist-server/graphql/resolvers/marketplace-transporter/delete-marketplace-transporters.js.map +1 -1
- package/dist-server/graphql/resolvers/marketplace-transporter/marketplace-transporter-query.js +10 -6
- package/dist-server/graphql/resolvers/marketplace-transporter/marketplace-transporter-query.js.map +1 -1
- package/dist-server/graphql/resolvers/marketplace-transporter/update-marketplace-transporter.js +5 -2
- package/dist-server/graphql/resolvers/marketplace-transporter/update-marketplace-transporter.js.map +1 -1
- package/dist-server/graphql/resolvers/marketplace-transporter/update-multiple-marketplace-transporter.js +6 -3
- package/dist-server/graphql/resolvers/marketplace-transporter/update-multiple-marketplace-transporter.js.map +1 -1
- package/dist-server/graphql/resolvers/store-order/accept-store-order-cancellation.js.map +1 -1
- package/dist-server/graphql/resolvers/store-order/cancel-store-order.js.map +1 -1
- package/dist-server/graphql/resolvers/store-order/get-store-order-document.js.map +1 -1
- package/dist-server/graphql/resolvers/store-order/get-store-order-items.js.map +1 -1
- package/dist-server/graphql/resolvers/store-order/get-store-order.js.map +1 -1
- package/dist-server/graphql/resolvers/store-order/get-store-orders.js.map +1 -1
- package/dist-server/graphql/resolvers/store-order/reject-store-order-cancellation.js.map +1 -1
- package/dist-server/graphql/resolvers/store-order/set-store-order-status-packed-by-marketplace.js.map +1 -1
- package/dist-server/graphql/resolvers/store-order/set-store-order-status-ready-to-ship.js.map +1 -1
- package/dist-server/graphql/resolvers/store-product/create-store-product-variations.js.map +1 -1
- package/dist-server/graphql/resolvers/store-product/create-store-product.js.map +1 -1
- package/dist-server/graphql/resolvers/store-product/delete-store-product.js.map +1 -1
- package/dist-server/graphql/resolvers/store-product/get-store-product-brands.js.map +1 -1
- package/dist-server/graphql/resolvers/store-product/get-store-product-categories.js.map +1 -1
- package/dist-server/graphql/resolvers/store-product/get-store-product-category-attributes.js.map +1 -1
- package/dist-server/graphql/resolvers/store-product/get-store-product.js.map +1 -1
- package/dist-server/graphql/resolvers/store-product/get-store-products.js.map +1 -1
- package/dist-server/graphql/resolvers/store-product/update-store-product.js.map +1 -1
- package/dist-server/routers/magento-private-router.js +7 -8
- package/dist-server/routers/magento-private-router.js.map +1 -1
- package/dist-server/routers/shopify-install-private-router.js +8 -9
- package/dist-server/routers/shopify-install-private-router.js.map +1 -1
- package/dist-server/routers/shopify-install-public-router.js +2 -3
- package/dist-server/routers/shopify-install-public-router.js.map +1 -1
- package/dist-server/routers/shopify-private-router.js +6 -7
- package/dist-server/routers/shopify-private-router.js.map +1 -1
- package/dist-server/routers/shopify-public-router.js +7 -8
- package/dist-server/routers/shopify-public-router.js.map +1 -1
- package/dist-server/routers/woocommerce-router.js +6 -6
- package/dist-server/routers/woocommerce-router.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +16 -16
- package/server/controllers/lazada/client/lazada.ts +2 -1
- package/server/controllers/magento/apis/create-order-ship.ts +1 -1
- package/server/controllers/shopee/apis2/create-shipping-document.ts +27 -0
- package/server/controllers/shopee/apis2/echo.ts +14 -0
- package/server/controllers/shopee/apis2/get-logistics-param.ts +66 -0
- package/server/controllers/shopee/apis2/get-shipping-document-result.ts +21 -0
- package/server/controllers/shopee/apis2/get-store-logistics.ts +23 -0
- package/server/controllers/shopee/apis2/get-store-order-by-batch.ts +97 -0
- package/server/controllers/shopee/apis2/get-store-order-document.ts +39 -0
- package/server/controllers/shopee/apis2/get-store-order-payout-dates.ts +33 -0
- package/server/controllers/shopee/apis2/get-store-order-transaction-details.ts +28 -0
- package/server/controllers/shopee/apis2/get-store-order.ts +93 -0
- package/server/controllers/shopee/apis2/get-store-orders.ts +40 -0
- package/server/controllers/shopee/apis2/get-store-product-variations.ts +17 -0
- package/server/controllers/shopee/apis2/get-store-product.ts +105 -0
- package/server/controllers/shopee/apis2/get-store-products.ts +28 -0
- package/server/controllers/shopee/apis2/get-store-refund-order-details.ts +39 -0
- package/server/controllers/shopee/apis2/get-store-refund-orders.ts +37 -0
- package/server/controllers/shopee/apis2/get-tracking-number.ts +17 -0
- package/server/controllers/shopee/apis2/index.ts +20 -0
- package/server/controllers/shopee/apis2/init-logistics.ts +39 -0
- package/server/controllers/shopee/apis2/update-store-product-stock.ts +26 -0
- package/server/controllers/shopee/apis2/update-store-product-variation-stock.ts +28 -0
- package/server/controllers/shopee/index.ts +11 -2
- package/server/controllers/shopee/platform-action.ts +36 -0
- package/server/controllers/shopee/refresh-access-token.ts +78 -0
- package/server/controllers/shopee/shopee.ts +95 -0
- package/server/controllers/shopify/apis/get-store-orders.ts +46 -30
- package/server/controllers/shopify/apis/get-store-products.ts +3 -8
- package/server/controllers/shopify/shopify.ts +15 -15
- package/server/controllers/store-api/index.ts +14 -2
- package/server/controllers/tiktok/apis/get-store-order.ts +26 -24
- package/server/controllers/tiktok/apis/get-store-orders.ts +1 -1
- package/server/controllers/tiktok/apis/update-order-status.ts +4 -4
- package/server/controllers/tiktok/platform-action.ts +14 -14
- package/server/engine/connector/lazada-connector.ts +5 -4
- package/server/engine/task/marketplace-api.ts +4 -3
- package/server/graphql/resolvers/marketplace-distributor/create-marketplace-distributor.ts +2 -2
- package/server/graphql/resolvers/marketplace-distributor/delete-marketplace-distributor.ts +4 -3
- package/server/graphql/resolvers/marketplace-distributor/delete-marketplace-distributors.ts +6 -3
- package/server/graphql/resolvers/marketplace-distributor/marketplace-distributor-query.ts +13 -9
- package/server/graphql/resolvers/marketplace-distributor/update-marketplace-distributor.ts +5 -5
- package/server/graphql/resolvers/marketplace-distributor/update-multiple-marketplace-distributor.ts +7 -3
- package/server/graphql/resolvers/marketplace-setting/create-marketplace-setting.ts +3 -3
- package/server/graphql/resolvers/marketplace-setting/delete-marketplace-setting.ts +4 -4
- package/server/graphql/resolvers/marketplace-setting/delete-marketplace-settings.ts +9 -7
- package/server/graphql/resolvers/marketplace-setting/marketplace-setting-query.ts +11 -8
- package/server/graphql/resolvers/marketplace-setting/update-marketplace-setting.ts +9 -3
- package/server/graphql/resolvers/marketplace-setting/update-multiple-marketplace-setting.ts +32 -29
- package/server/graphql/resolvers/marketplace-store/create-marketplace-store.ts +3 -2
- package/server/graphql/resolvers/marketplace-store/delete-marketplace-store.ts +4 -3
- package/server/graphql/resolvers/marketplace-store/delete-marketplace-stores.ts +6 -3
- package/server/graphql/resolvers/marketplace-store/lazada/deactivate-lazada-store.ts +4 -3
- package/server/graphql/resolvers/marketplace-store/lazada/generate-lazada-access-token.ts +2 -2
- package/server/graphql/resolvers/marketplace-store/lazada/get-lazada-auth-url.ts +1 -1
- package/server/graphql/resolvers/marketplace-store/magento/activate-magento-store.ts +5 -3
- package/server/graphql/resolvers/marketplace-store/magento/deactivate-magento-store.ts +4 -4
- package/server/graphql/resolvers/marketplace-store/magento/get-magento-auth-url.ts +4 -3
- package/server/graphql/resolvers/marketplace-store/marketplace-store.ts +4 -3
- package/server/graphql/resolvers/marketplace-store/marketplace-stores.ts +3 -3
- package/server/graphql/resolvers/marketplace-store/shopee/deactivate-shopee-store.ts +4 -3
- package/server/graphql/resolvers/marketplace-store/shopee/generate-shopee-access-token.ts +3 -3
- package/server/graphql/resolvers/marketplace-store/shopee/get-shopee-auth-url.ts +1 -1
- package/server/graphql/resolvers/marketplace-store/shopify/deactivate-shopify-store.ts +4 -3
- package/server/graphql/resolvers/marketplace-store/shopify/get-shopify-auth-url.ts +4 -4
- package/server/graphql/resolvers/marketplace-store/update-marketplace-store.ts +4 -3
- package/server/graphql/resolvers/marketplace-store/update-multiple-marketplace-store.ts +4 -3
- package/server/graphql/resolvers/marketplace-store/woocommerce/deactivate-woocommerce-store.ts +5 -5
- package/server/graphql/resolvers/marketplace-store/woocommerce/get-woocommerce-auth-url.ts +4 -3
- package/server/graphql/resolvers/marketplace-store/zalora/deactivate-zalora-store.ts +4 -3
- package/server/graphql/resolvers/marketplace-store/zalora/generate-zalora-access-token.ts +2 -2
- package/server/graphql/resolvers/marketplace-transporter/create-marketplace-transporter.ts +7 -5
- package/server/graphql/resolvers/marketplace-transporter/delete-marketplace-transporter.ts +4 -4
- package/server/graphql/resolvers/marketplace-transporter/delete-marketplace-transporters.ts +9 -7
- package/server/graphql/resolvers/marketplace-transporter/marketplace-transporter-query.ts +17 -12
- package/server/graphql/resolvers/marketplace-transporter/update-marketplace-transporter.ts +8 -5
- package/server/graphql/resolvers/marketplace-transporter/update-multiple-marketplace-transporter.ts +32 -29
- package/server/graphql/resolvers/store-order/accept-store-order-cancellation.ts +1 -1
- package/server/graphql/resolvers/store-order/cancel-store-order.ts +1 -1
- package/server/graphql/resolvers/store-order/get-store-order-document.ts +1 -1
- package/server/graphql/resolvers/store-order/get-store-order-items.ts +1 -1
- package/server/graphql/resolvers/store-order/get-store-order.ts +1 -1
- package/server/graphql/resolvers/store-order/get-store-orders.ts +1 -1
- package/server/graphql/resolvers/store-order/reject-store-order-cancellation.ts +1 -1
- package/server/graphql/resolvers/store-order/set-store-order-status-packed-by-marketplace.ts +1 -1
- package/server/graphql/resolvers/store-order/set-store-order-status-ready-to-ship.ts +1 -1
- package/server/graphql/resolvers/store-product/create-store-product-variations.ts +1 -1
- package/server/graphql/resolvers/store-product/create-store-product.ts +1 -1
- package/server/graphql/resolvers/store-product/delete-store-product.ts +1 -1
- package/server/graphql/resolvers/store-product/get-store-product-brands.ts +1 -1
- package/server/graphql/resolvers/store-product/get-store-product-categories.ts +1 -1
- package/server/graphql/resolvers/store-product/get-store-product-category-attributes.ts +1 -1
- package/server/graphql/resolvers/store-product/get-store-product.ts +1 -1
- package/server/graphql/resolvers/store-product/get-store-products.ts +1 -1
- package/server/graphql/resolvers/store-product/update-store-product.ts +1 -1
- package/server/routers/magento-private-router.ts +3 -4
- package/server/routers/shopify-install-private-router.ts +4 -5
- package/server/routers/shopify-install-public-router.ts +1 -2
- package/server/routers/shopify-private-router.ts +6 -6
- package/server/routers/shopify-public-router.ts +6 -5
- package/server/routers/woocommerce-router.ts +4 -3
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/* https://open.shopee.com/documents/v2/v2.product.get_item_base_info?module=89&type=1 */
|
|
2
|
+
|
|
3
|
+
import { StoreAPI } from '../../store-api'
|
|
4
|
+
|
|
5
|
+
export function getStoreProduct() {
|
|
6
|
+
return {
|
|
7
|
+
path: '/product/get_item_base_info',
|
|
8
|
+
method: 'getV2',
|
|
9
|
+
denormalize(req) {
|
|
10
|
+
return {
|
|
11
|
+
item_id_list: req.itemIds
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
async normalize(res, { store }) {
|
|
15
|
+
let items = res.item_list
|
|
16
|
+
let results = []
|
|
17
|
+
for (let i = 0; i < items.length; i++) {
|
|
18
|
+
const item = items[i]
|
|
19
|
+
let variations
|
|
20
|
+
if (item.has_model) {
|
|
21
|
+
variations = await StoreAPI.getStoreProductVariations(store, { itemId: item.item_id })
|
|
22
|
+
}
|
|
23
|
+
const result = {
|
|
24
|
+
itemId: item.item_id,
|
|
25
|
+
isku: item?.item_sku,
|
|
26
|
+
weight: item.weight,
|
|
27
|
+
categoryId: item.category_id,
|
|
28
|
+
condition: item.condition,
|
|
29
|
+
marketplaceStatus: item.item_status,
|
|
30
|
+
name: item.item_name,
|
|
31
|
+
description: item.description_info?.extended_description?.field_list?.find(f => f.field_type == 'text')?.text,
|
|
32
|
+
currency: item?.price_info ? item?.price_info[0]?.currency : undefined,
|
|
33
|
+
costPrice: item?.price_info ? item?.price_info[0]?.original_price : undefined,
|
|
34
|
+
sellPrice: item?.price_info ? item?.price_info[0]?.current_price : undefined,
|
|
35
|
+
qty: item?.stock_info_v2?.summary_info?.total_available_stock,
|
|
36
|
+
bufferQty: item?.stock_info_v2?.summary_info?.total_reserved_stock,
|
|
37
|
+
packageLength: item.dimension.package_length,
|
|
38
|
+
packageWidth: item.dimension.package_width,
|
|
39
|
+
packageHeight: item.dimension.package_height,
|
|
40
|
+
daysToShip: item.pre_order.days_to_ship,
|
|
41
|
+
discountId: item.promotion_id,
|
|
42
|
+
isPreOrder: item.pre_order.is_pre_order,
|
|
43
|
+
hasVariation: item.has_model,
|
|
44
|
+
attributes: item?.attribute_list?.map(attribute => {
|
|
45
|
+
return {
|
|
46
|
+
attributeId: attribute.attribute_id,
|
|
47
|
+
name: attribute.original_attribute_name,
|
|
48
|
+
isMandatory: attribute.is_mandatory,
|
|
49
|
+
originalValue: JSON.stringify(
|
|
50
|
+
attribute?.attribute_value_list?.map(v => {
|
|
51
|
+
return v.original_value_name
|
|
52
|
+
})
|
|
53
|
+
) || ''
|
|
54
|
+
}
|
|
55
|
+
}) || [],
|
|
56
|
+
variations: item.has_model
|
|
57
|
+
? variations.model.map(variation => {
|
|
58
|
+
return {
|
|
59
|
+
variationId: variation.model_id,
|
|
60
|
+
variationSku: variation.model_sku,
|
|
61
|
+
channelSku: variation.model_sku,
|
|
62
|
+
name: `${item.item_name} - ${
|
|
63
|
+
variations.tier_variation[0].option_list[variation.tier_index[0]].option
|
|
64
|
+
}${
|
|
65
|
+
variations.tier_variation[1]
|
|
66
|
+
? ' - ' + variations.tier_variation[1].option_list[variation.tier_index[1]].option
|
|
67
|
+
: ''
|
|
68
|
+
}`,
|
|
69
|
+
description: item.description_info?.extended_description?.field_list?.find(
|
|
70
|
+
f => f.field_type == 'text'
|
|
71
|
+
)?.text,
|
|
72
|
+
qty: variation.stock_info_v2.summary_info.total_available_stock,
|
|
73
|
+
bufferQty: variation.stock_info_v2.summary_info.total_reserved_stock,
|
|
74
|
+
costPrice: variation.price_info[0].original_price,
|
|
75
|
+
sellPrice: variation.price_info[0].current_price,
|
|
76
|
+
discountId: variation.promotion_id,
|
|
77
|
+
marketplaceStatus: item.item_status,
|
|
78
|
+
primaryUnitValue: item.weight
|
|
79
|
+
}
|
|
80
|
+
})
|
|
81
|
+
: [
|
|
82
|
+
{
|
|
83
|
+
variationId: item.item_id,
|
|
84
|
+
variationSku: item.item_sku,
|
|
85
|
+
channelSku: item.item_sku,
|
|
86
|
+
name: item.item_name,
|
|
87
|
+
description: item.description_info?.extended_description?.field_list?.find(
|
|
88
|
+
f => f.field_type == 'text'
|
|
89
|
+
)?.text,
|
|
90
|
+
qty: item.stock_info_v2.summary_info.total_available_stock,
|
|
91
|
+
bufferQty: item.stock_info_v2.summary_info.total_reserved_stock,
|
|
92
|
+
costPrice: item.price_info[0].original_price,
|
|
93
|
+
sellPrice: item.price_info[0].current_price,
|
|
94
|
+
discountId: item.promotion_id,
|
|
95
|
+
marketplaceStatus: item.item_status,
|
|
96
|
+
primaryUnitValue: item.weight
|
|
97
|
+
}
|
|
98
|
+
]
|
|
99
|
+
}
|
|
100
|
+
results.push(result)
|
|
101
|
+
}
|
|
102
|
+
return results
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/* https://open.shopee.com/documents/v2/v2.product.get_item_list?module=89&type=1 */
|
|
2
|
+
|
|
3
|
+
import { StoreAPI } from '../../store-api'
|
|
4
|
+
|
|
5
|
+
export function getStoreProducts() {
|
|
6
|
+
return {
|
|
7
|
+
path: '/product/get_item_list',
|
|
8
|
+
method: 'getV2',
|
|
9
|
+
denormalize(req) {
|
|
10
|
+
var { pagination } = req || {}
|
|
11
|
+
var { page = 0, limit = 100 } = pagination || {}
|
|
12
|
+
|
|
13
|
+
return {
|
|
14
|
+
offset: page * limit,
|
|
15
|
+
page_size: limit,
|
|
16
|
+
item_status: ['NORMAL']
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
async normalize(res, { store }) {
|
|
20
|
+
const itemIds = res.item.map(product => {
|
|
21
|
+
return product.item_id
|
|
22
|
+
})
|
|
23
|
+
|
|
24
|
+
const results = await StoreAPI.getStoreProduct(store, { itemIds })
|
|
25
|
+
return { results, total: res.total_count }
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/* https://open.shopee.com/documents/v2/v2.returns.get_return_detail?module=102&type=1 */
|
|
2
|
+
|
|
3
|
+
export function getStoreRefundOrderDetails() {
|
|
4
|
+
return {
|
|
5
|
+
path: '/returns/get_return_detail',
|
|
6
|
+
method: 'getV2',
|
|
7
|
+
denormalize(req) {
|
|
8
|
+
var { refundOrderNo } = req
|
|
9
|
+
|
|
10
|
+
return {
|
|
11
|
+
return_sn: refundOrderNo
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
async normalize(res) {
|
|
15
|
+
let refundItems = res.items.map(item => {
|
|
16
|
+
let { item_id: name, item_id: orderItemId, item_price: price, amount: qty, variation_id: variationId } = item
|
|
17
|
+
name = name.toString()
|
|
18
|
+
orderItemId = orderItemId.toString()
|
|
19
|
+
return {
|
|
20
|
+
name,
|
|
21
|
+
orderItemId,
|
|
22
|
+
price,
|
|
23
|
+
qty,
|
|
24
|
+
variationId
|
|
25
|
+
}
|
|
26
|
+
})
|
|
27
|
+
|
|
28
|
+
let results = {
|
|
29
|
+
name: res.return_sn.toString(),
|
|
30
|
+
orderNo: res.return_sn.toString(),
|
|
31
|
+
amount: res.refund_amount,
|
|
32
|
+
status: res.status,
|
|
33
|
+
items: refundItems
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
return results
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/* https://open.shopee.com/documents/v2/v2.returns.get_return_list?module=102&type=1 */
|
|
2
|
+
|
|
3
|
+
import { StoreAPI } from '../../store-api'
|
|
4
|
+
|
|
5
|
+
export function getStoreRefundOrders() {
|
|
6
|
+
return {
|
|
7
|
+
path: '/returns/get_return_list',
|
|
8
|
+
method: 'getV2',
|
|
9
|
+
denormalize(req) {
|
|
10
|
+
var { pagination, fromDate, toDate } = req || {}
|
|
11
|
+
var { page = 0, limit = 100 } = pagination || {}
|
|
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
|
+
return {
|
|
17
|
+
page_size: limit,
|
|
18
|
+
page_no: page * limit,
|
|
19
|
+
create_time_from,
|
|
20
|
+
create_time_to
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
async normalize(res, { store }) {
|
|
24
|
+
let results: any[] = []
|
|
25
|
+
|
|
26
|
+
for (var i = 0; i < res.return?.length; i++) {
|
|
27
|
+
const refundOrder = res.return[i]
|
|
28
|
+
const refundOrderNo = refundOrder.return_sn
|
|
29
|
+
|
|
30
|
+
const result = await StoreAPI.getStoreRefundOrderDetails(store, { refundOrderNo })
|
|
31
|
+
|
|
32
|
+
results.push({ ...result, originalOrderNo: refundOrder.order_sn })
|
|
33
|
+
}
|
|
34
|
+
return { results, more: res.more }
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/* https://open.shopee.com/documents/v2/v2.logistics.get_tracking_number?module=95&type=1 */
|
|
2
|
+
|
|
3
|
+
export function getTrackingNumber() {
|
|
4
|
+
return {
|
|
5
|
+
path: '/logistics/get_tracking_number',
|
|
6
|
+
method: 'getV2',
|
|
7
|
+
denormalize(req) {
|
|
8
|
+
const { orderNo } = req
|
|
9
|
+
return {
|
|
10
|
+
order_sn: orderNo
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
normalize(res) {
|
|
14
|
+
return res?.tracking_number || null
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export * from './echo'
|
|
2
|
+
export * from './get-store-products'
|
|
3
|
+
export * from './get-store-product'
|
|
4
|
+
export * from './get-store-product-variations'
|
|
5
|
+
export * from './get-store-orders'
|
|
6
|
+
export * from './get-store-order'
|
|
7
|
+
export * from './get-store-order-by-batch'
|
|
8
|
+
export * from './get-store-order-transaction-details'
|
|
9
|
+
export * from './update-store-product-stock'
|
|
10
|
+
export * from './update-store-product-variation-stock'
|
|
11
|
+
export * from './get-store-order-payout-dates'
|
|
12
|
+
export * from './get-store-refund-orders'
|
|
13
|
+
export * from './get-store-refund-order-details'
|
|
14
|
+
export * from './get-store-logistics'
|
|
15
|
+
export * from './get-logistics-param'
|
|
16
|
+
export * from './get-tracking-number'
|
|
17
|
+
export * from './init-logistics'
|
|
18
|
+
export * from './create-shipping-document'
|
|
19
|
+
export * from './get-shipping-document-result'
|
|
20
|
+
export * from './get-store-order-document'
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/* https://open.shopee.com/documents?module=3&type=1&id=389 */
|
|
2
|
+
|
|
3
|
+
export function initLogistics() {
|
|
4
|
+
return {
|
|
5
|
+
path: '/logistics/ship_order',
|
|
6
|
+
method: 'postV2',
|
|
7
|
+
denormalize(req) {
|
|
8
|
+
var { orderNo: order_sn, deliveryType } = req
|
|
9
|
+
let pickup = {}
|
|
10
|
+
let dropoff = {}
|
|
11
|
+
let non_integrated = {}
|
|
12
|
+
let args = {}
|
|
13
|
+
|
|
14
|
+
if (deliveryType?.pickup) {
|
|
15
|
+
var { addressId, pickupTimeId: pickup_time_id } = deliveryType.pickup
|
|
16
|
+
var address_id = parseInt(addressId)
|
|
17
|
+
pickup = { address_id, pickup_time_id }
|
|
18
|
+
args = { order_sn, pickup: { ...pickup } }
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
if (deliveryType?.non_integrated) {
|
|
22
|
+
var { trackingNo: tracking_number } = deliveryType.non_integrated
|
|
23
|
+
non_integrated = { tracking_number }
|
|
24
|
+
args = { order_sn, non_integrated: { tracking_number } }
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
if (deliveryType?.dropoff) {
|
|
28
|
+
var { branchId: branch_id } = deliveryType.dropoff
|
|
29
|
+
dropoff = { branch_id }
|
|
30
|
+
args = { order_sn, dropoff: { ...dropoff } }
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return args
|
|
34
|
+
},
|
|
35
|
+
normalize(res) {
|
|
36
|
+
return res
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/* https://open.shopee.com/documents/v2/v2.product.update_stock?module=89&type=1 */
|
|
2
|
+
|
|
3
|
+
export function updateStoreProductStock() {
|
|
4
|
+
return {
|
|
5
|
+
path: '/product/update_stock',
|
|
6
|
+
method: 'postV2',
|
|
7
|
+
denormalize(req) {
|
|
8
|
+
let data = req[0]
|
|
9
|
+
return {
|
|
10
|
+
item_id: parseInt(data.itemId),
|
|
11
|
+
stock_list: [
|
|
12
|
+
{
|
|
13
|
+
seller_stock: [
|
|
14
|
+
{
|
|
15
|
+
stock: data.qty
|
|
16
|
+
}
|
|
17
|
+
]
|
|
18
|
+
}
|
|
19
|
+
]
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
normalize(res) {
|
|
23
|
+
return res
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/* https://open.shopee.com/documents/v2/v2.product.update_stock?module=89&type=1 */
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
export function updateStoreProductVariationStock() {
|
|
5
|
+
return {
|
|
6
|
+
path: '/product/update_stock',
|
|
7
|
+
method: 'postV2',
|
|
8
|
+
denormalize(req) {
|
|
9
|
+
let data = req[0]
|
|
10
|
+
return {
|
|
11
|
+
item_id: parseInt(data.itemId),
|
|
12
|
+
stock_list: [
|
|
13
|
+
{
|
|
14
|
+
model_id: parseInt(data.variationId),
|
|
15
|
+
seller_stock: [
|
|
16
|
+
{
|
|
17
|
+
stock: data.qty
|
|
18
|
+
}
|
|
19
|
+
]
|
|
20
|
+
}
|
|
21
|
+
]
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
normalize(res) {
|
|
25
|
+
return res
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -1,7 +1,16 @@
|
|
|
1
1
|
export * from './shopee'
|
|
2
2
|
|
|
3
|
+
import { config } from '@things-factory/env'
|
|
3
4
|
import { StoreAPI } from '../store-api'
|
|
4
|
-
import { action } from './platform-action'
|
|
5
|
+
import { action, actionV2 } from './platform-action'
|
|
5
6
|
import * as APIS from './apis'
|
|
7
|
+
import * as APISV2 from './apis2'
|
|
6
8
|
|
|
7
|
-
|
|
9
|
+
const shopeeConfig = config.get('marketplaceIntegrationShopee', {})
|
|
10
|
+
const { v2 } = shopeeConfig
|
|
11
|
+
|
|
12
|
+
if (v2) {
|
|
13
|
+
StoreAPI.registerPlatform('shopee', actionV2, APISV2)
|
|
14
|
+
} else {
|
|
15
|
+
StoreAPI.registerPlatform('shopee', action, APIS)
|
|
16
|
+
}
|
|
@@ -1,9 +1,45 @@
|
|
|
1
1
|
import { Shopee } from './shopee'
|
|
2
2
|
|
|
3
3
|
import { config } from '@things-factory/env'
|
|
4
|
+
import { refreshAccessToken } from './refresh-access-token'
|
|
4
5
|
const shopeeConfig = config.get('marketplaceIntegrationShopee', {})
|
|
5
6
|
const { partnerId, partnerKey, isUAT } = shopeeConfig
|
|
6
7
|
|
|
8
|
+
export const actionV2 = async ({ store, path, request, method = 'post' }) => {
|
|
9
|
+
let response = await _action({ store, path, request, method })
|
|
10
|
+
if (response.error) {
|
|
11
|
+
if (response.error == 'error_auth') {
|
|
12
|
+
try {
|
|
13
|
+
const { accessToken } = await refreshAccessToken(store.id, store.storeId, store.refreshToken, store.accessToken)
|
|
14
|
+
store = {
|
|
15
|
+
...store,
|
|
16
|
+
accessToken
|
|
17
|
+
}
|
|
18
|
+
response = await _action({ store, path, request, method })
|
|
19
|
+
} catch (e) {
|
|
20
|
+
throw e
|
|
21
|
+
}
|
|
22
|
+
} else {
|
|
23
|
+
throw response
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return response.response || response
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const _action = async ({ store, path, request, method = 'post' }) => {
|
|
30
|
+
const client = new Shopee({
|
|
31
|
+
isUAT: isUAT,
|
|
32
|
+
shopid: Number(store.storeId),
|
|
33
|
+
partner_id: partnerId,
|
|
34
|
+
partner_key: partnerKey,
|
|
35
|
+
access_token: store.accessToken
|
|
36
|
+
})
|
|
37
|
+
|
|
38
|
+
var response = await client[method](path, request)
|
|
39
|
+
|
|
40
|
+
return response
|
|
41
|
+
}
|
|
42
|
+
|
|
7
43
|
export const action = async ({ store, path, request }) => {
|
|
8
44
|
const client = new Shopee({
|
|
9
45
|
isUAT: isUAT,
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import crypto from 'crypto'
|
|
2
|
+
import fetch from 'node-fetch'
|
|
3
|
+
import { createQueryBuilder } from 'typeorm'
|
|
4
|
+
|
|
5
|
+
import { config, logger } from '@things-factory/env'
|
|
6
|
+
import { getRepository } from '@things-factory/shell'
|
|
7
|
+
|
|
8
|
+
import { MarketplaceStore } from '../../entities'
|
|
9
|
+
|
|
10
|
+
const shopeeConfig = config.get('marketplaceIntegrationShopee', {})
|
|
11
|
+
const { partnerId, partnerKey, isUAT } = shopeeConfig
|
|
12
|
+
const refreshPath = '/auth/access_token/get'
|
|
13
|
+
|
|
14
|
+
export const refreshAccessToken = async (store_uuid, shop_id, refresh_token, old_access_token) => {
|
|
15
|
+
let marketplaceStore: MarketplaceStore = await getRepository(MarketplaceStore)
|
|
16
|
+
.createQueryBuilder('ms')
|
|
17
|
+
.where('ms.id = :id', { id: store_uuid })
|
|
18
|
+
.getOne()
|
|
19
|
+
|
|
20
|
+
if (old_access_token != marketplaceStore.accessToken) {
|
|
21
|
+
return {
|
|
22
|
+
accessToken: marketplaceStore.accessToken
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
const timestamp = Math.floor(Date.now() / 1000)
|
|
27
|
+
const sign = crypto
|
|
28
|
+
.createHmac('sha256', partnerKey)
|
|
29
|
+
.update(partnerId + '/api/v2' + refreshPath + timestamp)
|
|
30
|
+
.digest('hex')
|
|
31
|
+
|
|
32
|
+
const auth = {
|
|
33
|
+
partner_id: partnerId,
|
|
34
|
+
sign: sign,
|
|
35
|
+
timestamp: timestamp
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
const qs = Object.entries(auth)
|
|
39
|
+
.map(([k, v]) => `${k}=${encodeURIComponent(String(v))}`)
|
|
40
|
+
.join('&')
|
|
41
|
+
|
|
42
|
+
const data = {
|
|
43
|
+
refresh_token: refresh_token,
|
|
44
|
+
partner_id: partnerId,
|
|
45
|
+
shop_id: parseInt(shop_id)
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
const jsondata = JSON.stringify(data)
|
|
49
|
+
|
|
50
|
+
const response = await fetch(`${getAuthUrl()}?${qs}`, {
|
|
51
|
+
method: 'post',
|
|
52
|
+
body: jsondata
|
|
53
|
+
})
|
|
54
|
+
|
|
55
|
+
if (!response.ok) {
|
|
56
|
+
throw 'Failed to get response to refresh Shopee access token'
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
const result = await response.json()
|
|
60
|
+
|
|
61
|
+
if (result.error) {
|
|
62
|
+
logger.error(`Failed to refresh Shopee token: ${result.error} - shop ID (${shop_id})`)
|
|
63
|
+
throw result.error
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
const tokens = {
|
|
67
|
+
accessToken: result.access_token, // expires in 4 hours
|
|
68
|
+
refreshToken: result.refresh_token // expires in 30 days
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
await createQueryBuilder().update(MarketplaceStore).set(tokens).where('id = :id', { id: store_uuid }).execute()
|
|
72
|
+
|
|
73
|
+
return tokens
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
function getAuthUrl() {
|
|
77
|
+
return `https://partner${isUAT ? '.test-stable' : ''}.shopeemobile.com/api/v2${refreshPath}`
|
|
78
|
+
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import crypto from 'crypto'
|
|
2
2
|
import fetch from 'node-fetch'
|
|
3
|
+
import { createPayloadLog } from '@things-factory/integration-base'
|
|
3
4
|
|
|
4
5
|
const debug = require('debug')('things-factory:integration-marketplace:shopee')
|
|
5
6
|
|
|
@@ -93,4 +94,98 @@ export class Shopee {
|
|
|
93
94
|
|
|
94
95
|
return result
|
|
95
96
|
}
|
|
97
|
+
|
|
98
|
+
async getV2(endpoint, data: any = {}) {
|
|
99
|
+
const { partner_id, shopid, access_token, partner_key } = this.config
|
|
100
|
+
|
|
101
|
+
const timestamp = Math.floor(Date.now() / 1000)
|
|
102
|
+
const sign = crypto
|
|
103
|
+
.createHmac('sha256', partner_key)
|
|
104
|
+
.update(partner_id + '/api/v2' + endpoint + timestamp + access_token + shopid)
|
|
105
|
+
.digest('hex')
|
|
106
|
+
|
|
107
|
+
data.partner_id = partner_id
|
|
108
|
+
data.timestamp = timestamp
|
|
109
|
+
data.access_token = access_token
|
|
110
|
+
data.shop_id = shopid
|
|
111
|
+
data.sign = sign
|
|
112
|
+
|
|
113
|
+
debug('data', data)
|
|
114
|
+
|
|
115
|
+
const qs = Object.entries(data)
|
|
116
|
+
.map(([k, v]) => `${k}=${encodeURIComponent(String(v))}`)
|
|
117
|
+
.join('&')
|
|
118
|
+
|
|
119
|
+
const response = await fetch(`${this.getBaseUrl()}/api/v2/${endpoint}${qs ? '?' + qs : ''}`, {
|
|
120
|
+
method: 'get'
|
|
121
|
+
})
|
|
122
|
+
|
|
123
|
+
const result = await response.json()
|
|
124
|
+
try {
|
|
125
|
+
createPayloadLog(shopid, endpoint, qs, result, {
|
|
126
|
+
state: { domain: null }
|
|
127
|
+
})
|
|
128
|
+
} catch (e) {}
|
|
129
|
+
debug('response result', result)
|
|
130
|
+
|
|
131
|
+
return result
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
async postV2(endpoint, data: any = {}) {
|
|
135
|
+
const { partner_id, shopid, access_token, partner_key } = this.config
|
|
136
|
+
|
|
137
|
+
const timestamp = Math.floor(Date.now() / 1000)
|
|
138
|
+
const sign = crypto
|
|
139
|
+
.createHmac('sha256', partner_key)
|
|
140
|
+
.update(partner_id + '/api/v2' + endpoint + timestamp + access_token + shopid)
|
|
141
|
+
.digest('hex')
|
|
142
|
+
|
|
143
|
+
let auth = {
|
|
144
|
+
partner_id: partner_id,
|
|
145
|
+
access_token: access_token,
|
|
146
|
+
shop_id: shopid,
|
|
147
|
+
sign: sign,
|
|
148
|
+
timestamp: timestamp
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
const qs = Object.entries(auth)
|
|
152
|
+
.map(([k, v]) => `${k}=${encodeURIComponent(String(v))}`)
|
|
153
|
+
.join('&')
|
|
154
|
+
|
|
155
|
+
const jsondata = JSON.stringify(data)
|
|
156
|
+
|
|
157
|
+
debug('data', data)
|
|
158
|
+
|
|
159
|
+
const response = await fetch(`${this.getBaseUrl()}/api/v2/${endpoint}${qs ? '?' + qs : ''}`, {
|
|
160
|
+
method: 'post',
|
|
161
|
+
body: jsondata,
|
|
162
|
+
headers: {
|
|
163
|
+
'Content-Type': 'application/json'
|
|
164
|
+
}
|
|
165
|
+
})
|
|
166
|
+
|
|
167
|
+
let result
|
|
168
|
+
if (endpoint == '/logistics/download_shipping_document') {
|
|
169
|
+
try {
|
|
170
|
+
let awb = await response.buffer()
|
|
171
|
+
result = {
|
|
172
|
+
awb,
|
|
173
|
+
data
|
|
174
|
+
}
|
|
175
|
+
} catch {
|
|
176
|
+
result = await response.json()
|
|
177
|
+
}
|
|
178
|
+
} else {
|
|
179
|
+
result = await response.json()
|
|
180
|
+
try {
|
|
181
|
+
createPayloadLog(shopid, endpoint, jsondata, result, {
|
|
182
|
+
state: { domain: null }
|
|
183
|
+
})
|
|
184
|
+
} catch (e) {}
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
debug('response result', result)
|
|
188
|
+
|
|
189
|
+
return result
|
|
190
|
+
}
|
|
96
191
|
}
|