@things-factory/integration-marketplace 8.0.0-beta.9 → 8.0.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.
Files changed (318) hide show
  1. package/dist-server/tsconfig.tsbuildinfo +1 -1
  2. package/package.json +14 -14
  3. package/server/controllers/index.ts +9 -0
  4. package/server/controllers/lazada/apis/cancel-store-order.ts +19 -0
  5. package/server/controllers/lazada/apis/create-store-product.ts +55 -0
  6. package/server/controllers/lazada/apis/delete-store-product.ts +16 -0
  7. package/server/controllers/lazada/apis/echo.ts +14 -0
  8. package/server/controllers/lazada/apis/get-store-logistics.ts +21 -0
  9. package/server/controllers/lazada/apis/get-store-order-document.ts +25 -0
  10. package/server/controllers/lazada/apis/get-store-order-item-transaction-details.ts +65 -0
  11. package/server/controllers/lazada/apis/get-store-order-items.ts +179 -0
  12. package/server/controllers/lazada/apis/get-store-order.ts +87 -0
  13. package/server/controllers/lazada/apis/get-store-orders.ts +127 -0
  14. package/server/controllers/lazada/apis/get-store-product-brands.ts +27 -0
  15. package/server/controllers/lazada/apis/get-store-product-categories.ts +14 -0
  16. package/server/controllers/lazada/apis/get-store-product-category-attributes.ts +16 -0
  17. package/server/controllers/lazada/apis/get-store-product.ts +42 -0
  18. package/server/controllers/lazada/apis/get-store-products.ts +84 -0
  19. package/server/controllers/lazada/apis/get-store-refund-orders.ts +52 -0
  20. package/server/controllers/lazada/apis/index.ts +24 -0
  21. package/server/controllers/lazada/apis/set-order-invoice-no.ts +24 -0
  22. package/server/controllers/lazada/apis/set-store-order-status-delivered.ts +17 -0
  23. package/server/controllers/lazada/apis/set-store-order-status-failed-delivery.ts +17 -0
  24. package/server/controllers/lazada/apis/set-store-order-status-packed-by-marketplace.ts +46 -0
  25. package/server/controllers/lazada/apis/set-store-order-status-ready-to-ship.ts +28 -0
  26. package/server/controllers/lazada/apis/update-store-product-stock.ts +29 -0
  27. package/server/controllers/lazada/apis/update-store-product-variation-stock.ts +29 -0
  28. package/server/controllers/lazada/apis/update-store-product.ts +51 -0
  29. package/server/controllers/lazada/client/index.ts +3 -0
  30. package/server/controllers/lazada/client/lazada.ts +142 -0
  31. package/server/controllers/lazada/client/signature.ts +67 -0
  32. package/server/controllers/lazada/client/types.ts +30 -0
  33. package/server/controllers/lazada/client/xml.ts +24 -0
  34. package/server/controllers/lazada/index.ts +8 -0
  35. package/server/controllers/lazada/platform-action.ts +35 -0
  36. package/server/controllers/magento/apis/create-order-comment.ts +32 -0
  37. package/server/controllers/magento/apis/create-order-refund.ts +20 -0
  38. package/server/controllers/magento/apis/create-order-ship.ts +43 -0
  39. package/server/controllers/magento/apis/echo.ts +14 -0
  40. package/server/controllers/magento/apis/get-store-order.ts +15 -0
  41. package/server/controllers/magento/apis/get-store-orders.ts +159 -0
  42. package/server/controllers/magento/apis/get-store-product-categories.ts +43 -0
  43. package/server/controllers/magento/apis/get-store-product-variations.ts +17 -0
  44. package/server/controllers/magento/apis/get-store-product.ts +44 -0
  45. package/server/controllers/magento/apis/get-store-products.ts +120 -0
  46. package/server/controllers/magento/apis/get-store-stock-item.ts +66 -0
  47. package/server/controllers/magento/apis/index.ts +16 -0
  48. package/server/controllers/magento/apis/update-order-status.ts +56 -0
  49. package/server/controllers/magento/apis/update-store-product-price.ts +24 -0
  50. package/server/controllers/magento/apis/update-store-product-stock.ts +42 -0
  51. package/server/controllers/magento/apis/update-store-product-variation-price.ts +24 -0
  52. package/server/controllers/magento/apis/update-store-product-variation-stock.ts +42 -0
  53. package/server/controllers/magento/index.ts +8 -0
  54. package/server/controllers/magento/magento.ts +202 -0
  55. package/server/controllers/magento/platform-action.ts +44 -0
  56. package/server/controllers/shopee/apis/accept-store-order-cancellation.ts +22 -0
  57. package/server/controllers/shopee/apis/cancel-store-order.ts +25 -0
  58. package/server/controllers/shopee/apis/create-store-product-variations.ts +33 -0
  59. package/server/controllers/shopee/apis/create-store-product.ts +57 -0
  60. package/server/controllers/shopee/apis/delete-store-product.ts +19 -0
  61. package/server/controllers/shopee/apis/echo.ts +14 -0
  62. package/server/controllers/shopee/apis/get-address.ts +32 -0
  63. package/server/controllers/shopee/apis/get-branch-list.ts +30 -0
  64. package/server/controllers/shopee/apis/get-logistics-param.ts +71 -0
  65. package/server/controllers/shopee/apis/get-store-logistics.ts +21 -0
  66. package/server/controllers/shopee/apis/get-store-order-document.ts +27 -0
  67. package/server/controllers/shopee/apis/get-store-order-items.ts +47 -0
  68. package/server/controllers/shopee/apis/get-store-order-payout-dates.ts +29 -0
  69. package/server/controllers/shopee/apis/get-store-order-transaction-details.ts +29 -0
  70. package/server/controllers/shopee/apis/get-store-order.ts +136 -0
  71. package/server/controllers/shopee/apis/get-store-orders.ts +39 -0
  72. package/server/controllers/shopee/apis/get-store-product-categories.ts +19 -0
  73. package/server/controllers/shopee/apis/get-store-product-category-attributes.ts +18 -0
  74. package/server/controllers/shopee/apis/get-store-product.ts +84 -0
  75. package/server/controllers/shopee/apis/get-store-products.ts +30 -0
  76. package/server/controllers/shopee/apis/get-store-refund-order-details.ts +41 -0
  77. package/server/controllers/shopee/apis/get-store-refund-orders.ts +47 -0
  78. package/server/controllers/shopee/apis/get-time-slot.ts +25 -0
  79. package/server/controllers/shopee/apis/index.ts +30 -0
  80. package/server/controllers/shopee/apis/init-logistics.ts +39 -0
  81. package/server/controllers/shopee/apis/reject-store-order-cancellation.ts +22 -0
  82. package/server/controllers/shopee/apis/split-order.ts +44 -0
  83. package/server/controllers/shopee/apis/update-store-product-stock.ts +24 -0
  84. package/server/controllers/shopee/apis/update-store-product-variation-stock.ts +21 -0
  85. package/server/controllers/shopee/apis/update-store-product.ts +85 -0
  86. package/server/controllers/shopee/apis2/create-shipping-document.ts +27 -0
  87. package/server/controllers/shopee/apis2/echo.ts +14 -0
  88. package/server/controllers/shopee/apis2/get-logistics-param.ts +66 -0
  89. package/server/controllers/shopee/apis2/get-shipping-document-result.ts +21 -0
  90. package/server/controllers/shopee/apis2/get-store-logistics.ts +23 -0
  91. package/server/controllers/shopee/apis2/get-store-order-by-batch.ts +97 -0
  92. package/server/controllers/shopee/apis2/get-store-order-document.ts +39 -0
  93. package/server/controllers/shopee/apis2/get-store-order-payout-dates.ts +33 -0
  94. package/server/controllers/shopee/apis2/get-store-order-transaction-details.ts +28 -0
  95. package/server/controllers/shopee/apis2/get-store-order.ts +93 -0
  96. package/server/controllers/shopee/apis2/get-store-orders.ts +40 -0
  97. package/server/controllers/shopee/apis2/get-store-product-variations.ts +17 -0
  98. package/server/controllers/shopee/apis2/get-store-product.ts +105 -0
  99. package/server/controllers/shopee/apis2/get-store-products.ts +28 -0
  100. package/server/controllers/shopee/apis2/get-store-refund-order-details.ts +39 -0
  101. package/server/controllers/shopee/apis2/get-store-refund-orders.ts +37 -0
  102. package/server/controllers/shopee/apis2/get-tracking-number.ts +17 -0
  103. package/server/controllers/shopee/apis2/index.ts +20 -0
  104. package/server/controllers/shopee/apis2/init-logistics.ts +39 -0
  105. package/server/controllers/shopee/apis2/update-store-product-stock.ts +26 -0
  106. package/server/controllers/shopee/apis2/update-store-product-variation-stock.ts +28 -0
  107. package/server/controllers/shopee/index.ts +16 -0
  108. package/server/controllers/shopee/platform-action.ts +58 -0
  109. package/server/controllers/shopee/refresh-access-token.ts +78 -0
  110. package/server/controllers/shopee/shopee.ts +191 -0
  111. package/server/controllers/shopify/apis/echo.ts +14 -0
  112. package/server/controllers/shopify/apis/get-airway-bill.ts +17 -0
  113. package/server/controllers/shopify/apis/get-inventory-level.ts +17 -0
  114. package/server/controllers/shopify/apis/get-store-order.ts +172 -0
  115. package/server/controllers/shopify/apis/get-store-orders.ts +290 -0
  116. package/server/controllers/shopify/apis/get-store-product-categories.ts +19 -0
  117. package/server/controllers/shopify/apis/get-store-product-category-attributes.ts +18 -0
  118. package/server/controllers/shopify/apis/get-store-product-variation-stock.ts +17 -0
  119. package/server/controllers/shopify/apis/get-store-products-count.ts +14 -0
  120. package/server/controllers/shopify/apis/get-store-products.ts +177 -0
  121. package/server/controllers/shopify/apis/index.ts +13 -0
  122. package/server/controllers/shopify/apis/set-store-order-status-ready-to-ship.ts +31 -0
  123. package/server/controllers/shopify/apis/update-order-status.ts +32 -0
  124. package/server/controllers/shopify/apis/update-store-product-price.ts +26 -0
  125. package/server/controllers/shopify/apis/update-store-product-stock.ts +20 -0
  126. package/server/controllers/shopify/apis/update-store-product-variation-price.ts +26 -0
  127. package/server/controllers/shopify/apis/update-store-product-variation-stock.ts +20 -0
  128. package/server/controllers/shopify/index.ts +8 -0
  129. package/server/controllers/shopify/platform-action.ts +43 -0
  130. package/server/controllers/shopify/shopify.ts +148 -0
  131. package/server/controllers/store-api/decorators.ts +44 -0
  132. package/server/controllers/store-api/index.ts +209 -0
  133. package/server/controllers/store-api/types.ts +0 -0
  134. package/server/controllers/tiktok/apis/echo.ts +14 -0
  135. package/server/controllers/tiktok/apis/get-store-order-document.ts +26 -0
  136. package/server/controllers/tiktok/apis/get-store-order-package.ts +46 -0
  137. package/server/controllers/tiktok/apis/get-store-order-packages.ts +43 -0
  138. package/server/controllers/tiktok/apis/get-store-order.ts +176 -0
  139. package/server/controllers/tiktok/apis/get-store-orders.ts +55 -0
  140. package/server/controllers/tiktok/apis/get-store-product-attributes.ts +29 -0
  141. package/server/controllers/tiktok/apis/get-store-product-categories.ts +27 -0
  142. package/server/controllers/tiktok/apis/get-store-product.ts +95 -0
  143. package/server/controllers/tiktok/apis/get-store-products.ts +45 -0
  144. package/server/controllers/tiktok/apis/index.ts +13 -0
  145. package/server/controllers/tiktok/apis/update-order-status.ts +24 -0
  146. package/server/controllers/tiktok/apis/update-store-product-variation-price.ts +24 -0
  147. package/server/controllers/tiktok/apis/update-store-product-variation-stock.ts +28 -0
  148. package/server/controllers/tiktok/client/index.ts +2 -0
  149. package/server/controllers/tiktok/client/signature.ts +78 -0
  150. package/server/controllers/tiktok/client/tiktok.ts +150 -0
  151. package/server/controllers/tiktok/client/types.ts +20 -0
  152. package/server/controllers/tiktok/index.ts +8 -0
  153. package/server/controllers/tiktok/platform-action.ts +72 -0
  154. package/server/controllers/woocommerce/apis/create-order-note.ts +17 -0
  155. package/server/controllers/woocommerce/apis/echo.ts +14 -0
  156. package/server/controllers/woocommerce/apis/get-customer-info.ts +18 -0
  157. package/server/controllers/woocommerce/apis/get-store-order.ts +116 -0
  158. package/server/controllers/woocommerce/apis/get-store-orders.ts +190 -0
  159. package/server/controllers/woocommerce/apis/get-store-product-categories.ts +18 -0
  160. package/server/controllers/woocommerce/apis/get-store-product-variations.ts +16 -0
  161. package/server/controllers/woocommerce/apis/get-store-products.ts +135 -0
  162. package/server/controllers/woocommerce/apis/index.ts +19 -0
  163. package/server/controllers/woocommerce/apis/set-store-order-status-ready-to-ship.ts +17 -0
  164. package/server/controllers/woocommerce/apis/update-order-status.ts +40 -0
  165. package/server/controllers/woocommerce/apis/update-product-attribute.ts +20 -0
  166. package/server/controllers/woocommerce/apis/update-store-product-price.ts +20 -0
  167. package/server/controllers/woocommerce/apis/update-store-product-stock.ts +17 -0
  168. package/server/controllers/woocommerce/apis/update-store-product-variant-price.ts +17 -0
  169. package/server/controllers/woocommerce/apis/update-store-product-variant-stock.ts +18 -0
  170. package/server/controllers/woocommerce/apis/update-store-product-variation-price.ts +20 -0
  171. package/server/controllers/woocommerce/apis/update-store-product-variation-stock.ts +20 -0
  172. package/server/controllers/woocommerce/index.ts +8 -0
  173. package/server/controllers/woocommerce/platform-action.ts +48 -0
  174. package/server/controllers/woocommerce/woocommerce.ts +104 -0
  175. package/server/controllers/zalora/apis/echo.ts +14 -0
  176. package/server/controllers/zalora/apis/get-airway-bill.ts +17 -0
  177. package/server/controllers/zalora/apis/get-store-order-items.ts +17 -0
  178. package/server/controllers/zalora/apis/get-store-order.ts +17 -0
  179. package/server/controllers/zalora/apis/get-store-orders.ts +21 -0
  180. package/server/controllers/zalora/apis/get-store-product-categories.ts +20 -0
  181. package/server/controllers/zalora/apis/get-store-product-category-attributes.ts +18 -0
  182. package/server/controllers/zalora/apis/get-store-products.ts +20 -0
  183. package/server/controllers/zalora/apis/index.ts +8 -0
  184. package/server/controllers/zalora/index.ts +8 -0
  185. package/server/controllers/zalora/platform-action.ts +18 -0
  186. package/server/controllers/zalora/zalora/index.ts +70 -0
  187. package/server/controllers/zalora/zalora/signature.ts +37 -0
  188. package/server/controllers/zalora/zalora/xml.ts +24 -0
  189. package/server/engine/connector/index.ts +3 -0
  190. package/server/engine/connector/lazada-connector.ts +49 -0
  191. package/server/engine/connector/marketplace-connector.ts +33 -0
  192. package/server/engine/connector/shopee-connector.ts +46 -0
  193. package/server/engine/index.ts +2 -0
  194. package/server/engine/task/index.ts +4 -0
  195. package/server/engine/task/lazada-get.ts +48 -0
  196. package/server/engine/task/lazada-post.ts +46 -0
  197. package/server/engine/task/marketplace-api.ts +72 -0
  198. package/server/engine/task/shopee-post.ts +51 -0
  199. package/server/entities/index.ts +8 -0
  200. package/server/entities/marketplace-distributor.ts +42 -0
  201. package/server/entities/marketplace-setting.ts +49 -0
  202. package/server/entities/marketplace-store.ts +100 -0
  203. package/server/entities/marketplace-transporter.ts +46 -0
  204. package/server/graphql/constants/index.ts +1 -0
  205. package/server/graphql/constants/store.ts +5 -0
  206. package/server/graphql/index.ts +9 -0
  207. package/server/graphql/resolvers/index.ts +6 -0
  208. package/server/graphql/resolvers/marketplace-distributor/create-marketplace-distributor.ts +15 -0
  209. package/server/graphql/resolvers/marketplace-distributor/delete-marketplace-distributor.ts +13 -0
  210. package/server/graphql/resolvers/marketplace-distributor/delete-marketplace-distributors.ts +18 -0
  211. package/server/graphql/resolvers/marketplace-distributor/index.ts +19 -0
  212. package/server/graphql/resolvers/marketplace-distributor/marketplace-distributor-query.ts +57 -0
  213. package/server/graphql/resolvers/marketplace-distributor/update-marketplace-distributor.ts +22 -0
  214. package/server/graphql/resolvers/marketplace-distributor/update-multiple-marketplace-distributor.ts +49 -0
  215. package/server/graphql/resolvers/marketplace-setting/create-marketplace-setting.ts +16 -0
  216. package/server/graphql/resolvers/marketplace-setting/delete-marketplace-setting.ts +13 -0
  217. package/server/graphql/resolvers/marketplace-setting/delete-marketplace-settings.ts +18 -0
  218. package/server/graphql/resolvers/marketplace-setting/index.ts +19 -0
  219. package/server/graphql/resolvers/marketplace-setting/marketplace-setting-query.ts +56 -0
  220. package/server/graphql/resolvers/marketplace-setting/update-marketplace-setting.ts +32 -0
  221. package/server/graphql/resolvers/marketplace-setting/update-multiple-marketplace-setting.ts +49 -0
  222. package/server/graphql/resolvers/marketplace-store/create-marketplace-store.ts +20 -0
  223. package/server/graphql/resolvers/marketplace-store/delete-marketplace-store.ts +21 -0
  224. package/server/graphql/resolvers/marketplace-store/delete-marketplace-stores.ts +26 -0
  225. package/server/graphql/resolvers/marketplace-store/index.ts +40 -0
  226. package/server/graphql/resolvers/marketplace-store/lazada/deactivate-lazada-store.ts +28 -0
  227. package/server/graphql/resolvers/marketplace-store/lazada/generate-lazada-access-token.ts +61 -0
  228. package/server/graphql/resolvers/marketplace-store/lazada/get-lazada-auth-url.ts +9 -0
  229. package/server/graphql/resolvers/marketplace-store/lazada/index.ts +12 -0
  230. package/server/graphql/resolvers/marketplace-store/magento/activate-magento-store.ts +82 -0
  231. package/server/graphql/resolvers/marketplace-store/magento/deactivate-magento-store.ts +27 -0
  232. package/server/graphql/resolvers/marketplace-store/magento/get-magento-auth-url.ts +12 -0
  233. package/server/graphql/resolvers/marketplace-store/magento/index.ts +12 -0
  234. package/server/graphql/resolvers/marketplace-store/marketplace-store.ts +14 -0
  235. package/server/graphql/resolvers/marketplace-store/marketplace-stores.ts +18 -0
  236. package/server/graphql/resolvers/marketplace-store/shopee/deactivate-shopee-store.ts +28 -0
  237. package/server/graphql/resolvers/marketplace-store/shopee/generate-shopee-access-token.ts +96 -0
  238. package/server/graphql/resolvers/marketplace-store/shopee/get-shopee-auth-url.ts +18 -0
  239. package/server/graphql/resolvers/marketplace-store/shopee/index.ts +13 -0
  240. package/server/graphql/resolvers/marketplace-store/shopify/deactivate-shopify-store.ts +29 -0
  241. package/server/graphql/resolvers/marketplace-store/shopify/get-shopify-auth-url.ts +26 -0
  242. package/server/graphql/resolvers/marketplace-store/shopify/index.ts +11 -0
  243. package/server/graphql/resolvers/marketplace-store/update-marketplace-store.ts +19 -0
  244. package/server/graphql/resolvers/marketplace-store/update-multiple-marketplace-store.ts +46 -0
  245. package/server/graphql/resolvers/marketplace-store/woocommerce/deactivate-woocommerce-store.ts +20 -0
  246. package/server/graphql/resolvers/marketplace-store/woocommerce/get-woocommerce-auth-url.ts +14 -0
  247. package/server/graphql/resolvers/marketplace-store/woocommerce/index.ts +10 -0
  248. package/server/graphql/resolvers/marketplace-store/zalora/deactivate-zalora-store.ts +28 -0
  249. package/server/graphql/resolvers/marketplace-store/zalora/generate-zalora-access-token.ts +55 -0
  250. package/server/graphql/resolvers/marketplace-store/zalora/index.ts +9 -0
  251. package/server/graphql/resolvers/marketplace-transporter/create-marketplace-transporter.ts +21 -0
  252. package/server/graphql/resolvers/marketplace-transporter/delete-marketplace-transporter.ts +13 -0
  253. package/server/graphql/resolvers/marketplace-transporter/delete-marketplace-transporters.ts +18 -0
  254. package/server/graphql/resolvers/marketplace-transporter/index.ts +19 -0
  255. package/server/graphql/resolvers/marketplace-transporter/marketplace-transporter-query.ts +60 -0
  256. package/server/graphql/resolvers/marketplace-transporter/update-marketplace-transporter.ts +25 -0
  257. package/server/graphql/resolvers/marketplace-transporter/update-multiple-marketplace-transporter.ts +49 -0
  258. package/server/graphql/resolvers/store-order/accept-store-order-cancellation.ts +9 -0
  259. package/server/graphql/resolvers/store-order/cancel-store-order.ts +8 -0
  260. package/server/graphql/resolvers/store-order/get-store-order-document.ts +8 -0
  261. package/server/graphql/resolvers/store-order/get-store-order-items.ts +8 -0
  262. package/server/graphql/resolvers/store-order/get-store-order.ts +8 -0
  263. package/server/graphql/resolvers/store-order/get-store-orders.ts +13 -0
  264. package/server/graphql/resolvers/store-order/index.ts +23 -0
  265. package/server/graphql/resolvers/store-order/reject-store-order-cancellation.ts +9 -0
  266. package/server/graphql/resolvers/store-order/set-store-order-status-packed-by-marketplace.ts +9 -0
  267. package/server/graphql/resolvers/store-order/set-store-order-status-ready-to-ship.ts +10 -0
  268. package/server/graphql/resolvers/store-product/create-store-product-variations.ts +9 -0
  269. package/server/graphql/resolvers/store-product/create-store-product.ts +8 -0
  270. package/server/graphql/resolvers/store-product/delete-store-product.ts +8 -0
  271. package/server/graphql/resolvers/store-product/get-store-product-brands.ts +14 -0
  272. package/server/graphql/resolvers/store-product/get-store-product-categories.ts +8 -0
  273. package/server/graphql/resolvers/store-product/get-store-product-category-attributes.ts +11 -0
  274. package/server/graphql/resolvers/store-product/get-store-product.ts +8 -0
  275. package/server/graphql/resolvers/store-product/get-store-products.ts +13 -0
  276. package/server/graphql/resolvers/store-product/index.ts +25 -0
  277. package/server/graphql/resolvers/store-product/update-store-product.ts +8 -0
  278. package/server/graphql/types/index.ts +6 -0
  279. package/server/graphql/types/marketplace-distributor/index.ts +26 -0
  280. package/server/graphql/types/marketplace-distributor/marketplace-distributor-list.ts +8 -0
  281. package/server/graphql/types/marketplace-distributor/marketplace-distributor-patch.ts +11 -0
  282. package/server/graphql/types/marketplace-distributor/marketplace-distributor.ts +16 -0
  283. package/server/graphql/types/marketplace-distributor/new-marketplace-distributor.ts +9 -0
  284. package/server/graphql/types/marketplace-setting/index.ts +22 -0
  285. package/server/graphql/types/marketplace-setting/marketplace-setting-list.ts +8 -0
  286. package/server/graphql/types/marketplace-setting/marketplace-setting-patch.ts +12 -0
  287. package/server/graphql/types/marketplace-setting/marketplace-setting.ts +17 -0
  288. package/server/graphql/types/marketplace-setting/new-marketplace-setting.ts +11 -0
  289. package/server/graphql/types/marketplace-store/index.ts +38 -0
  290. package/server/graphql/types/marketplace-store/marketplace-store-list.ts +8 -0
  291. package/server/graphql/types/marketplace-store/marketplace-store-patch.ts +21 -0
  292. package/server/graphql/types/marketplace-store/marketplace-store.ts +28 -0
  293. package/server/graphql/types/marketplace-store/new-marketplace-store.ts +19 -0
  294. package/server/graphql/types/marketplace-transporter/index.ts +24 -0
  295. package/server/graphql/types/marketplace-transporter/marketplace-transporter-list.ts +8 -0
  296. package/server/graphql/types/marketplace-transporter/marketplace-transporter-patch.ts +13 -0
  297. package/server/graphql/types/marketplace-transporter/marketplace-transporter.ts +17 -0
  298. package/server/graphql/types/marketplace-transporter/new-marketplace-transporter.ts +11 -0
  299. package/server/graphql/types/store-order/index.ts +23 -0
  300. package/server/graphql/types/store-order/new-store-order.ts +8 -0
  301. package/server/graphql/types/store-order/store-order-list.ts +8 -0
  302. package/server/graphql/types/store-order/store-order-patch.ts +10 -0
  303. package/server/graphql/types/store-order/store-order.ts +14 -0
  304. package/server/graphql/types/store-product/index.ts +23 -0
  305. package/server/graphql/types/store-product/new-store-product.ts +8 -0
  306. package/server/graphql/types/store-product/store-product-list.ts +8 -0
  307. package/server/graphql/types/store-product/store-product-patch.ts +10 -0
  308. package/server/graphql/types/store-product/store-product.ts +14 -0
  309. package/server/index.ts +9 -0
  310. package/server/migrations/index.ts +9 -0
  311. package/server/routers/magento-private-router.ts +192 -0
  312. package/server/routers/magento-public-router.ts +38 -0
  313. package/server/routers/shopify-install-private-router.ts +95 -0
  314. package/server/routers/shopify-install-public-router.ts +241 -0
  315. package/server/routers/shopify-private-router.ts +78 -0
  316. package/server/routers/shopify-public-router.ts +182 -0
  317. package/server/routers/woocommerce-router.ts +70 -0
  318. package/server/routes.ts +21 -0
@@ -0,0 +1,78 @@
1
+ import Router from 'koa-router'
2
+ import { v4 as uuidv4 } from 'uuid'
3
+
4
+ import { VerificationToken, VerificationTokenType } from '@things-factory/auth-base'
5
+ import { config } from '@things-factory/env'
6
+ import { getRepository, getUrlFromContext } from '@things-factory/shell'
7
+
8
+ import { Shopify } from '../controllers/shopify'
9
+ import { MarketplaceSetting, MarketplaceStore } from '../entities'
10
+ import { STORE_STATUS } from '../graphql/constants'
11
+
12
+ const shopifyConfig = config.get('marketplaceIntegrationShopify', {})
13
+ const { apiKey, apiSecret } = shopifyConfig
14
+ const isPathBaseDomain = !config.get('subdomain') && !config.get('useVirtualHostBasedDomain')
15
+
16
+ const debug = require('debug')('things-factory:integration-marketplace:shopify-private-router')
17
+
18
+ export const shopifyPrivateRouter = new Router()
19
+
20
+ shopifyPrivateRouter.get(
21
+ `${isPathBaseDomain ? '/domain/:domain' : ''}/callback-shopify-install`,
22
+ async (context, next) => {
23
+ // https://example.org/callback-shopify-install?shop={shop}&hmac=da9d83c171400a41f8db91a950508985&timestamp=1409617544
24
+ const { hmac, timestamp } = context.query
25
+ const { domain, user } = context.state
26
+
27
+ let shop: any = context.query.shop
28
+ shop = shop.replace('.myshopify.com', '')
29
+
30
+ const shopify = new Shopify({ apiKey, apiSecret, shop })
31
+
32
+ // need to get or save marketplace-store here
33
+ var marketplaceStore = await getRepository(MarketplaceStore).findOne({
34
+ where: {
35
+ domain: { id: domain.id },
36
+ storeId: shop,
37
+ platform: 'shopify'
38
+ }
39
+ })
40
+
41
+ if (!marketplaceStore) {
42
+ marketplaceStore = await getRepository(MarketplaceStore).save({
43
+ domain,
44
+ platform: 'shopify',
45
+ name: shop,
46
+ storeId: shop,
47
+ countryCode: '',
48
+ status: STORE_STATUS.INACTIVE,
49
+ creator: user,
50
+ updater: user
51
+ })
52
+ }
53
+
54
+ const marketplaceSetting = new MarketplaceSetting()
55
+ marketplaceSetting.name = uuidv4()
56
+ marketplaceSetting.marketplaceStore = marketplaceStore
57
+ marketplaceSetting.value = '100'
58
+ marketplaceSetting.category = 'stock_allocation'
59
+ marketplaceSetting.domain = marketplaceStore.domain
60
+ marketplaceSetting.creator = marketplaceStore.creator
61
+ await getRepository(MarketplaceSetting).save(marketplaceSetting)
62
+
63
+ /* generate verification-token as a nonce */
64
+ const nonce = shopify.makeVerificationTokenForNonce()
65
+ await getRepository(VerificationToken).save({
66
+ userId: user.id,
67
+ token: nonce,
68
+ type: VerificationTokenType.REQUEST_ACCESS_TOKEN,
69
+ suppliment: marketplaceStore.id
70
+ })
71
+
72
+ const redirectUrl = getUrlFromContext(context, '/callback-shopify')
73
+ const redirectTo = shopify.buildAuthURL(redirectUrl, nonce)
74
+
75
+ debug('get:/callback-shopify-install', redirectTo)
76
+ context.redirect(redirectTo)
77
+ }
78
+ )
@@ -0,0 +1,182 @@
1
+ import Router from 'koa-router'
2
+ import fetch from 'node-fetch'
3
+ import { v4 as uuidv4 } from 'uuid'
4
+
5
+ import { User, VerificationToken, VerificationTokenType } from '@things-factory/auth-base'
6
+ import { config } from '@things-factory/env'
7
+ import { getRedirectSubdomainPath, getRepository } from '@things-factory/shell'
8
+
9
+ import { StoreAPI } from '../controllers/store-api'
10
+ import { MarketplaceSetting, MarketplaceStore } from '../entities'
11
+ import { STORE_STATUS } from '../graphql/constants'
12
+
13
+ const shopifyConfig = config.get('marketplaceIntegrationShopify', {})
14
+ const { apiKey, apiSecret } = shopifyConfig
15
+
16
+ const debug = require('debug')('things-factory:integration-marketplace:shopify-public-router')
17
+
18
+ export const shopifyPublicRouter = new Router()
19
+
20
+ shopifyPublicRouter.get('/callback-shopify', async (context, next) => {
21
+ try {
22
+ // https://example.org/some/redirect/uri?code={authorization_code}&hmac=da9d83c171400a41f8db91a950508985&timestamp=1409617544&state={nonce}&shop={hostname}
23
+ const { code, hmac, timestamp, state: nonce, shop: hostname } = context.query
24
+
25
+ const verificationTokenRepository = getRepository(VerificationToken)
26
+
27
+ var verification: VerificationToken = await verificationTokenRepository.findOne({
28
+ where: {
29
+ token: nonce,
30
+ type: VerificationTokenType.REQUEST_ACCESS_TOKEN
31
+ }
32
+ })
33
+
34
+ const { userId, suppliment: marketplaceStoreId } = verification
35
+
36
+ await verificationTokenRepository.delete({
37
+ userId,
38
+ token: nonce,
39
+ type: VerificationTokenType.REQUEST_ACCESS_TOKEN
40
+ })
41
+
42
+ var store = await StoreAPI.getMarketplaceStore(marketplaceStoreId)
43
+ const storeId = store.storeId
44
+
45
+ const response = await fetch(`https://${storeId}.myshopify.com/admin/oauth/access_token`, {
46
+ method: 'post',
47
+ headers: {
48
+ 'Content-Type': 'application/json'
49
+ },
50
+ body: JSON.stringify({
51
+ client_id: apiKey,
52
+ client_secret: apiSecret,
53
+ code
54
+ })
55
+ })
56
+
57
+ if (response.ok) {
58
+ var body = await response.json()
59
+ var { access_token } = body
60
+ if (!access_token) {
61
+ const message = `failed to get access-token from shopify : ${JSON.stringify(body, null, 2)}`
62
+ debug(message)
63
+ throw new Error(message)
64
+ }
65
+ } else {
66
+ const message = `failed to get access-token from shopify : ${response.status}, ${await response.text()}`
67
+ debug(message)
68
+ throw new Error(message)
69
+ }
70
+
71
+ var patch = {
72
+ accessToken: access_token,
73
+ refreshToken: '',
74
+ accessInfo: JSON.stringify(body, null, 2),
75
+ storeId: storeId,
76
+ status: STORE_STATUS.ACTIVE
77
+ }
78
+
79
+ var user = await getRepository(User).findOneBy({ id: userId })
80
+
81
+ store = await getRepository(MarketplaceStore).save({
82
+ ...store,
83
+ ...patch,
84
+ updater: user
85
+ })
86
+
87
+ const marketplaceSetting = new MarketplaceSetting()
88
+ marketplaceSetting.name = uuidv4()
89
+ marketplaceSetting.marketplaceStore = store
90
+ marketplaceSetting.value = '100'
91
+ marketplaceSetting.category = 'stock_allocation'
92
+ marketplaceSetting.domain = store.domain
93
+ marketplaceSetting.creator = store.creator
94
+ await getRepository(MarketplaceSetting).save(marketplaceSetting)
95
+
96
+ var message = 'success to activate'
97
+ context.redirect(
98
+ `${getRedirectSubdomainPath(context, store.domain.subdomain)}marketplace-store-shopify/${
99
+ store.id
100
+ }/connect-callback?status=${store.status}&message=${message}`
101
+ )
102
+ } catch (err) {
103
+ var message: string = err.message
104
+
105
+ if (store) {
106
+ context.redirect(
107
+ `${getRedirectSubdomainPath(context, store.domain.subdomain)}marketplace-store-shopify/${
108
+ store.id
109
+ }/connect-callback?status=${store.status}&message=${message}`
110
+ )
111
+ return
112
+ }
113
+
114
+ throw err
115
+ }
116
+ })
117
+
118
+ shopifyPublicRouter.post('/webhook-shopify/customers/redact', async (context, next) => {
119
+ // When a store owner requests deletion of data on behalf of a customer,
120
+ // Shopify sends a payload on the customers/redact topic to the apps installed on that store.
121
+ // If the customer hasn't placed an order in the past six months,
122
+ // then Shopify sends the payload 10 days after their request.
123
+ // Otherwise, the the request will be withheld until 6 months have passed.
124
+ // If your app has been granted access to the store's customers or orders,
125
+ // then you receive a redaction request webhook with the resource IDs that you need to redact or delete.
126
+ // In some cases, a customer record contains only the customer's email address.
127
+ //
128
+ // https://shopify.dev/tutorials/add-gdpr-webhooks-to-your-app
129
+ // {
130
+ // "shop_id": 954889,
131
+ // "shop_domain": "snowdevil.myshopify.com",
132
+ // "customer": {
133
+ // "id": 191167,
134
+ // "email": "john@email.com",
135
+ // "phone": "555-625-1199"
136
+ // },
137
+ // "orders_to_redact": [299938, 280263, 220458]
138
+ // }
139
+
140
+ context.status = 200
141
+ })
142
+
143
+ shopifyPublicRouter.post('/webhook-shopify/shop/redact', async (context, next) => {
144
+ // 48 hours after a store owner uninstalls your app,
145
+ // Shopify sends you a shop/redact webhook.
146
+ // This webhook provides the store's shop_id and shop_domain so that you can erase the customer information
147
+ // for that store from your database.
148
+ //
149
+ // https://shopify.dev/tutorials/add-gdpr-webhooks-to-your-app
150
+ // {
151
+ // "shop_id": 954889,
152
+ // "shop_domain": "snowdevil.myshopify.com"
153
+ // }
154
+
155
+ context.status = 200
156
+ })
157
+
158
+ shopifyPublicRouter.post('/webhook-shopify/customers/data_request', async (context, next) => {
159
+ // When a customer requests their data from a store owner,
160
+ // Shopify sends a payload on the customers/data_request topic to the apps installed on that store.
161
+ // If your app has been granted access to customers or orders,
162
+ // then you receive a data request webhook with the resource IDs of the data that you need to provide to the store owner.
163
+ // It's your responsibility to provide this data to the store owner directly.
164
+ // In some cases, a customer record contains only the customer's email address.
165
+ //
166
+ // https://shopify.dev/tutorials/add-gdpr-webhooks-to-your-app
167
+ // {
168
+ // "shop_id": 954889,
169
+ // "shop_domain": "snowdevil.myshopify.com",
170
+ // "orders_requested": [299938, 280263, 220458],
171
+ // "customer": {
172
+ // "id": 191167,
173
+ // "email": "john@email.com",
174
+ // "phone": "555-625-1199"
175
+ // },
176
+ // "data_request": {
177
+ // "id": 9999
178
+ // }
179
+ // }
180
+
181
+ context.status = 200
182
+ })
@@ -0,0 +1,70 @@
1
+ import Router from 'koa-router'
2
+ import { v4 as uuidv4 } from 'uuid'
3
+
4
+ import { getRepository } from '@things-factory/shell'
5
+
6
+ import { MarketplaceSetting, MarketplaceStore } from '../entities'
7
+ import { STORE_STATUS } from '../graphql/constants'
8
+
9
+ export const woocommerceRouter = new Router()
10
+
11
+ /**
12
+ * @summary Callback After Authentication
13
+ * @description When the callback is triggered, we will receive key_id, user_id, consumer_key and consumer_secret
14
+ * from Woocommerce. We store them into database for easy retrieval.
15
+ */
16
+ export type WoocommerAccessInfo = {
17
+ key_id: number
18
+ user_id: string
19
+ consumer_key: string
20
+ consumer_secret: string
21
+ key_permission: 'read' | 'write' | 'read_write'
22
+ }
23
+
24
+ woocommerceRouter.post('/callback-woocommerce', async (context, next) => {
25
+ try {
26
+ const accessInfo: WoocommerAccessInfo = context.request.body
27
+ await saveWoocommerceAccessInfo(accessInfo)
28
+ context.status = 200
29
+ next()
30
+ } catch (e) {
31
+ throw e
32
+ }
33
+ })
34
+
35
+ async function saveWoocommerceAccessInfo(accessInfo: WoocommerAccessInfo): Promise<MarketplaceStore> {
36
+ const {
37
+ key_id: storeId,
38
+ user_id: marketplaceStoreId,
39
+ consumer_key: accessKey,
40
+ consumer_secret: accessSecret
41
+ } = accessInfo
42
+
43
+ let marketplaceStore: MarketplaceStore = await getRepository(MarketplaceStore).findOneBy({ id: marketplaceStoreId })
44
+ marketplaceStore.accessKey = accessKey
45
+ marketplaceStore.accessSecret = accessSecret
46
+ marketplaceStore.accessInfo = JSON.stringify(accessInfo, null, 2)
47
+ marketplaceStore.storeId = String(storeId)
48
+ marketplaceStore.status = STORE_STATUS.ACTIVE
49
+
50
+ const marketplaceSettingCategories: any[] = ['stock_allocation', 'marketplace_order_max_weight']
51
+
52
+ marketplaceSettingCategories.forEach(async category => {
53
+ const foundMarketplaceSetting: MarketplaceSetting = await getRepository(MarketplaceSetting).findOne({
54
+ where: { marketplaceStore: { id: marketplaceStore.id }, domain: { id: marketplaceStore.domain.id }, category }
55
+ })
56
+
57
+ if (!foundMarketplaceSetting) {
58
+ const marketplaceSetting = new MarketplaceSetting()
59
+ marketplaceSetting.name = uuidv4()
60
+ marketplaceSetting.marketplaceStore = marketplaceStore
61
+ marketplaceSetting.value = '100'
62
+ marketplaceSetting.category = category
63
+ marketplaceSetting.domain = marketplaceStore.domain
64
+ marketplaceSetting.creator = marketplaceStore.creator
65
+ await getRepository(MarketplaceSetting).save(marketplaceSetting)
66
+ }
67
+ })
68
+
69
+ return await getRepository(MarketplaceStore).save(marketplaceStore)
70
+ }
@@ -0,0 +1,21 @@
1
+ import { shopifyPublicRouter } from './routers/shopify-public-router'
2
+ // import { shopifyPrivateRouter } from './routers/shopify-private-router'
3
+ import { shopifyInstallPublicRouter } from './routers/shopify-install-public-router'
4
+ import { shopifyInstallPrivateRouter } from './routers/shopify-install-private-router'
5
+ import { woocommerceRouter } from './routers/woocommerce-router'
6
+ import { magentoPublicRouter } from './routers/magento-public-router'
7
+ import { magentoPrivateRouter } from './routers/magento-private-router'
8
+
9
+ process.on('bootstrap-module-global-public-route' as any, (app, globalPublicRouter) => {
10
+ globalPublicRouter.use(shopifyPublicRouter.routes(), shopifyPublicRouter.allowedMethods())
11
+ globalPublicRouter.use(shopifyInstallPublicRouter.routes(), shopifyInstallPublicRouter.allowedMethods())
12
+
13
+ globalPublicRouter.use(woocommerceRouter.routes(), woocommerceRouter.allowedMethods())
14
+ globalPublicRouter.use(magentoPublicRouter.routes(), magentoPublicRouter.allowedMethods())
15
+ })
16
+
17
+ process.on('bootstrap-module-domain-private-route' as any, (app, domainPrivateRouter) => {
18
+ // domainPrivateRouter.use(shopifyPrivateRouter.routes(), shopifyPrivateRouter.allowedMethods())
19
+ domainPrivateRouter.use(shopifyInstallPrivateRouter.routes(), shopifyInstallPrivateRouter.allowedMethods())
20
+ domainPrivateRouter.use(magentoPrivateRouter.routes(), magentoPrivateRouter.allowedMethods())
21
+ })