cloudcommerce 0.2.2 → 0.3.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 (163) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/ecomplus-stores/monocard/functions/ssr/package.json +0 -2
  3. package/ecomplus-stores/tia-sonia/functions/ssr/package.json +0 -2
  4. package/package.json +7 -7
  5. package/packages/api/package.json +1 -1
  6. package/packages/apps/correios/package.json +2 -2
  7. package/packages/apps/custom-payment/package.json +1 -1
  8. package/packages/apps/custom-shipping/package.json +1 -1
  9. package/packages/apps/datafrete/package.json +2 -2
  10. package/packages/apps/discounts/package.json +1 -1
  11. package/packages/apps/emails/package.json +1 -1
  12. package/packages/apps/fb-conversions/lib/fb-conversions-events.js +131 -111
  13. package/packages/apps/fb-conversions/lib/fb-conversions-events.js.map +1 -1
  14. package/packages/apps/fb-conversions/lib/functions-lib/create-fb-objects.js +69 -0
  15. package/packages/apps/fb-conversions/lib/functions-lib/create-fb-objects.js.map +1 -0
  16. package/packages/apps/fb-conversions/package.json +1 -1
  17. package/packages/apps/fb-conversions/src/fb-conversions-events.ts +173 -125
  18. package/packages/apps/fb-conversions/src/functions-lib/create-fb-objects.ts +104 -0
  19. package/packages/apps/frenet/package.json +2 -2
  20. package/packages/apps/galaxpay/package.json +2 -2
  21. package/packages/apps/google-analytics/package.json +2 -2
  22. package/packages/apps/infinitepay/package.json +2 -2
  23. package/packages/apps/jadlog/package.json +2 -2
  24. package/packages/apps/loyalty-points/package.json +1 -1
  25. package/packages/apps/melhor-envio/CHANGELOG.md +1 -0
  26. package/packages/apps/melhor-envio/README.md +1 -0
  27. package/packages/apps/melhor-envio/events.js +1 -0
  28. package/packages/apps/melhor-envio/lib/functions-lib/database.d.ts +18 -0
  29. package/packages/apps/melhor-envio/lib/functions-lib/database.js +115 -0
  30. package/packages/apps/melhor-envio/lib/functions-lib/database.js.map +1 -0
  31. package/packages/apps/melhor-envio/lib/functions-lib/events-to-melhor-envio.d.ts +7 -0
  32. package/packages/apps/melhor-envio/lib/functions-lib/events-to-melhor-envio.js +112 -0
  33. package/packages/apps/melhor-envio/lib/functions-lib/events-to-melhor-envio.js.map +1 -0
  34. package/packages/apps/melhor-envio/lib/functions-lib/new-label.d.ts +42 -0
  35. package/packages/apps/melhor-envio/lib/functions-lib/new-label.js +185 -0
  36. package/packages/apps/melhor-envio/lib/functions-lib/new-label.js.map +1 -0
  37. package/packages/apps/melhor-envio/lib/functions-lib/order-is-valid.d.ts +5 -0
  38. package/packages/apps/melhor-envio/lib/functions-lib/order-is-valid.js +40 -0
  39. package/packages/apps/melhor-envio/lib/functions-lib/order-is-valid.js.map +1 -0
  40. package/packages/apps/melhor-envio/lib/functions-lib/tracking-codes.d.ts +2 -0
  41. package/packages/apps/melhor-envio/lib/functions-lib/tracking-codes.js +164 -0
  42. package/packages/apps/melhor-envio/lib/functions-lib/tracking-codes.js.map +1 -0
  43. package/packages/apps/melhor-envio/lib/index.d.ts +1 -0
  44. package/packages/apps/melhor-envio/lib/index.js +2 -0
  45. package/packages/apps/melhor-envio/lib/index.js.map +1 -0
  46. package/packages/apps/melhor-envio/lib/melhor-envio-events.d.ts +6 -0
  47. package/packages/apps/melhor-envio/lib/melhor-envio-events.js +17 -0
  48. package/packages/apps/melhor-envio/lib/melhor-envio-events.js.map +1 -0
  49. package/packages/apps/melhor-envio/lib/melhor-envio.d.ts +2 -0
  50. package/packages/apps/melhor-envio/lib/melhor-envio.js +6 -0
  51. package/packages/apps/melhor-envio/lib/melhor-envio.js.map +1 -0
  52. package/packages/apps/melhor-envio/lib-mjs/calculate-melhor-envio.mjs +341 -0
  53. package/packages/apps/melhor-envio/lib-mjs/functions/client-melhor-envio.mjs +14 -0
  54. package/packages/apps/melhor-envio/lib-mjs/functions/error-handling.mjs +62 -0
  55. package/packages/apps/melhor-envio/lib-mjs/functions/new-shipment.mjs +119 -0
  56. package/packages/apps/melhor-envio/package.json +36 -0
  57. package/packages/apps/melhor-envio/src/functions-lib/database.ts +140 -0
  58. package/packages/apps/melhor-envio/src/functions-lib/events-to-melhor-envio.ts +137 -0
  59. package/packages/apps/melhor-envio/src/functions-lib/new-label.ts +214 -0
  60. package/packages/apps/melhor-envio/src/functions-lib/order-is-valid.ts +51 -0
  61. package/packages/apps/melhor-envio/src/functions-lib/tracking-codes.ts +191 -0
  62. package/packages/apps/melhor-envio/src/index.ts +1 -0
  63. package/packages/apps/melhor-envio/src/melhor-envio-events.ts +24 -0
  64. package/packages/apps/melhor-envio/src/melhor-envio.ts +7 -0
  65. package/packages/apps/melhor-envio/tsconfig.json +6 -0
  66. package/packages/apps/mercadopago/package.json +2 -2
  67. package/packages/apps/pagarme/package.json +2 -2
  68. package/packages/apps/paghiper/package.json +3 -3
  69. package/packages/apps/pix/package.json +2 -2
  70. package/packages/apps/tiny-erp/package.json +2 -2
  71. package/packages/cli/package.json +1 -1
  72. package/packages/config/package.json +1 -1
  73. package/packages/emails/package.json +3 -3
  74. package/packages/events/lib/firebase.js +2 -0
  75. package/packages/events/lib/firebase.js.map +1 -1
  76. package/packages/events/package.json +2 -1
  77. package/packages/events/src/firebase.ts +2 -0
  78. package/packages/firebase/lib/config.d.ts +4 -0
  79. package/packages/firebase/lib/config.js +8 -0
  80. package/packages/firebase/lib/config.js.map +1 -1
  81. package/packages/firebase/package.json +2 -2
  82. package/packages/firebase/src/config.ts +9 -0
  83. package/packages/i18n/lib/en_us/i19buyTogether.txt +1 -0
  84. package/packages/i18n/lib/en_us/i19buyTogetherWith.txt +1 -0
  85. package/packages/i18n/lib/en_us/i19report.txt +1 -0
  86. package/packages/i18n/lib/en_us/i19toggleMenu.txt +1 -0
  87. package/packages/i18n/lib/en_us/i19uponRequest.txt +1 -0
  88. package/packages/i18n/lib/en_us/i19usedPoints.txt +1 -0
  89. package/packages/i18n/lib/en_us.d.ts +6 -0
  90. package/packages/i18n/lib/en_us.js +6 -0
  91. package/packages/i18n/lib/en_us.js.map +1 -1
  92. package/packages/i18n/lib/pt_br/i19buyTogether.txt +1 -0
  93. package/packages/i18n/lib/pt_br/i19buyTogetherWith.txt +1 -0
  94. package/packages/i18n/lib/pt_br/i19report.txt +1 -0
  95. package/packages/i18n/lib/pt_br/i19toggleMenu.txt +1 -0
  96. package/packages/i18n/lib/pt_br/i19uponRequest.txt +1 -0
  97. package/packages/i18n/lib/pt_br/i19usedPoints.txt +1 -0
  98. package/packages/i18n/lib/pt_br.d.ts +6 -0
  99. package/packages/i18n/lib/pt_br.js +6 -0
  100. package/packages/i18n/lib/pt_br.js.map +1 -1
  101. package/packages/i18n/package.json +1 -1
  102. package/packages/i18n/src/en_us.ts +6 -0
  103. package/packages/i18n/src/pt_br.ts +6 -0
  104. package/packages/modules/lib/firebase/call-app-module.js +5 -0
  105. package/packages/modules/lib/firebase/call-app-module.js.map +1 -1
  106. package/packages/modules/package.json +3 -2
  107. package/packages/modules/src/firebase/call-app-module.ts +5 -0
  108. package/packages/passport/package.json +1 -1
  109. package/packages/ssr/package.json +6 -7
  110. package/packages/storefront/.eslintrc.cjs +1 -1
  111. package/packages/storefront/astro.config.mjs +8 -1
  112. package/packages/storefront/dist/client/_astro/PitchBar.209c6645.js +1 -0
  113. package/packages/storefront/dist/client/_astro/Prices.6fbcb5ac.js +1 -0
  114. package/packages/storefront/dist/client/_astro/Prices.vue_vue_type_script_setup_true_lang.44f23680.js +1 -0
  115. package/packages/storefront/dist/client/_astro/ProductCard.ee5eee91.js +1 -0
  116. package/packages/storefront/dist/client/_astro/ShopHeader.b801c785.js +1 -0
  117. package/packages/storefront/dist/client/_astro/_...slug_.32968ccf.css +1 -0
  118. package/packages/storefront/dist/client/_astro/client.5a46cc02.js +1 -0
  119. package/packages/storefront/dist/client/_astro/ecom-utils.92f137f6.js +1 -0
  120. package/packages/storefront/dist/client/_astro/hoisted.6edd7364.js +1 -0
  121. package/packages/storefront/dist/client/_astro/index.844a4059.js +1 -0
  122. package/packages/storefront/dist/client/{assets → _astro}/index.90df622b.css +0 -0
  123. package/packages/storefront/dist/client/_astro/modules-info.d9373e21.js +1 -0
  124. package/packages/storefront/dist/client/_astro/runtime-core.esm-bundler.f04cee62.js +1 -0
  125. package/packages/storefront/dist/client/_astro/runtime-dom.esm-bundler.00313542.js +1 -0
  126. package/packages/storefront/dist/client/_astro/server.60de185d.css +1 -0
  127. package/packages/storefront/dist/client/{chunks/session-utm.ceebe967.js → _astro/session-utm.72684b84.js} +0 -0
  128. package/packages/storefront/dist/client/_astro/use-component-variant.58788b6e.js +1 -0
  129. package/packages/storefront/dist/client/{chunks/workbox-window.prod.es5.10f2e5ac.js → _astro/workbox-window.prod.es5.295a6886.js} +0 -0
  130. package/packages/storefront/dist/client/fallback/index.html +79 -0
  131. package/packages/storefront/dist/client/sw.js +1 -1
  132. package/packages/storefront/dist/server/chunks/astro.89bd9221.mjs +3378 -0
  133. package/packages/storefront/dist/server/chunks/pages/all.23de4e5c.mjs +2453 -0
  134. package/packages/storefront/dist/server/chunks/prerender.f40361a3.mjs +2 -0
  135. package/packages/storefront/dist/server/entry.mjs +2016 -11995
  136. package/packages/storefront/package.json +10 -11
  137. package/packages/storefront/src/lib/assets/base.css +16 -11
  138. package/packages/storefront/src/lib/components/Carousel.vue +52 -82
  139. package/packages/storefront/src/lib/components/Drawer.vue +103 -0
  140. package/packages/storefront/src/lib/components/PitchBar.vue +16 -11
  141. package/packages/storefront/src/lib/components/Prices.vue +29 -29
  142. package/packages/storefront/src/lib/components/ShopHeader.vue +82 -0
  143. package/packages/storefront/src/lib/components/StickyHeader.vue +73 -32
  144. package/packages/storefront/src/lib/components/globals/Fade.vue +10 -14
  145. package/packages/storefront/src/lib/composables/use-component-variant.ts +6 -2
  146. package/packages/storefront/src/lib/composables/use-prices.ts +4 -2
  147. package/packages/storefront/src/lib/layouts/BaseBody.astro +1 -0
  148. package/packages/storefront/src/lib/layouts/PagesHeader.astro +28 -13
  149. package/packages/storefront/src/lib/ssr/Picture.astro +7 -2
  150. package/packages/storefront/tailwind.config.cjs +4 -0
  151. package/packages/storefront/uno.config.cjs +1 -1
  152. package/packages/types/package.json +1 -1
  153. package/packages/storefront/dist/client/PitchBar.5ae15bda.js +0 -1
  154. package/packages/storefront/dist/client/Prices.248d1aae.js +0 -1
  155. package/packages/storefront/dist/client/ProductCard.4848304c.js +0 -1
  156. package/packages/storefront/dist/client/assets/_...slug_.b701cbb1.css +0 -1
  157. package/packages/storefront/dist/client/assets/server.4d9646d8.css +0 -1
  158. package/packages/storefront/dist/client/chunks/Prices.vue_vue_type_script_setup_true_lang.2d01aaa2.js +0 -1
  159. package/packages/storefront/dist/client/chunks/ecom-utils.cd6787a7.js +0 -1
  160. package/packages/storefront/dist/client/chunks/modules-info.fcab5bba.js +0 -1
  161. package/packages/storefront/dist/client/chunks/runtime-dom.esm-bundler.923790dc.js +0 -1
  162. package/packages/storefront/dist/client/client.2356f675.js +0 -1
  163. package/packages/storefront/dist/client/hoisted.11b849a7.js +0 -1
@@ -0,0 +1,115 @@
1
+ import { getFirestore, Timestamp } from 'firebase-admin/firestore';
2
+ import logger from 'firebase-functions/logger';
3
+
4
+ const firestoreColl = 'melhorEnvioTracking';
5
+ const searchLabel = async (resourceId) => new Promise((resolve, reject) => {
6
+ getFirestore().doc(`${firestoreColl}/${resourceId}`)
7
+ .get()
8
+ .then((documentSnapshot) => {
9
+ if (documentSnapshot && documentSnapshot.exists) {
10
+ const data = documentSnapshot.data();
11
+ if (data) {
12
+ resolve(data);
13
+ } else {
14
+ resolve(null);
15
+ }
16
+ } else {
17
+ resolve(null);
18
+ }
19
+ })
20
+ .catch((err) => {
21
+ reject(err);
22
+ });
23
+ });
24
+ const saveLabel = (labelId, status, resourceId) => new Promise((resolve) => {
25
+ const documentRef = getFirestore().doc(`${firestoreColl}/${resourceId}`);
26
+ if (documentRef) {
27
+ documentRef.set({
28
+ id: resourceId,
29
+ labelId,
30
+ status,
31
+ resourceId,
32
+ createdAt: Timestamp.now(),
33
+ }).then(() => resolve(true))
34
+ .catch(logger.error);
35
+ }
36
+ });
37
+ const getAllLabels = () => new Promise((resolve, reject) => {
38
+ getFirestore().collection(firestoreColl).get()
39
+ .then((docsRef) => {
40
+ if (docsRef.size > 0) {
41
+ const list = [];
42
+ docsRef.forEach((documentSnapshot) => {
43
+ if (documentSnapshot && documentSnapshot.exists) {
44
+ const data = documentSnapshot.data();
45
+ list.push(data);
46
+ }
47
+ });
48
+ resolve(list);
49
+ } else {
50
+ const err = new Error('No label');
51
+ reject(err);
52
+ }
53
+ })
54
+ .catch(reject);
55
+ });
56
+ const updateLabel = async (status, labelId) => new Promise((resolve, reject) => {
57
+ getFirestore().collection(firestoreColl)
58
+ .where('labelId', '==', labelId)
59
+ .get()
60
+ .then((docsRef) => {
61
+ if (docsRef.size > 0) {
62
+ docsRef.forEach(async (documentSnapshot) => {
63
+ if (documentSnapshot && documentSnapshot.exists) {
64
+ const documentRef = documentSnapshot.ref;
65
+ await documentRef.set({
66
+ status,
67
+ updateAt: new Date().toISOString(),
68
+ }, { merge: true });
69
+ }
70
+ });
71
+ }
72
+ resolve(true);
73
+ })
74
+ .catch(reject);
75
+ });
76
+ const deleteLabel = async (id) => new Promise((resolve, reject) => {
77
+ getFirestore().doc(`${firestoreColl}/${id}`)
78
+ .get()
79
+ .then(async (documentSnapshot) => {
80
+ if (documentSnapshot && documentSnapshot.exists) {
81
+ const data = documentSnapshot.data();
82
+ if (data) {
83
+ await documentSnapshot.ref.delete();
84
+ resolve(true);
85
+ }
86
+ }
87
+ resolve(false);
88
+ })
89
+ .catch(reject);
90
+ });
91
+ const clearLabels = async () => new Promise((resolve, reject) => {
92
+ const deadline = new Date();
93
+ deadline.setMonth(deadline.getMonth() - 2);
94
+ getFirestore().collection(firestoreColl)
95
+ .where('createdAt', '<=', deadline)
96
+ .get()
97
+ .then((docsRef) => {
98
+ docsRef.docs.forEach((doc) => {
99
+ doc.ref.delete();
100
+ });
101
+ resolve(true);
102
+ })
103
+ .catch(reject);
104
+ });
105
+ const db = {
106
+ searchLabel,
107
+ saveLabel,
108
+ getAllLabels,
109
+ updateLabel,
110
+ deleteLabel,
111
+ clearLabels,
112
+ };
113
+
114
+ export default db;
115
+ // # sourceMappingURL=database.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/functions-lib/database.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ declare const handleApiEvent: ({ evName, apiEvent, apiDoc, app, }: {
2
+ evName: any;
3
+ apiEvent: any;
4
+ apiDoc: any;
5
+ app: any;
6
+ }) => Promise<any>;
7
+ export default handleApiEvent;
@@ -0,0 +1,112 @@
1
+ import logger from 'firebase-functions/logger';
2
+ import api from '@cloudcommerce/api';
3
+ import meClient from '../../lib-mjs/functions/client-melhor-envio.mjs';
4
+ import errorHandling from '../../lib-mjs/functions/error-handling.mjs';
5
+ import db from './database.js';
6
+ import orderIsValid from './order-is-valid.js';
7
+ import newLabel from './new-label.js';
8
+
9
+ const ECHO_SKIP = (msg) => logger.warn(msg || 'SKIP');
10
+ const metafieldName = 'melhor_envio_label_id';
11
+ const handleApiEvent = async ({
12
+ evName, apiEvent, apiDoc, app,
13
+ }) => {
14
+ const resourceId = apiEvent.resource_id;
15
+ logger.info('>> ', resourceId, ' - Action: ', apiEvent.action);
16
+ const key = `${evName}_${resourceId}`;
17
+ const appData = { ...app.data, ...app.hidden_data };
18
+ if (Array.isArray(appData.ignore_events)
19
+ && appData.ignore_events.includes(evName)) {
20
+ logger.info('>> ', key, ' - Ignored event');
21
+ return null;
22
+ }
23
+ logger.info(`> Webhook ${resourceId} [${evName}] => ${apiDoc}`);
24
+ try {
25
+ const trackingCode = await db.searchLabel(resourceId);
26
+ if (!trackingCode) {
27
+ const accessToken = appData.access_token;
28
+ const { sandbox } = appData;
29
+ if (!accessToken) {
30
+ ECHO_SKIP('>> Melhor Envio token not found');
31
+ return null;
32
+ }
33
+ const order = apiDoc;
34
+ if (!appData.enabled_label_purchase || !orderIsValid(order, appData)) {
35
+ ECHO_SKIP();
36
+ return null;
37
+ }
38
+ const merchantData = await meClient(accessToken, sandbox).get('/')
39
+ .then(({ data }) => data);
40
+ const label = newLabel(order, appData, merchantData);
41
+ // logger.log(`>> Comprando etiquetas #${storeId} ${order._id}`);
42
+ const { data } = await meClient(accessToken, sandbox).post('/cart', label);
43
+ if (data) {
44
+ logger.log(`>> Etiqueta inserida no carrinho com sucesso #${data.id}`);
45
+ if (appData.enabled_label_checkout) {
46
+ await meClient(accessToken, sandbox).post('/shipment/checkout', { orders: [data.id] });
47
+ }
48
+ // logger.log(`>> Carrinho finalizado com sucesso #${data.id}`);
49
+ await db.saveLabel(data.id, data.status, resourceId);
50
+ // logger.log(`>> Etiquetas salvas no db para futuros rastreio #${storeId} ${resourceId}`);
51
+ // updates hidden_metafields with the generated tag id
52
+ const bodyHiddenMetaField = {
53
+ namespace: 'app-melhor-envio',
54
+ field: metafieldName,
55
+ value: data.id,
56
+ }; // TODO: type amount
57
+ await api.post(`orders/${resourceId}/hidden_metafields`, bodyHiddenMetaField);
58
+ if (typeof data.tracking === 'string' && data.tracking.length) {
59
+ let shippingLine = order.shipping_lines?.find(({ app: application }) => application
60
+ && application.service_code && application.service_code.startsWith('ME'));
61
+ if (!shippingLine && order.shipping_lines) {
62
+ [shippingLine] = order.shipping_lines;
63
+ }
64
+ if (shippingLine) {
65
+ const trackingCodes = shippingLine.tracking_codes || [];
66
+ trackingCodes.push({
67
+ code: data.tracking,
68
+ link: `https://www.melhorrastreio.com.br/rastreio/${data.tracking}`,
69
+ });
70
+ await api.patch(`orders/${resourceId}/shipping_lines/${shippingLine._id}`, { tracking_codes: trackingCodes });
71
+ logger.log(`>> 'hidden_metafields' do pedido ${order._id} atualizado com sucesso!`);
72
+ // done
73
+ return null;
74
+ }
75
+ }
76
+ }
77
+ }
78
+ ECHO_SKIP();
79
+ return null;
80
+ } catch (err) {
81
+ if (err.response && err.isAxiosError) {
82
+ const { data } = err.response;
83
+ if (data) {
84
+ // update order hidden_metafields
85
+ const bodyHiddenMetaField = {
86
+ namespace: 'app-melhor-envio',
87
+ field: 'melhor_envio_label_error',
88
+ value: JSON.stringify(data).substring(0, 255),
89
+ };
90
+ await api.post(`orders/${resourceId}/hidden_metafields`, bodyHiddenMetaField);
91
+ if (data.error
92
+ === 'Os documentos (CPFs) dos participantes do frete não podem ser iguais'
93
+ || data.error.startsWith('Seu saldo de R$ ')) {
94
+ // ignoring known ME/merchant errors
95
+ logger.warn(`ME: ${data.error}`);
96
+ return null;
97
+ }
98
+ }
99
+ logger.error('BuyLabelErr:', JSON.stringify({
100
+ data,
101
+ status: err.response.status,
102
+ config: err.response.config,
103
+ }, null, 4));
104
+ } else {
105
+ errorHandling(err);
106
+ }
107
+ return err;
108
+ }
109
+ };
110
+
111
+ export default handleApiEvent;
112
+ // # sourceMappingURL=events-to-melhor-envio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events-to-melhor-envio.js","sourceRoot":"","sources":["../../src/functions-lib/events-to-melhor-envio.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import type { Orders } from '@cloudcommerce/types';
2
+ declare const _default: (order: Orders, appConfig: {
3
+ [x: string]: any;
4
+ }, merchantData: {
5
+ [x: string]: any;
6
+ }) => {
7
+ from: {
8
+ [x: string]: any;
9
+ };
10
+ to: {
11
+ email: string;
12
+ };
13
+ package: {
14
+ weight: number;
15
+ width: number;
16
+ height: number;
17
+ length: number;
18
+ };
19
+ products: {
20
+ name: string;
21
+ quantity: number;
22
+ unitary_value: number;
23
+ }[];
24
+ options: {
25
+ insurance_value: number;
26
+ receipt: any;
27
+ own_hand: any;
28
+ collect: boolean;
29
+ reverse: boolean;
30
+ platform: string;
31
+ tags: ({
32
+ tag: string;
33
+ url?: undefined;
34
+ } | {
35
+ tag: string;
36
+ url: string & {
37
+ length: 24;
38
+ };
39
+ })[];
40
+ };
41
+ };
42
+ export default _default;
@@ -0,0 +1,185 @@
1
+ export default (order, appConfig, merchantData) => {
2
+ const {
3
+ firstname, lastname, phone, email, address,
4
+ } = merchantData;
5
+ const from = {
6
+ name: `${firstname} ${lastname}`,
7
+ phone: (phone && phone.phone) || '',
8
+ email,
9
+ };
10
+ if (merchantData.company_document) {
11
+ from.company_document = merchantData.company_document;
12
+ }
13
+ if (merchantData.document) {
14
+ const field = merchantData.document.length > 11 ? 'company_document' : 'document';
15
+ from[field] = merchantData.document;
16
+ }
17
+ if (address) {
18
+ if (typeof address === 'string') {
19
+ from.address = address;
20
+ } else {
21
+ [
22
+ 'address',
23
+ 'complement',
24
+ 'number',
25
+ 'district',
26
+ 'postal_code',
27
+ 'city',
28
+ 'state_abbr',
29
+ 'country_id',
30
+ ].forEach((field) => {
31
+ from[field] = address[field] || '';
32
+ });
33
+ if (typeof address.city === 'object') {
34
+ from.city = address.city.city || '';
35
+ if (address.city.state) {
36
+ from.state_abbr = address.city.state.state_abbr || '';
37
+ from.country_id = (address.city.state.country && address.city.state.country.id) || '';
38
+ }
39
+ }
40
+ }
41
+ }
42
+ const shippingLine = (order.shipping_lines && order.shipping_lines[0]);
43
+ // || {};
44
+ const buyer = order.buyers && order.buyers[0];
45
+ const to = {
46
+ email: '',
47
+ };
48
+ if (buyer && buyer.main_email) {
49
+ to.email = buyer.main_email;
50
+ if (buyer.registry_type === 'j') {
51
+ Object.assign(to, { company_document: buyer.doc_number || '' });
52
+ } else {
53
+ Object.assign(to, { document: buyer.doc_number || '' });
54
+ }
55
+ if (buyer.phones && buyer.phones[0]) {
56
+ Object.assign(to, { phone: buyer.phones[0].number });
57
+ }
58
+ }
59
+ if (shippingLine?.to) {
60
+ const {
61
+ name, street, complement, number, borough, city, zip,
62
+ } = shippingLine.to;
63
+ Object.assign(to, {
64
+ name,
65
+ address: street || '',
66
+ complement,
67
+ number,
68
+ district: borough || '',
69
+ city,
70
+ state_abbr: shippingLine.to.province_code || '',
71
+ country_id: shippingLine.to.country_code || 'BR',
72
+ postal_code: zip || '',
73
+ note: shippingLine.to.near_to || '',
74
+ });
75
+ }
76
+ let physicalWeight = 0;
77
+ if (shippingLine?.package) {
78
+ const { weight } = shippingLine.package;
79
+ if (weight && weight.value) {
80
+ switch (weight.unit) {
81
+ case 'kg':
82
+ physicalWeight = weight.value;
83
+ break;
84
+ case 'g':
85
+ physicalWeight = weight.value / 1000;
86
+ break;
87
+ case 'mg':
88
+ physicalWeight = weight.value / 1000000;
89
+ break;
90
+ default:
91
+ break;
92
+ }
93
+ }
94
+ }
95
+ const getDimensions = (side) => {
96
+ const dimensions = shippingLine?.package && shippingLine.package.dimensions;
97
+ if (dimensions && dimensions[side]) {
98
+ const dimension = dimensions[side];
99
+ if (dimension && dimension.unit) {
100
+ let dimensionValue = 0;
101
+ switch (dimension.unit) {
102
+ case 'cm':
103
+ dimensionValue = dimension.value;
104
+ break;
105
+ case 'm':
106
+ dimensionValue = dimension.value * 100;
107
+ break;
108
+ case 'mm':
109
+ dimensionValue = dimension.value / 10;
110
+ break;
111
+ default:
112
+ break;
113
+ }
114
+ return dimensionValue;
115
+ }
116
+ }
117
+ return 0;
118
+ };
119
+ const products = [];
120
+ let insuranceValue = 0;
121
+ if (order.items) {
122
+ order.items.forEach((item) => {
123
+ products.push({
124
+ name: item.name || item.product_id,
125
+ quantity: item.quantity,
126
+ unitary_value: item.price,
127
+ });
128
+ insuranceValue += item.final_price || item.price;
129
+ });
130
+ }
131
+ const options = {
132
+ insurance_value: insuranceValue,
133
+ receipt: (appConfig.receipt),
134
+ own_hand: (appConfig.own_hand),
135
+ collect: false,
136
+ reverse: false,
137
+ platform: 'E-Com Plus',
138
+ tags: [
139
+ {
140
+ tag: `Etiqueta referente ao pedido: #${order.number}`,
141
+ },
142
+ {
143
+ tag: 'order_id',
144
+ url: order._id,
145
+ },
146
+ ],
147
+ };
148
+ // https://docs.menv.io/?version=latest#9a8f308b-4872-4268-b402-e1b0d64d1f1c
149
+ if (appConfig.enabled_non_commercial) {
150
+ Object.assign(options, { non_commercial: true });
151
+ }
152
+ const invoices = shippingLine?.invoices;
153
+ if (invoices && Array.isArray(invoices) && invoices[0].number) {
154
+ Object.assign(options, {
155
+ invoice: {
156
+ number: invoices[0].number,
157
+ key: invoices[0].access_key,
158
+ },
159
+ });
160
+ }
161
+ const label = {
162
+ from,
163
+ to,
164
+ package: {
165
+ weight: physicalWeight,
166
+ width: getDimensions('width'),
167
+ height: getDimensions('height'),
168
+ length: getDimensions('length'),
169
+ },
170
+ products,
171
+ options,
172
+ };
173
+ if (shippingLine?.app && shippingLine.app.service_code) {
174
+ Object.assign(label, {
175
+ service: parseInt(shippingLine.app.service_code.replace('ME ', ''), 10),
176
+ });
177
+ }
178
+ if (appConfig.jadlog_agency) {
179
+ Object.assign(label, {
180
+ agency: appConfig.jadlog_agency,
181
+ });
182
+ }
183
+ return label;
184
+ };
185
+ // # sourceMappingURL=new-label.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"new-label.js","sourceRoot":"","sources":["../../src/functions-lib/new-label.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { Orders } from '@cloudcommerce/types';
2
+ declare const _default: (order: Orders, appConfig: {
3
+ [x: string]: any;
4
+ }) => boolean;
5
+ export default _default;
@@ -0,0 +1,40 @@
1
+ export default (order, appConfig) => {
2
+ if (!order.fulfillment_status || !order.shipping_lines) {
3
+ return false;
4
+ }
5
+ // check if the shipping calculation was done with the app-melhor-envio
6
+ const isByMelhorEnvio = Boolean(order.shipping_lines.find((shippingLine) => {
7
+ return shippingLine.custom_fields && shippingLine.custom_fields.find(({ field }) => {
8
+ return field === 'by_melhor_envio';
9
+ });
10
+ }));
11
+ // checks if the non-commercial shipping option is enabled
12
+ const isNonCommercial = () => (appConfig.enabled_non_commercial);
13
+ // checks if order is ready to ship by last
14
+ // entry in fulfillments instead of checking fulfillment_status
15
+ const isReadyForShipping = () => {
16
+ const current = order.fulfillment_status?.current;
17
+ return (current && current === 'ready_for_shipping');
18
+ };
19
+ // check if nf was issued for the order
20
+ const hasInvoice = () => {
21
+ return Boolean(order.shipping_lines?.find(({ invoices }) => {
22
+ return invoices && invoices[0] && invoices[0].number;
23
+ }));
24
+ };
25
+ const hasLabelBuyIt = () => {
26
+ if (order.hidden_metafields) {
27
+ return order.hidden_metafields
28
+ .find(({ field }) => field === 'melhor_envio_label_id');
29
+ }
30
+ return false;
31
+ };
32
+ if (!isByMelhorEnvio || !isReadyForShipping() || hasLabelBuyIt()) {
33
+ return false;
34
+ }
35
+ if (isNonCommercial() || hasInvoice()) {
36
+ return true;
37
+ }
38
+ return false;
39
+ };
40
+ // # sourceMappingURL=order-is-valid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order-is-valid.js","sourceRoot":"","sources":["../../src/functions-lib/order-is-valid.ts"],"names":[],"mappings":"AAEA,eAAe,CAAC,KAAa,EAAE,SAAgC,EAAE,EAAE;IACjE,IAAI,CAAC,KAAK,CAAC,kBAAkB,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE;QACtD,OAAO,KAAK,CAAC;KACd;IAED,uEAAuE;IACvE,MAAM,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE;QACzE,OAAO,YAAY,CAAC,aAAa,IAAI,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;YACjF,OAAO,KAAK,KAAK,iBAAiB,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC,CAAC;IAEJ,0DAA0D;IAC1D,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;IAEjE,2CAA2C;IAC3C,+DAA+D;IAE/D,MAAM,kBAAkB,GAAG,GAAG,EAAE;QAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,kBAAkB,EAAE,OAAO,CAAC;QAClD,OAAO,CAAC,OAAO,IAAI,OAAO,KAAK,oBAAoB,CAAC,CAAC;IACvD,CAAC,CAAC;IAEF,uCAAuC;IACvC,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,OAAO,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;YACzD,OAAO,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACvD,CAAC,CAAC,CAAC,CAAC;IACN,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,IAAI,KAAK,CAAC,iBAAiB,EAAE;YAC3B,OAAO,KAAK,CAAC,iBAAiB;iBAC3B,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,KAAK,uBAAuB,CAAC,CAAC;SAC3D;QAED,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,IAAI,CAAC,eAAe,IAAI,CAAC,kBAAkB,EAAE,IAAI,aAAa,EAAE,EAAE;QAChE,OAAO,KAAK,CAAC;KACd;IAED,IAAI,eAAe,EAAE,IAAI,UAAU,EAAE,EAAE;QACrC,OAAO,IAAI,CAAC;KACb;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ declare const handleTrackingCodes: () => Promise<void>;
2
+ export default handleTrackingCodes;