cloudcommerce 0.0.98 → 0.0.99

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 (55) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/package.json +1 -1
  3. package/packages/api/package.json +1 -1
  4. package/packages/apps/correios/package.json +1 -1
  5. package/packages/apps/custom-shipping/package.json +1 -1
  6. package/packages/apps/discounts/package.json +1 -1
  7. package/packages/apps/frenet/package.json +1 -1
  8. package/packages/apps/tiny-erp/lib/event-to-tiny.js +94 -94
  9. package/packages/apps/tiny-erp/lib/index.js +1 -1
  10. package/packages/apps/tiny-erp/lib/integration/after-tiny-queue.js +71 -74
  11. package/packages/apps/tiny-erp/lib/integration/export-order-to-tiny.js +70 -73
  12. package/packages/apps/tiny-erp/lib/integration/export-product-to-tiny.js +49 -53
  13. package/packages/apps/tiny-erp/lib/integration/helpers/format-tiny-date.js +3 -3
  14. package/packages/apps/tiny-erp/lib/integration/import-order-from-tiny.js +76 -75
  15. package/packages/apps/tiny-erp/lib/integration/import-product-from-tiny.js +137 -140
  16. package/packages/apps/tiny-erp/lib/integration/parsers/order-from-tiny.js +40 -39
  17. package/packages/apps/tiny-erp/lib/integration/parsers/order-to-tiny.js +173 -178
  18. package/packages/apps/tiny-erp/lib/integration/parsers/product-from-tiny.js +173 -171
  19. package/packages/apps/tiny-erp/lib/integration/parsers/product-to-tiny.js +123 -127
  20. package/packages/apps/tiny-erp/lib/integration/parsers/status-from-tiny.js +32 -32
  21. package/packages/apps/tiny-erp/lib/integration/parsers/status-to-tiny.js +37 -37
  22. package/packages/apps/tiny-erp/lib/integration/post-tiny-erp.js +42 -43
  23. package/packages/apps/tiny-erp/lib/tiny-erp.js +8 -6
  24. package/packages/apps/tiny-erp/lib/tiny-webhook.js +76 -73
  25. package/packages/apps/tiny-erp/package.json +1 -1
  26. package/packages/cli/package.json +1 -1
  27. package/packages/config/package.json +1 -1
  28. package/packages/events/package.json +1 -1
  29. package/packages/firebase/package.json +1 -1
  30. package/packages/modules/lib/firebase/ajv.js +24 -19
  31. package/packages/modules/lib/firebase/call-app-module.js +110 -116
  32. package/packages/modules/lib/firebase/checkout.js +152 -151
  33. package/packages/modules/lib/firebase/functions-checkout/fix-items.js +187 -194
  34. package/packages/modules/lib/firebase/functions-checkout/get-custumerId.js +26 -25
  35. package/packages/modules/lib/firebase/functions-checkout/handle-order-transaction.js +109 -110
  36. package/packages/modules/lib/firebase/functions-checkout/new-order.js +177 -177
  37. package/packages/modules/lib/firebase/functions-checkout/request-to-module.js +59 -59
  38. package/packages/modules/lib/firebase/functions-checkout/utils.js +197 -195
  39. package/packages/modules/lib/firebase/handle-module.js +146 -144
  40. package/packages/modules/lib/firebase/proxy-apps.js +1 -2
  41. package/packages/modules/lib/firebase/serve-modules-api.js +53 -52
  42. package/packages/modules/lib/firebase.js +6 -4
  43. package/packages/modules/lib/index.js +15 -12
  44. package/packages/modules/package.json +1 -1
  45. package/packages/passport/package.json +1 -1
  46. package/packages/ssr/package.json +1 -1
  47. package/packages/storefront/astro.config.mjs +1 -1
  48. package/packages/storefront/dist/client/{LoginOffcanvas.daf3f717.js → LoginOffcanvas.c2faa1dc.js} +1 -1
  49. package/packages/storefront/dist/client/chunks/{LoginForm.d9251274.js → LoginForm.3bcb85fb.js} +10 -10
  50. package/packages/storefront/dist/client/chunks/{LoginOffcanvas.07fe6492.js → LoginOffcanvas.e48f274b.js} +1 -1
  51. package/packages/storefront/dist/client/sw.js +1 -1
  52. package/packages/storefront/dist/server/entry.mjs +2 -2
  53. package/packages/storefront/package.json +2 -2
  54. package/packages/storefront/tsconfig.json +1 -1
  55. package/packages/types/package.json +1 -1
@@ -1,62 +1,58 @@
1
1
  import api from '@cloudcommerce/api';
2
2
  import postTiny from './post-tiny-erp.js';
3
3
  import parseProduct from './parsers/product-to-tiny.js';
4
+
4
5
  export default async (apiDoc, queueEntry, appData, canCreateNew) => {
5
- const productId = queueEntry.nextId;
6
- let product;
7
- if (productId === apiDoc._id) {
8
- product = apiDoc;
9
- }
10
- else {
11
- try {
12
- product = (await api.get(`products/${productId}`)).data;
13
- }
14
- catch (err) {
15
- if (err.statusCode === 404) {
16
- const msg = `O produto ${productId} não existe (:${err.statusCode})`;
17
- const error = new Error(msg);
18
- error.isConfigError = true;
19
- return error;
20
- }
21
- throw err;
22
- }
23
- }
24
- let tinyData;
6
+ const productId = queueEntry.nextId;
7
+ let product;
8
+ if (productId === apiDoc._id) {
9
+ product = apiDoc;
10
+ } else {
25
11
  try {
26
- tinyData = await postTiny('/produtos.pesquisa.php', {
27
- pesquisa: product.sku,
28
- });
12
+ product = (await api.get(`products/${productId}`)).data;
13
+ } catch (err) {
14
+ if (err.statusCode === 404) {
15
+ const msg = `O produto ${productId} não existe (:${err.statusCode})`;
16
+ const error = new Error(msg);
17
+ error.isConfigError = true;
18
+ return error;
19
+ }
20
+ throw err;
29
21
  }
30
- catch (err) {
31
- if (err.response && err.response.status === 404) {
32
- tinyData = {};
33
- }
34
- else {
35
- throw err;
36
- }
22
+ }
23
+ let tinyData;
24
+ try {
25
+ tinyData = await postTiny('/produtos.pesquisa.php', {
26
+ pesquisa: product.sku,
27
+ });
28
+ } catch (err) {
29
+ if (err.response && err.response.status === 404) {
30
+ tinyData = {};
31
+ } else {
32
+ throw err;
37
33
  }
38
- const { produtos } = tinyData;
39
- let originalTinyProduct;
40
- if (Array.isArray(produtos)) {
41
- originalTinyProduct = produtos.find(({ produto }) => {
42
- return product.sku === String(produto.codigo);
43
- });
44
- if (originalTinyProduct) {
45
- originalTinyProduct = originalTinyProduct.produto;
46
- }
47
- else if (!canCreateNew) {
48
- return null;
49
- }
34
+ }
35
+ const { produtos } = tinyData;
36
+ let originalTinyProduct;
37
+ if (Array.isArray(produtos)) {
38
+ originalTinyProduct = produtos.find(({ produto }) => {
39
+ return product.sku === String(produto.codigo);
40
+ });
41
+ if (originalTinyProduct) {
42
+ originalTinyProduct = originalTinyProduct.produto;
43
+ } else if (!canCreateNew) {
44
+ return null;
50
45
  }
51
- const tinyProduct = parseProduct(product, originalTinyProduct, appData);
52
- return tinyProduct
53
- ? postTiny(originalTinyProduct ? '/produto.alterar.php' : '/produto.incluir.php', {
54
- produto: {
55
- produtos: [{
56
- produto: tinyProduct,
57
- }],
58
- },
59
- })
60
- : null;
46
+ }
47
+ const tinyProduct = parseProduct(product, originalTinyProduct, appData);
48
+ return tinyProduct
49
+ ? postTiny(originalTinyProduct ? '/produto.alterar.php' : '/produto.incluir.php', {
50
+ produto: {
51
+ produtos: [{
52
+ produto: tinyProduct,
53
+ }],
54
+ },
55
+ })
56
+ : null;
61
57
  };
62
- //# sourceMappingURL=export-product-to-tiny.js.map
58
+ // # sourceMappingURL=export-product-to-tiny.js.map
@@ -1,7 +1,7 @@
1
1
  export default (d) => {
2
- /* eslint-disable prefer-template */
3
- return d.getDate().toString().padStart(2, '0') + '/'
2
+ /* eslint-disable prefer-template */
3
+ return d.getDate().toString().padStart(2, '0') + '/'
4
4
  + (d.getMonth() + 1).toString().padStart(2, '0') + '/'
5
5
  + d.getFullYear();
6
6
  };
7
- //# sourceMappingURL=format-tiny-date.js.map
7
+ // # sourceMappingURL=format-tiny-date.js.map
@@ -5,87 +5,88 @@ import api from '@cloudcommerce/api';
5
5
  import postTiny from './post-tiny-erp.js';
6
6
  import parseOrder from './parsers/order-from-tiny.js';
7
7
  import parseStatus from './parsers/status-from-tiny.js';
8
+
8
9
  const getLastStatus = (records) => {
9
- let statusRecord;
10
- records.forEach((record) => {
11
- if (record
10
+ let statusRecord;
11
+ records.forEach((record) => {
12
+ if (record
12
13
  && (!statusRecord || !record.date_time || record.date_time >= statusRecord.date_time)) {
13
- statusRecord = record;
14
- }
15
- });
16
- return statusRecord && statusRecord.status;
14
+ statusRecord = record;
15
+ }
16
+ });
17
+ return statusRecord && statusRecord.status;
17
18
  };
19
+
18
20
  export default async (apiDoc, queueEntry) => {
19
- const getTinyOrder = async (tinyOrderId) => {
20
- const { pedido } = await postTiny('/pedido.obter.php', {
21
- id: Number(tinyOrderId),
22
- });
23
- const situacao = typeof pedido.situacao === 'string'
24
- ? pedido.situacao.toLowerCase()
25
- : null;
26
- const orderNumber = pedido.numero_ecommerce;
27
- logger.info(`Import order n${orderNumber} ${tinyOrderId} => ${situacao}`);
28
- const documentRef = getFirestore().doc(`tinyErpOrders/${tinyOrderId}`);
29
- const documentSnapshot = await documentRef.get();
30
- if (documentSnapshot.exists
21
+ const getTinyOrder = async (tinyOrderId) => {
22
+ const { pedido } = await postTiny('/pedido.obter.php', {
23
+ id: Number(tinyOrderId),
24
+ });
25
+ const situacao = typeof pedido.situacao === 'string'
26
+ ? pedido.situacao.toLowerCase()
27
+ : null;
28
+ const orderNumber = pedido.numero_ecommerce;
29
+ logger.info(`Import order n${orderNumber} ${tinyOrderId} => ${situacao}`);
30
+ const documentRef = getFirestore().doc(`tinyErpOrders/${tinyOrderId}`);
31
+ const documentSnapshot = await documentRef.get();
32
+ if (documentSnapshot.exists
31
33
  && documentSnapshot.get('situacao') === situacao) {
32
- logger.info(`>> Ignoring Tiny order n${orderNumber} ${tinyOrderId} with same status`);
33
- return null;
34
- }
35
- let listEndpoint = 'orders?limit=1&fields=_id,payments_history,fulfillments,shipping_lines';
36
- if (orderNumber) {
37
- listEndpoint += `&number=${orderNumber}`;
38
- }
39
- else {
40
- listEndpoint += `&hidden_metafields.value=${tinyOrderId}_tiny`;
41
- }
42
- const { data: { result } } = await api.get(listEndpoint);
43
- if (!result.length) {
44
- return null;
45
- }
46
- const order = result[0];
47
- const partialOrder = await parseOrder(pedido, order.shipping_lines);
48
- const promises = [];
49
- if (partialOrder && Object.keys(partialOrder).length) {
50
- promises.push(api.patch(`orders/${order._id}`, partialOrder));
51
- }
52
- const { fulfillmentStatus, financialStatus } = parseStatus(situacao);
53
- const data = {
54
- date_time: new Date().toISOString(),
55
- flags: ['from-tiny'],
56
- };
57
- [
58
- [financialStatus, 'payments_history'],
59
- [fulfillmentStatus, 'fulfillments'],
60
- ].forEach(([newStatus, subresource]) => {
61
- if (newStatus
34
+ logger.info(`>> Ignoring Tiny order n${orderNumber} ${tinyOrderId} with same status`);
35
+ return null;
36
+ }
37
+ let listEndpoint = 'orders?limit=1&fields=_id,payments_history,fulfillments,shipping_lines';
38
+ if (orderNumber) {
39
+ listEndpoint += `&number=${orderNumber}`;
40
+ } else {
41
+ listEndpoint += `&hidden_metafields.value=${tinyOrderId}_tiny`;
42
+ }
43
+ const { data: { result } } = await api.get(listEndpoint);
44
+ if (!result.length) {
45
+ return null;
46
+ }
47
+ const order = result[0];
48
+ const partialOrder = await parseOrder(pedido, order.shipping_lines);
49
+ const promises = [];
50
+ if (partialOrder && Object.keys(partialOrder).length) {
51
+ promises.push(api.patch(`orders/${order._id}`, partialOrder));
52
+ }
53
+ const { fulfillmentStatus, financialStatus } = parseStatus(situacao);
54
+ const data = {
55
+ date_time: new Date().toISOString(),
56
+ flags: ['from-tiny'],
57
+ };
58
+ [
59
+ [financialStatus, 'payments_history'],
60
+ [fulfillmentStatus, 'fulfillments'],
61
+ ].forEach(([newStatus, subresource]) => {
62
+ if (newStatus
62
63
  // @ts-ignore
63
64
  && (!order[subresource] || getLastStatus(order[subresource]) !== newStatus)) {
64
- data.status = newStatus;
65
- promises.push(api.post(`orders/${order._id}/${subresource}`, data));
66
- logger.info(`${order._id} updated to ${newStatus} from Tiny ${tinyOrderId}`);
67
- }
68
- });
69
- return Promise.all(promises)
70
- .then(([firstResult]) => {
71
- documentRef.set({ situacao }).catch(logger.error);
72
- return (firstResult && firstResult.response) || firstResult;
73
- });
74
- };
75
- const tinyOrderNumber = queueEntry.nextId;
76
- if (typeof tinyOrderNumber === 'string' && tinyOrderNumber.startsWith('id:')) {
77
- return getTinyOrder(tinyOrderNumber.substring(3));
78
- }
79
- return postTiny('/pedidos.pesquisa.php', {
80
- numero: tinyOrderNumber,
81
- }).then(({ pedidos }) => {
82
- const tinyOrder = pedidos.find(({ pedido }) => {
83
- return Number(tinyOrderNumber) === Number(pedido.numero);
84
- });
85
- if (tinyOrder) {
86
- return getTinyOrder(tinyOrder.pedido.id);
87
- }
88
- return null;
65
+ data.status = newStatus;
66
+ promises.push(api.post(`orders/${order._id}/${subresource}`, data));
67
+ logger.info(`${order._id} updated to ${newStatus} from Tiny ${tinyOrderId}`);
68
+ }
69
+ });
70
+ return Promise.all(promises)
71
+ .then(([firstResult]) => {
72
+ documentRef.set({ situacao }).catch(logger.error);
73
+ return (firstResult && firstResult.response) || firstResult;
74
+ });
75
+ };
76
+ const tinyOrderNumber = queueEntry.nextId;
77
+ if (typeof tinyOrderNumber === 'string' && tinyOrderNumber.startsWith('id:')) {
78
+ return getTinyOrder(tinyOrderNumber.substring(3));
79
+ }
80
+ return postTiny('/pedidos.pesquisa.php', {
81
+ numero: tinyOrderNumber,
82
+ }).then(({ pedidos }) => {
83
+ const tinyOrder = pedidos.find(({ pedido }) => {
84
+ return Number(tinyOrderNumber) === Number(pedido.numero);
89
85
  });
86
+ if (tinyOrder) {
87
+ return getTinyOrder(tinyOrder.pedido.id);
88
+ }
89
+ return null;
90
+ });
90
91
  };
91
- //# sourceMappingURL=import-order-from-tiny.js.map
92
+ // # sourceMappingURL=import-order-from-tiny.js.map
@@ -3,159 +3,156 @@ import api from '@cloudcommerce/api';
3
3
  import updateAppData from '@cloudcommerce/firebase/lib/helpers/update-app-data';
4
4
  import postTiny from './post-tiny-erp.js';
5
5
  import parseProduct from './parsers/product-from-tiny.js';
6
+
6
7
  export default async (apiDoc, queueEntry, appData, canCreateNew, isHiddenQueue) => {
7
- const [sku, productId] = String(queueEntry.nextId).split(';:');
8
- let product = null;
9
- try {
10
- product = (await api.get(`products/${(productId || `sku:${sku}`)}`)).data;
8
+ const [sku, productId] = String(queueEntry.nextId).split(';:');
9
+ let product = null;
10
+ try {
11
+ product = (await api.get(`products/${(productId || `sku:${sku}`)}`)).data;
12
+ } catch (err) {
13
+ if (err.statusCode !== 404) {
14
+ throw err;
11
15
  }
12
- catch (err) {
13
- if (err.statusCode !== 404) {
14
- throw err;
15
- }
16
- }
17
- let hasVariations = false;
18
- let variationId;
19
- if (product) {
20
- const { variations } = product;
21
- hasVariations = Boolean(variations && variations.length);
22
- const variation = variations?.find((variation) => sku === variation.sku);
23
- if (variation) {
24
- variationId = variation._id;
25
- }
26
- else {
27
- logger.info(`SKU not found ${sku}`);
28
- if (!isHiddenQueue && !appData.update_product) {
29
- const msg = sku
30
- + ' corresponde a um produto com variações,'
16
+ }
17
+ let hasVariations = false;
18
+ let variationId;
19
+ if (product) {
20
+ const { variations } = product;
21
+ hasVariations = Boolean(variations && variations.length);
22
+ const variation = variations?.find((variation) => sku === variation.sku);
23
+ if (variation) {
24
+ variationId = variation._id;
25
+ } else {
26
+ logger.info(`SKU not found ${sku}`);
27
+ if (!isHiddenQueue && !appData.update_product) {
28
+ const msg = `${sku
29
+ } corresponde a um produto com variações,`
31
30
  + ' especifique o SKU da variação para importar.';
32
- const err = new Error(msg);
33
- err.isConfigError = true;
34
- return err;
35
- }
36
- return null;
37
- }
31
+ const err = new Error(msg);
32
+ err.isConfigError = true;
33
+ return err;
34
+ }
35
+ return null;
36
+ }
37
+ }
38
+ const handleTinyStock = ({ produto, tipo }, tinyProduct) => {
39
+ let quantity = Number(produto.saldo) || Number(produto.estoqueAtual);
40
+ if (produto.saldoReservado) {
41
+ quantity -= Number(produto.saldoReservado);
38
42
  }
39
- const handleTinyStock = ({ produto, tipo }, tinyProduct) => {
40
- let quantity = Number(produto.saldo) || Number(produto.estoqueAtual);
41
- if (produto.saldoReservado) {
42
- quantity -= Number(produto.saldoReservado);
43
+ if (product && (!appData.update_product || variationId)) {
44
+ if (!Number.isNaN(quantity)) {
45
+ if (quantity < 0) {
46
+ quantity = 0;
43
47
  }
44
- if (product && (!appData.update_product || variationId)) {
45
- if (!Number.isNaN(quantity)) {
46
- if (quantity < 0) {
47
- quantity = 0;
48
- }
49
- let endpoint = `products/${product._id}`;
50
- if (variationId) {
51
- endpoint += `variations/${variationId}`;
52
- }
53
- endpoint += '/quantity';
54
- logger.info(endpoint, { quantity });
55
- // @ts-ignore
56
- return api.put(endpoint, quantity);
57
- }
58
- return null;
48
+ let endpoint = `products/${product._id}`;
49
+ if (variationId) {
50
+ endpoint += `variations/${variationId}`;
59
51
  }
60
- if (!tinyProduct) {
61
- return null;
52
+ endpoint += '/quantity';
53
+ logger.info(endpoint, { quantity });
54
+ // @ts-ignore
55
+ return api.put(endpoint, quantity);
56
+ }
57
+ return null;
58
+ }
59
+ if (!tinyProduct) {
60
+ return null;
61
+ }
62
+ return postTiny('/produto.obter.php', { id: tinyProduct.id })
63
+ .then(({ produto }) => {
64
+ let method;
65
+ let endpoint;
66
+ let productId = product && product._id;
67
+ if (productId) {
68
+ method = 'PATCH';
69
+ endpoint = `products/${productId}`;
70
+ } else if (tipo === 'produto' || !tipo) {
71
+ method = 'POST';
72
+ endpoint = 'products';
73
+ } else {
74
+ return null;
62
75
  }
63
- return postTiny('/produto.obter.php', { id: tinyProduct.id })
64
- .then(({ produto }) => {
65
- let method;
66
- let endpoint;
67
- let productId = product && product._id;
68
- if (productId) {
69
- method = 'PATCH';
70
- endpoint = `products/${productId}`;
71
- }
72
- else if (tipo === 'produto' || !tipo) {
73
- method = 'POST';
74
- endpoint = 'products';
75
- }
76
- else {
77
- return null;
76
+ // @ts-ignore
77
+ return parseProduct(produto, method === 'POST').then((product) => {
78
+ if (!Number.isNaN(quantity)) {
79
+ product.quantity = quantity >= 0 ? quantity : 0;
80
+ }
81
+ logger.info(`${method} ${endpoint}`);
82
+ const promise = api({
83
+ method,
84
+ endpoint,
85
+ data: product,
86
+ });
87
+ if (Array.isArray(produto.variacoes) && produto.variacoes.length) {
88
+ if (!queueEntry.app) {
89
+ logger.warn('Variations cannot be queued without `queueEntry.app`');
90
+ return promise;
78
91
  }
79
- // @ts-ignore
80
- return parseProduct(produto, method === 'POST').then((product) => {
81
- if (!Number.isNaN(quantity)) {
82
- product.quantity = quantity >= 0 ? quantity : 0;
92
+ promise.then((response) => {
93
+ let skus = appData.__importation && appData.__importation.skus;
94
+ if (!Array.isArray(skus)) {
95
+ skus = [];
96
+ }
97
+ let isQueuedVariations = false;
98
+ produto.variacoes.forEach(({ variacao }) => {
99
+ const { codigo } = variacao;
100
+ let skuAndId = codigo;
101
+ if (!productId) {
102
+ productId = response.data && response.data._id;
83
103
  }
84
- logger.info(`${method} ${endpoint}`);
85
- const promise = api({
86
- method,
87
- endpoint,
88
- data: product,
89
- });
90
- if (Array.isArray(produto.variacoes) && produto.variacoes.length) {
91
- if (!queueEntry.app) {
92
- logger.warn('Variations cannot be queued without `queueEntry.app`');
93
- return promise;
94
- }
95
- promise.then((response) => {
96
- let skus = appData.__importation && appData.__importation.skus;
97
- if (!Array.isArray(skus)) {
98
- skus = [];
99
- }
100
- let isQueuedVariations = false;
101
- produto.variacoes.forEach(({ variacao }) => {
102
- const { codigo } = variacao;
103
- let skuAndId = codigo;
104
- if (!productId) {
105
- productId = response.data && response.data._id;
106
- }
107
- if (productId) {
108
- skuAndId += `;:${productId}`;
109
- }
110
- if (!skus.includes(codigo) && !skus.includes(skuAndId)) {
111
- isQueuedVariations = true;
112
- skus.push(skuAndId);
113
- }
114
- });
115
- return isQueuedVariations
116
- ? updateAppData(queueEntry.app, {
117
- __importation: {
118
- ...appData.__importation,
119
- skus,
120
- },
121
- })
122
- : response;
123
- });
104
+ if (productId) {
105
+ skuAndId += `;:${productId}`;
124
106
  }
125
- return promise;
107
+ if (!skus.includes(codigo) && !skus.includes(skuAndId)) {
108
+ isQueuedVariations = true;
109
+ skus.push(skuAndId);
110
+ }
111
+ });
112
+ return isQueuedVariations
113
+ ? updateAppData(queueEntry.app, {
114
+ __importation: {
115
+ ...appData.__importation,
116
+ skus,
117
+ },
118
+ })
119
+ : response;
126
120
  });
121
+ }
122
+ return promise;
127
123
  });
128
- };
129
- logger.info(JSON.stringify({
130
- sku,
131
- productId,
132
- hasVariations,
133
- variationId,
134
- }));
135
- const { tinyStockUpdate } = queueEntry;
136
- if (tinyStockUpdate && isHiddenQueue && productId) {
137
- return handleTinyStock(tinyStockUpdate);
138
- }
139
- return postTiny('/produtos.pesquisa.php', { pesquisa: sku })
140
- .then(({ produtos }) => {
141
- if (Array.isArray(produtos)) {
142
- let tinyProduct = produtos.find(({ produto }) => sku === String(produto.codigo));
143
- if (tinyProduct) {
144
- tinyProduct = tinyProduct.produto;
145
- if (!hasVariations || variationId) {
146
- if (tinyStockUpdate) {
147
- return handleTinyStock(tinyStockUpdate, tinyProduct);
148
- }
149
- return postTiny('/produto.obter.estoque.php', { id: tinyProduct.id })
150
- .then((tinyStock) => handleTinyStock(tinyStock, tinyProduct));
151
- }
152
- return handleTinyStock({ produto: {} }, tinyProduct);
124
+ });
125
+ };
126
+ logger.info(JSON.stringify({
127
+ sku,
128
+ productId,
129
+ hasVariations,
130
+ variationId,
131
+ }));
132
+ const { tinyStockUpdate } = queueEntry;
133
+ if (tinyStockUpdate && isHiddenQueue && productId) {
134
+ return handleTinyStock(tinyStockUpdate);
135
+ }
136
+ return postTiny('/produtos.pesquisa.php', { pesquisa: sku })
137
+ .then(({ produtos }) => {
138
+ if (Array.isArray(produtos)) {
139
+ let tinyProduct = produtos.find(({ produto }) => sku === String(produto.codigo));
140
+ if (tinyProduct) {
141
+ tinyProduct = tinyProduct.produto;
142
+ if (!hasVariations || variationId) {
143
+ if (tinyStockUpdate) {
144
+ return handleTinyStock(tinyStockUpdate, tinyProduct);
153
145
  }
146
+ return postTiny('/produto.obter.estoque.php', { id: tinyProduct.id })
147
+ .then((tinyStock) => handleTinyStock(tinyStock, tinyProduct));
148
+ }
149
+ return handleTinyStock({ produto: {} }, tinyProduct);
154
150
  }
155
- const msg = `SKU ${sku} não encontrado no Tiny`;
156
- const err = new Error(msg);
157
- err.isConfigError = true;
158
- throw new Error(err);
151
+ }
152
+ const msg = `SKU ${sku} não encontrado no Tiny`;
153
+ const err = new Error(msg);
154
+ err.isConfigError = true;
155
+ throw new Error(err);
159
156
  });
160
157
  };
161
- //# sourceMappingURL=import-product-from-tiny.js.map
158
+ // # sourceMappingURL=import-product-from-tiny.js.map