cloudcommerce 0.0.133 → 0.1.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 (260) hide show
  1. package/.vscode/settings.json +2 -1
  2. package/CHANGELOG.md +25 -0
  3. package/action.yml +13 -5
  4. package/ecomplus-stores/monocard/functions/core/package.json +1 -1
  5. package/ecomplus-stores/monocard/functions/events/package.json +1 -1
  6. package/ecomplus-stores/monocard/functions/modules/package.json +1 -1
  7. package/ecomplus-stores/monocard/functions/passport/package.json +1 -1
  8. package/ecomplus-stores/tia-sonia/functions/core/package.json +1 -1
  9. package/ecomplus-stores/tia-sonia/functions/events/package.json +1 -1
  10. package/ecomplus-stores/tia-sonia/functions/modules/package.json +1 -1
  11. package/ecomplus-stores/tia-sonia/functions/passport/package.json +1 -1
  12. package/package.json +8 -9
  13. package/packages/api/fetch-polyfill.js +1 -1
  14. package/packages/api/package.json +1 -1
  15. package/packages/api/tests/index.test.ts +0 -1
  16. package/packages/apps/correios/package.json +1 -1
  17. package/packages/apps/custom-payment/CHANGELOG.md +1 -0
  18. package/packages/apps/custom-payment/README.md +1 -0
  19. package/packages/apps/custom-payment/lib/custom-payment-create-transaction.d.ts +68 -0
  20. package/packages/apps/custom-payment/lib/custom-payment-create-transaction.js +55 -0
  21. package/packages/apps/custom-payment/lib/custom-payment-create-transaction.js.map +1 -0
  22. package/packages/apps/custom-payment/lib/custom-payment-list-payments.d.ts +3 -0
  23. package/packages/apps/custom-payment/lib/custom-payment-list-payments.js +79 -0
  24. package/packages/apps/custom-payment/lib/custom-payment-list-payments.js.map +1 -0
  25. package/packages/apps/custom-payment/lib/custom-payment.d.ts +68 -0
  26. package/packages/apps/custom-payment/lib/custom-payment.js +11 -0
  27. package/packages/apps/custom-payment/lib/custom-payment.js.map +1 -0
  28. package/packages/apps/custom-payment/lib/index.d.ts +1 -0
  29. package/packages/apps/custom-payment/lib/index.js +2 -0
  30. package/packages/apps/custom-payment/lib/index.js.map +1 -0
  31. package/packages/apps/custom-payment/package.json +27 -0
  32. package/packages/apps/custom-payment/src/custom-payment-create-transaction.ts +67 -0
  33. package/packages/apps/custom-payment/src/custom-payment-list-payments.ts +96 -0
  34. package/packages/apps/custom-payment/src/custom-payment.ts +11 -0
  35. package/packages/apps/custom-payment/src/index.ts +1 -0
  36. package/packages/apps/custom-payment/tsconfig.json +6 -0
  37. package/packages/apps/custom-shipping/package.json +1 -1
  38. package/packages/apps/discounts/package.json +1 -1
  39. package/packages/apps/emails/package.json +2 -2
  40. package/packages/apps/frenet/package.json +1 -1
  41. package/packages/apps/galaxpay/CHANGELOG.md +1 -0
  42. package/packages/apps/galaxpay/README.md +1 -0
  43. package/packages/apps/galaxpay/assets/onload-expression.js +23 -0
  44. package/packages/apps/galaxpay/events.js +1 -0
  45. package/packages/apps/galaxpay/lib/functions-lib/all-parses.d.ts +5 -0
  46. package/packages/apps/galaxpay/lib/functions-lib/all-parses.js +79 -0
  47. package/packages/apps/galaxpay/lib/functions-lib/all-parses.js.map +1 -0
  48. package/packages/apps/galaxpay/lib/functions-lib/ecom/events-to-galaxpay.d.ts +3 -0
  49. package/packages/apps/galaxpay/lib/functions-lib/ecom/events-to-galaxpay.js +75 -0
  50. package/packages/apps/galaxpay/lib/functions-lib/ecom/events-to-galaxpay.js.map +1 -0
  51. package/packages/apps/galaxpay/lib/functions-lib/galaxpay/auth/create-access.d.ts +11 -0
  52. package/packages/apps/galaxpay/lib/functions-lib/galaxpay/auth/create-access.js +60 -0
  53. package/packages/apps/galaxpay/lib/functions-lib/galaxpay/auth/create-access.js.map +1 -0
  54. package/packages/apps/galaxpay/lib/functions-lib/galaxpay/auth/create-axios.d.ts +2 -0
  55. package/packages/apps/galaxpay/lib/functions-lib/galaxpay/auth/create-axios.js +20 -0
  56. package/packages/apps/galaxpay/lib/functions-lib/galaxpay/auth/create-axios.js.map +1 -0
  57. package/packages/apps/galaxpay/lib/functions-lib/galaxpay/auth/gerate-token.d.ts +2 -0
  58. package/packages/apps/galaxpay/lib/functions-lib/galaxpay/auth/gerate-token.js +32 -0
  59. package/packages/apps/galaxpay/lib/functions-lib/galaxpay/auth/gerate-token.js.map +1 -0
  60. package/packages/apps/galaxpay/lib/functions-lib/galaxpay/handle-plans.d.ts +30 -0
  61. package/packages/apps/galaxpay/lib/functions-lib/galaxpay/handle-plans.js +73 -0
  62. package/packages/apps/galaxpay/lib/functions-lib/galaxpay/handle-plans.js.map +1 -0
  63. package/packages/apps/galaxpay/lib/functions-lib/galaxpay/update-subscription.d.ts +8 -0
  64. package/packages/apps/galaxpay/lib/functions-lib/galaxpay/update-subscription.js +56 -0
  65. package/packages/apps/galaxpay/lib/functions-lib/galaxpay/update-subscription.js.map +1 -0
  66. package/packages/apps/galaxpay/lib/functions-lib/galaxpay/webhook.d.ts +3 -0
  67. package/packages/apps/galaxpay/lib/functions-lib/galaxpay/webhook.js +291 -0
  68. package/packages/apps/galaxpay/lib/functions-lib/galaxpay/webhook.js.map +1 -0
  69. package/packages/apps/galaxpay/lib/functions-lib/utils.d.ts +8 -0
  70. package/packages/apps/galaxpay/lib/functions-lib/utils.js +17 -0
  71. package/packages/apps/galaxpay/lib/functions-lib/utils.js.map +1 -0
  72. package/packages/apps/galaxpay/lib/galaxpay-create-transaction.d.ts +71 -0
  73. package/packages/apps/galaxpay/lib/galaxpay-create-transaction.js +199 -0
  74. package/packages/apps/galaxpay/lib/galaxpay-create-transaction.js.map +1 -0
  75. package/packages/apps/galaxpay/lib/galaxpay-events.d.ts +6 -0
  76. package/packages/apps/galaxpay/lib/galaxpay-events.js +21 -0
  77. package/packages/apps/galaxpay/lib/galaxpay-events.js.map +1 -0
  78. package/packages/apps/galaxpay/lib/galaxpay-list-payments.d.ts +7 -0
  79. package/packages/apps/galaxpay/lib/galaxpay-list-payments.js +105 -0
  80. package/packages/apps/galaxpay/lib/galaxpay-list-payments.js.map +1 -0
  81. package/packages/apps/galaxpay/lib/galaxpay.d.ts +76 -0
  82. package/packages/apps/galaxpay/lib/galaxpay.js +12 -0
  83. package/packages/apps/galaxpay/lib/galaxpay.js.map +1 -0
  84. package/packages/apps/galaxpay/lib/index.d.ts +1 -0
  85. package/packages/apps/galaxpay/lib/index.js +3 -0
  86. package/packages/apps/galaxpay/lib/index.js.map +1 -0
  87. package/packages/apps/galaxpay/package.json +36 -0
  88. package/packages/apps/galaxpay/scripts/build.sh +5 -0
  89. package/packages/apps/galaxpay/src/functions-lib/all-parses.ts +91 -0
  90. package/packages/apps/galaxpay/src/functions-lib/ecom/events-to-galaxpay.ts +85 -0
  91. package/packages/apps/galaxpay/src/functions-lib/galaxpay/auth/create-access.ts +80 -0
  92. package/packages/apps/galaxpay/src/functions-lib/galaxpay/auth/create-axios.ts +21 -0
  93. package/packages/apps/galaxpay/src/functions-lib/galaxpay/auth/gerate-token.ts +36 -0
  94. package/packages/apps/galaxpay/src/functions-lib/galaxpay/handle-plans.ts +92 -0
  95. package/packages/apps/galaxpay/src/functions-lib/galaxpay/update-subscription.ts +73 -0
  96. package/packages/apps/galaxpay/src/functions-lib/galaxpay/webhook.ts +381 -0
  97. package/packages/apps/galaxpay/src/functions-lib/utils.ts +23 -0
  98. package/packages/apps/galaxpay/src/galaxpay-create-transaction.ts +240 -0
  99. package/packages/apps/galaxpay/src/galaxpay-events.ts +28 -0
  100. package/packages/apps/galaxpay/src/galaxpay-list-payments.ts +130 -0
  101. package/packages/apps/galaxpay/src/galaxpay.ts +12 -0
  102. package/packages/apps/galaxpay/src/index.ts +2 -0
  103. package/packages/apps/galaxpay/tsconfig.json +6 -0
  104. package/packages/apps/galaxpay/types/config-app.d.ts +99 -0
  105. package/packages/apps/infinitepay/lib/infinitepay.js +1 -2
  106. package/packages/apps/infinitepay/lib/infinitepay.js.map +1 -1
  107. package/packages/apps/infinitepay/lib/ip-create-transaction.d.ts +1 -2
  108. package/packages/apps/infinitepay/lib/ip-create-transaction.js +3 -2
  109. package/packages/apps/infinitepay/lib/ip-create-transaction.js.map +1 -1
  110. package/packages/apps/infinitepay/lib/ip-list-payments.d.ts +1 -2
  111. package/packages/apps/infinitepay/lib/ip-list-payments.js.map +1 -1
  112. package/packages/apps/infinitepay/package.json +3 -3
  113. package/packages/apps/infinitepay/src/infinitepay.ts +1 -2
  114. package/packages/apps/infinitepay/src/ip-create-transaction.ts +8 -6
  115. package/packages/apps/infinitepay/src/ip-list-payments.ts +5 -3
  116. package/packages/apps/jadlog/CHANGELOG.md +1 -0
  117. package/packages/apps/jadlog/README.md +1 -0
  118. package/packages/apps/jadlog/lib/index.d.ts +1 -0
  119. package/packages/apps/jadlog/lib/index.js +2 -0
  120. package/packages/apps/jadlog/lib/index.js.map +1 -0
  121. package/packages/apps/jadlog/lib/jadlog.d.ts +2 -0
  122. package/packages/apps/jadlog/lib/jadlog.js +6 -0
  123. package/packages/apps/jadlog/lib/jadlog.js.map +1 -0
  124. package/packages/apps/jadlog/lib-mjs/calculate-jadlog.mjs +408 -0
  125. package/packages/apps/jadlog/lib-mjs/deadlines/range-0.mjs +147 -0
  126. package/packages/apps/jadlog/lib-mjs/deadlines/range-1.mjs +1149 -0
  127. package/packages/apps/jadlog/lib-mjs/deadlines/range-2.mjs +1137 -0
  128. package/packages/apps/jadlog/lib-mjs/deadlines/range-3.mjs +1638 -0
  129. package/packages/apps/jadlog/lib-mjs/deadlines/range-4.mjs +1089 -0
  130. package/packages/apps/jadlog/lib-mjs/deadlines/range-5.mjs +1101 -0
  131. package/packages/apps/jadlog/lib-mjs/deadlines/range-6.mjs +1893 -0
  132. package/packages/apps/jadlog/lib-mjs/deadlines/range-7.mjs +1371 -0
  133. package/packages/apps/jadlog/lib-mjs/deadlines/range-8.mjs +1401 -0
  134. package/packages/apps/jadlog/lib-mjs/deadlines/range-9.mjs +963 -0
  135. package/packages/apps/jadlog/lib-mjs/jadlog-get-deadlines.mjs +32 -0
  136. package/packages/apps/jadlog/package.json +28 -0
  137. package/packages/apps/jadlog/src/index.ts +1 -0
  138. package/packages/apps/jadlog/src/jadlog.ts +7 -0
  139. package/packages/apps/jadlog/tsconfig.json +6 -0
  140. package/packages/apps/mercadopago/lib/mercadopago.js +1 -2
  141. package/packages/apps/mercadopago/lib/mercadopago.js.map +1 -1
  142. package/packages/apps/mercadopago/lib/mp-create-transaction.d.ts +1 -2
  143. package/packages/apps/mercadopago/lib/mp-create-transaction.js +3 -2
  144. package/packages/apps/mercadopago/lib/mp-create-transaction.js.map +1 -1
  145. package/packages/apps/mercadopago/lib/mp-list-payments.d.ts +1 -2
  146. package/packages/apps/mercadopago/lib/mp-list-payments.js +2 -1
  147. package/packages/apps/mercadopago/lib/mp-list-payments.js.map +1 -1
  148. package/packages/apps/mercadopago/package.json +3 -3
  149. package/packages/apps/mercadopago/src/mercadopago.ts +1 -2
  150. package/packages/apps/mercadopago/src/mp-create-transaction.ts +12 -10
  151. package/packages/apps/mercadopago/src/mp-list-payments.ts +9 -7
  152. package/packages/apps/pagarme/lib/pagarme-create-transaction.js.map +1 -1
  153. package/packages/apps/pagarme/lib/pagarme-list-payments.d.ts +1 -2
  154. package/packages/apps/pagarme/lib/pagarme-list-payments.js.map +1 -1
  155. package/packages/apps/pagarme/package.json +3 -3
  156. package/packages/apps/pagarme/src/pagarme-create-transaction.ts +5 -3
  157. package/packages/apps/pagarme/src/pagarme-list-payments.ts +5 -3
  158. package/packages/apps/pix/lib/functions-lib/pix-auth/construtor.js +1 -1
  159. package/packages/apps/pix/lib/functions-lib/pix-auth/construtor.js.map +1 -1
  160. package/packages/apps/pix/lib/pix-create-transaction.d.ts +1 -2
  161. package/packages/apps/pix/lib/pix-create-transaction.js +6 -5
  162. package/packages/apps/pix/lib/pix-create-transaction.js.map +1 -1
  163. package/packages/apps/pix/lib/pix-list-payments.d.ts +1 -2
  164. package/packages/apps/pix/lib/pix-list-payments.js.map +1 -1
  165. package/packages/apps/pix/lib/pix-webhook.js +1 -1
  166. package/packages/apps/pix/lib/pix-webhook.js.map +1 -1
  167. package/packages/apps/pix/lib/pix.js +1 -2
  168. package/packages/apps/pix/lib/pix.js.map +1 -1
  169. package/packages/apps/pix/package.json +3 -3
  170. package/packages/apps/pix/src/functions-lib/pix-auth/construtor.ts +1 -1
  171. package/packages/apps/pix/src/pix-create-transaction.ts +10 -9
  172. package/packages/apps/pix/src/pix-list-payments.ts +5 -3
  173. package/packages/apps/pix/src/pix-webhook.ts +1 -1
  174. package/packages/apps/pix/src/pix.ts +1 -2
  175. package/packages/apps/tiny-erp/package.json +3 -3
  176. package/packages/cli/package.json +1 -1
  177. package/packages/config/package.json +1 -1
  178. package/packages/emails/package.json +2 -2
  179. package/packages/events/lib/firebase.js +2 -0
  180. package/packages/events/lib/firebase.js.map +1 -1
  181. package/packages/events/package.json +4 -3
  182. package/packages/events/src/firebase.ts +2 -0
  183. package/packages/firebase/lib/config.d.ts +10 -0
  184. package/packages/firebase/lib/config.js +13 -0
  185. package/packages/firebase/lib/config.js.map +1 -1
  186. package/packages/firebase/lib/init.d.ts +0 -1
  187. package/packages/firebase/lib/init.js +0 -1
  188. package/packages/firebase/lib/init.js.map +1 -1
  189. package/packages/firebase/package.json +3 -4
  190. package/packages/firebase/src/config.ts +14 -0
  191. package/packages/firebase/src/init.ts +0 -1
  192. package/packages/i18n/lib/en_us/i19get$1back.txt +1 -0
  193. package/packages/i18n/lib/en_us.d.ts +1 -0
  194. package/packages/i18n/lib/en_us.js +1 -0
  195. package/packages/i18n/lib/en_us.js.map +1 -1
  196. package/packages/i18n/lib/pt_br/i19get$1back.txt +1 -0
  197. package/packages/i18n/lib/pt_br/i19get.txt +1 -1
  198. package/packages/i18n/lib/pt_br.d.ts +2 -1
  199. package/packages/i18n/lib/pt_br.js +2 -1
  200. package/packages/i18n/lib/pt_br.js.map +1 -1
  201. package/packages/i18n/package.json +1 -1
  202. package/packages/i18n/src/en_us.ts +1 -0
  203. package/packages/i18n/src/pt_br.ts +2 -1
  204. package/packages/modules/lib/firebase/call-app-module.js +71 -51
  205. package/packages/modules/lib/firebase/call-app-module.js.map +1 -1
  206. package/packages/modules/package.json +6 -3
  207. package/packages/modules/src/firebase/call-app-module.ts +37 -24
  208. package/packages/passport/package.json +3 -3
  209. package/packages/ssr/lib/firebase.js +1 -2
  210. package/packages/ssr/lib/firebase.js.map +1 -1
  211. package/packages/ssr/package.json +5 -5
  212. package/packages/ssr/src/firebase.ts +1 -2
  213. package/packages/storefront/.eslintrc.cjs +1 -1
  214. package/packages/storefront/.nvmrc +1 -0
  215. package/packages/storefront/dist/client/HeaderButtons.f1c92fd8.js +1 -0
  216. package/packages/storefront/dist/client/Prices.795d082c.js +1 -0
  217. package/packages/storefront/dist/client/ProductCard.f477b7a1.js +1 -0
  218. package/packages/storefront/dist/client/assets/_...slug_.15766f41.css +1 -0
  219. package/packages/storefront/dist/client/assets/index.e6a09532.css +1 -0
  220. package/packages/storefront/dist/client/assets/server.4d9646d8.css +1 -0
  221. package/packages/storefront/dist/client/chunks/HeaderButtons.27ab2180.js +1 -0
  222. package/packages/storefront/dist/client/chunks/{LoginForm.83fec3a1.js → LoginForm.36774236.js} +1 -1
  223. package/packages/storefront/dist/client/chunks/Prices.vue_vue_type_script_setup_true_lang.522e4ac4.js +1 -0
  224. package/packages/storefront/dist/client/chunks/_plugin-vue_export-helper.979dc9e3.js +1 -0
  225. package/packages/storefront/dist/client/chunks/{price.130e6005.js → price.ecf7fed4.js} +1 -1
  226. package/packages/storefront/dist/client/chunks/runtime-core.esm-bundler.6c012e5d.js +1 -0
  227. package/packages/storefront/dist/client/client.8b4e336b.js +1 -0
  228. package/packages/storefront/dist/client/hoisted.f6ee2883.js +1 -0
  229. package/packages/storefront/dist/client/sw.js +1 -1
  230. package/packages/storefront/dist/server/entry.mjs +704 -70
  231. package/packages/storefront/package.json +12 -9
  232. package/packages/storefront/src/lib/assets/base.css +4 -0
  233. package/packages/storefront/src/lib/components/Prices.vue +165 -0
  234. package/packages/storefront/src/lib/components/ProductCard.vue +36 -0
  235. package/packages/storefront/src/lib/components/globals/Fade.vue +171 -0
  236. package/packages/storefront/src/lib/composables/use-component-variant.ts +13 -0
  237. package/packages/storefront/src/lib/composables/use-prices.ts +172 -0
  238. package/packages/storefront/src/lib/layouts/BaseBody.astro +1 -0
  239. package/packages/storefront/src/lib/pages/_vue.ts +13 -1
  240. package/packages/storefront/src/lib/state/modules-info.ts +1 -1
  241. package/packages/storefront/src/vue-globals.d.ts +9 -2
  242. package/packages/storefront/tailwind.config.cjs +1 -0
  243. package/packages/storefront/uno.config.cjs +1 -0
  244. package/packages/types/package.json +1 -1
  245. package/store.renovate.json +2 -1
  246. package/packages/storefront/dist/client/HeaderButtons.1968a9ac.js +0 -1
  247. package/packages/storefront/dist/client/Price.c4aab3ea.js +0 -1
  248. package/packages/storefront/dist/client/assets/_...slug_.580c5aa4.css +0 -1
  249. package/packages/storefront/dist/client/chunks/HeaderButtons.5a0e371e.js +0 -1
  250. package/packages/storefront/dist/client/chunks/runtime-core.esm-bundler.4dae6bc1.js +0 -1
  251. package/packages/storefront/dist/client/chunks/runtime-dom.esm-bundler.7a999c6c.js +0 -1
  252. package/packages/storefront/dist/client/client.79a40b9d.js +0 -1
  253. package/packages/storefront/dist/client/hoisted.cce93d56.js +0 -1
  254. package/packages/storefront/src/lib/components/Price/PriceCashback.vue +0 -13
  255. package/packages/storefront/src/lib/components/Price/PriceCompare.vue +0 -13
  256. package/packages/storefront/src/lib/components/Price/PriceDiscountLabel.vue +0 -13
  257. package/packages/storefront/src/lib/components/Price/PriceInstallments.vue +0 -13
  258. package/packages/storefront/src/lib/components/Price/PriceSale.vue +0 -13
  259. package/packages/storefront/src/lib/components/Price/PriceWithDiscount.vue +0 -13
  260. package/packages/storefront/src/lib/components/Price.vue +0 -57
@@ -0,0 +1,408 @@
1
+ import axios from 'axios';
2
+ import logger from 'firebase-functions/logger';
3
+ import getDeadlines from './jadlog-get-deadlines.mjs';
4
+
5
+ export default async ({ params, application }) => {
6
+ const appData = {
7
+ ...application.data,
8
+ ...application.hidden_data,
9
+ };
10
+
11
+ // setup basic required response object
12
+ const response = {
13
+ shipping_services: [],
14
+ };
15
+
16
+ if (appData.free_shipping_from_value >= 0) {
17
+ response.free_shipping_from_value = appData.free_shipping_from_value;
18
+ }
19
+
20
+ const formatZipCode = (str) => str.replace(/\D/g, '').padStart(8, '0');
21
+ const cepdes = params.to ? formatZipCode(params.to.zip) : '';
22
+ let cepori = '';
23
+ if (params.from) {
24
+ cepori = formatZipCode(params.from.zip);
25
+ } else if (appData.zip) {
26
+ cepori = formatZipCode(appData.zip);
27
+ }
28
+
29
+ const checkZipCode = (rule) => {
30
+ // validate rule zip range
31
+ if (cepdes && rule.zip_range) {
32
+ const { min, max } = rule.zip_range;
33
+ return Boolean((!min || cepdes >= min) && (!max || cepdes <= max));
34
+ }
35
+ return true;
36
+ };
37
+
38
+ // search for configured free shipping rule
39
+ if (Array.isArray(appData.shipping_rules)) {
40
+ for (let i = 0; i < appData.shipping_rules.length; i++) {
41
+ const rule = appData.shipping_rules[i];
42
+ if (rule.free_shipping && checkZipCode(rule)) {
43
+ if (!rule.min_amount) {
44
+ response.free_shipping_from_value = 0;
45
+ break;
46
+ } else if (!(response.free_shipping_from_value <= rule.min_amount)) {
47
+ response.free_shipping_from_value = rule.min_amount;
48
+ }
49
+ }
50
+ }
51
+ }
52
+
53
+ if (!params.to) {
54
+ // just a free shipping preview with no shipping address received
55
+ // respond only with free shipping option
56
+ return response;
57
+ }
58
+
59
+ const jadlogContract = appData.jadlog_contract || {};
60
+ if (!cepori || !jadlogContract.account || !jadlogContract.token) {
61
+ // must have configured origin zip code to continue
62
+ return {
63
+ error: 'CALCULATE_ERR',
64
+ message: 'Zip code or contract is unset on app hidden data (merchant must configure the app)',
65
+ };
66
+ }
67
+
68
+ // calculate weight and pkg value from items list
69
+ let peso = 0;
70
+ let vldeclarado = params.subtotal || 0;
71
+ if (params.items) {
72
+ const pkg = {
73
+ dimensions: {
74
+ width: {
75
+ value: 0,
76
+ unit: 'cm',
77
+ },
78
+ height: {
79
+ value: 0,
80
+ unit: 'cm',
81
+ },
82
+ length: {
83
+ value: 0,
84
+ unit: 'cm',
85
+ },
86
+ },
87
+ weight: {
88
+ value: 0,
89
+ unit: 'kg',
90
+ },
91
+ };
92
+
93
+ params.items.forEach(({
94
+ price, quantity, dimensions, weight,
95
+ }) => {
96
+ let physicalWeight = 0;
97
+ let cubicWeight = 0;
98
+ if (!params.subtotal) {
99
+ vldeclarado += price * quantity;
100
+ }
101
+
102
+ // sum physical weight
103
+ if (weight && weight.value) {
104
+ switch (weight.unit) {
105
+ case 'kg':
106
+ physicalWeight = weight.value;
107
+ break;
108
+ case 'g':
109
+ physicalWeight = weight.value / 1000;
110
+ break;
111
+ case 'mg':
112
+ physicalWeight = weight.value / 1000000;
113
+ break;
114
+ default:
115
+ break;
116
+ }
117
+ pkg.weight.value += physicalWeight * quantity;
118
+ }
119
+
120
+ // sum total items dimensions to calculate cubic weight
121
+ if (dimensions) {
122
+ const sumDimensions = {};
123
+ dimensions.forEach((side) => {
124
+ const dimension = dimensions[side];
125
+ if (dimension && dimension.value) {
126
+ let dimensionValue;
127
+ switch (dimension.unit) {
128
+ case 'cm':
129
+ dimensionValue = dimension.value;
130
+ break;
131
+ case 'm':
132
+ dimensionValue = dimension.value * 100;
133
+ break;
134
+ case 'mm':
135
+ dimensionValue = dimension.value / 10;
136
+ break;
137
+ default:
138
+ break;
139
+ }
140
+ // add/sum current side to final dimensions object
141
+ if (dimensionValue) {
142
+ sumDimensions[side] = sumDimensions[side]
143
+ ? sumDimensions[side] + dimensionValue
144
+ : dimensionValue;
145
+ }
146
+ }
147
+ });
148
+
149
+ // calculate cubic weight
150
+ // http://blog.encaminhei.com/logistica-transporte/valor-do-frete-pela-jadlog/
151
+ // (C x L x A) / 6.000
152
+ sumDimensions.forEach((side) => {
153
+ if (sumDimensions[side]) {
154
+ cubicWeight = cubicWeight > 0
155
+ ? cubicWeight * sumDimensions[side]
156
+ : sumDimensions[side];
157
+ pkg.dimensions[side].value += sumDimensions[side] * quantity;
158
+ }
159
+ });
160
+
161
+ if (cubicWeight > 0) {
162
+ cubicWeight /= 6000;
163
+ }
164
+ }
165
+ if (!appData.free_no_weight_shipping || physicalWeight > 0) {
166
+ peso += (quantity * (physicalWeight > cubicWeight ? physicalWeight : cubicWeight));
167
+ }
168
+ });
169
+
170
+ // optinal predefined or configured service codes
171
+ let serviceCodes;
172
+ if (params.service_code) {
173
+ serviceCodes = [params.service_code];
174
+ } else if (Array.isArray(appData.services) && appData.services[0]) {
175
+ const firstServiceCode = appData.services[0].service_code;
176
+ if (firstServiceCode) {
177
+ serviceCodes = [firstServiceCode];
178
+ for (let i = 1; i < appData.services.length; i++) {
179
+ serviceCodes.push(appData.services[i].service_code);
180
+ }
181
+ }
182
+ }
183
+ if (!serviceCodes || !serviceCodes.length) {
184
+ serviceCodes = ['.PACKAGE', '.COM'];
185
+ }
186
+
187
+ const jadlogServices = serviceCodes.map((serviceCode) => {
188
+ let modalidade;
189
+ switch (serviceCode) {
190
+ case '.PACKAGE':
191
+ modalidade = 3;
192
+ break;
193
+ case 'RODOVIÁRIO':
194
+ modalidade = 4;
195
+ break;
196
+ case 'DOC':
197
+ modalidade = 6;
198
+ break;
199
+ case 'ECONÔMICO':
200
+ modalidade = 5;
201
+ break;
202
+ case 'CORPORATE':
203
+ modalidade = 7;
204
+ break;
205
+ case '.COM':
206
+ modalidade = 9;
207
+ break;
208
+ case 'CARGO':
209
+ modalidade = 12;
210
+ break;
211
+ case 'EMERGENCIAL':
212
+ modalidade = 14;
213
+ break;
214
+ default:
215
+ modalidade = 0;
216
+ break;
217
+ }
218
+
219
+ return {
220
+ modalidade,
221
+ cepori,
222
+ cepdes,
223
+ peso: peso > 0.1 ? Math.round(peso * 100) / 100 : 0.1,
224
+ vldeclarado: vldeclarado > 0 ? Math.round(vldeclarado * 100) / 100 : 10,
225
+ frap: 'N',
226
+ tpentrega: 'D',
227
+ tpseguro: jadlogContract.insurance_type === 'Normal' ? 'N' : 'A',
228
+ conta: jadlogContract.account,
229
+ contrato: jadlogContract.contract,
230
+ cnpj: jadlogContract.doc_number ? jadlogContract.doc_number.replace(/\D/g, '') : null,
231
+ vlcoleta: jadlogContract.collection_cost || 0,
232
+ };
233
+ });
234
+
235
+ try {
236
+ const { data } = await axios({
237
+ url: 'http://www.jadlog.com.br/embarcador/api/frete/valor',
238
+ method: 'post',
239
+ data: {
240
+ frete: jadlogServices,
241
+ },
242
+ headers: {
243
+ 'Content-Type': 'application/json',
244
+ Accept: 'application/json',
245
+ Authorization: `Bearer ${jadlogContract.token}`,
246
+ },
247
+ timeout: 6000,
248
+ });
249
+
250
+ if (data && Array.isArray(data.frete)) {
251
+ data.frete.forEach(({ vltotal, error }, index) => {
252
+ if (vltotal && !error) {
253
+ const jadlogParams = jadlogServices[index];
254
+
255
+ // find respective configured service label
256
+ const serviceCode = serviceCodes[index];
257
+ let label = `Jadlog ${serviceCode}`;
258
+ if (Array.isArray(appData.services)) {
259
+ const service = appData.services.find((serviceFound) => {
260
+ return serviceFound.service_code === serviceCode;
261
+ });
262
+ if (service && service.label) {
263
+ label = service.label;
264
+ }
265
+ }
266
+
267
+ // parse to E-Com Plus shipping line object
268
+ const price = parseFloat(vltotal);
269
+ const shippingLine = {
270
+ from: {
271
+ ...params.from,
272
+ zip: cepori,
273
+ },
274
+ to: params.to,
275
+ package: pkg,
276
+ price,
277
+ declared_value: jadlogParams.vldeclarado,
278
+ discount: 0,
279
+ total_price: price,
280
+ delivery_time: {
281
+ days: getDeadlines(jadlogParams),
282
+ working_days: true,
283
+ },
284
+ posting_deadline: {
285
+ days: 3,
286
+ ...appData.posting_deadline,
287
+ },
288
+ flags: ['jadlog-ws'],
289
+ custom_fields: [{
290
+ field: 'jadlog_ws_params',
291
+ value: JSON.stringify(jadlogParams)
292
+ .replace(/"(contrato|conta|cnpj)":([^,]+)/g, '"$1":"*"')
293
+ .slice(0, 255),
294
+ }],
295
+ };
296
+
297
+ // check for default configured additional/discount price
298
+ if (typeof appData.additional_price === 'number' && appData.additional_price) {
299
+ if (appData.additional_price > 0) {
300
+ shippingLine.other_additionals = [{
301
+ tag: 'additional_price',
302
+ label: 'Adicional padrão',
303
+ price: appData.additional_price,
304
+ }];
305
+ } else {
306
+ // negative additional price to apply discount
307
+ shippingLine.discount -= appData.additional_price;
308
+ }
309
+ // update total price
310
+ shippingLine.total_price += appData.additional_price;
311
+ }
312
+
313
+ // search for discount by shipping rule
314
+ if (Array.isArray(appData.shipping_rules)) {
315
+ for (let i = 0; i < appData.shipping_rules.length; i++) {
316
+ const rule = appData.shipping_rules[i];
317
+ if (
318
+ rule
319
+ && (!rule.service_code || rule.service_code === serviceCode)
320
+ && checkZipCode(rule)
321
+ && !(rule.min_amount > jadlogParams.vldeclarado)
322
+ ) {
323
+ // valid shipping rule
324
+ if (rule.free_shipping) {
325
+ shippingLine.discount += shippingLine.total_price;
326
+ shippingLine.total_price = 0;
327
+ break;
328
+ } else if (rule.discount) {
329
+ let discountValue = rule.discount.value;
330
+ if (rule.discount.percentage) {
331
+ discountValue *= (shippingLine.total_price / 100);
332
+ }
333
+ if (discountValue) {
334
+ shippingLine.discount += discountValue;
335
+ shippingLine.total_price -= discountValue;
336
+ if (shippingLine.total_price < 0) {
337
+ shippingLine.total_price = 0;
338
+ }
339
+ }
340
+ break;
341
+ }
342
+ }
343
+ }
344
+ }
345
+
346
+ // push shipping service object to response
347
+ response.shipping_services.push({
348
+ label,
349
+ carrier: 'Jadlog',
350
+ carrier_doc_number: '04884082000135',
351
+ service_code: serviceCode,
352
+ service_name: `${jadlogParams.modalidade}: ${serviceCode}`,
353
+ shipping_line: shippingLine,
354
+ });
355
+ }
356
+ });
357
+ }
358
+
359
+ if (response.shipping_services.length) {
360
+ // free shipping if all items has no weigth
361
+ const freeNoWeightShipping = peso <= 0 && appData.free_no_weight_shipping;
362
+ if (freeNoWeightShipping) {
363
+ let cheapestShippingLine;
364
+ for (let i = 0; i < response.shipping_services.length; i++) {
365
+ const shippingLine = response.shipping_services[i].shipping_line;
366
+ if (!shippingLine.total_price) {
367
+ // already free
368
+ break;
369
+ }
370
+ if (!cheapestShippingLine
371
+ || cheapestShippingLine.total_price > shippingLine.total_price) {
372
+ cheapestShippingLine = shippingLine;
373
+ }
374
+ }
375
+ if (cheapestShippingLine) {
376
+ // set the cheapest shipping line free
377
+ cheapestShippingLine.discount = cheapestShippingLine.total_price;
378
+ cheapestShippingLine.total_price = 0;
379
+ cheapestShippingLine.flags.push('free_no_weight');
380
+ }
381
+ }
382
+ } else {
383
+ // pass Jadlog error message
384
+ return {
385
+ error: 'CALCULATE_ERR_MSG',
386
+ message: `Jadlog erro: ${(data.erro ? data.erro.descricao : '')}`,
387
+ };
388
+ }
389
+
390
+ // success response with available shipping services
391
+ return response;
392
+ } catch (err) {
393
+ if (!err.response) {
394
+ logger.error('>(App: Jadlog) Error =>', err);
395
+ }
396
+ // unexpected ws response
397
+ return {
398
+ error: 'CALCULATE_UNEXPECTED_RSP',
399
+ message: `Unexpected Jadlog response with status: ${(err.response ? err.response.status : '')}`,
400
+ };
401
+ }
402
+ } else {
403
+ return {
404
+ error: 'CALCULATE_EMPTY_CART',
405
+ message: 'Cannot calculate shipping without cart items',
406
+ };
407
+ }
408
+ };
@@ -0,0 +1,147 @@
1
+ export default (cepdes, isExpress) => {
2
+ if (cepdes <= 3699999) {
3
+ return isExpress ? 1 : 2;
4
+ }
5
+ if (cepdes <= 3999999) {
6
+ return isExpress ? 2 : 3;
7
+ }
8
+ if (cepdes <= 4399999) {
9
+ return isExpress ? 1 : 2;
10
+ }
11
+ if (cepdes <= 4499999) {
12
+ return isExpress ? 2 : 3;
13
+ }
14
+ if (cepdes <= 4799999) {
15
+ return isExpress ? 1 : 2;
16
+ }
17
+ if (cepdes <= 4999999) {
18
+ return isExpress ? 2 : 3;
19
+ }
20
+ if (cepdes <= 5799999) {
21
+ return isExpress ? 1 : 2;
22
+ }
23
+ if (cepdes <= 5899999) {
24
+ return isExpress ? 2 : 3;
25
+ }
26
+ if (cepdes <= 6139999) {
27
+ return isExpress ? 1 : 2;
28
+ }
29
+ if (cepdes <= 6141130) {
30
+ return isExpress ? 3 : 4;
31
+ }
32
+ if (cepdes <= 6144999) {
33
+ return isExpress ? 1 : 2;
34
+ }
35
+ if (cepdes <= 6145250) {
36
+ return isExpress ? 3 : 4;
37
+ }
38
+ if (cepdes <= 6149119) {
39
+ return isExpress ? 1 : 2;
40
+ }
41
+ if (cepdes <= 6149390) {
42
+ return isExpress ? 3 : 4;
43
+ }
44
+ if (cepdes <= 6150329) {
45
+ return isExpress ? 1 : 2;
46
+ }
47
+ if (cepdes <= 6150550) {
48
+ return isExpress ? 3 : 4;
49
+ }
50
+ if (cepdes <= 6236089) {
51
+ return isExpress ? 1 : 2;
52
+ }
53
+ if (cepdes <= 6236880) {
54
+ return isExpress ? 3 : 4;
55
+ }
56
+ if (cepdes <= 6239999) {
57
+ return isExpress ? 1 : 2;
58
+ }
59
+ if (cepdes <= 6240220) {
60
+ return isExpress ? 3 : 4;
61
+ }
62
+ if (cepdes <= 6245999) {
63
+ return isExpress ? 1 : 2;
64
+ }
65
+ if (cepdes <= 6246212) {
66
+ return isExpress ? 3 : 4;
67
+ }
68
+ if (cepdes <= 6263099) {
69
+ return isExpress ? 1 : 2;
70
+ }
71
+ if (cepdes <= 6263299) {
72
+ return isExpress ? 3 : 4;
73
+ }
74
+ if (cepdes <= 6263999) {
75
+ return isExpress ? 1 : 2;
76
+ }
77
+ if (cepdes <= 6264520) {
78
+ return isExpress ? 3 : 4;
79
+ }
80
+ if (cepdes <= 6499999) {
81
+ return isExpress ? 1 : 2;
82
+ }
83
+ if (cepdes <= 6549999) {
84
+ return isExpress ? 2 : 3;
85
+ }
86
+ if (cepdes <= 6550000) {
87
+ return isExpress ? 3 : 4;
88
+ }
89
+ if (cepdes <= 6699999) {
90
+ return isExpress ? 2 : 3;
91
+ }
92
+ if (cepdes <= 6719999) {
93
+ return isExpress ? 1 : 2;
94
+ }
95
+ if (cepdes <= 6889999) {
96
+ return isExpress ? 2 : 3;
97
+ }
98
+ if (cepdes <= 6899999) {
99
+ return isExpress ? 5 : 6;
100
+ }
101
+ if (cepdes <= 6949999) {
102
+ return isExpress ? 3 : 4;
103
+ }
104
+ if (cepdes <= 6999999) {
105
+ return isExpress ? 5 : 6;
106
+ }
107
+ if (cepdes <= 7399999) {
108
+ return isExpress ? 1 : 2;
109
+ }
110
+ if (cepdes <= 7499999) {
111
+ return isExpress ? 2 : 3;
112
+ }
113
+ if (cepdes <= 7599999) {
114
+ return isExpress ? 3 : 4;
115
+ }
116
+ if (cepdes <= 7699999) {
117
+ return isExpress ? 2 : 3;
118
+ }
119
+ if (cepdes <= 7749999) {
120
+ return isExpress ? 1 : 2;
121
+ }
122
+ if (cepdes <= 7799999) {
123
+ return isExpress ? 3 : 4;
124
+ }
125
+ if (cepdes <= 8569999) {
126
+ return isExpress ? 2 : 3;
127
+ }
128
+ if (cepdes <= 8889999) {
129
+ return isExpress ? 1 : 2;
130
+ }
131
+ if (cepdes <= 8899999) {
132
+ return isExpress ? 5 : 6;
133
+ }
134
+ if (cepdes <= 8939999) {
135
+ return isExpress ? 3 : 4;
136
+ }
137
+ if (cepdes <= 8969999) {
138
+ return isExpress ? 5 : 6;
139
+ }
140
+ if (cepdes <= 8999999) {
141
+ return isExpress ? 3 : 4;
142
+ }
143
+ if (cepdes <= 9399999) {
144
+ return isExpress ? 1 : 2;
145
+ }
146
+ return isExpress ? 2 : 3;
147
+ };