@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.
Files changed (251) hide show
  1. package/dist-server/controllers/lazada/client/lazada.js +2 -2
  2. package/dist-server/controllers/lazada/client/lazada.js.map +1 -1
  3. package/dist-server/controllers/magento/apis/create-order-ship.js +1 -1
  4. package/dist-server/controllers/magento/apis/create-order-ship.js.map +1 -1
  5. package/dist-server/controllers/shopee/index.js +10 -1
  6. package/dist-server/controllers/shopee/index.js.map +1 -1
  7. package/dist-server/controllers/shopee/platform-action.js +33 -1
  8. package/dist-server/controllers/shopee/platform-action.js.map +1 -1
  9. package/dist-server/controllers/shopee/refresh-access-token.js +2 -1
  10. package/dist-server/controllers/shopee/refresh-access-token.js.map +1 -1
  11. package/dist-server/controllers/shopee/shopee.js +81 -0
  12. package/dist-server/controllers/shopee/shopee.js.map +1 -1
  13. package/dist-server/controllers/shopify/apis/get-store-orders.js +45 -30
  14. package/dist-server/controllers/shopify/apis/get-store-orders.js.map +1 -1
  15. package/dist-server/controllers/shopify/apis/get-store-products.js +5 -10
  16. package/dist-server/controllers/shopify/apis/get-store-products.js.map +1 -1
  17. package/dist-server/controllers/shopify/shopify.js +15 -19
  18. package/dist-server/controllers/shopify/shopify.js.map +1 -1
  19. package/dist-server/controllers/store-api/index.js +32 -4
  20. package/dist-server/controllers/store-api/index.js.map +1 -1
  21. package/dist-server/controllers/tiktok/apis/get-store-order.js +20 -18
  22. package/dist-server/controllers/tiktok/apis/get-store-order.js.map +1 -1
  23. package/dist-server/controllers/tiktok/apis/get-store-orders.js +1 -1
  24. package/dist-server/controllers/tiktok/apis/get-store-orders.js.map +1 -1
  25. package/dist-server/controllers/tiktok/apis/update-order-status.js +4 -4
  26. package/dist-server/controllers/tiktok/apis/update-order-status.js.map +1 -1
  27. package/dist-server/controllers/tiktok/platform-action.js +14 -3
  28. package/dist-server/controllers/tiktok/platform-action.js.map +1 -1
  29. package/dist-server/engine/connector/lazada-connector.js +5 -5
  30. package/dist-server/engine/connector/lazada-connector.js.map +1 -1
  31. package/dist-server/engine/task/marketplace-api.js +4 -4
  32. package/dist-server/engine/task/marketplace-api.js.map +1 -1
  33. package/dist-server/entities/marketplace-distributor.js +3 -4
  34. package/dist-server/entities/marketplace-distributor.js.map +1 -1
  35. package/dist-server/entities/marketplace-setting.js +3 -4
  36. package/dist-server/entities/marketplace-setting.js.map +1 -1
  37. package/dist-server/entities/marketplace-store.js +3 -4
  38. package/dist-server/entities/marketplace-store.js.map +1 -1
  39. package/dist-server/entities/marketplace-transporter.js +6 -6
  40. package/dist-server/entities/marketplace-transporter.js.map +1 -1
  41. package/dist-server/graphql/resolvers/marketplace-distributor/create-marketplace-distributor.js +1 -1
  42. package/dist-server/graphql/resolvers/marketplace-distributor/create-marketplace-distributor.js.map +1 -1
  43. package/dist-server/graphql/resolvers/marketplace-distributor/delete-marketplace-distributor.js +2 -2
  44. package/dist-server/graphql/resolvers/marketplace-distributor/delete-marketplace-distributor.js.map +1 -1
  45. package/dist-server/graphql/resolvers/marketplace-distributor/delete-marketplace-distributors.js +3 -2
  46. package/dist-server/graphql/resolvers/marketplace-distributor/delete-marketplace-distributors.js.map +1 -1
  47. package/dist-server/graphql/resolvers/marketplace-distributor/marketplace-distributor-query.js +8 -6
  48. package/dist-server/graphql/resolvers/marketplace-distributor/marketplace-distributor-query.js.map +1 -1
  49. package/dist-server/graphql/resolvers/marketplace-distributor/update-marketplace-distributor.js +4 -2
  50. package/dist-server/graphql/resolvers/marketplace-distributor/update-marketplace-distributor.js.map +1 -1
  51. package/dist-server/graphql/resolvers/marketplace-distributor/update-multiple-marketplace-distributor.js +6 -3
  52. package/dist-server/graphql/resolvers/marketplace-distributor/update-multiple-marketplace-distributor.js.map +1 -1
  53. package/dist-server/graphql/resolvers/marketplace-setting/create-marketplace-setting.js +2 -2
  54. package/dist-server/graphql/resolvers/marketplace-setting/create-marketplace-setting.js.map +1 -1
  55. package/dist-server/graphql/resolvers/marketplace-setting/delete-marketplace-setting.js +2 -2
  56. package/dist-server/graphql/resolvers/marketplace-setting/delete-marketplace-setting.js.map +1 -1
  57. package/dist-server/graphql/resolvers/marketplace-setting/delete-marketplace-settings.js +2 -1
  58. package/dist-server/graphql/resolvers/marketplace-setting/delete-marketplace-settings.js.map +1 -1
  59. package/dist-server/graphql/resolvers/marketplace-setting/marketplace-setting-query.js +7 -5
  60. package/dist-server/graphql/resolvers/marketplace-setting/marketplace-setting-query.js.map +1 -1
  61. package/dist-server/graphql/resolvers/marketplace-setting/update-marketplace-setting.js +8 -2
  62. package/dist-server/graphql/resolvers/marketplace-setting/update-marketplace-setting.js.map +1 -1
  63. package/dist-server/graphql/resolvers/marketplace-setting/update-multiple-marketplace-setting.js +6 -3
  64. package/dist-server/graphql/resolvers/marketplace-setting/update-multiple-marketplace-setting.js.map +1 -1
  65. package/dist-server/graphql/resolvers/marketplace-store/create-marketplace-store.js +2 -2
  66. package/dist-server/graphql/resolvers/marketplace-store/create-marketplace-store.js.map +1 -1
  67. package/dist-server/graphql/resolvers/marketplace-store/delete-marketplace-store.js +4 -4
  68. package/dist-server/graphql/resolvers/marketplace-store/delete-marketplace-store.js.map +1 -1
  69. package/dist-server/graphql/resolvers/marketplace-store/delete-marketplace-stores.js +4 -3
  70. package/dist-server/graphql/resolvers/marketplace-store/delete-marketplace-stores.js.map +1 -1
  71. package/dist-server/graphql/resolvers/marketplace-store/lazada/deactivate-lazada-store.js +3 -3
  72. package/dist-server/graphql/resolvers/marketplace-store/lazada/deactivate-lazada-store.js.map +1 -1
  73. package/dist-server/graphql/resolvers/marketplace-store/lazada/generate-lazada-access-token.js +1 -1
  74. package/dist-server/graphql/resolvers/marketplace-store/lazada/generate-lazada-access-token.js.map +1 -1
  75. package/dist-server/graphql/resolvers/marketplace-store/lazada/get-lazada-auth-url.js.map +1 -1
  76. package/dist-server/graphql/resolvers/marketplace-store/magento/activate-magento-store.js +4 -2
  77. package/dist-server/graphql/resolvers/marketplace-store/magento/activate-magento-store.js.map +1 -1
  78. package/dist-server/graphql/resolvers/marketplace-store/magento/deactivate-magento-store.js +3 -4
  79. package/dist-server/graphql/resolvers/marketplace-store/magento/deactivate-magento-store.js.map +1 -1
  80. package/dist-server/graphql/resolvers/marketplace-store/magento/get-magento-auth-url.js +2 -2
  81. package/dist-server/graphql/resolvers/marketplace-store/magento/get-magento-auth-url.js.map +1 -1
  82. package/dist-server/graphql/resolvers/marketplace-store/marketplace-store.js +3 -3
  83. package/dist-server/graphql/resolvers/marketplace-store/marketplace-store.js.map +1 -1
  84. package/dist-server/graphql/resolvers/marketplace-store/marketplace-stores.js +1 -2
  85. package/dist-server/graphql/resolvers/marketplace-store/marketplace-stores.js.map +1 -1
  86. package/dist-server/graphql/resolvers/marketplace-store/shopee/deactivate-shopee-store.js +3 -3
  87. package/dist-server/graphql/resolvers/marketplace-store/shopee/deactivate-shopee-store.js.map +1 -1
  88. package/dist-server/graphql/resolvers/marketplace-store/shopee/generate-shopee-access-token.js +2 -2
  89. package/dist-server/graphql/resolvers/marketplace-store/shopee/generate-shopee-access-token.js.map +1 -1
  90. package/dist-server/graphql/resolvers/marketplace-store/shopee/get-shopee-auth-url.js.map +1 -1
  91. package/dist-server/graphql/resolvers/marketplace-store/shopify/deactivate-shopify-store.js +3 -3
  92. package/dist-server/graphql/resolvers/marketplace-store/shopify/deactivate-shopify-store.js.map +1 -1
  93. package/dist-server/graphql/resolvers/marketplace-store/shopify/get-shopify-auth-url.js +3 -3
  94. package/dist-server/graphql/resolvers/marketplace-store/shopify/get-shopify-auth-url.js.map +1 -1
  95. package/dist-server/graphql/resolvers/marketplace-store/update-marketplace-store.js +3 -3
  96. package/dist-server/graphql/resolvers/marketplace-store/update-marketplace-store.js.map +1 -1
  97. package/dist-server/graphql/resolvers/marketplace-store/update-multiple-marketplace-store.js +3 -3
  98. package/dist-server/graphql/resolvers/marketplace-store/update-multiple-marketplace-store.js.map +1 -1
  99. package/dist-server/graphql/resolvers/marketplace-store/woocommerce/deactivate-woocommerce-store.js +4 -4
  100. package/dist-server/graphql/resolvers/marketplace-store/woocommerce/deactivate-woocommerce-store.js.map +1 -1
  101. package/dist-server/graphql/resolvers/marketplace-store/woocommerce/get-woocommerce-auth-url.js +2 -2
  102. package/dist-server/graphql/resolvers/marketplace-store/woocommerce/get-woocommerce-auth-url.js.map +1 -1
  103. package/dist-server/graphql/resolvers/marketplace-store/zalora/deactivate-zalora-store.js +3 -3
  104. package/dist-server/graphql/resolvers/marketplace-store/zalora/deactivate-zalora-store.js.map +1 -1
  105. package/dist-server/graphql/resolvers/marketplace-store/zalora/generate-zalora-access-token.js +1 -1
  106. package/dist-server/graphql/resolvers/marketplace-store/zalora/generate-zalora-access-token.js.map +1 -1
  107. package/dist-server/graphql/resolvers/marketplace-transporter/create-marketplace-transporter.js +4 -4
  108. package/dist-server/graphql/resolvers/marketplace-transporter/create-marketplace-transporter.js.map +1 -1
  109. package/dist-server/graphql/resolvers/marketplace-transporter/delete-marketplace-transporter.js +2 -2
  110. package/dist-server/graphql/resolvers/marketplace-transporter/delete-marketplace-transporter.js.map +1 -1
  111. package/dist-server/graphql/resolvers/marketplace-transporter/delete-marketplace-transporters.js +2 -1
  112. package/dist-server/graphql/resolvers/marketplace-transporter/delete-marketplace-transporters.js.map +1 -1
  113. package/dist-server/graphql/resolvers/marketplace-transporter/marketplace-transporter-query.js +10 -6
  114. package/dist-server/graphql/resolvers/marketplace-transporter/marketplace-transporter-query.js.map +1 -1
  115. package/dist-server/graphql/resolvers/marketplace-transporter/update-marketplace-transporter.js +5 -2
  116. package/dist-server/graphql/resolvers/marketplace-transporter/update-marketplace-transporter.js.map +1 -1
  117. package/dist-server/graphql/resolvers/marketplace-transporter/update-multiple-marketplace-transporter.js +6 -3
  118. package/dist-server/graphql/resolvers/marketplace-transporter/update-multiple-marketplace-transporter.js.map +1 -1
  119. package/dist-server/graphql/resolvers/store-order/accept-store-order-cancellation.js.map +1 -1
  120. package/dist-server/graphql/resolvers/store-order/cancel-store-order.js.map +1 -1
  121. package/dist-server/graphql/resolvers/store-order/get-store-order-document.js.map +1 -1
  122. package/dist-server/graphql/resolvers/store-order/get-store-order-items.js.map +1 -1
  123. package/dist-server/graphql/resolvers/store-order/get-store-order.js.map +1 -1
  124. package/dist-server/graphql/resolvers/store-order/get-store-orders.js.map +1 -1
  125. package/dist-server/graphql/resolvers/store-order/reject-store-order-cancellation.js.map +1 -1
  126. package/dist-server/graphql/resolvers/store-order/set-store-order-status-packed-by-marketplace.js.map +1 -1
  127. package/dist-server/graphql/resolvers/store-order/set-store-order-status-ready-to-ship.js.map +1 -1
  128. package/dist-server/graphql/resolvers/store-product/create-store-product-variations.js.map +1 -1
  129. package/dist-server/graphql/resolvers/store-product/create-store-product.js.map +1 -1
  130. package/dist-server/graphql/resolvers/store-product/delete-store-product.js.map +1 -1
  131. package/dist-server/graphql/resolvers/store-product/get-store-product-brands.js.map +1 -1
  132. package/dist-server/graphql/resolvers/store-product/get-store-product-categories.js.map +1 -1
  133. package/dist-server/graphql/resolvers/store-product/get-store-product-category-attributes.js.map +1 -1
  134. package/dist-server/graphql/resolvers/store-product/get-store-product.js.map +1 -1
  135. package/dist-server/graphql/resolvers/store-product/get-store-products.js.map +1 -1
  136. package/dist-server/graphql/resolvers/store-product/update-store-product.js.map +1 -1
  137. package/dist-server/routers/magento-private-router.js +7 -8
  138. package/dist-server/routers/magento-private-router.js.map +1 -1
  139. package/dist-server/routers/shopify-install-private-router.js +8 -9
  140. package/dist-server/routers/shopify-install-private-router.js.map +1 -1
  141. package/dist-server/routers/shopify-install-public-router.js +2 -3
  142. package/dist-server/routers/shopify-install-public-router.js.map +1 -1
  143. package/dist-server/routers/shopify-private-router.js +6 -7
  144. package/dist-server/routers/shopify-private-router.js.map +1 -1
  145. package/dist-server/routers/shopify-public-router.js +7 -8
  146. package/dist-server/routers/shopify-public-router.js.map +1 -1
  147. package/dist-server/routers/woocommerce-router.js +6 -6
  148. package/dist-server/routers/woocommerce-router.js.map +1 -1
  149. package/dist-server/tsconfig.tsbuildinfo +1 -1
  150. package/package.json +16 -16
  151. package/server/controllers/lazada/client/lazada.ts +2 -1
  152. package/server/controllers/magento/apis/create-order-ship.ts +1 -1
  153. package/server/controllers/shopee/apis2/create-shipping-document.ts +27 -0
  154. package/server/controllers/shopee/apis2/echo.ts +14 -0
  155. package/server/controllers/shopee/apis2/get-logistics-param.ts +66 -0
  156. package/server/controllers/shopee/apis2/get-shipping-document-result.ts +21 -0
  157. package/server/controllers/shopee/apis2/get-store-logistics.ts +23 -0
  158. package/server/controllers/shopee/apis2/get-store-order-by-batch.ts +97 -0
  159. package/server/controllers/shopee/apis2/get-store-order-document.ts +39 -0
  160. package/server/controllers/shopee/apis2/get-store-order-payout-dates.ts +33 -0
  161. package/server/controllers/shopee/apis2/get-store-order-transaction-details.ts +28 -0
  162. package/server/controllers/shopee/apis2/get-store-order.ts +93 -0
  163. package/server/controllers/shopee/apis2/get-store-orders.ts +40 -0
  164. package/server/controllers/shopee/apis2/get-store-product-variations.ts +17 -0
  165. package/server/controllers/shopee/apis2/get-store-product.ts +105 -0
  166. package/server/controllers/shopee/apis2/get-store-products.ts +28 -0
  167. package/server/controllers/shopee/apis2/get-store-refund-order-details.ts +39 -0
  168. package/server/controllers/shopee/apis2/get-store-refund-orders.ts +37 -0
  169. package/server/controllers/shopee/apis2/get-tracking-number.ts +17 -0
  170. package/server/controllers/shopee/apis2/index.ts +20 -0
  171. package/server/controllers/shopee/apis2/init-logistics.ts +39 -0
  172. package/server/controllers/shopee/apis2/update-store-product-stock.ts +26 -0
  173. package/server/controllers/shopee/apis2/update-store-product-variation-stock.ts +28 -0
  174. package/server/controllers/shopee/index.ts +11 -2
  175. package/server/controllers/shopee/platform-action.ts +36 -0
  176. package/server/controllers/shopee/refresh-access-token.ts +78 -0
  177. package/server/controllers/shopee/shopee.ts +95 -0
  178. package/server/controllers/shopify/apis/get-store-orders.ts +46 -30
  179. package/server/controllers/shopify/apis/get-store-products.ts +3 -8
  180. package/server/controllers/shopify/shopify.ts +15 -15
  181. package/server/controllers/store-api/index.ts +14 -2
  182. package/server/controllers/tiktok/apis/get-store-order.ts +26 -24
  183. package/server/controllers/tiktok/apis/get-store-orders.ts +1 -1
  184. package/server/controllers/tiktok/apis/update-order-status.ts +4 -4
  185. package/server/controllers/tiktok/platform-action.ts +14 -14
  186. package/server/engine/connector/lazada-connector.ts +5 -4
  187. package/server/engine/task/marketplace-api.ts +4 -3
  188. package/server/graphql/resolvers/marketplace-distributor/create-marketplace-distributor.ts +2 -2
  189. package/server/graphql/resolvers/marketplace-distributor/delete-marketplace-distributor.ts +4 -3
  190. package/server/graphql/resolvers/marketplace-distributor/delete-marketplace-distributors.ts +6 -3
  191. package/server/graphql/resolvers/marketplace-distributor/marketplace-distributor-query.ts +13 -9
  192. package/server/graphql/resolvers/marketplace-distributor/update-marketplace-distributor.ts +5 -5
  193. package/server/graphql/resolvers/marketplace-distributor/update-multiple-marketplace-distributor.ts +7 -3
  194. package/server/graphql/resolvers/marketplace-setting/create-marketplace-setting.ts +3 -3
  195. package/server/graphql/resolvers/marketplace-setting/delete-marketplace-setting.ts +4 -4
  196. package/server/graphql/resolvers/marketplace-setting/delete-marketplace-settings.ts +9 -7
  197. package/server/graphql/resolvers/marketplace-setting/marketplace-setting-query.ts +11 -8
  198. package/server/graphql/resolvers/marketplace-setting/update-marketplace-setting.ts +9 -3
  199. package/server/graphql/resolvers/marketplace-setting/update-multiple-marketplace-setting.ts +32 -29
  200. package/server/graphql/resolvers/marketplace-store/create-marketplace-store.ts +3 -2
  201. package/server/graphql/resolvers/marketplace-store/delete-marketplace-store.ts +4 -3
  202. package/server/graphql/resolvers/marketplace-store/delete-marketplace-stores.ts +6 -3
  203. package/server/graphql/resolvers/marketplace-store/lazada/deactivate-lazada-store.ts +4 -3
  204. package/server/graphql/resolvers/marketplace-store/lazada/generate-lazada-access-token.ts +2 -2
  205. package/server/graphql/resolvers/marketplace-store/lazada/get-lazada-auth-url.ts +1 -1
  206. package/server/graphql/resolvers/marketplace-store/magento/activate-magento-store.ts +5 -3
  207. package/server/graphql/resolvers/marketplace-store/magento/deactivate-magento-store.ts +4 -4
  208. package/server/graphql/resolvers/marketplace-store/magento/get-magento-auth-url.ts +4 -3
  209. package/server/graphql/resolvers/marketplace-store/marketplace-store.ts +4 -3
  210. package/server/graphql/resolvers/marketplace-store/marketplace-stores.ts +3 -3
  211. package/server/graphql/resolvers/marketplace-store/shopee/deactivate-shopee-store.ts +4 -3
  212. package/server/graphql/resolvers/marketplace-store/shopee/generate-shopee-access-token.ts +3 -3
  213. package/server/graphql/resolvers/marketplace-store/shopee/get-shopee-auth-url.ts +1 -1
  214. package/server/graphql/resolvers/marketplace-store/shopify/deactivate-shopify-store.ts +4 -3
  215. package/server/graphql/resolvers/marketplace-store/shopify/get-shopify-auth-url.ts +4 -4
  216. package/server/graphql/resolvers/marketplace-store/update-marketplace-store.ts +4 -3
  217. package/server/graphql/resolvers/marketplace-store/update-multiple-marketplace-store.ts +4 -3
  218. package/server/graphql/resolvers/marketplace-store/woocommerce/deactivate-woocommerce-store.ts +5 -5
  219. package/server/graphql/resolvers/marketplace-store/woocommerce/get-woocommerce-auth-url.ts +4 -3
  220. package/server/graphql/resolvers/marketplace-store/zalora/deactivate-zalora-store.ts +4 -3
  221. package/server/graphql/resolvers/marketplace-store/zalora/generate-zalora-access-token.ts +2 -2
  222. package/server/graphql/resolvers/marketplace-transporter/create-marketplace-transporter.ts +7 -5
  223. package/server/graphql/resolvers/marketplace-transporter/delete-marketplace-transporter.ts +4 -4
  224. package/server/graphql/resolvers/marketplace-transporter/delete-marketplace-transporters.ts +9 -7
  225. package/server/graphql/resolvers/marketplace-transporter/marketplace-transporter-query.ts +17 -12
  226. package/server/graphql/resolvers/marketplace-transporter/update-marketplace-transporter.ts +8 -5
  227. package/server/graphql/resolvers/marketplace-transporter/update-multiple-marketplace-transporter.ts +32 -29
  228. package/server/graphql/resolvers/store-order/accept-store-order-cancellation.ts +1 -1
  229. package/server/graphql/resolvers/store-order/cancel-store-order.ts +1 -1
  230. package/server/graphql/resolvers/store-order/get-store-order-document.ts +1 -1
  231. package/server/graphql/resolvers/store-order/get-store-order-items.ts +1 -1
  232. package/server/graphql/resolvers/store-order/get-store-order.ts +1 -1
  233. package/server/graphql/resolvers/store-order/get-store-orders.ts +1 -1
  234. package/server/graphql/resolvers/store-order/reject-store-order-cancellation.ts +1 -1
  235. package/server/graphql/resolvers/store-order/set-store-order-status-packed-by-marketplace.ts +1 -1
  236. package/server/graphql/resolvers/store-order/set-store-order-status-ready-to-ship.ts +1 -1
  237. package/server/graphql/resolvers/store-product/create-store-product-variations.ts +1 -1
  238. package/server/graphql/resolvers/store-product/create-store-product.ts +1 -1
  239. package/server/graphql/resolvers/store-product/delete-store-product.ts +1 -1
  240. package/server/graphql/resolvers/store-product/get-store-product-brands.ts +1 -1
  241. package/server/graphql/resolvers/store-product/get-store-product-categories.ts +1 -1
  242. package/server/graphql/resolvers/store-product/get-store-product-category-attributes.ts +1 -1
  243. package/server/graphql/resolvers/store-product/get-store-product.ts +1 -1
  244. package/server/graphql/resolvers/store-product/get-store-products.ts +1 -1
  245. package/server/graphql/resolvers/store-product/update-store-product.ts +1 -1
  246. package/server/routers/magento-private-router.ts +3 -4
  247. package/server/routers/shopify-install-private-router.ts +4 -5
  248. package/server/routers/shopify-install-public-router.ts +1 -2
  249. package/server/routers/shopify-private-router.ts +6 -6
  250. package/server/routers/shopify-public-router.ts +6 -5
  251. 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
- StoreAPI.registerPlatform('shopee', action, APIS)
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
  }