cloudcommerce 0.1.6 → 0.2.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 (190) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/action.yml +4 -0
  3. package/ecomplus-stores/monocard/functions/core/package.json +1 -1
  4. package/ecomplus-stores/monocard/functions/events/package.json +2 -2
  5. package/ecomplus-stores/monocard/functions/modules/package.json +2 -2
  6. package/ecomplus-stores/monocard/functions/passport/package.json +2 -2
  7. package/ecomplus-stores/monocard/functions/ssr/package.json +9 -6
  8. package/ecomplus-stores/monocard/package.json +1 -1
  9. package/ecomplus-stores/tia-sonia/functions/core/package.json +1 -1
  10. package/ecomplus-stores/tia-sonia/functions/events/package.json +2 -2
  11. package/ecomplus-stores/tia-sonia/functions/modules/package.json +2 -2
  12. package/ecomplus-stores/tia-sonia/functions/passport/package.json +2 -2
  13. package/ecomplus-stores/tia-sonia/functions/ssr/package.json +11 -7
  14. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/categoria-acucares.webp +0 -0
  15. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/categoria-barras.webp +0 -0
  16. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/categoria-bebidas-em-po.webp +0 -0
  17. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/categoria-cookies.webp +0 -0
  18. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/categoria-granola-tia-sonia.webp +0 -0
  19. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/categoria-integrais.webp +0 -0
  20. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/categoria-naturais.webp +0 -0
  21. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/categoria-pastas-tia-sonia.webp +0 -0
  22. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/categoria-snacks.webp +0 -0
  23. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/categoria-ultrabar.webp +0 -0
  24. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/daniel-cady.webp +0 -0
  25. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/granola-tradicional-lata-verso.webp +0 -0
  26. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/granola-tradicional-lata.webp +0 -0
  27. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/{acai-com-granola.jpg → hero-acai-granola.jpg} +0 -0
  28. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/{cafe-com-tapioca-e-aveia.jpg → hero-cafe-tapioca-aveia.jpg} +0 -0
  29. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/hero-piquenique-snack-cookies.jpg +0 -0
  30. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/machu-picchu-1500.jpg +0 -0
  31. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/selo-ibd-120-80.webp +0 -0
  32. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/selo-organico-120-80.webp +0 -0
  33. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/selo-usda-120-80.webp +0 -0
  34. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/selo-vegano-120-80.webp +0 -0
  35. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/tia-sonia-real.png +0 -0
  36. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/trustvox.png +0 -0
  37. package/ecomplus-stores/tia-sonia/functions/ssr/src/assets/prices.css +3 -0
  38. package/ecomplus-stores/tia-sonia/functions/ssr/src/components/AboutUs.astro +77 -0
  39. package/ecomplus-stores/tia-sonia/functions/ssr/src/components/BrandTestimonials.vue +134 -0
  40. package/ecomplus-stores/tia-sonia/functions/ssr/src/components/CategoriesGrid.vue +32 -0
  41. package/ecomplus-stores/tia-sonia/functions/ssr/src/components/CategoriesSlider.vue +117 -0
  42. package/ecomplus-stores/tia-sonia/functions/ssr/src/components/HeroBanner.vue +112 -0
  43. package/ecomplus-stores/tia-sonia/functions/ssr/src/components/PitchBar.vue +48 -16
  44. package/ecomplus-stores/tia-sonia/functions/ssr/src/components/TheHeader.vue +39 -19
  45. package/ecomplus-stores/tia-sonia/functions/ssr/src/components/header/HeaderNav.vue +4 -0
  46. package/ecomplus-stores/tia-sonia/functions/ssr/src/layouts/Base.astro +10 -4
  47. package/ecomplus-stores/tia-sonia/functions/ssr/src/layouts/Pages.astro +1 -1
  48. package/ecomplus-stores/tia-sonia/functions/ssr/src/main/Home.astro +158 -31
  49. package/ecomplus-stores/tia-sonia/functions/ssr/src/scripts/head-scripts.ts +15 -0
  50. package/ecomplus-stores/tia-sonia/functions/ssr/src/scripts/modules-info-preset.ts +27 -0
  51. package/ecomplus-stores/tia-sonia/package.json +1 -1
  52. package/package.json +13 -13
  53. package/packages/api/package.json +1 -1
  54. package/packages/apps/correios/package.json +2 -2
  55. package/packages/apps/custom-payment/package.json +1 -1
  56. package/packages/apps/custom-shipping/package.json +1 -1
  57. package/packages/apps/datafrete/CHANGELOG.md +1 -0
  58. package/packages/apps/datafrete/README.md +1 -0
  59. package/packages/apps/datafrete/lib/datafrete-webhook.d.ts +4 -0
  60. package/packages/apps/datafrete/lib/datafrete-webhook.js +108 -0
  61. package/packages/apps/datafrete/lib/datafrete-webhook.js.map +1 -0
  62. package/packages/apps/datafrete/lib/datafrete.d.ts +2 -0
  63. package/packages/apps/datafrete/lib/datafrete.js +6 -0
  64. package/packages/apps/datafrete/lib/datafrete.js.map +1 -0
  65. package/packages/apps/datafrete/lib/index.d.ts +1 -0
  66. package/packages/apps/datafrete/lib/index.js +2 -0
  67. package/packages/apps/datafrete/lib/index.js.map +1 -0
  68. package/packages/apps/datafrete/lib-mjs/calculate-datafrete.mjs +277 -0
  69. package/packages/apps/datafrete/package.json +37 -0
  70. package/packages/apps/datafrete/src/datafrete-webhook.ts +131 -0
  71. package/packages/apps/datafrete/src/datafrete.ts +7 -0
  72. package/packages/apps/datafrete/src/index.ts +1 -0
  73. package/packages/apps/datafrete/tsconfig.json +6 -0
  74. package/packages/apps/datafrete/webhook.js +1 -0
  75. package/packages/apps/discounts/package.json +1 -1
  76. package/packages/apps/emails/package.json +1 -1
  77. package/packages/apps/fb-conversions/package.json +2 -2
  78. package/packages/apps/frenet/package.json +3 -3
  79. package/packages/apps/galaxpay/lib/functions-lib/galaxpay/webhook.js +3 -2
  80. package/packages/apps/galaxpay/lib/functions-lib/galaxpay/webhook.js.map +1 -1
  81. package/packages/apps/galaxpay/package.json +2 -2
  82. package/packages/apps/galaxpay/src/functions-lib/galaxpay/webhook.ts +3 -2
  83. package/packages/apps/google-analytics/CHANGELOG.md +1 -0
  84. package/packages/apps/google-analytics/README.md +1 -0
  85. package/packages/apps/google-analytics/lib/google-analytics-events.js +113 -0
  86. package/packages/apps/google-analytics/lib/google-analytics-events.js.map +1 -0
  87. package/packages/apps/google-analytics/lib/index.js +2 -0
  88. package/packages/apps/google-analytics/lib/index.js.map +1 -0
  89. package/packages/apps/google-analytics/package.json +32 -0
  90. package/packages/apps/google-analytics/src/google-analytics-events.ts +151 -0
  91. package/packages/apps/google-analytics/src/index.ts +1 -0
  92. package/packages/apps/google-analytics/tsconfig.json +3 -0
  93. package/packages/apps/google-analytics/types.d.ts +43 -0
  94. package/packages/apps/infinitepay/package.json +2 -2
  95. package/packages/apps/jadlog/package.json +2 -2
  96. package/packages/apps/loyalty-points/package.json +1 -1
  97. package/packages/apps/mercadopago/lib/mp-create-transaction.js +1 -1
  98. package/packages/apps/mercadopago/lib/mp-create-transaction.js.map +1 -1
  99. package/packages/apps/mercadopago/lib/mp-webhook.js +2 -7
  100. package/packages/apps/mercadopago/lib/mp-webhook.js.map +1 -1
  101. package/packages/apps/mercadopago/package.json +2 -2
  102. package/packages/apps/mercadopago/src/mp-create-transaction.ts +1 -1
  103. package/packages/apps/mercadopago/src/mp-webhook.ts +3 -8
  104. package/packages/apps/pagarme/lib/pagarme-webhook.js +1 -1
  105. package/packages/apps/pagarme/lib/pagarme-webhook.js.map +1 -1
  106. package/packages/apps/pagarme/package.json +2 -2
  107. package/packages/apps/pagarme/src/pagarme-webhook.ts +1 -1
  108. package/packages/apps/pix/package.json +2 -2
  109. package/packages/apps/tiny-erp/package.json +2 -2
  110. package/packages/cli/package.json +1 -1
  111. package/packages/config/package.json +1 -1
  112. package/packages/emails/package.json +3 -3
  113. package/packages/events/lib/firebase.js +4 -0
  114. package/packages/events/lib/firebase.js.map +1 -1
  115. package/packages/events/package.json +3 -1
  116. package/packages/events/src/firebase.ts +4 -0
  117. package/packages/firebase/lib/config.d.ts +7 -0
  118. package/packages/firebase/lib/config.js +10 -0
  119. package/packages/firebase/lib/config.js.map +1 -1
  120. package/packages/firebase/package.json +1 -1
  121. package/packages/firebase/src/config.ts +11 -0
  122. package/packages/i18n/package.json +1 -1
  123. package/packages/modules/lib/firebase/call-app-module.js +5 -0
  124. package/packages/modules/lib/firebase/call-app-module.js.map +1 -1
  125. package/packages/modules/package.json +4 -3
  126. package/packages/modules/src/firebase/call-app-module.ts +5 -0
  127. package/packages/passport/package.json +1 -1
  128. package/packages/ssr/package.json +4 -3
  129. package/packages/storefront/.eslintrc.cjs +5 -1
  130. package/packages/storefront/astro.config.mjs +9 -24
  131. package/packages/storefront/client.d.ts +7 -8
  132. package/packages/storefront/dist/client/PitchBar.afe7ff5c.js +1 -0
  133. package/packages/storefront/dist/client/Prices.eaf8a32c.js +1 -0
  134. package/packages/storefront/dist/client/ProductCard.1106b153.js +1 -0
  135. package/packages/storefront/dist/client/assets/_...slug_.fea84512.css +1 -0
  136. package/packages/storefront/dist/client/assets/index.90df622b.css +1 -0
  137. package/packages/storefront/dist/client/chunks/Prices.vue_vue_type_script_setup_true_lang.781b6501.js +1 -0
  138. package/packages/storefront/dist/client/chunks/ecom-utils.63984324.js +1 -0
  139. package/packages/storefront/dist/client/chunks/runtime-core.esm-bundler.fa6cdb60.js +1 -0
  140. package/packages/storefront/dist/client/client.367a6497.js +1 -0
  141. package/packages/storefront/dist/client/hoisted.4671ed15.js +1 -0
  142. package/packages/storefront/dist/client/sw.js +1 -1
  143. package/packages/storefront/dist/client/workbox-e2ee76b5.js +1 -0
  144. package/packages/storefront/dist/server/entry.mjs +571 -737
  145. package/packages/storefront/package.json +11 -10
  146. package/packages/storefront/src/env.d.ts +9 -0
  147. package/packages/storefront/src/lib/assets/tooltip.css +6 -5
  148. package/packages/storefront/src/lib/components/Carousel.vue +259 -0
  149. package/packages/storefront/src/lib/components/CarouselControl.vue +29 -0
  150. package/packages/storefront/src/lib/components/LoginDrawer.vue +1 -1
  151. package/packages/storefront/src/lib/components/PitchBar.vue +44 -0
  152. package/packages/storefront/src/lib/components/Prices.vue +116 -105
  153. package/packages/storefront/src/lib/components/ProductCard.vue +1 -1
  154. package/packages/storefront/src/lib/components/_injection-keys.ts +9 -0
  155. package/packages/storefront/src/lib/components/globals/ALink.vue +26 -0
  156. package/packages/storefront/src/lib/composables/use-prices.ts +19 -12
  157. package/packages/storefront/src/lib/layouts/BaseBody.astro +1 -5
  158. package/packages/storefront/src/lib/layouts/BaseHead.astro +7 -2
  159. package/packages/storefront/src/lib/layouts/PagesHeader.astro +38 -0
  160. package/packages/storefront/src/lib/pages/_vue.ts +3 -2
  161. package/packages/storefront/src/lib/ssr/image.ts +3 -2
  162. package/packages/storefront/src/lib/ssr-context.ts +6 -0
  163. package/packages/storefront/src/lib/state/modules-info.ts +10 -4
  164. package/packages/storefront/src/vue-globals.d.ts +5 -5
  165. package/packages/storefront/tailwind.config.cjs +12 -6
  166. package/packages/storefront/tsconfig.json +2 -2
  167. package/packages/storefront/uno.config.cjs +4 -4
  168. package/packages/types/package.json +1 -1
  169. package/ecomplus-stores/tia-sonia/functions/ssr/src/scripts/InlineScripts.astro +0 -10
  170. package/packages/storefront/dist/client/HeaderButtons.300c19e5.js +0 -1
  171. package/packages/storefront/dist/client/Prices.6c44a513.js +0 -1
  172. package/packages/storefront/dist/client/ProductCard.69bba7fc.js +0 -1
  173. package/packages/storefront/dist/client/assets/_...slug_.15bda576.css +0 -1
  174. package/packages/storefront/dist/client/assets/index.e6a09532.css +0 -1
  175. package/packages/storefront/dist/client/chunks/HeaderButtons.1abd5bf4.js +0 -1
  176. package/packages/storefront/dist/client/chunks/LoginForm.7e7d6137.js +0 -1441
  177. package/packages/storefront/dist/client/chunks/Prices.vue_vue_type_script_setup_true_lang.e4525076.js +0 -1
  178. package/packages/storefront/dist/client/chunks/_plugin-vue_export-helper.fc452b02.js +0 -1
  179. package/packages/storefront/dist/client/chunks/ecom-utils.b0a26608.js +0 -1
  180. package/packages/storefront/dist/client/chunks/preload-helper.1de719f8.js +0 -1
  181. package/packages/storefront/dist/client/chunks/price.ecf7fed4.js +0 -1
  182. package/packages/storefront/dist/client/chunks/runtime-core.esm-bundler.b4556b35.js +0 -1
  183. package/packages/storefront/dist/client/client.2a3e5a58.js +0 -1
  184. package/packages/storefront/dist/client/hoisted.f6ee2883.js +0 -1
  185. package/packages/storefront/dist/client/page.5a6f3db5.js +0 -1
  186. package/packages/storefront/dist/client/workbox-abdc68aa.js +0 -1
  187. package/packages/storefront/dist/client/~partytown/partytown-atomics.js +0 -2
  188. package/packages/storefront/dist/client/~partytown/partytown-media.js +0 -2
  189. package/packages/storefront/dist/client/~partytown/partytown-sw.js +0 -2
  190. package/packages/storefront/dist/client/~partytown/partytown.js +0 -2
@@ -0,0 +1,131 @@
1
+ /* eslint-disable import/prefer-default-export */
2
+ import type { Request, Response } from 'firebase-functions';
3
+ import type { Orders } from '@cloudcommerce/types';
4
+ import api from '@cloudcommerce/api';
5
+ import config from '@cloudcommerce/firebase/lib/config';
6
+ import getEnv from '@cloudcommerce/firebase/lib/env';
7
+ import functions from 'firebase-functions/v1';
8
+ import logger from 'firebase-functions/logger';
9
+
10
+ const handleWebhook = async (req: Request, res: Response) => {
11
+ const operatorToken = process.env.DATAFRETE_OPERATOR_TOKEN || getEnv().apiAuth.apiKey;
12
+
13
+ if (operatorToken !== req.get('x-operator-token')) {
14
+ return res.sendStatus(401);
15
+ }
16
+
17
+ const {
18
+ order_update: {
19
+ number,
20
+ fulfillment,
21
+ invoices,
22
+ tracking_codes: trackingCodes,
23
+ },
24
+ } = req.body;
25
+
26
+ if (!number || !fulfillment || !fulfillment.status) {
27
+ return res.sendStatus(400);
28
+ }
29
+ logger.log('> Webhook #', number);
30
+
31
+ const order = (await api.get(
32
+ `orders?number=${number}&fields=_id,fulfillment_status,shipping_lines&limit=1`,
33
+ )).data.result[0];
34
+
35
+ if (!order) {
36
+ return res.sendStatus(404);
37
+ }
38
+ let shippingLineId = fulfillment.shipping_line_id;
39
+ let shippingLine: Exclude<Orders['shipping_lines'], undefined>[number] | undefined;
40
+
41
+ if (order.shipping_lines) {
42
+ if (!shippingLineId) {
43
+ for (let i = 0; i < order.shipping_lines.length; i++) {
44
+ if (order.shipping_lines[i].flags && order.shipping_lines[i]?.flags?.includes('datafrete-ws')) {
45
+ shippingLine = order.shipping_lines[i];
46
+ shippingLineId = shippingLine && shippingLine._id;
47
+ break;
48
+ }
49
+ }
50
+ } else {
51
+ shippingLine = order.shipping_lines.find(({ _id }) => _id === shippingLineId);
52
+ }
53
+ if (!shippingLine && order.shipping_lines) {
54
+ [shippingLine] = order.shipping_lines;
55
+ }
56
+ }
57
+ const isShippingLineUpdate = shippingLine
58
+ && ((invoices && invoices.length) || (trackingCodes && trackingCodes.length));
59
+
60
+ if (order.fulfillment_status && order.fulfillment_status.current === fulfillment.status) {
61
+ if (!isShippingLineUpdate) {
62
+ logger.log('>>(App datafrete) Nothing to change on shipping line:', shippingLineId, order._id);
63
+ return res.sendStatus(304);
64
+ }
65
+ } else {
66
+ fulfillment.flags = ['datafrete'];
67
+ try {
68
+ await api.post(
69
+ `orders/${order._id}/fulfillments`,
70
+ fulfillment,
71
+ );
72
+ logger.log('>(App datafrete) Fulfillment inserted:', fulfillment.status);
73
+ if (!isShippingLineUpdate) {
74
+ return res.sendStatus(200);
75
+ }
76
+ } catch (error: any) {
77
+ logger.error('>(App datafrete) => ', error);
78
+ if (error.response && error.response.status) {
79
+ return res.status(error.response.status).send(error.response.data);
80
+ }
81
+ return res.sendStatus(500);
82
+ }
83
+ }
84
+
85
+ if (isShippingLineUpdate) {
86
+ logger.log('>(App datafrete) Updating shipping line:', shippingLineId, order._id);
87
+ try {
88
+ await api.patch(
89
+ `orders/${order._id}/shipping_lines/${(shippingLineId || '0')}`,
90
+ { invoices, tracking_codes: trackingCodes },
91
+ );
92
+ logger.log('>(App datafrete) Shipping line invoices/tracking updated');
93
+ res.sendStatus(200);
94
+ } catch (error: any) {
95
+ if (error.response) {
96
+ let { message } = error;
97
+ if (error.response.data) {
98
+ if (typeof error.response.data === 'object') {
99
+ message += `\n${JSON.stringify(error.response.data)}`;
100
+ } else {
101
+ message += `\n${error.response.data}`;
102
+ }
103
+ }
104
+ if (error.config && error.config.url) {
105
+ message += `\n${error.config.url}`;
106
+ }
107
+ logger.error('>(App datafrete) =>', new Error(message));
108
+ return res.status(error.response.status || 500)
109
+ .send(error.response.data);
110
+ }
111
+ logger.error('>(App datafrete) => ', error);
112
+ return res.sendStatus(500);
113
+ }
114
+ }
115
+
116
+ return res.sendStatus(500);
117
+ };
118
+
119
+ export const datafrete = {
120
+ webhook: functions
121
+ .region(config.get().httpsFunctionOptions.region)
122
+ .https.onRequest(async (req, res) => {
123
+ const { method } = req;
124
+
125
+ if (method === 'POST') {
126
+ handleWebhook(req, res);
127
+ } else {
128
+ res.sendStatus(405);
129
+ }
130
+ }),
131
+ };
@@ -0,0 +1,7 @@
1
+ /* eslint-disable import/prefer-default-export */
2
+ import type { AppModuleBody } from '@cloudcommerce/types';
3
+ import handleCalculateShipping from '../lib-mjs/calculate-datafrete.mjs';
4
+
5
+ export const calculateShipping = async (modBody: AppModuleBody) => {
6
+ return handleCalculateShipping(modBody);
7
+ };
@@ -0,0 +1 @@
1
+ export * from './datafrete';
@@ -0,0 +1,6 @@
1
+ {
2
+ "extends": "../../../tsconfig.json",
3
+ "compilerOptions": {
4
+ "declaration": true
5
+ }
6
+ }
@@ -0,0 +1 @@
1
+ export * from './lib/datafrete-events';
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/app-discounts",
3
3
  "type": "module",
4
- "version": "0.1.6",
4
+ "version": "0.2.0",
5
5
  "description": "E-Com Plus Cloud Commerce app for complex discount rules",
6
6
  "main": "lib/discounts.js",
7
7
  "repository": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/app-emails",
3
3
  "type": "module",
4
- "version": "0.1.6",
4
+ "version": "0.2.0",
5
5
  "description": "E-Com Plus Cloud Commerce default transactional email app",
6
6
  "main": "lib/index.js",
7
7
  "repository": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/app-fb-conversions",
3
3
  "type": "module",
4
- "version": "0.1.6",
4
+ "version": "0.2.0",
5
5
  "description": "E-Com Plus Cloud Commerce app to send carts/orders to Facebook Conversions API",
6
6
  "main": "lib/index.js",
7
7
  "repository": {
@@ -21,7 +21,7 @@
21
21
  "dependencies": {
22
22
  "@cloudcommerce/api": "workspace:*",
23
23
  "@cloudcommerce/firebase": "workspace:*",
24
- "facebook-nodejs-business-sdk": "^15.0.0",
24
+ "facebook-nodejs-business-sdk": "^15.0.1",
25
25
  "firebase-admin": "^11.4.1",
26
26
  "firebase-functions": "^4.1.1"
27
27
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/app-frenet",
3
3
  "type": "module",
4
- "version": "0.1.6",
4
+ "version": "0.2.0",
5
5
  "description": "E-Com Plus Cloud Commerce app for Frenet shipping calculation",
6
6
  "main": "lib/frenet.js",
7
7
  "exports": {
@@ -25,8 +25,8 @@
25
25
  "dependencies": {
26
26
  "@cloudcommerce/api": "workspace:*",
27
27
  "@cloudcommerce/firebase": "workspace:*",
28
- "axios": "^1.2.1",
29
- "firebase-admin": "^11.4.0",
28
+ "axios": "^1.2.2",
29
+ "firebase-admin": "^11.4.1",
30
30
  "firebase-functions": "^4.1.1"
31
31
  },
32
32
  "devDependencies": {
@@ -1,13 +1,14 @@
1
1
  import api from '@cloudcommerce/api';
2
2
  import { getFirestore } from 'firebase-admin/firestore';
3
3
  import logger from 'firebase-functions/logger';
4
+ import config from '@cloudcommerce/firebase/lib/config';
4
5
  import { parseStatus, parsePeriodicityToEcom, gerateId } from '../all-parses.js';
5
6
  import { updateValueSubscription, checkAmountItemsOrder } from './update-subscription.js';
6
7
 
7
- const collectionSubscription = getFirestore().collection('subscriptions');
8
+ const collectionSubscription = getFirestore().collection('galaxpaySubscriptions');
8
9
  const getApp = async () => {
9
10
  return new Promise((resolve, reject) => {
10
- api.get('applications?app_id=123188&fields=hidden_data')
11
+ api.get(`applications?app_id=${config.get().apps.galaxPay.appId}&fields=hidden_data`)
11
12
  .then(({ data: result }) => {
12
13
  resolve(result[0]);
13
14
  })
@@ -1 +1 @@
1
- {"version":3,"file":"webhook.js","sourceRoot":"","sources":["../../../src/functions-lib/galaxpay/webhook.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webhook.js","sourceRoot":"","sources":["../../../src/functions-lib/galaxpay/webhook.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/app-galaxpay",
3
3
  "type": "module",
4
- "version": "0.1.6",
4
+ "version": "0.2.0",
5
5
  "description": "E-Com Plus Cloud Commerce app to integrate Galax Pay for recurring payments",
6
6
  "main": "lib/galaxpay.js",
7
7
  "exports": {
@@ -25,7 +25,7 @@
25
25
  "dependencies": {
26
26
  "@cloudcommerce/api": "workspace:*",
27
27
  "@cloudcommerce/firebase": "workspace:*",
28
- "axios": "^1.2.1",
28
+ "axios": "^1.2.2",
29
29
  "firebase-admin": "^11.4.1",
30
30
  "firebase-functions": "^4.1.1"
31
31
  },
@@ -7,17 +7,18 @@ import type { Request, Response } from 'firebase-functions';
7
7
  import api from '@cloudcommerce/api';
8
8
  import { getFirestore } from 'firebase-admin/firestore';
9
9
  import logger from 'firebase-functions/logger';
10
+ import config from '@cloudcommerce/firebase/lib/config';
10
11
  import { parseStatus, parsePeriodicityToEcom, gerateId } from '../all-parses';
11
12
  import { updateValueSubscription, checkAmountItemsOrder } from './update-subscription';
12
13
 
13
14
  type FinancialStatusCurrent = Exclude<Orders['financial_status'], undefined>['current']
14
15
 
15
- const collectionSubscription = getFirestore().collection('subscriptions');
16
+ const collectionSubscription = getFirestore().collection('galaxpaySubscriptions');
16
17
 
17
18
  const getApp = async (): Promise<Applications> => {
18
19
  return new Promise((resolve, reject) => {
19
20
  api.get(
20
- 'applications?app_id=123188&fields=hidden_data',
21
+ `applications?app_id=${config.get().apps.galaxPay.appId}&fields=hidden_data`,
21
22
  )
22
23
  .then(({ data: result }) => {
23
24
  resolve(result[0]);
@@ -0,0 +1 @@
1
+ Please refer to GitHub [repository releases](https://github.com/ecomplus/cloud-commerce/releases) or monorepo unified [CHANGELOG.md](https://github.com/ecomplus/cloud-commerce/blob/main/CHANGELOG.md).
@@ -0,0 +1 @@
1
+ # `@cloudcommerce/app-google-analytics`
@@ -0,0 +1,113 @@
1
+ /* eslint-disable no-undef */
2
+ /* eslint-disable import/prefer-default-export */
3
+ import '@cloudcommerce/firebase/lib/init';
4
+ import { getFirestore, Timestamp } from 'firebase-admin/firestore';
5
+ import { createAppEventsFunction } from '@cloudcommerce/firebase/lib/helpers/pubsub';
6
+ import logger from 'firebase-functions/logger';
7
+ import axios from 'axios';
8
+
9
+ const Axios = axios.create({
10
+ baseURL: 'https://www.google-analytics.com',
11
+ headers: {
12
+ 'Content-Type': 'application/json',
13
+ },
14
+ });
15
+ const handleApiEvent = async ({
16
+ evName, apiEvent, apiDoc, app,
17
+ }) => {
18
+ const resourceId = apiEvent.resource_id;
19
+ logger.info('>> ', resourceId, ' - Action: ', apiEvent.action);
20
+ const key = `${evName}_${resourceId}`;
21
+ const appData = { ...app.data, ...app.hidden_data };
22
+ if (Array.isArray(appData.ignore_events)
23
+ && appData.ignore_events.includes(evName)) {
24
+ logger.info('>> ', key, ' - Ignored event');
25
+ return null;
26
+ }
27
+ logger.info(`> Webhook ${resourceId} [${evName}]`);
28
+ const measurementId = appData.measurement_id;
29
+ const apiSecret = appData.api_secret;
30
+ const order = apiDoc;
31
+ const orderId = order._id;
32
+ const buyer = order.buyers && order.buyers[0];
33
+ const enabledCustonEvent = order.financial_status?.current && appData.custom_events;
34
+ const enabledRefundEvent = order.status === 'cancelled' && appData.refund_event !== false;
35
+ if (orderId && order.items) {
36
+ try {
37
+ if (measurementId && apiSecret && (enabledCustonEvent || enabledRefundEvent)) {
38
+ const url = `/mp/collect?api_secret=${apiSecret}&measurement_id=${measurementId}`;
39
+ const items = order.items.map((item) => {
40
+ const eventItem = {
41
+ item_id: item.product_id,
42
+ item_name: item.name || item.sku || '',
43
+ price: item.final_price || item.price,
44
+ quantity: item.quantity,
45
+ };
46
+ if (item.variation_id) {
47
+ eventItem.item_variant = item.variation_id;
48
+ }
49
+ if (item.kit_product) {
50
+ eventItem.item_list_id = item.kit_product._id;
51
+ eventItem.item_list_name = item.kit_product.name;
52
+ }
53
+ return eventItem;
54
+ });
55
+ const params = {
56
+ id: orderId,
57
+ currency: order.currency_id || 'BRL',
58
+ transaction_id: orderId,
59
+ value: order.amount.total,
60
+ status: order.financial_status?.current || order.status,
61
+ items,
62
+ };
63
+ if (order.amount.freight) {
64
+ params.shipping = order.amount.freight;
65
+ }
66
+ if (order.amount.tax || order.amount.extra) {
67
+ params.tax = (order.amount.tax || 0) + (order.amount.extra || 0);
68
+ }
69
+ if (order.extra_discount?.discount_coupon) {
70
+ params.coupon = order.extra_discount.discount_coupon;
71
+ }
72
+ const events = [];
73
+ const docRef = getFirestore().doc(`googleAnalyticsEventsSent/${orderId}`);
74
+ const lastSentEvents = (await docRef.get()).get('eventNames') || [];
75
+ if (enabledCustonEvent && order.financial_status) {
76
+ const eventName = `purchase_${order.financial_status.current}`;
77
+ if (!lastSentEvents.includes(eventName)) {
78
+ events.push({ name: eventName, params });
79
+ }
80
+ }
81
+ if (enabledRefundEvent && !lastSentEvents.includes('refund')) {
82
+ events.push({ name: 'refund', params });
83
+ }
84
+ // https://developers.google.com/analytics/devguides/collection/ga4/reference/events?client_type=gtag#purchase
85
+ const body = {
86
+ client_id: buyer?._id || Date.now().toString(),
87
+ events,
88
+ };
89
+ // logger.log('(App google-analytics): url: ', url, ' body: ', JSON.stringify(body));
90
+ await Axios.post(url, body);
91
+ await docRef.set({
92
+ eventNames: events.map(({ name }) => name),
93
+ updatedAt: Timestamp.now(),
94
+ }, { merge: true })
95
+ .catch(logger.error);
96
+ return null;
97
+ }
98
+ logger.warn('>> measurement_id or api_secret not found,'
99
+ + ' or disabled event (App config)');
100
+ return null;
101
+ } catch (err) {
102
+ logger.error('>> event error => ', err);
103
+ return null;
104
+ }
105
+ }
106
+ logger.warn('>> orderId , buyer or clientIp not found');
107
+ return null;
108
+ };
109
+
110
+ export const analytics = {
111
+ onStoreEvent: createAppEventsFunction('googleAnalytics', handleApiEvent),
112
+ };
113
+ // # sourceMappingURL=google-analytics-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google-analytics-events.js","sourceRoot":"","sources":["../src/google-analytics-events.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './google-analytics-events.js';
2
+ // # sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC"}
@@ -0,0 +1,32 @@
1
+ {
2
+ "name": "@cloudcommerce/app-google-analytics",
3
+ "type": "module",
4
+ "version": "0.2.0",
5
+ "description": "E-Com Plus Cloud Commerce app to send carts/orders events to GA Measurement Protocol",
6
+ "main": "lib/index.js",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/ecomplus/cloud-commerce.git",
10
+ "directory": "packages/apps/google-analytics"
11
+ },
12
+ "author": "E-Com Club Softwares para E-commerce <ti@e-com.club>",
13
+ "license": "Apache 2.0 with Commons Clause",
14
+ "bugs": {
15
+ "url": "https://github.com/ecomplus/cloud-commerce/issues"
16
+ },
17
+ "homepage": "https://github.com/ecomplus/cloud-commerce/tree/main/packages/apps/google-analytics#readme",
18
+ "scripts": {
19
+ "build": "sh ../../../scripts/build-lib.sh"
20
+ },
21
+ "dependencies": {
22
+ "@cloudcommerce/api": "workspace:*",
23
+ "@cloudcommerce/firebase": "workspace:*",
24
+ "axios": "^1.2.2",
25
+ "firebase-admin": "^11.4.1",
26
+ "firebase-functions": "^4.1.1"
27
+ },
28
+ "devDependencies": {
29
+ "@cloudcommerce/types": "workspace:*",
30
+ "@firebase/app-types": "^0.9.0"
31
+ }
32
+ }
@@ -0,0 +1,151 @@
1
+ /* eslint-disable no-undef */
2
+ /* eslint-disable import/prefer-default-export */
3
+ import '@cloudcommerce/firebase/lib/init';
4
+ import type { Orders } from '@cloudcommerce/types';
5
+ import type { EventItem, EventParams } from '../types';
6
+ import { getFirestore, Timestamp } from 'firebase-admin/firestore';
7
+ import {
8
+ createAppEventsFunction,
9
+ ApiEventHandler,
10
+ } from '@cloudcommerce/firebase/lib/helpers/pubsub';
11
+ import logger from 'firebase-functions/logger';
12
+ import axios from 'axios';
13
+
14
+ const Axios = axios.create({
15
+ baseURL: 'https://www.google-analytics.com',
16
+ headers: {
17
+ 'Content-Type': 'application/json',
18
+ },
19
+ });
20
+
21
+ const handleApiEvent: ApiEventHandler = async ({
22
+ evName,
23
+ apiEvent,
24
+ apiDoc,
25
+ app,
26
+ }) => {
27
+ const resourceId = apiEvent.resource_id;
28
+ logger.info('>> ', resourceId, ' - Action: ', apiEvent.action);
29
+ const key = `${evName}_${resourceId}`;
30
+ const appData = { ...app.data, ...app.hidden_data };
31
+ if (
32
+ Array.isArray(appData.ignore_events)
33
+ && appData.ignore_events.includes(evName)
34
+ ) {
35
+ logger.info('>> ', key, ' - Ignored event');
36
+ return null;
37
+ }
38
+ logger.info(`> Webhook ${resourceId} [${evName}]`);
39
+
40
+ const measurementId = appData.measurement_id;
41
+ const apiSecret = appData.api_secret;
42
+
43
+ const order = apiDoc as Orders;
44
+ const orderId = order._id;
45
+
46
+ const buyer = order.buyers && order.buyers[0];
47
+
48
+ const enabledCustonEvent = order.financial_status?.current && appData.custom_events;
49
+ const enabledRefundEvent = order.status === 'cancelled' && appData.refund_event !== false;
50
+
51
+ if (orderId && order.items) {
52
+ try {
53
+ if (measurementId && apiSecret && (enabledCustonEvent || enabledRefundEvent)) {
54
+ const url = `/mp/collect?api_secret=${apiSecret}&measurement_id=${measurementId}`;
55
+
56
+ const items = order.items.map((item) => {
57
+ const eventItem: EventItem = {
58
+ item_id: item.product_id,
59
+ item_name: item.name || item.sku || '',
60
+ price: item.final_price || item.price,
61
+ quantity: item.quantity,
62
+ };
63
+
64
+ if (item.variation_id) {
65
+ eventItem.item_variant = item.variation_id;
66
+ }
67
+ if (item.kit_product) {
68
+ eventItem.item_list_id = item.kit_product._id;
69
+ eventItem.item_list_name = item.kit_product.name;
70
+ }
71
+ return eventItem;
72
+ });
73
+
74
+ const params: EventParams = {
75
+ id: orderId,
76
+ currency: order.currency_id || 'BRL',
77
+ transaction_id: orderId,
78
+ value: order.amount.total,
79
+ status: order.financial_status?.current || order.status,
80
+ items,
81
+ };
82
+ if (order.amount.freight) {
83
+ params.shipping = order.amount.freight;
84
+ }
85
+
86
+ if (order.amount.tax || order.amount.extra) {
87
+ params.tax = (order.amount.tax || 0) + (order.amount.extra || 0);
88
+ }
89
+
90
+ if (order.extra_discount?.discount_coupon) {
91
+ params.coupon = order.extra_discount.discount_coupon;
92
+ }
93
+
94
+ const events: {
95
+ name: string,
96
+ params: EventParams
97
+ }[] = [];
98
+
99
+ const docRef = getFirestore().doc(`googleAnalyticsEventsSent/${orderId}`);
100
+ const lastSentEvents = (await docRef.get()).get('eventNames') || [];
101
+
102
+ if (enabledCustonEvent && order.financial_status) {
103
+ const eventName = `purchase_${order.financial_status.current}`;
104
+
105
+ if (!lastSentEvents.includes(eventName)) {
106
+ events.push({ name: eventName, params });
107
+ }
108
+ }
109
+
110
+ if (enabledRefundEvent && !lastSentEvents.includes('refund')) {
111
+ events.push({ name: 'refund', params });
112
+ }
113
+ // https://developers.google.com/analytics/devguides/collection/ga4/reference/events?client_type=gtag#purchase
114
+
115
+ const body = {
116
+ client_id: buyer?._id || Date.now().toString(),
117
+ events,
118
+ };
119
+
120
+ // logger.log('(App google-analytics): url: ', url, ' body: ', JSON.stringify(body));
121
+
122
+ await Axios.post(url, body);
123
+
124
+ await docRef.set({
125
+ eventNames: events.map(({ name }) => name),
126
+ updatedAt: Timestamp.now(),
127
+ }, { merge: true })
128
+ .catch(logger.error);
129
+
130
+ return null;
131
+ }
132
+
133
+ logger.warn('>> measurement_id or api_secret not found,'
134
+ + ' or disabled event (App config)');
135
+
136
+ return null;
137
+ } catch (err: any) {
138
+ logger.error('>> event error => ', err);
139
+ return null;
140
+ }
141
+ }
142
+ logger.warn('>> orderId , buyer or clientIp not found');
143
+ return null;
144
+ };
145
+
146
+ export const analytics = {
147
+ onStoreEvent: createAppEventsFunction(
148
+ 'googleAnalytics',
149
+ handleApiEvent,
150
+ ) as any,
151
+ };
@@ -0,0 +1 @@
1
+ export * from './google-analytics-events';
@@ -0,0 +1,3 @@
1
+ {
2
+ "extends": "../../../tsconfig.json",
3
+ }