@things-factory/integration-sellercraft 9.0.0-beta.27 → 9.0.0-beta.29

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 (146) hide show
  1. package/dist-server/constants/index.d.ts +2 -0
  2. package/dist-server/constants/index.js +6 -0
  3. package/dist-server/constants/index.js.map +1 -0
  4. package/dist-server/constants/order-status-mapping.d.ts +27 -0
  5. package/dist-server/constants/order-status-mapping.js +31 -0
  6. package/dist-server/constants/order-status-mapping.js.map +1 -0
  7. package/dist-server/constants/platform.d.ts +6 -0
  8. package/dist-server/constants/platform.js +10 -0
  9. package/dist-server/constants/platform.js.map +1 -0
  10. package/dist-server/controllers/index.d.ts +4 -0
  11. package/dist-server/controllers/index.js +8 -0
  12. package/dist-server/controllers/index.js.map +1 -0
  13. package/dist-server/controllers/sellercraft/apis/add-inbound-order.d.ts +8 -0
  14. package/dist-server/controllers/sellercraft/apis/add-inbound-order.js +46 -0
  15. package/dist-server/controllers/sellercraft/apis/add-inbound-order.js.map +1 -0
  16. package/dist-server/controllers/sellercraft/apis/echo.d.ts +12 -0
  17. package/dist-server/controllers/sellercraft/apis/echo.js +18 -0
  18. package/dist-server/controllers/sellercraft/apis/echo.js.map +1 -0
  19. package/dist-server/controllers/sellercraft/apis/fetch-order-document.d.ts +16 -0
  20. package/dist-server/controllers/sellercraft/apis/fetch-order-document.js +21 -0
  21. package/dist-server/controllers/sellercraft/apis/fetch-order-document.js.map +1 -0
  22. package/dist-server/controllers/sellercraft/apis/index.d.ts +8 -0
  23. package/dist-server/controllers/sellercraft/apis/index.js +12 -0
  24. package/dist-server/controllers/sellercraft/apis/index.js.map +1 -0
  25. package/dist-server/controllers/sellercraft/apis/initiate-order-document.d.ts +12 -0
  26. package/dist-server/controllers/sellercraft/apis/initiate-order-document.js +20 -0
  27. package/dist-server/controllers/sellercraft/apis/initiate-order-document.js.map +1 -0
  28. package/dist-server/controllers/sellercraft/apis/initiate-order-shipment.d.ts +17 -0
  29. package/dist-server/controllers/sellercraft/apis/initiate-order-shipment.js +26 -0
  30. package/dist-server/controllers/sellercraft/apis/initiate-order-shipment.js.map +1 -0
  31. package/dist-server/controllers/sellercraft/apis/pack-marketplace-order.d.ts +12 -0
  32. package/dist-server/controllers/sellercraft/apis/pack-marketplace-order.js +35 -0
  33. package/dist-server/controllers/sellercraft/apis/pack-marketplace-order.js.map +1 -0
  34. package/dist-server/controllers/sellercraft/apis/update-marketplace-order.d.ts +6 -0
  35. package/dist-server/controllers/sellercraft/apis/update-marketplace-order.js +17 -0
  36. package/dist-server/controllers/sellercraft/apis/update-marketplace-order.js.map +1 -0
  37. package/dist-server/controllers/sellercraft/apis/update-product.d.ts +11 -0
  38. package/dist-server/controllers/sellercraft/apis/update-product.js +23 -0
  39. package/dist-server/controllers/sellercraft/apis/update-product.js.map +1 -0
  40. package/dist-server/controllers/sellercraft/index.d.ts +1 -0
  41. package/dist-server/controllers/sellercraft/index.js +9 -0
  42. package/dist-server/controllers/sellercraft/index.js.map +1 -0
  43. package/dist-server/controllers/sellercraft/platform-action.d.ts +5 -0
  44. package/dist-server/controllers/sellercraft/platform-action.js +33 -0
  45. package/dist-server/controllers/sellercraft/platform-action.js.map +1 -0
  46. package/dist-server/controllers/sellercraft/sellercraft.d.ts +12 -0
  47. package/dist-server/controllers/sellercraft/sellercraft.js +91 -0
  48. package/dist-server/controllers/sellercraft/sellercraft.js.map +1 -0
  49. package/dist-server/controllers/sellercraft-api/decorators.d.ts +1 -0
  50. package/dist-server/controllers/sellercraft-api/decorators.js +38 -0
  51. package/dist-server/controllers/sellercraft-api/decorators.js.map +1 -0
  52. package/dist-server/controllers/sellercraft-api/index.d.ts +15 -0
  53. package/dist-server/controllers/sellercraft-api/index.js +84 -0
  54. package/dist-server/controllers/sellercraft-api/index.js.map +1 -0
  55. package/dist-server/controllers/sellercraft-api/types.d.ts +0 -0
  56. package/dist-server/controllers/sellercraft-api/types.js +1 -0
  57. package/dist-server/controllers/sellercraft-api/types.js.map +1 -0
  58. package/dist-server/controllers/sellercraft-channel-integration/apis/echo.d.ts +12 -0
  59. package/dist-server/controllers/sellercraft-channel-integration/apis/echo.js +18 -0
  60. package/dist-server/controllers/sellercraft-channel-integration/apis/echo.js.map +1 -0
  61. package/dist-server/controllers/sellercraft-channel-integration/apis/index.d.ts +6 -0
  62. package/dist-server/controllers/sellercraft-channel-integration/apis/index.js +10 -0
  63. package/dist-server/controllers/sellercraft-channel-integration/apis/index.js.map +1 -0
  64. package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-categories.d.ts +8 -0
  65. package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-categories.js +38 -0
  66. package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-categories.js.map +1 -0
  67. package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-category-attributes.d.ts +11 -0
  68. package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-category-attributes.js +47 -0
  69. package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-category-attributes.js.map +1 -0
  70. package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-order-package.d.ts +8 -0
  71. package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-order-package.js +48 -0
  72. package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-order-package.js.map +1 -0
  73. package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-order.d.ts +8 -0
  74. package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-order.js +92 -0
  75. package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-order.js.map +1 -0
  76. package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-product.d.ts +8 -0
  77. package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-product.js +90 -0
  78. package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-product.js.map +1 -0
  79. package/dist-server/controllers/sellercraft-channel-integration/index.d.ts +1 -0
  80. package/dist-server/controllers/sellercraft-channel-integration/index.js +9 -0
  81. package/dist-server/controllers/sellercraft-channel-integration/index.js.map +1 -0
  82. package/dist-server/controllers/sellercraft-channel-integration/platform-action.d.ts +5 -0
  83. package/dist-server/controllers/sellercraft-channel-integration/platform-action.js +33 -0
  84. package/dist-server/controllers/sellercraft-channel-integration/platform-action.js.map +1 -0
  85. package/dist-server/controllers/sellercraft-channel-integration/sellercraft-channel-integration.d.ts +12 -0
  86. package/dist-server/controllers/sellercraft-channel-integration/sellercraft-channel-integration.js +99 -0
  87. package/dist-server/controllers/sellercraft-channel-integration/sellercraft-channel-integration.js.map +1 -0
  88. package/dist-server/controllers/sellercraft-channel-integration-api/decorators.d.ts +1 -0
  89. package/dist-server/controllers/sellercraft-channel-integration-api/decorators.js +30 -0
  90. package/dist-server/controllers/sellercraft-channel-integration-api/decorators.js.map +1 -0
  91. package/dist-server/controllers/sellercraft-channel-integration-api/index.d.ts +13 -0
  92. package/dist-server/controllers/sellercraft-channel-integration-api/index.js +70 -0
  93. package/dist-server/controllers/sellercraft-channel-integration-api/index.js.map +1 -0
  94. package/dist-server/controllers/sellercraft-channel-integration-api/types.d.ts +0 -0
  95. package/dist-server/controllers/sellercraft-channel-integration-api/types.js +1 -0
  96. package/dist-server/controllers/sellercraft-channel-integration-api/types.js.map +1 -0
  97. package/dist-server/index.d.ts +6 -0
  98. package/dist-server/index.js +10 -0
  99. package/dist-server/index.js.map +1 -0
  100. package/dist-server/middlewares/index.d.ts +1 -0
  101. package/dist-server/middlewares/index.js +7 -0
  102. package/dist-server/middlewares/index.js.map +1 -0
  103. package/dist-server/migrations/index.d.ts +1 -0
  104. package/dist-server/migrations/index.js +12 -0
  105. package/dist-server/migrations/index.js.map +1 -0
  106. package/dist-server/routers/sellercraft-router.d.ts +1 -0
  107. package/dist-server/routers/sellercraft-router.js +284 -0
  108. package/dist-server/routers/sellercraft-router.js.map +1 -0
  109. package/dist-server/routes.d.ts +1 -0
  110. package/dist-server/routes.js +29 -0
  111. package/dist-server/routes.js.map +1 -0
  112. package/dist-server/service/index.d.ts +7 -0
  113. package/dist-server/service/index.js +23 -0
  114. package/dist-server/service/index.js.map +1 -0
  115. package/dist-server/service/marketplace-channel/index.d.ts +5 -0
  116. package/dist-server/service/marketplace-channel/index.js +9 -0
  117. package/dist-server/service/marketplace-channel/index.js.map +1 -0
  118. package/dist-server/service/marketplace-channel/marketplace-channel-order-mutation.d.ts +3 -0
  119. package/dist-server/service/marketplace-channel/marketplace-channel-order-mutation.js +391 -0
  120. package/dist-server/service/marketplace-channel/marketplace-channel-order-mutation.js.map +1 -0
  121. package/dist-server/service/marketplace-channel/marketplace-channel-product-mutation.d.ts +3 -0
  122. package/dist-server/service/marketplace-channel/marketplace-channel-product-mutation.js +244 -0
  123. package/dist-server/service/marketplace-channel/marketplace-channel-product-mutation.js.map +1 -0
  124. package/dist-server/service/marketplace-channel/marketplace-channel.d.ts +18 -0
  125. package/dist-server/service/marketplace-channel/marketplace-channel.js +84 -0
  126. package/dist-server/service/marketplace-channel/marketplace-channel.js.map +1 -0
  127. package/dist-server/service/sellercraft/index.d.ts +5 -0
  128. package/dist-server/service/sellercraft/index.js +9 -0
  129. package/dist-server/service/sellercraft/index.js.map +1 -0
  130. package/dist-server/service/sellercraft/sellercraft-mutation.d.ts +9 -0
  131. package/dist-server/service/sellercraft/sellercraft-mutation.js +111 -0
  132. package/dist-server/service/sellercraft/sellercraft-mutation.js.map +1 -0
  133. package/dist-server/service/sellercraft/sellercraft-query.d.ts +11 -0
  134. package/dist-server/service/sellercraft/sellercraft-query.js +71 -0
  135. package/dist-server/service/sellercraft/sellercraft-query.js.map +1 -0
  136. package/dist-server/service/sellercraft/sellercraft-type.d.ts +21 -0
  137. package/dist-server/service/sellercraft/sellercraft-type.js +81 -0
  138. package/dist-server/service/sellercraft/sellercraft-type.js.map +1 -0
  139. package/dist-server/service/sellercraft/sellercraft.d.ts +27 -0
  140. package/dist-server/service/sellercraft/sellercraft.js +107 -0
  141. package/dist-server/service/sellercraft/sellercraft.js.map +1 -0
  142. package/dist-server/tsconfig.tsbuildinfo +1 -0
  143. package/dist-server/utils/tokencraft-util.d.ts +2 -0
  144. package/dist-server/utils/tokencraft-util.js +64 -0
  145. package/dist-server/utils/tokencraft-util.js.map +1 -0
  146. package/package.json +13 -13
@@ -0,0 +1,284 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sellercraftRouter = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const koa_router_1 = tslib_1.__importDefault(require("koa-router"));
6
+ const uuid_1 = require("uuid");
7
+ const integration_marketplace_1 = require("@things-factory/integration-marketplace");
8
+ const integration_base_1 = require("@things-factory/integration-base");
9
+ const utils_1 = require("@things-factory/utils");
10
+ const constants_1 = require("../constants");
11
+ const tokencraft_util_1 = require("../utils/tokencraft-util");
12
+ const debug = require('debug')('things-factory:integration-sellercraft:sellercraft-router');
13
+ exports.sellercraftRouter = new koa_router_1.default();
14
+ exports.sellercraftRouter.post('/sellercraft/store/update-product-price', async (context, next) => {
15
+ const requestBody = context.request.body;
16
+ for (var i = 0; i < requestBody.length; i++) {
17
+ let mappedStore = await (0, tokencraft_util_1.getShop)(context, requestBody[i].channel_id, requestBody[i].shop_id);
18
+ var result;
19
+ try {
20
+ if (requestBody[i].variant.native_variant_id != requestBody[i].native_product_id) {
21
+ const req = {
22
+ costPrice: requestBody[i].variant.full_price,
23
+ sellPrice: requestBody[i].variant.sale_price,
24
+ productId: requestBody[i].native_product_id,
25
+ variationId: requestBody[i].variant.native_variant_id,
26
+ variationSku: requestBody[i].variant.sku,
27
+ context: { state: { domain: null } }
28
+ };
29
+ result = await integration_marketplace_1.StoreAPI.updateStoreProductVariationPrice(mappedStore, req);
30
+ }
31
+ else {
32
+ const req = {
33
+ costPrice: requestBody[i].variant.full_price,
34
+ sellPrice: requestBody[i].variant.sale_price,
35
+ productId: requestBody[i].native_product_id,
36
+ variationSku: requestBody[i].variant.sku,
37
+ context: { state: { domain: null } }
38
+ };
39
+ result = await integration_marketplace_1.StoreAPI.updateStoreProductPrice(mappedStore, req);
40
+ }
41
+ debug(result);
42
+ context.type = 'application/json';
43
+ context.status = 200;
44
+ context.body = 'Succeeded';
45
+ }
46
+ catch (e) {
47
+ context.type = 'application/json';
48
+ context.status = 500;
49
+ context.body = e.message;
50
+ }
51
+ }
52
+ });
53
+ exports.sellercraftRouter.post('/sellercraft/store/update-product-stock', async (context, next) => {
54
+ var _a, _b, _c, _d, _e, _f;
55
+ const requestBody = context.request.body;
56
+ for (var i = 0; i < requestBody.length; i++) {
57
+ let mappedStore = await (0, tokencraft_util_1.getShop)(context, requestBody[i].channel_id, requestBody[i].shop_id);
58
+ var result;
59
+ try {
60
+ if (requestBody[i].variant.native_variant_id != requestBody[i].native_product_id) {
61
+ const req = {
62
+ qty: requestBody[i].variant.stock,
63
+ itemId: requestBody[i].native_product_id,
64
+ variationId: requestBody[i].variant.native_variant_id,
65
+ distributors: requestBody[i].distributors || [], // for Magento
66
+ variationSku: requestBody[i].variant.sku,
67
+ locationId: (_c = (_b = (_a = requestBody[i]) === null || _a === void 0 ? void 0 : _a.variant) === null || _b === void 0 ? void 0 : _b.extra_metadata) === null || _c === void 0 ? void 0 : _c.locationId, // for Shopify
68
+ inventoryItemId: (_f = (_e = (_d = requestBody[i]) === null || _d === void 0 ? void 0 : _d.variant) === null || _e === void 0 ? void 0 : _e.extra_metadata) === null || _f === void 0 ? void 0 : _f.inventoryItemId, // for Shopify
69
+ context: { state: { domain: null } }
70
+ };
71
+ if (req.locationId) {
72
+ let location = JSON.parse(req.locationId);
73
+ req.qty -= await integration_marketplace_1.StoreAPI.getStoreProductVariationStock(mappedStore, { variantId: req.variationId });
74
+ req.locationId = location[0].location_id;
75
+ }
76
+ result = await integration_marketplace_1.StoreAPI.updateStoreProductVariationStock(mappedStore, req);
77
+ }
78
+ else {
79
+ const req = {
80
+ qty: requestBody[i].variant.stock,
81
+ itemId: requestBody[i].native_product_id,
82
+ distributors: requestBody[i].distributors || [], // for Magento
83
+ variationSku: requestBody[i].variant.sku,
84
+ context: { state: { domain: null } }
85
+ };
86
+ result = await integration_marketplace_1.StoreAPI.updateStoreProductStock(mappedStore, req);
87
+ }
88
+ debug(result);
89
+ context.type = 'application/json';
90
+ context.status = 200;
91
+ context.body = 'Succeeded';
92
+ }
93
+ catch (e) {
94
+ context.type = 'application/json';
95
+ context.status = 500;
96
+ context.body = e.message;
97
+ }
98
+ }
99
+ });
100
+ exports.sellercraftRouter.post('/sellercraft/store/update-order-status', async (context, next) => {
101
+ var _a;
102
+ try {
103
+ const requestBody = context.request.body;
104
+ var result = {};
105
+ let mappedStore = await (0, tokencraft_util_1.getShop)(context, requestBody.channel_id, requestBody.shop_id);
106
+ let packageIds = mappedStore.platform == 'tiktok'
107
+ ? requestBody === null || requestBody === void 0 ? void 0 : requestBody.order_items.map(oi => {
108
+ return oi.package_id;
109
+ })
110
+ : [];
111
+ const reqBody = {
112
+ orderId: requestBody.native_order_id,
113
+ status: requestBody.order_status,
114
+ carrier: requestBody === null || requestBody === void 0 ? void 0 : requestBody.shipper_last_mile,
115
+ trackingNo: requestBody === null || requestBody === void 0 ? void 0 : requestBody.tracking_number,
116
+ orderItems: unmapOrderItems((requestBody === null || requestBody === void 0 ? void 0 : requestBody.order_items.map(oi => {
117
+ return oi.native_order_item_id;
118
+ })) || []),
119
+ isSOF: requestBody === null || requestBody === void 0 ? void 0 : requestBody.seller_logistics,
120
+ packageIds: [...new Set(packageIds)],
121
+ locations: mappedStore.platform == 'shopify'
122
+ ? requestBody === null || requestBody === void 0 ? void 0 : requestBody.order_items.map(oi => {
123
+ let jsonLocation = oi.extra_metadata.locationId;
124
+ return JSON.parse(jsonLocation)[0].location_id;
125
+ })
126
+ : null,
127
+ context: { state: { domain: null } }
128
+ };
129
+ let responseBody = { operation_id: (0, uuid_1.v4)() };
130
+ try {
131
+ try {
132
+ if (mappedStore.platform == 'tiktok') {
133
+ for (let packageId of reqBody.packageIds) {
134
+ result = (await integration_marketplace_1.StoreAPI.updateOrderStatus(mappedStore, { packageId, status: reqBody.status })) || {};
135
+ }
136
+ }
137
+ else {
138
+ result = (await integration_marketplace_1.StoreAPI.updateOrderStatus(mappedStore, reqBody)) || {};
139
+ }
140
+ debug(result);
141
+ }
142
+ catch (e) {
143
+ if (e === null || e === void 0 ? void 0 : e.requiredDocument)
144
+ result.requiredDocument = e.requiredDocument;
145
+ }
146
+ if (result === null || result === void 0 ? void 0 : result.requiredDocument) {
147
+ // call document api and ingest channel order package
148
+ const order = await integration_marketplace_1.StoreAPI.getStoreOrder(mappedStore, { orderId: reqBody.orderId });
149
+ let orderPackage = order ? (((_a = order[0]) === null || _a === void 0 ? void 0 : _a.orderPackage) ? order[0].orderPackage : {}) : {};
150
+ if (orderPackage) {
151
+ const packageId = orderPackage.packageId;
152
+ let orderDocument = orderPackage.orderDocument;
153
+ if ((orderDocument === null || orderDocument === void 0 ? void 0 : orderDocument.length) == 0) {
154
+ let hasDocument = false;
155
+ let retries = 0;
156
+ while (!hasDocument && retries < 10) {
157
+ orderDocument = await integration_marketplace_1.StoreAPI.getStoreOrderDocument(mappedStore, { packageId, documentType: 1 });
158
+ if ((orderDocument === null || orderDocument === void 0 ? void 0 : orderDocument.length) > 0) {
159
+ hasDocument = true;
160
+ break;
161
+ }
162
+ await (0, utils_1.sleep)(1000);
163
+ retries++;
164
+ }
165
+ }
166
+ // Order Package Payload
167
+ let newOrderPackage = {
168
+ channel_shop_id: mappedStore.channelShopId,
169
+ native_order_id: reqBody.orderId,
170
+ native_package_id: orderPackage.packageId.toString(),
171
+ shipping_tracking_code: orderPackage.trackingNumber,
172
+ shipping_type_value: (orderPackage === null || orderPackage === void 0 ? void 0 : orderPackage.shippingType) ? orderPackage.shippingType : constants_1.SHIPPING_TYPE.DROP_SHIPPING,
173
+ warehouse_code: constants_1.SHIPPING_TYPE.DROP_SHIPPING,
174
+ shipper: {
175
+ name: orderPackage.shippingProvider,
176
+ is_cod_supported: (orderPackage === null || orderPackage === void 0 ? void 0 : orderPackage.isCodSupport) ? orderPackage.isCodSupport : false
177
+ },
178
+ documents: (orderDocument === null || orderDocument === void 0 ? void 0 : orderDocument.map(doc => {
179
+ return {
180
+ file: doc.file,
181
+ file_type_value: doc.fileTypeValue,
182
+ mime_type: doc.mimeType
183
+ };
184
+ })) || [],
185
+ shipper_last_mile: {
186
+ name: orderPackage.shippingProvider,
187
+ is_cod_supported: (orderPackage === null || orderPackage === void 0 ? void 0 : orderPackage.isCodSupport) ? orderPackage.isCodSupport : false
188
+ },
189
+ order_item_ids: (orderPackage === null || orderPackage === void 0 ? void 0 : orderPackage.orderListIdList)
190
+ ? orderPackage.orderListIdList
191
+ : reqBody.orderItems.map(oi => {
192
+ return oi.order_item_id;
193
+ })
194
+ };
195
+ responseBody.package = newOrderPackage;
196
+ }
197
+ responseBody.response_code = 'E0';
198
+ responseBody.message = 'Success';
199
+ }
200
+ responseBody.time = Math.floor(new Date(new Date().toUTCString()).getTime() / 1000);
201
+ try {
202
+ (0, integration_base_1.createPayloadLog)(mappedStore.channelShopId, '/sellercraft/store/update-order-status', requestBody, responseBody, null, integration_base_1.PayloadType.INGESTION, 'hub-api');
203
+ }
204
+ catch (e) { }
205
+ context.type = 'application/json';
206
+ context.status = 200;
207
+ context.body = responseBody;
208
+ await next();
209
+ }
210
+ catch (e) {
211
+ responseBody.response_code = 'E1';
212
+ responseBody.message = e.message;
213
+ context.type = 'application/json';
214
+ context.status = 500;
215
+ context.body = responseBody;
216
+ try {
217
+ (0, integration_base_1.createPayloadLog)(mappedStore === null || mappedStore === void 0 ? void 0 : mappedStore.channelShopId, '/sellercraft/store/update-order-status', requestBody, responseBody, null, integration_base_1.PayloadType.INGESTION, 'hub-api');
218
+ }
219
+ catch (e) { }
220
+ }
221
+ }
222
+ catch (e) { }
223
+ });
224
+ exports.sellercraftRouter.post('/sellercraft/store/update-product-attribute', async (context, next) => {
225
+ const requestBody = context.request.body;
226
+ let mappedStore = await (0, tokencraft_util_1.getShop)(context, requestBody.channel_id, requestBody.shop_id);
227
+ let { product_sku: productSku, native_product_id: itemId, variants } = requestBody;
228
+ variants.map(variant => {
229
+ let { variant_sku: variantSku, native_variant_id: variantId, attributes } = variant;
230
+ attributes.map(attribute => {
231
+ let { native_attribute_id: id, attribute_key: name, attribute_value: value } = attribute;
232
+ return {
233
+ id,
234
+ name,
235
+ value
236
+ };
237
+ });
238
+ return {
239
+ variantSku,
240
+ variantId,
241
+ attributes
242
+ };
243
+ });
244
+ for (var i = 0; i < variants.length; i++) {
245
+ try {
246
+ let variant = variants[i];
247
+ await integration_marketplace_1.StoreAPI.updateProductAttribute(mappedStore, {
248
+ productSku,
249
+ itemId,
250
+ variant,
251
+ context: { state: { domain: null } }
252
+ });
253
+ context.type = 'application/json';
254
+ context.status = 200;
255
+ context.body = 'Succeeded';
256
+ }
257
+ catch (e) {
258
+ context.type = 'application/json';
259
+ context.status = 500;
260
+ context.body = e.message;
261
+ }
262
+ }
263
+ });
264
+ function unmapOrderItems(orderItems) {
265
+ let itemsList = [];
266
+ let res = orderItems.map(e => {
267
+ return e.split('-')[0];
268
+ });
269
+ for (let item of res) {
270
+ let count = 0;
271
+ res.forEach(element => {
272
+ if (element === item) {
273
+ count += 1;
274
+ }
275
+ });
276
+ itemsList.push({
277
+ order_item_id: item,
278
+ qty: count
279
+ });
280
+ }
281
+ itemsList = itemsList.filter((value, index, self) => index === self.findIndex(t => t.order_item_id === value.order_item_id));
282
+ return itemsList;
283
+ }
284
+ //# sourceMappingURL=sellercraft-router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sellercraft-router.js","sourceRoot":"","sources":["../../server/routers/sellercraft-router.ts"],"names":[],"mappings":"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","sourcesContent":["import Router from 'koa-router'\nimport { v4 as uuidv4 } from 'uuid'\n\nimport { StoreAPI } from '@things-factory/integration-marketplace'\nimport { createPayloadLog, PayloadType } from '@things-factory/integration-base'\nimport { sleep } from '@things-factory/utils'\n\nimport { SHIPPING_TYPE } from '../constants'\nimport { getShop } from '../utils/tokencraft-util'\n\nconst debug = require('debug')('things-factory:integration-sellercraft:sellercraft-router')\n\nexport const sellercraftRouter = new Router()\n\nsellercraftRouter.post('/sellercraft/store/update-product-price', async (context, next) => {\n const requestBody = context.request.body\n\n for (var i = 0; i < requestBody.length; i++) {\n let mappedStore: any = await getShop(context, requestBody[i].channel_id, requestBody[i].shop_id)\n var result\n\n try {\n if (requestBody[i].variant.native_variant_id != requestBody[i].native_product_id) {\n const req = {\n costPrice: requestBody[i].variant.full_price,\n sellPrice: requestBody[i].variant.sale_price,\n productId: requestBody[i].native_product_id,\n variationId: requestBody[i].variant.native_variant_id,\n variationSku: requestBody[i].variant.sku,\n context: { state: { domain: null } }\n }\n result = await StoreAPI.updateStoreProductVariationPrice(mappedStore, req)\n } else {\n const req = {\n costPrice: requestBody[i].variant.full_price,\n sellPrice: requestBody[i].variant.sale_price,\n productId: requestBody[i].native_product_id,\n variationSku: requestBody[i].variant.sku,\n context: { state: { domain: null } }\n }\n result = await StoreAPI.updateStoreProductPrice(mappedStore, req)\n }\n\n debug(result)\n\n context.type = 'application/json'\n context.status = 200\n context.body = 'Succeeded'\n } catch (e) {\n context.type = 'application/json'\n context.status = 500\n context.body = e.message\n }\n }\n})\n\nsellercraftRouter.post('/sellercraft/store/update-product-stock', async (context, next) => {\n const requestBody = context.request.body\n for (var i = 0; i < requestBody.length; i++) {\n let mappedStore: any = await getShop(context, requestBody[i].channel_id, requestBody[i].shop_id)\n var result\n\n try {\n if (requestBody[i].variant.native_variant_id != requestBody[i].native_product_id) {\n const req = {\n qty: requestBody[i].variant.stock,\n itemId: requestBody[i].native_product_id,\n variationId: requestBody[i].variant.native_variant_id,\n distributors: requestBody[i].distributors || [], // for Magento\n variationSku: requestBody[i].variant.sku,\n locationId: requestBody[i]?.variant?.extra_metadata?.locationId, // for Shopify\n inventoryItemId: requestBody[i]?.variant?.extra_metadata?.inventoryItemId, // for Shopify\n context: { state: { domain: null } }\n }\n if (req.locationId) {\n let location = JSON.parse(req.locationId)\n req.qty -= await StoreAPI.getStoreProductVariationStock(mappedStore, { variantId: req.variationId })\n req.locationId = location[0].location_id\n }\n result = await StoreAPI.updateStoreProductVariationStock(mappedStore, req)\n } else {\n const req = {\n qty: requestBody[i].variant.stock,\n itemId: requestBody[i].native_product_id,\n distributors: requestBody[i].distributors || [], // for Magento\n variationSku: requestBody[i].variant.sku,\n context: { state: { domain: null } }\n }\n result = await StoreAPI.updateStoreProductStock(mappedStore, req)\n }\n\n debug(result)\n\n context.type = 'application/json'\n context.status = 200\n context.body = 'Succeeded'\n } catch (e) {\n context.type = 'application/json'\n context.status = 500\n context.body = e.message\n }\n }\n})\n\nsellercraftRouter.post('/sellercraft/store/update-order-status', async (context, next) => {\n try {\n const requestBody = context.request.body\n var result: any = {}\n let mappedStore: any = await getShop(context, requestBody.channel_id, requestBody.shop_id)\n let packageIds: any =\n mappedStore.platform == 'tiktok'\n ? requestBody?.order_items.map(oi => {\n return oi.package_id\n })\n : []\n\n const reqBody = {\n orderId: requestBody.native_order_id,\n status: requestBody.order_status,\n carrier: requestBody?.shipper_last_mile,\n trackingNo: requestBody?.tracking_number,\n orderItems: unmapOrderItems(\n requestBody?.order_items.map(oi => {\n return oi.native_order_item_id\n }) || []\n ),\n isSOF: requestBody?.seller_logistics,\n packageIds: [...new Set(packageIds)],\n locations:\n mappedStore.platform == 'shopify'\n ? requestBody?.order_items.map(oi => {\n let jsonLocation = oi.extra_metadata.locationId\n return JSON.parse(jsonLocation)[0].location_id\n })\n : null,\n context: { state: { domain: null } }\n }\n\n let responseBody: any = { operation_id: uuidv4() }\n try {\n try {\n if (mappedStore.platform == 'tiktok') {\n for (let packageId of reqBody.packageIds) {\n result = (await StoreAPI.updateOrderStatus(mappedStore, { packageId, status: reqBody.status })) || {}\n }\n } else {\n result = (await StoreAPI.updateOrderStatus(mappedStore, reqBody)) || {}\n }\n\n debug(result)\n } catch (e) {\n if (e?.requiredDocument) result.requiredDocument = e.requiredDocument\n }\n\n if (result?.requiredDocument) {\n // call document api and ingest channel order package\n const order: any = await StoreAPI.getStoreOrder(mappedStore, { orderId: reqBody.orderId })\n let orderPackage: any = order ? (order[0]?.orderPackage ? order[0].orderPackage : {}) : {}\n if (orderPackage) {\n const packageId: string = orderPackage.packageId\n\n let orderDocument: any = orderPackage.orderDocument\n if (orderDocument?.length == 0) {\n let hasDocument: boolean = false\n let retries = 0\n while (!hasDocument && retries < 10) {\n orderDocument = await StoreAPI.getStoreOrderDocument(mappedStore, { packageId, documentType: 1 })\n if (orderDocument?.length > 0) {\n hasDocument = true\n break\n }\n await sleep(1000)\n retries++\n }\n }\n\n // Order Package Payload\n let newOrderPackage: any = {\n channel_shop_id: mappedStore.channelShopId,\n native_order_id: reqBody.orderId,\n native_package_id: orderPackage.packageId.toString(),\n shipping_tracking_code: orderPackage.trackingNumber,\n shipping_type_value: orderPackage?.shippingType ? orderPackage.shippingType : SHIPPING_TYPE.DROP_SHIPPING,\n warehouse_code: SHIPPING_TYPE.DROP_SHIPPING,\n shipper: {\n name: orderPackage.shippingProvider,\n is_cod_supported: orderPackage?.isCodSupport ? orderPackage.isCodSupport : false\n },\n documents:\n orderDocument?.map(doc => {\n return {\n file: doc.file,\n file_type_value: doc.fileTypeValue,\n mime_type: doc.mimeType\n }\n }) || [],\n shipper_last_mile: {\n name: orderPackage.shippingProvider,\n is_cod_supported: orderPackage?.isCodSupport ? orderPackage.isCodSupport : false\n },\n order_item_ids: orderPackage?.orderListIdList\n ? orderPackage.orderListIdList\n : reqBody.orderItems.map(oi => {\n return oi.order_item_id\n })\n }\n\n responseBody.package = newOrderPackage\n }\n responseBody.response_code = 'E0'\n responseBody.message = 'Success'\n }\n\n responseBody.time = Math.floor(new Date(new Date().toUTCString()).getTime() / 1000)\n\n try {\n createPayloadLog(\n mappedStore.channelShopId,\n '/sellercraft/store/update-order-status',\n requestBody,\n responseBody,\n null,\n PayloadType.INGESTION,\n 'hub-api'\n )\n } catch (e) {}\n\n context.type = 'application/json'\n context.status = 200\n context.body = responseBody\n\n await next()\n } catch (e) {\n responseBody.response_code = 'E1'\n responseBody.message = e.message\n\n context.type = 'application/json'\n context.status = 500\n context.body = responseBody\n try {\n createPayloadLog(\n mappedStore?.channelShopId,\n '/sellercraft/store/update-order-status',\n requestBody,\n responseBody,\n null,\n PayloadType.INGESTION,\n 'hub-api'\n )\n } catch (e) {}\n }\n } catch (e) {}\n})\n\nsellercraftRouter.post('/sellercraft/store/update-product-attribute', async (context, next) => {\n const requestBody = context.request.body\n let mappedStore: any = await getShop(context, requestBody.channel_id, requestBody.shop_id)\n\n let { product_sku: productSku, native_product_id: itemId, variants } = requestBody\n\n variants.map(variant => {\n let { variant_sku: variantSku, native_variant_id: variantId, attributes } = variant\n\n attributes.map(attribute => {\n let { native_attribute_id: id, attribute_key: name, attribute_value: value } = attribute\n\n return {\n id,\n name,\n value\n }\n })\n\n return {\n variantSku,\n variantId,\n attributes\n }\n })\n\n for (var i = 0; i < variants.length; i++) {\n try {\n let variant = variants[i]\n await StoreAPI.updateProductAttribute(mappedStore, {\n productSku,\n itemId,\n variant,\n context: { state: { domain: null } }\n })\n context.type = 'application/json'\n context.status = 200\n context.body = 'Succeeded'\n } catch (e) {\n context.type = 'application/json'\n context.status = 500\n context.body = e.message\n }\n }\n})\n\nfunction unmapOrderItems(orderItems) {\n let itemsList = []\n let res = orderItems.map(e => {\n return e.split('-')[0]\n })\n\n for (let item of res) {\n let count = 0\n\n res.forEach(element => {\n if (element === item) {\n count += 1\n }\n })\n\n itemsList.push({\n order_item_id: item,\n qty: count\n })\n }\n\n itemsList = itemsList.filter(\n (value, index, self) => index === self.findIndex(t => t.order_item_id === value.order_item_id)\n )\n return itemsList\n}\n"]}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const sellercraft_router_1 = require("./routers/sellercraft-router");
4
+ const debug = require('debug')('things-factory:integration-sellercraft:routes');
5
+ process.on('bootstrap-module-global-public-route', (app, globalPublicRouter) => {
6
+ /*
7
+ * can add global public routes to application (auth not required, tenancy not required)
8
+ *
9
+ * ex) routes.get('/path', async(context, next) => {})
10
+ * ex) routes.post('/path', async(context, next) => {})
11
+ */
12
+ globalPublicRouter.use(sellercraft_router_1.sellercraftRouter.routes(), sellercraft_router_1.sellercraftRouter.allowedMethods());
13
+ });
14
+ process.on('bootstrap-module-global-private-route', (app, globalPrivateRouter) => {
15
+ /*
16
+ * can add global private routes to application (auth required, tenancy not required)
17
+ */
18
+ });
19
+ process.on('bootstrap-module-domain-public-route', (app, domainPublicRouter) => {
20
+ /*
21
+ * can add domain public routes to application (auth not required, tenancy required)
22
+ */
23
+ });
24
+ process.on('bootstrap-module-domain-private-route', (app, domainPrivateRouter) => {
25
+ /*
26
+ * can add domain private routes to application (auth required, tenancy required)
27
+ */
28
+ });
29
+ //# sourceMappingURL=routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../server/routes.ts"],"names":[],"mappings":";;AAAA,qEAAgE;AAEhE,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,+CAA+C,CAAC,CAAA;AAE/E,OAAO,CAAC,EAAE,CAAC,sCAA6C,EAAE,CAAC,GAAG,EAAE,kBAAkB,EAAE,EAAE;IACpF;;;;;OAKG;IAEH,kBAAkB,CAAC,GAAG,CAAC,sCAAiB,CAAC,MAAM,EAAE,EAAE,sCAAiB,CAAC,cAAc,EAAE,CAAC,CAAA;AACxF,CAAC,CAAC,CAAA;AAEF,OAAO,CAAC,EAAE,CAAC,uCAA8C,EAAE,CAAC,GAAG,EAAE,mBAAmB,EAAE,EAAE;IACtF;;OAEG;AACL,CAAC,CAAC,CAAA;AAEF,OAAO,CAAC,EAAE,CAAC,sCAA6C,EAAE,CAAC,GAAG,EAAE,kBAAkB,EAAE,EAAE;IACpF;;OAEG;AACL,CAAC,CAAC,CAAA;AAEF,OAAO,CAAC,EAAE,CAAC,uCAA8C,EAAE,CAAC,GAAG,EAAE,mBAAmB,EAAE,EAAE;IACtF;;OAEG;AACL,CAAC,CAAC,CAAA","sourcesContent":["import { sellercraftRouter } from './routers/sellercraft-router'\n\nconst debug = require('debug')('things-factory:integration-sellercraft:routes')\n\nprocess.on('bootstrap-module-global-public-route' as any, (app, globalPublicRouter) => {\n /*\n * can add global public routes to application (auth not required, tenancy not required)\n *\n * ex) routes.get('/path', async(context, next) => {})\n * ex) routes.post('/path', async(context, next) => {})\n */\n\n globalPublicRouter.use(sellercraftRouter.routes(), sellercraftRouter.allowedMethods())\n})\n\nprocess.on('bootstrap-module-global-private-route' as any, (app, globalPrivateRouter) => {\n /*\n * can add global private routes to application (auth required, tenancy not required)\n */\n})\n\nprocess.on('bootstrap-module-domain-public-route' as any, (app, domainPublicRouter) => {\n /*\n * can add domain public routes to application (auth not required, tenancy required)\n */\n})\n\nprocess.on('bootstrap-module-domain-private-route' as any, (app, domainPrivateRouter) => {\n /*\n * can add domain private routes to application (auth required, tenancy required)\n */\n})\n"]}
@@ -0,0 +1,7 @@
1
+ export * from './sellercraft/sellercraft';
2
+ import { resolvers as MarketplaceSellercraftResolvers } from './marketplace-channel';
3
+ export declare const entities: (typeof import("./sellercraft/sellercraft").Sellercraft | typeof import("./marketplace-channel/marketplace-channel").MarketplaceChannel)[];
4
+ export declare const schema: {
5
+ resolverClasses: (typeof import("./sellercraft/sellercraft-query").SellercraftQuery | typeof import("./sellercraft/sellercraft-mutation").SellercraftMutation | typeof import("./marketplace-channel/marketplace-channel-order-mutation").MarketplaceChannelOrderMutation | typeof import("./marketplace-channel/marketplace-channel-product-mutation").MarketplaceChannelProductMutation)[];
6
+ };
7
+ export { MarketplaceSellercraftResolvers };
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MarketplaceSellercraftResolvers = exports.schema = exports.entities = void 0;
4
+ const tslib_1 = require("tslib");
5
+ /* EXPORT ENTITY TYPES */
6
+ tslib_1.__exportStar(require("./sellercraft/sellercraft"), exports);
7
+ /* IMPORT ENTITIES AND RESOLVERS */
8
+ const sellercraft_1 = require("./sellercraft");
9
+ const marketplace_channel_1 = require("./marketplace-channel");
10
+ Object.defineProperty(exports, "MarketplaceSellercraftResolvers", { enumerable: true, get: function () { return marketplace_channel_1.resolvers; } });
11
+ exports.entities = [
12
+ /* ENTITIES */
13
+ ...sellercraft_1.entities,
14
+ ...marketplace_channel_1.entities
15
+ ];
16
+ exports.schema = {
17
+ resolverClasses: [
18
+ /* RESOLVER CLASSES */
19
+ ...sellercraft_1.resolvers,
20
+ ...marketplace_channel_1.resolvers
21
+ ]
22
+ };
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/service/index.ts"],"names":[],"mappings":";;;;AAAA,yBAAyB;AACzB,oEAAyC;AAEzC,mCAAmC;AACnC,+CAAkG;AAClG,+DAA4H;AAiBnH,gHAjBqD,+BAA+B,OAiBrD;AAf3B,QAAA,QAAQ,GAAG;IACtB,cAAc;IACf,GAAG,sBAAmB;IACrB,GAAG,8BAA0B;CAC9B,CAAA;AAGY,QAAA,MAAM,GAAG;IACpB,eAAe,EAAE;QACf,sBAAsB;QACxB,GAAG,uBAAoB;QACrB,GAAG,+BAA+B;KACnC;CACF,CAAA","sourcesContent":["/* EXPORT ENTITY TYPES */\nexport * from './sellercraft/sellercraft'\n\n/* IMPORT ENTITIES AND RESOLVERS */\nimport { entities as SellercraftEntities, resolvers as SellercraftResolvers } from './sellercraft'\nimport { entities as MarketplaceChannelEntities, resolvers as MarketplaceSellercraftResolvers } from './marketplace-channel'\n\nexport const entities = [ \n /* ENTITIES */\n\t...SellercraftEntities,\n ...MarketplaceChannelEntities\n] \n\n\nexport const schema = {\n resolverClasses: [\n /* RESOLVER CLASSES */\n\t\t...SellercraftResolvers,\n ...MarketplaceSellercraftResolvers\n ]\n}\n\nexport { MarketplaceSellercraftResolvers }"]}
@@ -0,0 +1,5 @@
1
+ import { MarketplaceChannel } from './marketplace-channel';
2
+ import { MarketplaceChannelOrderMutation } from './marketplace-channel-order-mutation';
3
+ import { MarketplaceChannelProductMutation } from './marketplace-channel-product-mutation';
4
+ export declare const entities: (typeof MarketplaceChannel)[];
5
+ export declare const resolvers: (typeof MarketplaceChannelOrderMutation | typeof MarketplaceChannelProductMutation)[];
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolvers = exports.entities = void 0;
4
+ const marketplace_channel_1 = require("./marketplace-channel");
5
+ const marketplace_channel_order_mutation_1 = require("./marketplace-channel-order-mutation");
6
+ const marketplace_channel_product_mutation_1 = require("./marketplace-channel-product-mutation");
7
+ exports.entities = [marketplace_channel_1.MarketplaceChannel];
8
+ exports.resolvers = [marketplace_channel_order_mutation_1.MarketplaceChannelOrderMutation, marketplace_channel_product_mutation_1.MarketplaceChannelProductMutation];
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/service/marketplace-channel/index.ts"],"names":[],"mappings":";;;AAAA,+DAA0D;AAC1D,6FAAsF;AACtF,iGAA0F;AAE7E,QAAA,QAAQ,GAAG,CAAC,wCAAkB,CAAC,CAAA;AAC/B,QAAA,SAAS,GAAG,CAAC,oEAA+B,EAAE,wEAAiC,CAAC,CAAA","sourcesContent":["import { MarketplaceChannel } from './marketplace-channel'\nimport { MarketplaceChannelOrderMutation } from './marketplace-channel-order-mutation'\nimport { MarketplaceChannelProductMutation } from './marketplace-channel-product-mutation'\n\nexport const entities = [MarketplaceChannel]\nexport const resolvers = [MarketplaceChannelOrderMutation, MarketplaceChannelProductMutation]\n"]}
@@ -0,0 +1,3 @@
1
+ export declare class MarketplaceChannelOrderMutation {
2
+ syncAllMarketplaceChannelOrders(context: ResolverContext, fromCreatedDate?: string, toCreatedDate?: string, fromUpdatedDate?: string, toUpdatedDate?: string, channelId?: string, shopId?: string, airflow?: boolean): Promise<boolean>;
3
+ }