@things-factory/integration-marketplace 5.0.0-alpha.7 → 5.0.0-y.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (221) hide show
  1. package/client/pages/marketplace-stores.js +8 -0
  2. package/dist-server/controllers/index.js +1 -0
  3. package/dist-server/controllers/index.js.map +1 -1
  4. package/dist-server/controllers/lazada/apis/get-store-orders.js +3 -3
  5. package/dist-server/controllers/lazada/apis/get-store-orders.js.map +1 -1
  6. package/dist-server/controllers/lazada/apis/update-store-product-stock.js +2 -2
  7. package/dist-server/controllers/lazada/apis/update-store-product-stock.js.map +1 -1
  8. package/dist-server/controllers/lazada/apis/update-store-product-variation-stock.js +2 -2
  9. package/dist-server/controllers/lazada/apis/update-store-product-variation-stock.js.map +1 -1
  10. package/dist-server/controllers/magento/apis/get-store-order.js +20 -0
  11. package/dist-server/controllers/magento/apis/get-store-order.js.map +1 -0
  12. package/dist-server/controllers/magento/apis/get-store-orders.js +38 -7
  13. package/dist-server/controllers/magento/apis/get-store-orders.js.map +1 -1
  14. package/dist-server/controllers/magento/apis/get-store-product-categories.js +47 -0
  15. package/dist-server/controllers/magento/apis/get-store-product-categories.js.map +1 -0
  16. package/dist-server/controllers/magento/apis/get-store-products.js +29 -11
  17. package/dist-server/controllers/magento/apis/get-store-products.js.map +1 -1
  18. package/dist-server/controllers/magento/apis/get-store-stock-item.js +1 -1
  19. package/dist-server/controllers/magento/apis/get-store-stock-item.js.map +1 -1
  20. package/dist-server/controllers/magento/apis/index.js +5 -0
  21. package/dist-server/controllers/magento/apis/index.js.map +1 -1
  22. package/dist-server/controllers/magento/apis/update-order-status.js +62 -0
  23. package/dist-server/controllers/magento/apis/update-order-status.js.map +1 -0
  24. package/dist-server/controllers/magento/apis/update-store-product-price.js +28 -0
  25. package/dist-server/controllers/magento/apis/update-store-product-price.js.map +1 -0
  26. package/dist-server/controllers/magento/apis/update-store-product-stock.js +1 -1
  27. package/dist-server/controllers/magento/apis/update-store-product-stock.js.map +1 -1
  28. package/dist-server/controllers/magento/apis/update-store-product-variation-price.js +28 -0
  29. package/dist-server/controllers/magento/apis/update-store-product-variation-price.js.map +1 -0
  30. package/dist-server/controllers/magento/apis/update-store-product-variation-stock.js +1 -1
  31. package/dist-server/controllers/magento/apis/update-store-product-variation-stock.js.map +1 -1
  32. package/dist-server/controllers/magento/magento.js +4 -4
  33. package/dist-server/controllers/magento/magento.js.map +1 -1
  34. package/dist-server/controllers/magento/platform-action.js +1 -0
  35. package/dist-server/controllers/magento/platform-action.js.map +1 -1
  36. package/dist-server/controllers/shopee/apis/get-store-order-payout-dates.js +3 -3
  37. package/dist-server/controllers/shopee/apis/get-store-order-payout-dates.js.map +1 -1
  38. package/dist-server/controllers/shopee/apis/get-store-order.js +8 -2
  39. package/dist-server/controllers/shopee/apis/get-store-order.js.map +1 -1
  40. package/dist-server/controllers/shopee/apis/get-store-orders.js +3 -3
  41. package/dist-server/controllers/shopee/apis/get-store-orders.js.map +1 -1
  42. package/dist-server/controllers/shopify/apis/get-store-orders.js +74 -14
  43. package/dist-server/controllers/shopify/apis/get-store-orders.js.map +1 -1
  44. package/dist-server/controllers/shopify/apis/get-store-product-variation-stock.js +23 -0
  45. package/dist-server/controllers/shopify/apis/get-store-product-variation-stock.js.map +1 -0
  46. package/dist-server/controllers/shopify/apis/get-store-products.js +38 -3
  47. package/dist-server/controllers/shopify/apis/get-store-products.js.map +1 -1
  48. package/dist-server/controllers/shopify/apis/index.js +4 -0
  49. package/dist-server/controllers/shopify/apis/index.js.map +1 -1
  50. package/dist-server/controllers/shopify/apis/set-store-order-status-ready-to-ship.js +3 -2
  51. package/dist-server/controllers/shopify/apis/set-store-order-status-ready-to-ship.js.map +1 -1
  52. package/dist-server/controllers/shopify/apis/update-order-status.js +15 -5
  53. package/dist-server/controllers/shopify/apis/update-order-status.js.map +1 -1
  54. package/dist-server/controllers/shopify/apis/update-store-product-price.js +29 -0
  55. package/dist-server/controllers/shopify/apis/update-store-product-price.js.map +1 -0
  56. package/dist-server/controllers/shopify/apis/update-store-product-stock.js +24 -0
  57. package/dist-server/controllers/shopify/apis/update-store-product-stock.js.map +1 -0
  58. package/dist-server/controllers/shopify/apis/update-store-product-variation-price.js +29 -0
  59. package/dist-server/controllers/shopify/apis/update-store-product-variation-price.js.map +1 -0
  60. package/dist-server/controllers/shopify/apis/update-store-product-variation-stock.js +1 -1
  61. package/dist-server/controllers/shopify/apis/update-store-product-variation-stock.js.map +1 -1
  62. package/dist-server/controllers/shopify/shopify.js +36 -0
  63. package/dist-server/controllers/shopify/shopify.js.map +1 -1
  64. package/dist-server/controllers/store-api/index.js +28 -0
  65. package/dist-server/controllers/store-api/index.js.map +1 -1
  66. package/dist-server/controllers/tiktok/apis/echo.js +19 -0
  67. package/dist-server/controllers/tiktok/apis/echo.js.map +1 -0
  68. package/dist-server/controllers/tiktok/apis/get-store-order-document.js +27 -0
  69. package/dist-server/controllers/tiktok/apis/get-store-order-document.js.map +1 -0
  70. package/dist-server/controllers/tiktok/apis/get-store-order-package.js +47 -0
  71. package/dist-server/controllers/tiktok/apis/get-store-order-package.js.map +1 -0
  72. package/dist-server/controllers/tiktok/apis/get-store-order-packages.js +39 -0
  73. package/dist-server/controllers/tiktok/apis/get-store-order-packages.js.map +1 -0
  74. package/dist-server/controllers/tiktok/apis/get-store-order.js +140 -0
  75. package/dist-server/controllers/tiktok/apis/get-store-order.js.map +1 -0
  76. package/dist-server/controllers/tiktok/apis/get-store-orders.js +49 -0
  77. package/dist-server/controllers/tiktok/apis/get-store-orders.js.map +1 -0
  78. package/dist-server/controllers/tiktok/apis/get-store-product-attributes.js +30 -0
  79. package/dist-server/controllers/tiktok/apis/get-store-product-attributes.js.map +1 -0
  80. package/dist-server/controllers/tiktok/apis/get-store-product-categories.js +28 -0
  81. package/dist-server/controllers/tiktok/apis/get-store-product-categories.js.map +1 -0
  82. package/dist-server/controllers/tiktok/apis/get-store-product.js +91 -0
  83. package/dist-server/controllers/tiktok/apis/get-store-product.js.map +1 -0
  84. package/dist-server/controllers/tiktok/apis/get-store-products.js +41 -0
  85. package/dist-server/controllers/tiktok/apis/get-store-products.js.map +1 -0
  86. package/dist-server/controllers/tiktok/apis/index.js +30 -0
  87. package/dist-server/controllers/tiktok/apis/index.js.map +1 -0
  88. package/dist-server/controllers/tiktok/apis/update-order-status.js +28 -0
  89. package/dist-server/controllers/tiktok/apis/update-order-status.js.map +1 -0
  90. package/dist-server/controllers/tiktok/apis/update-store-product-variation-price.js +28 -0
  91. package/dist-server/controllers/tiktok/apis/update-store-product-variation-price.js.map +1 -0
  92. package/dist-server/controllers/tiktok/apis/update-store-product-variation-stock.js +32 -0
  93. package/dist-server/controllers/tiktok/apis/update-store-product-variation-stock.js.map +1 -0
  94. package/dist-server/controllers/tiktok/client/index.js +19 -0
  95. package/dist-server/controllers/tiktok/client/index.js.map +1 -0
  96. package/dist-server/controllers/tiktok/client/signature.js +63 -0
  97. package/dist-server/controllers/tiktok/client/signature.js.map +1 -0
  98. package/dist-server/controllers/tiktok/client/tiktok.js +109 -0
  99. package/dist-server/controllers/tiktok/client/tiktok.js.map +1 -0
  100. package/dist-server/controllers/tiktok/client/types.js +3 -0
  101. package/dist-server/controllers/tiktok/client/types.js.map +1 -0
  102. package/dist-server/controllers/tiktok/index.js +34 -0
  103. package/dist-server/controllers/tiktok/index.js.map +1 -0
  104. package/dist-server/controllers/tiktok/platform-action.js +53 -0
  105. package/dist-server/controllers/tiktok/platform-action.js.map +1 -0
  106. package/dist-server/controllers/woocommerce/apis/get-customer-info.js +22 -0
  107. package/dist-server/controllers/woocommerce/apis/get-customer-info.js.map +1 -0
  108. package/dist-server/controllers/woocommerce/apis/get-store-orders.js +27 -6
  109. package/dist-server/controllers/woocommerce/apis/get-store-orders.js.map +1 -1
  110. package/dist-server/controllers/woocommerce/apis/get-store-products.js +64 -6
  111. package/dist-server/controllers/woocommerce/apis/get-store-products.js.map +1 -1
  112. package/dist-server/controllers/woocommerce/apis/index.js +1 -0
  113. package/dist-server/controllers/woocommerce/apis/index.js.map +1 -1
  114. package/dist-server/controllers/woocommerce/apis/update-order-status.js +17 -15
  115. package/dist-server/controllers/woocommerce/apis/update-order-status.js.map +1 -1
  116. package/dist-server/controllers/woocommerce/apis/update-product-attribute.js +4 -3
  117. package/dist-server/controllers/woocommerce/apis/update-product-attribute.js.map +1 -1
  118. package/dist-server/controllers/woocommerce/apis/update-store-product-variation-price.js +1 -1
  119. package/dist-server/controllers/woocommerce/apis/update-store-product-variation-price.js.map +1 -1
  120. package/dist-server/entities/marketplace-store.js +4 -0
  121. package/dist-server/entities/marketplace-store.js.map +1 -1
  122. package/dist-server/graphql/resolvers/marketplace-store/lazada/generate-lazada-access-token.js +2 -5
  123. package/dist-server/graphql/resolvers/marketplace-store/lazada/generate-lazada-access-token.js.map +1 -1
  124. package/dist-server/graphql/resolvers/marketplace-store/magento/activate-magento-store.js +2 -2
  125. package/dist-server/graphql/resolvers/marketplace-store/magento/activate-magento-store.js.map +1 -1
  126. package/dist-server/graphql/resolvers/marketplace-store/shopee/generate-shopee-access-token.js +2 -2
  127. package/dist-server/graphql/resolvers/marketplace-store/shopee/generate-shopee-access-token.js.map +1 -1
  128. package/dist-server/graphql/resolvers/marketplace-store/zalora/generate-zalora-access-token.js +2 -5
  129. package/dist-server/graphql/resolvers/marketplace-store/zalora/generate-zalora-access-token.js.map +1 -1
  130. package/dist-server/graphql/resolvers/marketplace-transporter/create-marketplace-transporter.js +2 -5
  131. package/dist-server/graphql/resolvers/marketplace-transporter/create-marketplace-transporter.js.map +1 -1
  132. package/dist-server/graphql/types/marketplace-store/marketplace-store-patch.js +1 -0
  133. package/dist-server/graphql/types/marketplace-store/marketplace-store-patch.js.map +1 -1
  134. package/dist-server/graphql/types/marketplace-store/marketplace-store.js +1 -0
  135. package/dist-server/graphql/types/marketplace-store/marketplace-store.js.map +1 -1
  136. package/dist-server/graphql/types/marketplace-store/new-marketplace-store.js +1 -0
  137. package/dist-server/graphql/types/marketplace-store/new-marketplace-store.js.map +1 -1
  138. package/dist-server/routers/magento-private-router.js +2 -2
  139. package/dist-server/routers/magento-private-router.js.map +1 -1
  140. package/dist-server/routers/shopify-install-private-router.js +2 -2
  141. package/dist-server/routers/shopify-install-private-router.js.map +1 -1
  142. package/dist-server/routers/shopify-private-router.js +2 -2
  143. package/dist-server/routers/shopify-private-router.js.map +1 -1
  144. package/dist-server/routers/shopify-public-router.js +2 -2
  145. package/dist-server/routers/shopify-public-router.js.map +1 -1
  146. package/dist-server/routers/woocommerce-router.js +2 -2
  147. package/dist-server/routers/woocommerce-router.js.map +1 -1
  148. package/package.json +15 -15
  149. package/server/controllers/index.ts +1 -0
  150. package/server/controllers/lazada/apis/get-store-orders.ts +3 -3
  151. package/server/controllers/lazada/apis/update-store-product-stock.ts +2 -2
  152. package/server/controllers/lazada/apis/update-store-product-variation-stock.ts +2 -2
  153. package/server/controllers/magento/apis/get-store-order.ts +15 -0
  154. package/server/controllers/magento/apis/get-store-orders.ts +40 -7
  155. package/server/controllers/magento/apis/get-store-product-categories.ts +43 -0
  156. package/server/controllers/magento/apis/get-store-products.ts +35 -11
  157. package/server/controllers/magento/apis/get-store-stock-item.ts +1 -1
  158. package/server/controllers/magento/apis/index.ts +5 -0
  159. package/server/controllers/magento/apis/update-order-status.ts +56 -0
  160. package/server/controllers/magento/apis/update-store-product-price.ts +24 -0
  161. package/server/controllers/magento/apis/update-store-product-stock.ts +1 -1
  162. package/server/controllers/magento/apis/update-store-product-variation-price.ts +24 -0
  163. package/server/controllers/magento/apis/update-store-product-variation-stock.ts +1 -1
  164. package/server/controllers/magento/magento.ts +5 -4
  165. package/server/controllers/magento/platform-action.ts +1 -0
  166. package/server/controllers/shopee/apis/get-store-order-payout-dates.ts +3 -3
  167. package/server/controllers/shopee/apis/get-store-order.ts +8 -2
  168. package/server/controllers/shopee/apis/get-store-orders.ts +3 -3
  169. package/server/controllers/shopify/apis/get-store-orders.ts +76 -15
  170. package/server/controllers/shopify/apis/get-store-product-variation-stock.ts +17 -0
  171. package/server/controllers/shopify/apis/get-store-products.ts +38 -3
  172. package/server/controllers/shopify/apis/index.ts +4 -0
  173. package/server/controllers/shopify/apis/set-store-order-status-ready-to-ship.ts +3 -2
  174. package/server/controllers/shopify/apis/update-order-status.ts +17 -5
  175. package/server/controllers/shopify/apis/update-store-product-price.ts +26 -0
  176. package/server/controllers/shopify/apis/update-store-product-stock.ts +20 -0
  177. package/server/controllers/shopify/apis/update-store-product-variation-price.ts +26 -0
  178. package/server/controllers/shopify/apis/update-store-product-variation-stock.ts +1 -1
  179. package/server/controllers/shopify/shopify.ts +41 -0
  180. package/server/controllers/store-api/index.ts +12 -0
  181. package/server/controllers/tiktok/apis/echo.ts +14 -0
  182. package/server/controllers/tiktok/apis/get-store-order-document.ts +26 -0
  183. package/server/controllers/tiktok/apis/get-store-order-package.ts +46 -0
  184. package/server/controllers/tiktok/apis/get-store-order-packages.ts +43 -0
  185. package/server/controllers/tiktok/apis/get-store-order.ts +174 -0
  186. package/server/controllers/tiktok/apis/get-store-orders.ts +55 -0
  187. package/server/controllers/tiktok/apis/get-store-product-attributes.ts +29 -0
  188. package/server/controllers/tiktok/apis/get-store-product-categories.ts +27 -0
  189. package/server/controllers/tiktok/apis/get-store-product.ts +95 -0
  190. package/server/controllers/tiktok/apis/get-store-products.ts +45 -0
  191. package/server/controllers/tiktok/apis/index.ts +13 -0
  192. package/server/controllers/tiktok/apis/update-order-status.ts +24 -0
  193. package/server/controllers/tiktok/apis/update-store-product-variation-price.ts +24 -0
  194. package/server/controllers/tiktok/apis/update-store-product-variation-stock.ts +28 -0
  195. package/server/controllers/tiktok/client/index.ts +2 -0
  196. package/server/controllers/tiktok/client/signature.ts +78 -0
  197. package/server/controllers/tiktok/client/tiktok.ts +150 -0
  198. package/server/controllers/tiktok/client/types.ts +20 -0
  199. package/server/controllers/tiktok/index.ts +8 -0
  200. package/server/controllers/tiktok/platform-action.ts +72 -0
  201. package/server/controllers/woocommerce/apis/get-customer-info.ts +18 -0
  202. package/server/controllers/woocommerce/apis/get-store-orders.ts +40 -6
  203. package/server/controllers/woocommerce/apis/get-store-products.ts +65 -7
  204. package/server/controllers/woocommerce/apis/index.ts +1 -0
  205. package/server/controllers/woocommerce/apis/update-order-status.ts +18 -14
  206. package/server/controllers/woocommerce/apis/update-product-attribute.ts +6 -3
  207. package/server/controllers/woocommerce/apis/update-store-product-variation-price.ts +1 -1
  208. package/server/entities/marketplace-store.ts +3 -0
  209. package/server/graphql/resolvers/marketplace-store/lazada/generate-lazada-access-token.ts +2 -2
  210. package/server/graphql/resolvers/marketplace-store/magento/activate-magento-store.ts +2 -2
  211. package/server/graphql/resolvers/marketplace-store/shopee/generate-shopee-access-token.ts +2 -2
  212. package/server/graphql/resolvers/marketplace-store/zalora/generate-zalora-access-token.ts +2 -2
  213. package/server/graphql/resolvers/marketplace-transporter/create-marketplace-transporter.ts +2 -2
  214. package/server/graphql/types/marketplace-store/marketplace-store-patch.ts +1 -0
  215. package/server/graphql/types/marketplace-store/marketplace-store.ts +1 -0
  216. package/server/graphql/types/marketplace-store/new-marketplace-store.ts +1 -0
  217. package/server/routers/magento-private-router.ts +2 -2
  218. package/server/routers/shopify-install-private-router.ts +2 -2
  219. package/server/routers/shopify-private-router.ts +2 -2
  220. package/server/routers/shopify-public-router.ts +2 -2
  221. package/server/routers/woocommerce-router.ts +2 -2
@@ -0,0 +1,24 @@
1
+ export function updateStoreProductVariationPrice() {
2
+ return {
3
+ path: '/products/base-prices',
4
+ method: 'post',
5
+ denormalize(req) {
6
+ let { sellPrice, variationSku } = req
7
+
8
+ return {
9
+ payload: {
10
+ prices: [
11
+ {
12
+ price: sellPrice,
13
+ sku: variationSku,
14
+ store_id: 0
15
+ }
16
+ ]
17
+ }
18
+ }
19
+ },
20
+ normalize(res) {
21
+ return res
22
+ }
23
+ }
24
+ }
@@ -6,7 +6,7 @@ export function updateStoreProductVariationStock() {
6
6
  method: 'post',
7
7
  path: '/inventory/source-items',
8
8
  denormalize(req) {
9
- const { variationSku, qty, distributors } = req[0]
9
+ const { variationSku, qty, distributors } = (Array.isArray(req) ? req[0] : req) || {}
10
10
 
11
11
  let sourceItems: any[] = []
12
12
 
@@ -11,6 +11,7 @@ export type MagentoConfig = {
11
11
  oauthConsumerKey: string
12
12
  oauthConsumerSecret: string
13
13
  shop: string
14
+ storeId?: string
14
15
  accessToken?: string
15
16
  }
16
17
 
@@ -154,11 +155,11 @@ export class Magento {
154
155
  }
155
156
 
156
157
  async get(path: string, data: any) {
157
- const { shop, accessToken } = this.config
158
+ const { shop, accessToken, storeId } = this.config
158
159
 
159
160
  const qs = this.objectToMultiarray(data)
160
161
 
161
- const endpoint = `${shop}/rest/V1${path}${qs ? '?' + qs : ''}`
162
+ const endpoint = `${shop}/rest${storeId ? `/${storeId}` : ''}/V1${path}${qs ? '?' + qs : ''}`
162
163
  debug('endpoint', endpoint)
163
164
 
164
165
  const response = await fetch(endpoint, {
@@ -176,13 +177,13 @@ export class Magento {
176
177
  }
177
178
 
178
179
  async post(path: string, data: any = {}) {
179
- const { shop, accessToken } = this.config
180
+ const { shop, accessToken, storeId } = this.config
180
181
 
181
182
  debug('data', data)
182
183
 
183
184
  const jsondata = JSON.stringify(data)
184
185
 
185
- const endpoint = `${shop}/rest/V1${path}`
186
+ const endpoint = `${shop}/rest${storeId ? `/${storeId}` : ''}/V1${path}`
186
187
 
187
188
  const response = await fetch(endpoint, {
188
189
  method: 'post',
@@ -27,6 +27,7 @@ export const action = async ({ store, method = 'get', path, request }) => {
27
27
  oauthConsumerKey,
28
28
  oauthConsumerSecret,
29
29
  shop: store.storeURL,
30
+ storeId: store.storeId,
30
31
  accessToken: store.accessToken
31
32
  })
32
33
 
@@ -5,11 +5,11 @@ export function getStoreOrderPayoutDates() {
5
5
  path: '/orders/get_escrow_detail',
6
6
  method: 'post',
7
7
  denormalize(req) {
8
- var { fromDate, toDate, pagination } = req || {}
8
+ var { fromCreatedDate, toCreatedDate, pagination } = req || {}
9
9
  var { page, limit } = pagination
10
10
  return {
11
- release_time_from: fromDate.split('T')[0],
12
- release_time_to: toDate.split('T')[0],
11
+ release_time_from: fromCreatedDate.split('T')[0],
12
+ release_time_to: toCreatedDate.split('T')[0],
13
13
  pagination_entries_per_page: limit,
14
14
  pagination_offset: page * limit
15
15
  }
@@ -78,6 +78,8 @@ export function getStoreOrder() {
78
78
 
79
79
  const { full_address, zipcode: postCode, phone, country, city, name: attentionTo, state } = recipient_address
80
80
 
81
+ let shippingFeeFloat = parseFloat(shippingFee)
82
+ let actualShippingFeeFloat = parseFloat(actualShippingFee)
81
83
  var orderShipping = {
82
84
  address1: full_address,
83
85
  address2: null,
@@ -94,8 +96,12 @@ export function getStoreOrder() {
94
96
  attentionTo,
95
97
  trackingNo,
96
98
  transporter: shippingProvider,
97
- shippingFee: parseFloat(shippingFee) || null,
98
- actualShippingFee: parseFloat(actualShippingFee) || null
99
+ shippingFee: !isNaN(shippingFeeFloat) ? shippingFeeFloat : null,
100
+ actualShippingFee: !isNaN(order.is_actual_shipping_fee_confirmed ? actualShippingFeeFloat : shippingFeeFloat)
101
+ ? order.is_actual_shipping_fee_confirmed
102
+ ? actualShippingFeeFloat
103
+ : shippingFeeFloat
104
+ : null
99
105
  }
100
106
 
101
107
  let escrowDetails = await StoreAPI.getStoreOrderTransactionDetails(store, { orderNo })
@@ -6,11 +6,11 @@ export function getStoreOrders() {
6
6
  return {
7
7
  path: '/orders/basics',
8
8
  denormalize(req) {
9
- var { pagination, fromDate, toDate } = req || {}
9
+ var { pagination, fromCreatedDate, toCreatedDate } = req || {}
10
10
  var { page = 0, limit = 100 } = pagination || {}
11
11
 
12
- var create_time_from = Math.floor(new Date(fromDate).getTime() / 1000)
13
- var create_time_to = Math.floor(new Date(toDate).getTime() / 1000)
12
+ var create_time_from = Math.floor(new Date(fromCreatedDate).getTime() / 1000)
13
+ var create_time_to = Math.floor(new Date(toCreatedDate).getTime() / 1000)
14
14
 
15
15
  return {
16
16
  pagination_entries_per_page: limit,
@@ -5,22 +5,28 @@ export function getStoreOrders() {
5
5
  method: 'get',
6
6
  path: '/orders.json',
7
7
  denormalize(req) {
8
- var { pagination, fromDate, toDate, lastOrderId } = req || {}
8
+ var { pagination, fromCreatedDate, toCreatedDate, fromUpdatedDate, toUpdatedDate, lastOrderId } = req || {}
9
9
  var { page = 0, limit = 100 } = pagination || {}
10
10
 
11
- var created_at_min = new Date(fromDate).toISOString()
12
- var created_at_max = new Date(toDate).toISOString()
13
- /* Must include only create_time or update_time in the request. */
14
- // var update_time_from = lastOneDay
15
- // var update_time_to = now
16
-
17
11
  var payload: any = {
18
12
  limit,
19
- created_at_min,
20
- created_at_max,
21
13
  status: 'any'
22
14
  }
23
15
 
16
+ if (fromCreatedDate && toCreatedDate) {
17
+ var created_at_min = new Date(fromCreatedDate).toISOString()
18
+ var created_at_max = new Date(toCreatedDate).toISOString()
19
+ payload.created_at_min = created_at_min
20
+ payload.created_at_max = created_at_max
21
+ }
22
+
23
+ if (fromUpdatedDate && toUpdatedDate) {
24
+ var updated_at_min = new Date(fromUpdatedDate).toISOString()
25
+ var updated_at_max = new Date(toUpdatedDate).toISOString()
26
+ payload.updated_at_min = updated_at_min
27
+ payload.updated_at_max = updated_at_max
28
+ }
29
+
24
30
  if (lastOrderId) payload.since_id = Number(lastOrderId)
25
31
 
26
32
  return { payload }
@@ -45,7 +51,9 @@ export function getStoreOrders() {
45
51
  .map(order => {
46
52
  const orderId = order.id
47
53
  const fulfillmentStatus = order.fulfillment_status
54
+ const paymentStatus = order?.financial_status || ''
48
55
  let orderStatus = order?.cancelled_at ? 'cancelled' : fulfillmentStatus ? fulfillmentStatus : 'unfulfilled'
56
+ let sellercraftStatus = getSellercraftStatus(fulfillmentStatus, paymentStatus)
49
57
 
50
58
  let itemCount: Number = 0
51
59
  let result: any
@@ -62,7 +70,8 @@ export function getStoreOrders() {
62
70
  orderCreatedAt: new Date(order.created_at).toUTCString(),
63
71
  orderUpdatedAt: new Date(order.updated_at).toUTCString(),
64
72
  discountValue: order.total_discounts,
65
- status: orderStatus,
73
+ status: order.financial_status == 'pending' ? 'unpaid' : orderStatus,
74
+ sellercraftStatus,
66
75
  trackingNo: fulfillment.tracking_number,
67
76
  shippingProvider: fulfillment.tracking_company,
68
77
  recipientAddress:
@@ -78,7 +87,10 @@ export function getStoreOrders() {
78
87
  variationId: lineItem.product_exists === true ? lineItem.variant_id : lineItem.id.toString(),
79
88
  variationSku: lineItem.sku,
80
89
  channelSku: lineItem.sku,
81
- variationName: lineItem.name
90
+ variationName: lineItem.name,
91
+ originalPrice: lineItem.price,
92
+ total: lineItem.price,
93
+ subtotal: lineItem.price
82
94
  }
83
95
  })
84
96
  }
@@ -122,7 +134,8 @@ export function getStoreOrders() {
122
134
  variationId: lineItem.product_exists === true ? lineItem.variant_id : lineItem.id.toString(),
123
135
  variationSku: lineItem.sku,
124
136
  channelSku: lineItem.sku,
125
- variationName: lineItem.name
137
+ variationName: lineItem.name,
138
+ originalPrice: lineItem.price
126
139
  }
127
140
 
128
141
  lineItems.push(lineItem)
@@ -135,7 +148,8 @@ export function getStoreOrders() {
135
148
  variationId: lineItem.product_exists === true ? lineItem.variant_id : lineItem.id.toString(),
136
149
  variationSku: lineItem.sku,
137
150
  channelSku: lineItem.sku,
138
- variationName: lineItem.name
151
+ variationName: lineItem.name,
152
+ originalPrice: lineItem.price
139
153
  }
140
154
 
141
155
  if (lineItem.qty >= 0) lineItems.push(lineItem)
@@ -152,7 +166,8 @@ export function getStoreOrders() {
152
166
  orderUpdatedAt: new Date(order.updated_at).toUTCString(),
153
167
  discountValue: order.total_discounts,
154
168
  recipientAddress: order.billing_address,
155
- status: orderStatus,
169
+ status: order.financial_status == 'pending' ? 'unpaid' : orderStatus,
170
+ sellercraftStatus,
156
171
  reason: order.cancel_reason,
157
172
  orderItems: lineItems
158
173
  }
@@ -183,11 +198,44 @@ export function getStoreOrders() {
183
198
  city,
184
199
  state,
185
200
  country: country === 'MY' ? 'Malaysia' : country,
186
- collectionCurrency: null,
201
+ collectionCurrency: order.currency,
187
202
  attentionTo: `${first_name} ${last_name}`
188
203
  }
189
204
 
190
205
  result.orderShipping = orderShipping
206
+
207
+ // For SC mapping
208
+
209
+ let shippingAddress = order?.shipping_address
210
+ let billingAddress = order?.billing_address || shippingAddress
211
+
212
+ result.shipping = {
213
+ address_1: shippingAddress.address1,
214
+ address_2: shippingAddress.address2,
215
+ address_3: shippingAddress.province,
216
+ postcode: shippingAddress.zip,
217
+ country: shippingAddress.country_code,
218
+ city: shippingAddress.city,
219
+ first_name: shippingAddress.first_name,
220
+ last_name: shippingAddress.last_name,
221
+ phone: shippingAddress.phone,
222
+ email: order.email
223
+ }
224
+ result.billing = {
225
+ address_1: billingAddress.address1,
226
+ address_2: billingAddress.address2,
227
+ address_3: billingAddress.province,
228
+ postcode: billingAddress.zip,
229
+ country: billingAddress.country_code,
230
+ city: billingAddress.city,
231
+ first_name: billingAddress.first_name,
232
+ last_name: billingAddress.last_name,
233
+ phone: billingAddress.phone,
234
+ email: order.email
235
+ }
236
+ result.isSOF = true
237
+ result.firstName = order?.customer?.first_name || ''
238
+ result.lastName = order?.customer?.last_name || ''
191
239
  }
192
240
 
193
241
  itemCount = result.orderItems.length
@@ -211,3 +259,16 @@ function checkNextPage(link) {
211
259
 
212
260
  return nextPage
213
261
  }
262
+
263
+ function getSellercraftStatus(fulfillmentStatus, paymentStatus) {
264
+ if (
265
+ (fulfillmentStatus == 'unfulfilled' || !fulfillmentStatus) &&
266
+ (paymentStatus == 'pending' || paymentStatus == 'unpaid')
267
+ )
268
+ return 'payment_pending'
269
+ if ((fulfillmentStatus == 'unfulfilled' || !fulfillmentStatus) && paymentStatus == 'paid') return 'processing'
270
+ if (fulfillmentStatus == 'fulfilled' && paymentStatus == 'paid') return 'shipped'
271
+ if (paymentStatus == 'refunded') return 'refunded'
272
+ if (paymentStatus == 'voided') return 'cancelled'
273
+ if (paymentStatus == 'overdue') return 'cancelled'
274
+ }
@@ -0,0 +1,17 @@
1
+ export function getStoreProductVariationStock() {
2
+ return {
3
+ path: '/variants/{variantId}.json',
4
+ method: 'get',
5
+ denormalize(req) {
6
+ let { variantId } = req
7
+ return {
8
+ resource: {
9
+ variantId
10
+ }
11
+ }
12
+ },
13
+ normalize(res) {
14
+ return res?.variant?.inventory_quantity
15
+ }
16
+ }
17
+ }
@@ -9,13 +9,18 @@ export function getStoreProducts() {
9
9
  method: 'get',
10
10
  path: '/products.json',
11
11
  denormalize(req) {
12
- var { pagination, pageInfo } = req || {}
12
+ var { pagination, pageInfo, fromUpdatedDate, toUpdatedDate } = req || {}
13
13
  var { page, limit } = pagination || { page: 0, limit: 100 }
14
14
 
15
15
  var payload: any = {
16
16
  limit: limit
17
17
  }
18
18
 
19
+ if (fromUpdatedDate && toUpdatedDate) {
20
+ payload.updated_at_max = toUpdatedDate
21
+ payload.updated_at_min = fromUpdatedDate
22
+ }
23
+
19
24
  if (pageInfo) payload.page_info = pageInfo
20
25
 
21
26
  return { payload }
@@ -72,7 +77,24 @@ export function getStoreProducts() {
72
77
  marketplaceStatus: product.status,
73
78
  hasVariation: true,
74
79
  categoryId: product?.collection_id ? product.collection_id : null,
75
- attributes: [],
80
+ attributes: product?.options?.map(option => {
81
+ return {
82
+ native_attribute_id: option.id,
83
+ attribute_key: option.name,
84
+ values: option.values
85
+ }
86
+ }) || [],
87
+ sellercraftAttributes: [
88
+ {
89
+ native_attribute_id: 'description',
90
+ attribute_key: 'description',
91
+ display_name: 'Description',
92
+ values: [product.body_html]
93
+ }
94
+ ],
95
+ images: product?.images?.map(image => {
96
+ return image.src
97
+ }) || [],
76
98
  variations: productVariations.map(variant => {
77
99
  return {
78
100
  variationId: variant.id,
@@ -83,10 +105,14 @@ export function getStoreProducts() {
83
105
  inventoryPolicy: variant.inventory_policy,
84
106
  inventoryItemId: variant.inventory_item_id,
85
107
  locationId: variant.location_id,
108
+ extraMetadata: {
109
+ inventoryItemId: variant.inventory_item_id,
110
+ locationId: variant.location_id,
111
+ },
86
112
  primaryUnit: variant.weight_unit,
87
113
  primaryUnitValue: variant.weight,
88
114
  costPrice: variant.price,
89
- sellPrice: variant.compare_at_price,
115
+ sellPrice: variant.compare_at_price || variant.price,
90
116
  attributes: [
91
117
  {
92
118
  attributeId: variant.option1,
@@ -101,6 +127,15 @@ export function getStoreProducts() {
101
127
  name: variant.option3
102
128
  }
103
129
  ],
130
+ sellercraftAttributes: product?.options.map(option => {
131
+ return {
132
+ native_attribute_id: option.name,
133
+ attribute_key: option.name,
134
+ display_name: option.name,
135
+ values: [variant[`option${option.position}`]]
136
+ }
137
+ }) || [],
138
+ weight: variant.grams,
104
139
  presentmentPrices: variant?.presentment_prices
105
140
  ? variant.presentment_prices.map(presentmentPrice => {
106
141
  return {
@@ -7,3 +7,7 @@ export * from './update-store-product-variation-stock'
7
7
  export * from './update-order-status'
8
8
  export * from './set-store-order-status-ready-to-ship'
9
9
  export * from './get-store-order'
10
+ export * from './update-store-product-variation-price'
11
+ export * from './update-store-product-price'
12
+ export * from './update-store-product-stock'
13
+ export * from './get-store-product-variation-stock'
@@ -5,7 +5,7 @@ export function setStoreOrderStatusReadyToShip() {
5
5
  method: 'post',
6
6
  path: '/orders/{orderId}/fulfillments.json',
7
7
  denormalize(req) {
8
- const { orderId, trackingUrl, trackingNo, orderItemId, order } = req || {}
8
+ const { orderId, trackingUrl, trackingNo, orderItemId, order, transporter } = req || {}
9
9
 
10
10
  let locationId = JSON.parse(order.marketplaceOrderItems[0].marketplaceProductVariation.locationId)[0].location_id
11
11
 
@@ -15,7 +15,8 @@ export function setStoreOrderStatusReadyToShip() {
15
15
  location_id: locationId,
16
16
  tracking_number: trackingNo,
17
17
  tracking_urls: [trackingUrl],
18
- notify_customer: true
18
+ notify_customer: true,
19
+ tracking_company: transporter
19
20
  }
20
21
  },
21
22
  resource: {
@@ -1,15 +1,27 @@
1
- /* https://shopify.dev/api/admin-rest/2021-10/resources/fulfillment#[post]/admin/api/2021-10/orders/{order_id}/fulfillments/{fulfillment_id}/complete.json */
1
+ /* https://shopify.dev/api/admin-rest/2021-10/resources/fulfillment#[post]/admin/api/2021-10/fulfillments.json */
2
2
 
3
3
  export function updateOrderStatus() {
4
4
  return {
5
- path: '/orders/{orderId}/fulfillments/{fulfillmentId}/complete.json',
6
5
  method: 'post',
6
+ path: '/orders/{orderId}/fulfillments.json',
7
7
  denormalize(req) {
8
- const { orderId, fulfillmentId } = req
8
+ const { orderId, trackingNo, locations, carrier, status } = req || {}
9
+
10
+ if (status != 'READY_TO_SHIP') {
11
+ throw new Error('Shopify cannot create fulfillment, order status is not READY_TO_SHIP')
12
+ }
13
+
9
14
  return {
15
+ payload: {
16
+ fulfillment: {
17
+ location_id: locations[0],
18
+ tracking_number: trackingNo,
19
+ notify_customer: true,
20
+ tracking_company: carrier
21
+ }
22
+ },
10
23
  resource: {
11
- orderId: orderId,
12
- fulfillmentId: fulfillmentId.toString()
24
+ orderId
13
25
  }
14
26
  }
15
27
  },
@@ -0,0 +1,26 @@
1
+ /*https://shopify.dev/api/admin-rest/2021-10/resources/product-variant#put-variants-variant-id */
2
+
3
+ export function updateStoreProductPrice() {
4
+ return {
5
+ path: '/variants/{variantId}.json',
6
+ method: 'put',
7
+ denormalize(req) {
8
+ let { costPrice, sellPrice, variationId } = req
9
+
10
+ return {
11
+ payload: {
12
+ variant: {
13
+ price: costPrice,
14
+ compare_at_price: sellPrice
15
+ }
16
+ },
17
+ resource: {
18
+ variantId: variationId
19
+ }
20
+ }
21
+ },
22
+ normalize(res) {
23
+ return res
24
+ }
25
+ }
26
+ }
@@ -0,0 +1,20 @@
1
+ export function updateStoreProductStock() {
2
+ return {
3
+ method: 'post',
4
+ path: '/inventory_levels/adjust.json',
5
+ denormalize(req) {
6
+ const { inventoryItemId, locationId: location_id, qty } = (Array.isArray(req) ? req[0] : req) || {}
7
+
8
+ return {
9
+ payload: {
10
+ inventory_item_id: parseInt(inventoryItemId),
11
+ location_id,
12
+ available_adjustment: parseInt(qty)
13
+ }
14
+ }
15
+ },
16
+ normalize(res) {
17
+ return res
18
+ }
19
+ }
20
+ }
@@ -0,0 +1,26 @@
1
+ /*https://shopify.dev/api/admin-rest/2021-10/resources/product-variant#put-variants-variant-id */
2
+
3
+ export function updateStoreProductVariationPrice() {
4
+ return {
5
+ path: '/variants/{variantId}.json',
6
+ method: 'put',
7
+ denormalize(req) {
8
+ let { costPrice, sellPrice, variationId } = req
9
+
10
+ return {
11
+ payload: {
12
+ variant: {
13
+ price: costPrice,
14
+ compare_at_price: sellPrice
15
+ }
16
+ },
17
+ resource: {
18
+ variantId: variationId
19
+ }
20
+ }
21
+ },
22
+ normalize(res) {
23
+ return res
24
+ }
25
+ }
26
+ }
@@ -3,7 +3,7 @@ export function updateStoreProductVariationStock() {
3
3
  method: 'post',
4
4
  path: '/inventory_levels/adjust.json',
5
5
  denormalize(req) {
6
- const { inventoryItemId, locationId: location_id, qty } = req[0]
6
+ const { inventoryItemId, locationId: location_id, qty } = (Array.isArray(req) ? req[0] : req) || {}
7
7
 
8
8
  return {
9
9
  payload: {
@@ -2,6 +2,8 @@ import fetch from 'node-fetch'
2
2
  import crypto from 'crypto'
3
3
  import querystring from 'querystring'
4
4
 
5
+ import { createPayloadLog } from '@things-factory/integration-base'
6
+
5
7
  const debug = require('debug')('things-factory:integration-marketplace:shopify')
6
8
 
7
9
  export type ShopifyConfig = {
@@ -77,6 +79,11 @@ export class Shopify {
77
79
  var result = await response.json()
78
80
  result.link = link
79
81
 
82
+ try {
83
+ createPayloadLog(shop, path, qs || '', result, {
84
+ state: { domain: null }
85
+ })
86
+ } catch (e) {}
80
87
  debug('response result', result)
81
88
 
82
89
  return result
@@ -101,6 +108,40 @@ export class Shopify {
101
108
  })
102
109
 
103
110
  const result = await response.json()
111
+ try {
112
+ createPayloadLog(shop, path, jsondata, result, {
113
+ state: { domain: null }
114
+ })
115
+ } catch (e) {}
116
+ debug('response result', result)
117
+
118
+ return result
119
+ }
120
+
121
+ async put(path: string, data: any = {}) {
122
+ const { shop, accessToken } = this.config
123
+
124
+ debug('data', data)
125
+
126
+ const jsondata = JSON.stringify(data)
127
+
128
+ const endpoint = `https://${shop}.myshopify.com/admin/api/2020-01${path}`
129
+
130
+ const response = await fetch(endpoint, {
131
+ method: 'put',
132
+ headers: {
133
+ 'Content-Type': 'application/json',
134
+ 'X-Shopify-Access-Token': accessToken
135
+ },
136
+ body: jsondata
137
+ })
138
+
139
+ const result = await response.json()
140
+ try {
141
+ createPayloadLog(shop, path, jsondata, result, {
142
+ state: { domain: null }
143
+ })
144
+ } catch (e) {}
104
145
  debug('response result', result)
105
146
 
106
147
  return result
@@ -66,6 +66,12 @@ export class StoreAPI {
66
66
  @api
67
67
  static getStoreOrder(store, req): any {}
68
68
 
69
+ @api
70
+ static getStoreOrderPackages(store, req): any {}
71
+
72
+ @api
73
+ static getStoreOrderPackage(store, req): any {}
74
+
69
75
  @api
70
76
  static getStoreOrderItems(store, req): any {}
71
77
 
@@ -180,6 +186,12 @@ export class StoreAPI {
180
186
  @api
181
187
  static updateStoreProductPrice(store, req): any {}
182
188
 
189
+ @api
190
+ static getCustomerInfo(store, req): any {}
191
+
183
192
  @api
184
193
  static getStoreOrderPayoutDates(store, req): any {}
194
+
195
+ @api
196
+ static getStoreProductVariationStock(store, req): any {}
185
197
  }
@@ -0,0 +1,14 @@
1
+ export function echo() {
2
+ return {
3
+ path: '/echo',
4
+ denormalize(req) {
5
+ return { ...req }
6
+ },
7
+ normalize(res) {
8
+ return { ...res }
9
+ },
10
+ action({ store, method, path, request, platformAction }) {
11
+ return { ...request }
12
+ }
13
+ }
14
+ }
@@ -0,0 +1,26 @@
1
+ /* https://bytedance.feishu.cn/docs/doccnDyz5Bbk26iOdejbBRBlLrb#ytBXoS */
2
+
3
+ export function getStoreOrderDocument() {
4
+ return {
5
+ method: 'get',
6
+ path: '/api/fulfillment/shipping_document',
7
+ denormalize(req) {
8
+ var { packageId, documentType } = req || {}
9
+
10
+ return { payload: { package_id: packageId, document_type: documentType } }
11
+ },
12
+ async normalize(res) {
13
+ const { data } = res
14
+
15
+ let result: any[] = [
16
+ {
17
+ file: data.doc_url,
18
+ fileTypeValue: 'AWB',
19
+ mimeType: 'application/pdf'
20
+ }
21
+ ]
22
+
23
+ return result
24
+ }
25
+ }
26
+ }