cloudcommerce 0.27.0 → 0.28.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.
- package/CHANGELOG.md +20 -0
- package/ecomplus-stores/barra-doce/functions/many/package.json +3 -3
- package/ecomplus-stores/barra-doce/functions/ssr/content/layout.json +13 -13
- package/ecomplus-stores/barra-doce/functions/ssr/content/pages/home.json +10 -10
- package/ecomplus-stores/barra-doce/functions/ssr/content/pages/products.json +17 -0
- package/ecomplus-stores/barra-doce/functions/ssr/content/settings.json +8 -8
- package/ecomplus-stores/barra-doce/functions/ssr/package.json +6 -6
- package/ecomplus-stores/barra-doce/functions/ssr/src/components/AccountMenu.vue +11 -11
- package/ecomplus-stores/barra-doce/functions/ssr/src/components/ShopFooter.vue +24 -24
- package/ecomplus-stores/barra-doce/functions/ssr/src/layouts/PageFooter.astro +4 -4
- package/ecomplus-stores/barra-doce/functions/with-apps/package.json +3 -3
- package/ecomplus-stores/barra-doce/package.json +2 -2
- package/ecomplus-stores/monocard/functions/many/package.json +3 -3
- package/ecomplus-stores/monocard/functions/ssr/content/layout.json +11 -11
- package/ecomplus-stores/monocard/functions/ssr/content/pages/home.json +16 -16
- package/ecomplus-stores/monocard/functions/ssr/content/pages/products.json +2 -4
- package/ecomplus-stores/monocard/functions/ssr/content/settings.json +11 -11
- package/ecomplus-stores/monocard/functions/ssr/package.json +6 -6
- package/ecomplus-stores/monocard/functions/ssr/src/components/AccountMenu.vue +1 -1
- package/ecomplus-stores/monocard/functions/ssr/src/components/DocDescription.vue +33 -0
- package/ecomplus-stores/monocard/functions/ssr/src/components/FeatureTabs.vue +3 -3
- package/ecomplus-stores/monocard/functions/ssr/src/components/ShopFooter.vue +3 -3
- package/ecomplus-stores/monocard/functions/ssr/src/components/ShopHeader.vue +5 -13
- package/ecomplus-stores/monocard/functions/ssr/src/layouts/PageFooter.astro +2 -2
- package/ecomplus-stores/monocard/functions/ssr/src/main/Home.astro +1 -1
- package/ecomplus-stores/monocard/functions/ssr/src/main/Sections.astro +1 -1
- package/ecomplus-stores/monocard/functions/with-apps/package.json +3 -3
- package/ecomplus-stores/monocard/package.json +2 -2
- package/package.json +2 -2
- package/packages/api/package.json +1 -1
- package/packages/apps/affilate-program/package.json +1 -1
- package/packages/apps/correios/package.json +1 -1
- package/packages/apps/custom-payment/package.json +1 -1
- package/packages/apps/custom-shipping/package.json +1 -1
- package/packages/apps/datafrete/package.json +1 -1
- package/packages/apps/discounts/package.json +1 -1
- package/packages/apps/emails/lib/functios-lib/utils.js +1 -1
- package/packages/apps/emails/lib/functios-lib/utils.js.map +1 -1
- package/packages/apps/emails/package.json +1 -1
- package/packages/apps/emails/src/functios-lib/utils.ts +1 -1
- package/packages/apps/fb-conversions/package.json +1 -1
- package/packages/apps/flash-courier/package.json +1 -1
- package/packages/apps/frenet/package.json +1 -1
- package/packages/apps/galaxpay/package.json +1 -1
- package/packages/apps/google-analytics/package.json +1 -1
- package/packages/apps/jadlog/package.json +1 -1
- package/packages/apps/loyalty-points/lib/functions-lib/cron-add-points.d.ts +2 -0
- package/packages/apps/loyalty-points/lib/functions-lib/cron-add-points.js +98 -0
- package/packages/apps/loyalty-points/lib/functions-lib/cron-add-points.js.map +1 -0
- package/packages/apps/loyalty-points/lib/functions-lib/handle-loyalty-points-event.js +59 -23
- package/packages/apps/loyalty-points/lib/functions-lib/handle-loyalty-points-event.js.map +1 -1
- package/packages/apps/loyalty-points/lib/loyalty-create-transaction.js +9 -4
- package/packages/apps/loyalty-points/lib/loyalty-create-transaction.js.map +1 -1
- package/packages/apps/loyalty-points/lib/loyalty-list-payments.js +7 -2
- package/packages/apps/loyalty-points/lib/loyalty-list-payments.js.map +1 -1
- package/packages/apps/loyalty-points/lib/loyalty-points-events.d.ts +3 -1
- package/packages/apps/loyalty-points/lib/loyalty-points-events.js +9 -0
- package/packages/apps/loyalty-points/lib/loyalty-points-events.js.map +1 -1
- package/packages/apps/loyalty-points/package.json +3 -2
- package/packages/apps/loyalty-points/src/functions-lib/cron-add-points.ts +104 -0
- package/packages/apps/loyalty-points/src/functions-lib/handle-loyalty-points-event.ts +67 -25
- package/packages/apps/loyalty-points/src/loyalty-create-transaction.ts +11 -4
- package/packages/apps/loyalty-points/src/loyalty-list-payments.ts +9 -2
- package/packages/apps/loyalty-points/src/loyalty-points-events.ts +12 -1
- package/packages/apps/melhor-envio/package.json +1 -1
- package/packages/apps/mercadopago/assets/onload-expression.js +5 -1
- package/packages/apps/mercadopago/assets/onload-expression.min.js +1 -1
- package/packages/apps/mercadopago/lib/mp-create-transaction.js +16 -6
- package/packages/apps/mercadopago/lib/mp-create-transaction.js.map +1 -1
- package/packages/apps/mercadopago/package.json +1 -1
- package/packages/apps/mercadopago/src/mp-create-transaction.ts +19 -7
- package/packages/apps/pagarme/package.json +1 -1
- package/packages/apps/paghiper/package.json +1 -1
- package/packages/apps/pix/package.json +1 -1
- package/packages/apps/tiny-erp/package.json +1 -1
- package/packages/apps/webhooks/package.json +1 -1
- package/packages/cli/package.json +1 -1
- package/packages/config/lib/config.js +2 -2
- package/packages/config/lib/config.js.map +1 -1
- package/packages/config/package.json +1 -1
- package/packages/config/src/config.ts +2 -2
- package/packages/emails/package.json +1 -1
- package/packages/eslint/package.json +1 -1
- package/packages/events/package.json +1 -1
- package/packages/feeds/package.json +1 -1
- package/packages/firebase/package.json +1 -1
- package/packages/i18n/package.json +1 -1
- package/packages/modules/package.json +1 -1
- package/packages/passport/package.json +1 -1
- package/packages/ssr/package.json +1 -1
- package/packages/storefront/config/storefront.cms.js +2 -2
- package/packages/storefront/package.json +1 -1
- package/packages/storefront/src/lib/components/ContentClearfix.vue +1 -1
- package/packages/storefront/src/lib/components/PaymentMethodFlag.vue +1 -1
- package/packages/storefront/src/lib/composables/use-pitch-bar.ts +2 -2
- package/packages/storefront/src/lib/content.d.ts +5 -5
- package/packages/storefront/src/lib/layouts/Base.astro +4 -4
- package/packages/storefront/src/lib/layouts/BaseHead.astro +7 -7
- package/packages/storefront/src/lib/layouts/use-page-header.ts +9 -4
- package/packages/storefront/src/lib/layouts/use-page-main.ts +13 -33
- package/packages/test-base/package.json +1 -1
- package/packages/types/index.ts +14 -14
- package/packages/types/package.json +1 -1
- package/ecomplus-stores/monocard/functions/ssr/src/components/DocDescription.astro +0 -30
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handle-loyalty-points-event.js","sourceRoot":"","sources":["../../src/functions-lib/handle-loyalty-points-event.ts"],"names":[],"mappings":"AACA,OAAO,GAAG,MAAM,oBAAoB,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"handle-loyalty-points-event.js","sourceRoot":"","sources":["../../src/functions-lib/handle-loyalty-points-event.ts"],"names":[],"mappings":"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"}
|
|
@@ -61,7 +61,7 @@ export default async (appData) => {
|
|
|
61
61
|
if (pointsApplied && Array.isArray(programsRules) && programsRules.length) {
|
|
62
62
|
// for (const programId in pointsApplied) {
|
|
63
63
|
Object.keys(pointsApplied).forEach((programId) => {
|
|
64
|
-
|
|
64
|
+
let pointsValue = pointsApplied[programId];
|
|
65
65
|
if (pointsValue > 0) {
|
|
66
66
|
const programRule = programsRules.find((programRuleFound, index) => {
|
|
67
67
|
if (programRuleFound) {
|
|
@@ -71,14 +71,19 @@ export default async (appData) => {
|
|
|
71
71
|
return false;
|
|
72
72
|
});
|
|
73
73
|
if (programRule) {
|
|
74
|
+
let maxPoints = programRule.max_points;
|
|
74
75
|
const ratio = programRule.ratio || 1;
|
|
76
|
+
if (!maxPoints && programRule.max_amount_percentage && params.amount) {
|
|
77
|
+
maxPoints = Math.round(((programRule.max_amount_percentage * params.amount.total) / 100) / ratio);
|
|
78
|
+
}
|
|
79
|
+
if (maxPoints < pointsValue) {
|
|
80
|
+
pointsValue = maxPoints;
|
|
81
|
+
}
|
|
75
82
|
transaction.loyalty_points = {
|
|
76
83
|
name: programRule.name,
|
|
77
84
|
program_id: programRule.program_id,
|
|
78
85
|
ratio,
|
|
79
|
-
points_value:
|
|
80
|
-
? programRule.max_points
|
|
81
|
-
: pointsValue,
|
|
86
|
+
points_value: pointsValue,
|
|
82
87
|
};
|
|
83
88
|
transaction.amount = pointsValue * ratio;
|
|
84
89
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loyalty-create-transaction.js","sourceRoot":"","sources":["../src/loyalty-create-transaction.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"loyalty-create-transaction.js","sourceRoot":"","sources":["../src/loyalty-create-transaction.ts"],"names":[],"mappings":"AAOA,OAAO,GAAG,MAAM,oBAAoB,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,MAAM,MAAM,2BAA2B,CAAC;AAC/C,OAAO,YAAY,MAAM,gCAAgC,CAAC;AAK1D,MAAM,aAAa,GAAG,YAAY,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AAEhE,MAAM,uBAAuB,GAAG,CAAC,OAAmB,EAAE,EAAE;IACtD,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,MAAM,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAExD,iFAAiF;QACjF,MAAM,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC;QAC/B,IAAI,YAAY,EAAE;YAChB,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,EAAE;gBACzD,OAAO,gBAAgB,CAAC,cAAc,CAAC,IAAI,KAAK,gBAAgB,CAAC;YACnE,CAAC,CAAC,CAAC;YACH,IAAI,WAAW,EAAE;gBACf,MAAM,kBAAkB,GAAG;oBACzB,cAAc,EAAE,WAAW,CAAC,GAAG;oBAC/B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACnC,MAAM,EAAE,MAAM;oBACd,iBAAiB,EAAE,IAAI;iBACjB,CAAC,CAAC,+CAA+C;gBACzD,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,OAAO,mBAAmB,EAAE,kBAAkB,CAAC,CAAC;aAC1E;SACF;IACH,CAAC,EAAE,GAAG,CAAC,CAAC;AACV,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAC1B,QAAa,EAAE,4CAA4C;AAC3D,IAA0B,EAC1B,OAAmB,EACnB,iBAAuC,EACvC,OAAO,GAAG,GAAG,EACb,aAAa,GAAG,KAAK,EACrB,EAAE;IACF,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,MAAM,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAChC,mEAAmE;QACnE,MAAM,CAAC,GAAG,CAAC,0BAA0B,OAAO,IAAI,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvF,IAAI,aAAa,EAAE;YACjB,uBAAuB,CAAC,OAAO,CAAC,CAAC;YACjC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC;SACvD;QACD,MAAM;IACR,CAAC,EAAE,OAAO,CAAC,CAAC;AACd,CAAC,CAAC;AAEF,eAAe,KAAK,EAAE,OAAsB,EAAE,EAAE;IAC9C,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IACzC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAiC,CAAC;IACzD,yBAAyB;IACzB,MAAM,SAAS,GAAG,EAAE,GAAG,WAAW,CAAC,IAAI,EAAE,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;IACtE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAEhC,+CAA+C;IAC/C,MAAM,WAAW,GAA6C;QAC5D,MAAM,EAAE,MAAM,CAAC,KAAK;KACrB,CAAC;IAEF,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,KAAK,gBAAgB,EAAE;QACnD,MAAM,aAAa,GAAG,MAAM,CAAC,sBAAsB,CAAC;QACpD,MAAM,aAAa,GAAG,SAAS,CAAC,cAAc,CAAC;QAC/C,IAAI,aAAa,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,MAAM,EAAE;YACzE,2CAA2C;YAC3C,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;gBAC/C,IAAI,WAAW,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;gBAC3C,IAAI,WAAW,GAAG,CAAC,EAAE;oBACnB,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,KAAK,EAAE,EAAE;wBACjE,IAAI,gBAAgB,EAAE;4BACpB,gBAAgB,CAAC,UAAU,GAAG,YAAY,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;4BACpE,OAAO,SAAS,KAAK,gBAAgB,CAAC,UAAU,CAAC;yBAClD;wBACD,OAAO,KAAK,CAAC;oBACf,CAAC,CAAC,CAAC;oBAEH,IAAI,WAAW,EAAE;wBACf,IAAI,SAAS,GAAG,WAAW,CAAC,UAAU,CAAC;wBACvC,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,IAAI,CAAC,CAAC;wBACrC,IAAI,CAAC,SAAS,IAAI,WAAW,CAAC,qBAAqB,IAAI,MAAM,CAAC,MAAM,EAAE;4BACpE,SAAS,GAAG,IAAI,CAAC,KAAK,CACpB,CAAC,CAAC,WAAW,CAAC,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,KAAK,CAC1E,CAAC;yBACH;wBACD,IAAI,SAAS,GAAG,WAAW,EAAE;4BAC3B,WAAW,GAAG,SAAS,CAAC;yBACzB;wBACD,WAAW,CAAC,cAAc,GAAG;4BAC3B,IAAI,EAAE,WAAW,CAAC,IAAI;4BACtB,UAAU,EAAE,WAAW,CAAC,UAAU;4BAClC,KAAK;4BACL,YAAY,EAAE,WAAW;yBAC1B,CAAC;wBACF,WAAW,CAAC,MAAM,GAAG,WAAW,GAAG,KAAK,CAAC;qBAC1C;iBACF;YACH,CAAC,CAAC,CAAC;SACJ;KACF;IAED,IAAI,WAAW,CAAC,MAAM,EAAE;QACtB,MAAM,aAAa,GAAG,WAAW,CAAC,cAAc,CAAC;QACjD,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC;QAC5C,MAAM,OAAO,GAAG,MAAM,CAAC,QAAsB,CAAC;QAC9C,MAAM,iBAAiB,GAAwB,EAAE,CAAC;QAClD,IAAI;YACF,MAAM,QAAQ,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,aAAa,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACjE,qEAAqE;YACrE,8BAA8B;YAC9B,MAAM,aAAa,GAAG,QAAQ,CAAC,sBAAsB,CAAC;YACtD,IAAI,eAAe,GAAG,aAAa,EAAE,YAAY,CAAC;YAElD,IAAI,aAAa,IAAI,eAAe,EAAE;gBACpC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBAC1B,IAAI,KAAK,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,EAAE;wBAChC,IAAI,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,EAAE;4BAC/B,KAAK,GAAG,CAAC,CAAC,CAAC;yBACZ;6BAAM,IAAI,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,EAAE;4BACtC,KAAK,GAAG,CAAC,CAAC;yBACX;qBACF;oBACD,OAAO,KAAK,CAAC;gBACf,CAAC,CAAC,CAAC;gBAEH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC7C,IAAI,eAAe,IAAI,CAAC,EAAE;wBACxB,MAAM;qBACP;oBACD,MAAM,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;oBACrC,IAAI,WAAW,CAAC,UAAU,KAAK,aAAa,EAAE,UAAU,EAAE;wBACxD,MAAM,SAAS,GAAG,WAAW,CAAC,UAAU,CAAC;wBACzC,MAAM,YAAY,GAAG,WAAW,CAAC,aAAa,CAAC;wBAC/C,IAAI,YAAY,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE;4BACnF,MAAM,UAAU,GAAG,YAAY,GAAG,eAAe,CAAC;4BAClD,IAAI,UAAU,GAAG,CAAC,IAAI,UAAU,GAAG,IAAI,EAAE;gCACvC,eAAe,GAAG,YAAY,CAAC;6BAChC;4BACD,IAAI,eAAe,IAAI,YAAY,EAAE;gCACnC,eAAe,IAAI,YAAY,CAAC;gCAChC,WAAW,CAAC,aAAa,GAAG,CAAC,CAAC;gCAC9B,IAAI,eAAe,GAAG,IAAI,EAAE;oCAC1B,eAAe,GAAG,CAAC,CAAC;iCACrB;6BACF;iCAAM;gCACL,WAAW,CAAC,aAAa,IAAI,eAAe,CAAC;gCAC7C,eAAe,GAAG,CAAC,CAAC;6BACrB;4BACD,iBAAiB,CAAC,IAAI,CAAC;gCACrB,GAAG,WAAW;gCACd,sBAAsB,EAAE,YAAY;6BACrC,CAAC,CAAC;yBACJ;qBACF;iBACF;gBAED,IAAI,eAAe,IAAI,CAAC,EAAE;oBACxB,IAAI,iBAAiB,CAAC,MAAM,IAAI,CAAC,EAAE;wBACjC,iBAAiB,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE;4BAC3C;;;8BAGE;4BACF,MAAM,QAAQ,GAAG,aAAa,UAAU,2BAA2B,CAAC,EAAE,CAAC;4BACvE,MAAM,IAAI,GAAG;gCACX,aAAa,EAAE,WAAW,CAAC,aAAa;6BACzC,CAAC;4BACF,mBAAmB,CACjB,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,iBAAiB,EACjB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,EACb,CAAC,GAAG,CAAC,KAAK,iBAAiB,CAAC,MAAM,CACnC,CAAC;wBACJ,CAAC,CAAC,CAAC;qBACJ;yBAAM;wBACL,MAAM,QAAQ,GAAG,aAAa,UAAU,EAAE,CAAC;wBAC3C,MAAM,IAAI,GAAG;4BACX,sBAAsB,EAAE,aAAa;yBACtC,CAAC;wBACF,mBAAmB,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,iBAAiB,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;qBAC5E;iBACF;aACF;YAED,WAAW,CAAC,MAAM,GAAG;gBACnB,OAAO,EAAE,eAAe,IAAI,eAAe,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc;aACjF,CAAC;YAEF,OAAO;gBACL,MAAM,EAAE,GAAG;gBACX,mBAAmB,EAAE,KAAK;gBAC1B,WAAW;aACZ,CAAC;SACH;QAAC,OAAO,KAAU,EAAE;YACnB,6BAA6B;YAC7B,MAAM,OAAO,GAAG,wBAAwB,CAAC;YACzC,IAAI,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;YACxB,MAAM,GAAG,GAAG;gBACV,OAAO,EAAE,2BAA2B,OAAO,MAAM,OAAO,OAAO,OAAO,EAAE;gBACxE,OAAO,EAAE,EAAE;gBACX,MAAM,EAAE,CAAC;gBACT,QAAQ,EAAE,EAAE;gBACZ,iBAAiB;aAClB,CAAC;YAEF,IAAI,KAAK,CAAC,QAAQ,EAAE;gBAClB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC;gBACxC,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;gBACpB,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,EAAE;oBACpC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,EAAE;wBACpC,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;qBACrC;yBAAM;wBACL,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC;qBACrB;iBACF;gBACD,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE;oBAC7B,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;iBACpE;aACF;YAED,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAElB,OAAO;gBACL,KAAK,EAAE,OAAO;gBACd,OAAO;aACR,CAAC;SACH;KACF;IAED,OAAO;QACL,MAAM,EAAE,GAAG;QACX,mBAAmB,EAAE,KAAK;QAC1B,WAAW;KACZ,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -26,11 +26,16 @@ export default (data) => {
|
|
|
26
26
|
if (Array.isArray(appData.programs_rules)) {
|
|
27
27
|
const pointsPrograms = {};
|
|
28
28
|
appData.programs_rules.forEach((programRule, index) => {
|
|
29
|
+
let maxPoints = programRule.max_points;
|
|
30
|
+
const ratio = programRule.ratio || 1;
|
|
31
|
+
if (!maxPoints && programRule.max_amount_percentage && params.amount) {
|
|
32
|
+
maxPoints = Math.round(((programRule.max_amount_percentage * params.amount.total) / 100) / ratio);
|
|
33
|
+
}
|
|
29
34
|
const programId = getProgramId(programRule, index);
|
|
30
35
|
pointsPrograms[programId] = {
|
|
31
36
|
name: programRule.name,
|
|
32
|
-
ratio
|
|
33
|
-
max_points:
|
|
37
|
+
ratio,
|
|
38
|
+
max_points: maxPoints,
|
|
34
39
|
min_subtotal_to_earn: programRule.min_subtotal_to_earn,
|
|
35
40
|
earn_percentage: programRule.earn_percentage,
|
|
36
41
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loyalty-list-payments.js","sourceRoot":"","sources":["../src/loyalty-list-payments.ts"],"names":[],"mappings":"AAKA,OAAO,YAAY,MAAM,gCAAgC,CAAC;AAE1D,eAAe,CAAC,IAAmB,EAAE,EAAE;IACrC,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,MAA4B,CAAC;IAEjD,MAAM,OAAO,GAAG;QACd,GAAG,WAAW,CAAC,IAAI;QACnB,GAAG,WAAW,CAAC,WAAW;KAC3B,CAAC;IAEF,0BAA0B;IAC1B,uCAAuC;IACvC,MAAM,QAAQ,GAAyB;QACrC,gBAAgB,EAAE,EAAE;KACrB,CAAC;IAEF,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI;QACnD,CAAC,CAAC,sBAAsB;QACxB,CAAC,CAAC,gBAAgB,CAAC;IAErB,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC;QAC7B,IAAI,EAAE,SAAS;QACf,cAAc,EAAE;YACd,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE,KAAK;SACZ;QACD,KAAK;KACN,CAAC,CAAC;IAEH,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;QACzC,MAAM,cAAc,GAAG,EAAE,CAAC;QAC1B,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE;YACpD,
|
|
1
|
+
{"version":3,"file":"loyalty-list-payments.js","sourceRoot":"","sources":["../src/loyalty-list-payments.ts"],"names":[],"mappings":"AAKA,OAAO,YAAY,MAAM,gCAAgC,CAAC;AAE1D,eAAe,CAAC,IAAmB,EAAE,EAAE;IACrC,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,MAA4B,CAAC;IAEjD,MAAM,OAAO,GAAG;QACd,GAAG,WAAW,CAAC,IAAI;QACnB,GAAG,WAAW,CAAC,WAAW;KAC3B,CAAC;IAEF,0BAA0B;IAC1B,uCAAuC;IACvC,MAAM,QAAQ,GAAyB;QACrC,gBAAgB,EAAE,EAAE;KACrB,CAAC;IAEF,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI;QACnD,CAAC,CAAC,sBAAsB;QACxB,CAAC,CAAC,gBAAgB,CAAC;IAErB,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC;QAC7B,IAAI,EAAE,SAAS;QACf,cAAc,EAAE;YACd,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE,KAAK;SACZ;QACD,KAAK;KACN,CAAC,CAAC;IAEH,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;QACzC,MAAM,cAAc,GAAG,EAAE,CAAC;QAC1B,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE;YACpD,IAAI,SAAS,GAAG,WAAW,CAAC,UAAU,CAAC;YACvC,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,IAAI,CAAC,CAAC;YACrC,IAAI,CAAC,SAAS,IAAI,WAAW,CAAC,qBAAqB,IAAI,MAAM,CAAC,MAAM,EAAE;gBACpE,SAAS,GAAG,IAAI,CAAC,KAAK,CACpB,CAAC,CAAC,WAAW,CAAC,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,KAAK,CAC1E,CAAC;aACH;YACD,MAAM,SAAS,GAAG,YAAY,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YACnD,cAAc,CAAC,SAAS,CAAC,GAAG;gBAC1B,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,KAAK;gBACL,UAAU,EAAE,SAAS;gBACrB,oBAAoB,EAAE,WAAW,CAAC,oBAAoB;gBACtD,eAAe,EAAE,WAAW,CAAC,eAAe;aAC7C,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,EAAE;YACtC,QAAQ,CAAC,uBAAuB,GAAG,cAAc,CAAC;SACnD;KACF;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import '@cloudcommerce/firebase/lib/init';
|
|
2
|
+
import functions from 'firebase-functions/v1';
|
|
2
3
|
export declare const loyaltypoints: {
|
|
3
|
-
onStoreEvent:
|
|
4
|
+
onStoreEvent: functions.CloudFunction<functions.pubsub.Message>;
|
|
5
|
+
cronAddPoints: functions.CloudFunction<unknown>;
|
|
4
6
|
};
|
|
@@ -2,8 +2,12 @@
|
|
|
2
2
|
import '@cloudcommerce/firebase/lib/init';
|
|
3
3
|
import { createAppEventsFunction } from '@cloudcommerce/firebase/lib/helpers/pubsub';
|
|
4
4
|
import logger from 'firebase-functions/logger';
|
|
5
|
+
import config from '@cloudcommerce/firebase/lib/config';
|
|
6
|
+
import functions from 'firebase-functions/v1';
|
|
5
7
|
import handleLoyaltyPointsEvent from './functions-lib/handle-loyalty-points-event.js';
|
|
8
|
+
import addPoints from './functions-lib/cron-add-points.js';
|
|
6
9
|
|
|
10
|
+
const { httpsFunctionOptions: { region } } = config.get();
|
|
7
11
|
const handleApiEvent = async ({
|
|
8
12
|
evName, apiEvent, apiDoc, app,
|
|
9
13
|
}) => {
|
|
@@ -24,5 +28,10 @@ const handleApiEvent = async ({
|
|
|
24
28
|
|
|
25
29
|
export const loyaltypoints = {
|
|
26
30
|
onStoreEvent: createAppEventsFunction('loyaltyPoints', handleApiEvent),
|
|
31
|
+
cronAddPoints: functions.region(region).pubsub
|
|
32
|
+
.schedule('28 * * * *')
|
|
33
|
+
.onRun(() => {
|
|
34
|
+
return addPoints;
|
|
35
|
+
}),
|
|
27
36
|
};
|
|
28
37
|
// # sourceMappingURL=loyalty-points-events.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loyalty-points-events.js","sourceRoot":"","sources":["../src/loyalty-points-events.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,OAAO,kCAAkC,CAAC;AAE1C,OAAO,EACL,uBAAuB,GAExB,MAAM,4CAA4C,CAAC;AACpD,OAAO,MAAM,MAAM,2BAA2B,CAAC;AAC/C,OAAO,wBAAwB,MAAM,6CAA6C,CAAC;
|
|
1
|
+
{"version":3,"file":"loyalty-points-events.js","sourceRoot":"","sources":["../src/loyalty-points-events.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,OAAO,kCAAkC,CAAC;AAE1C,OAAO,EACL,uBAAuB,GAExB,MAAM,4CAA4C,CAAC;AACpD,OAAO,MAAM,MAAM,2BAA2B,CAAC;AAC/C,OAAO,MAAM,MAAM,oCAAoC,CAAC;AACxD,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAC9C,OAAO,wBAAwB,MAAM,6CAA6C,CAAC;AACnF,OAAO,SAAS,MAAM,iCAAiC,CAAC;AAExD,MAAM,EAAE,oBAAoB,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;AAE1D,MAAM,cAAc,GAAoB,KAAK,EAAE,EAC7C,MAAM,EACN,QAAQ,EACR,MAAM,EACN,GAAG,GACJ,EAAE,EAAE;IACH,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC;IACxC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC/D,MAAM,GAAG,GAAG,GAAG,MAAM,IAAI,UAAU,EAAE,CAAC;IACtC,MAAM,OAAO,GAAG,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IACpD,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC;IAE5C,IACE,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;WAChC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;WACzC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EACzD;QACA,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,kBAAkB,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC;KACb;IACD,MAAM,CAAC,IAAI,CAAC,aAAa,UAAU,KAAK,MAAM,GAAG,CAAC,CAAC;IAEnD,OAAO,wBAAwB,CAAC,MAAgB,EAAE,YAAY,CAAC,CAAC;AAClE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,YAAY,EAAE,uBAAuB,CACnC,eAAe,EACf,cAAc,CACf;IAED,aAAa,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM;SAC3C,QAAQ,CAAC,YAAY,CAAC;SACtB,KAAK,CAAC,GAAG,EAAE;QACV,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;CACL,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloudcommerce/app-loyalty-points",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.28.0",
|
|
5
5
|
"description": "E-Com Plus Cloud Commerce app to handle simple loyalty points programs",
|
|
6
6
|
"main": "lib/loyalty-points.js",
|
|
7
7
|
"exports": {
|
|
@@ -25,7 +25,8 @@
|
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"@cloudcommerce/api": "workspace:*",
|
|
28
|
-
"@cloudcommerce/firebase": "workspace:*"
|
|
28
|
+
"@cloudcommerce/firebase": "workspace:*",
|
|
29
|
+
"@ecomplus/utils": "1.5.0-rc.5"
|
|
29
30
|
},
|
|
30
31
|
"devDependencies": {
|
|
31
32
|
"@cloudcommerce/test-base": "workspace:*",
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import type { CustomerSet, Orders } from '@cloudcommerce/types';
|
|
2
|
+
import logger from 'firebase-functions/logger';
|
|
3
|
+
import { getFirestore } from 'firebase-admin/firestore';
|
|
4
|
+
import api from '@cloudcommerce/api';
|
|
5
|
+
import { Endpoint } from '@cloudcommerce/api/types';
|
|
6
|
+
|
|
7
|
+
const addPoints = async () => {
|
|
8
|
+
const d = new Date();
|
|
9
|
+
// double checking paid orders after 5 days
|
|
10
|
+
d.setDate(d.getDate() - 5);
|
|
11
|
+
const db = getFirestore();
|
|
12
|
+
const snapshot = await db.collection('pointsToAdd')
|
|
13
|
+
.where('queuedAt', '<=', d)
|
|
14
|
+
.orderBy('queuedAt')
|
|
15
|
+
.get();
|
|
16
|
+
const { docs } = snapshot;
|
|
17
|
+
logger.info(`${docs.length} points to add`);
|
|
18
|
+
|
|
19
|
+
for (let i = 0; i < docs.length; i++) {
|
|
20
|
+
const { customerId, pointEntries } = docs[i].data();
|
|
21
|
+
const orderId = docs[i].ref.id;
|
|
22
|
+
let order: Orders | undefined;
|
|
23
|
+
try {
|
|
24
|
+
// eslint-disable-next-line no-await-in-loop
|
|
25
|
+
order = (await api.get(`orders/${orderId}`)).data;
|
|
26
|
+
} catch (error: any) {
|
|
27
|
+
const status = error.response?.status;
|
|
28
|
+
if (status > 400 && status < 500) {
|
|
29
|
+
logger.warn(`failed reading order ${orderId}`, {
|
|
30
|
+
status,
|
|
31
|
+
response: error.response?.data,
|
|
32
|
+
});
|
|
33
|
+
} else {
|
|
34
|
+
throw error;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
if (order && Array.isArray(pointEntries) && pointEntries.length) {
|
|
39
|
+
const currentStatus = order.financial_status && order.financial_status.current;
|
|
40
|
+
if (currentStatus === 'paid') {
|
|
41
|
+
const tryAddPoints = (data: CustomerSet) => {
|
|
42
|
+
logger.info(`POST ${JSON.stringify(data)} ${customerId}`);
|
|
43
|
+
return api.post(`customers/${customerId}/loyalty_points_entries`, data);
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
const pointsEndpoint = `/customers/${customerId}/loyalty_points_entries`;
|
|
47
|
+
|
|
48
|
+
for (let ii = 0; ii < pointEntries.length; ii++) {
|
|
49
|
+
const pointsEntry = pointEntries[ii];
|
|
50
|
+
try {
|
|
51
|
+
// eslint-disable-next-line no-await-in-loop
|
|
52
|
+
await tryAddPoints(pointsEntry);
|
|
53
|
+
} catch (err: any) {
|
|
54
|
+
const status = err.response?.status;
|
|
55
|
+
if (status === 403) {
|
|
56
|
+
// delete older points entry and retry
|
|
57
|
+
|
|
58
|
+
const findUrl = `${pointsEndpoint}`
|
|
59
|
+
+ `?valid_thru<=${(new Date().toISOString())}&sort=active_points&limit=1`;
|
|
60
|
+
try {
|
|
61
|
+
// eslint-disable-next-line no-await-in-loop
|
|
62
|
+
await api.get(findUrl as Endpoint)
|
|
63
|
+
.then(({ data }) => {
|
|
64
|
+
const pointsList = data.result;
|
|
65
|
+
if (pointsList.length) {
|
|
66
|
+
const endpoint = `${pointsEndpoint}/${pointsList[0]._id}`;
|
|
67
|
+
return api.delete(endpoint as Endpoint)
|
|
68
|
+
.then(() => {
|
|
69
|
+
return tryAddPoints(pointsEntry);
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
return null;
|
|
73
|
+
});
|
|
74
|
+
} catch (error: any) {
|
|
75
|
+
logger.warn(`failed cleaning/adding points retry to ${orderId}`, {
|
|
76
|
+
customerId,
|
|
77
|
+
pointsEntry,
|
|
78
|
+
url: error.config?.url,
|
|
79
|
+
method: error.config?.method,
|
|
80
|
+
status: error.response?.status,
|
|
81
|
+
response: error.response?.data,
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
} else if (status > 400 && status < 500) {
|
|
85
|
+
logger.warn(`failed adding points to ${orderId}`, {
|
|
86
|
+
customerId,
|
|
87
|
+
pointsEndpoint,
|
|
88
|
+
pointsEntry,
|
|
89
|
+
status,
|
|
90
|
+
response: err.response.data,
|
|
91
|
+
});
|
|
92
|
+
} else {
|
|
93
|
+
throw err;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
// eslint-disable-next-line no-await-in-loop
|
|
100
|
+
await docs[i].ref.delete();
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
export default addPoints;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { Orders, Customers, ResourceId } from '@cloudcommerce/types';
|
|
2
2
|
import api from '@cloudcommerce/api';
|
|
3
|
-
import { getFirestore } from 'firebase-admin/firestore';
|
|
3
|
+
import { getFirestore, Timestamp } from 'firebase-admin/firestore';
|
|
4
4
|
import logger from 'firebase-functions/logger';
|
|
5
|
+
import ecomUtils from '@ecomplus/utils';
|
|
5
6
|
import getProgramId from './get-program-id';
|
|
6
7
|
|
|
7
8
|
const ECHO_SUCCESS = 'SUCCESS';
|
|
@@ -97,36 +98,77 @@ const handleLoyaltyPointsEvent = async (
|
|
|
97
98
|
const hasEarnedPoints = haveEarnedPoints(pointsList, orderId);
|
|
98
99
|
|
|
99
100
|
if (isPaid && !hasEarnedPoints) {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
101
|
+
const docRef = getFirestore().doc(`pointsToAdd/${orderId}`);
|
|
102
|
+
const docSnapshot = await docRef.get();
|
|
103
|
+
if (!docSnapshot.exists) {
|
|
104
|
+
const pointEntries: any[] = [];
|
|
105
|
+
|
|
106
|
+
for (let i = 0; i < programRules.length; i++) {
|
|
107
|
+
const rule = programRules[i];
|
|
108
|
+
if (rule.earn_percentage === 0) {
|
|
109
|
+
continue;
|
|
110
|
+
}
|
|
111
|
+
if (
|
|
112
|
+
!rule.min_subtotal_to_earn
|
|
113
|
+
|| (amount?.subtotal && rule.min_subtotal_to_earn <= amount.subtotal)
|
|
114
|
+
) {
|
|
115
|
+
let subtotal = amount.subtotal as number;
|
|
106
116
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
validThru = d.toISOString();
|
|
112
|
-
}
|
|
117
|
+
if (Array.isArray(rule.category_ids) && rule.category_ids.length) {
|
|
118
|
+
if (!order.items || !order.items.length) {
|
|
119
|
+
continue;
|
|
120
|
+
}
|
|
113
121
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
} as any; // TODO: set the correct type
|
|
122
|
+
// eslint-disable-next-line no-await-in-loop
|
|
123
|
+
const { data: { result } } = await api.get('search/v1', {
|
|
124
|
+
limit: order.items.length,
|
|
125
|
+
params: {
|
|
126
|
+
_id: order.items.map((item) => item.product_id),
|
|
127
|
+
'categories._id': rule.category_ids,
|
|
128
|
+
},
|
|
129
|
+
});
|
|
123
130
|
|
|
124
|
-
|
|
125
|
-
|
|
131
|
+
// eslint-disable-next-line no-await-in-loop
|
|
132
|
+
order.items.forEach((item) => {
|
|
133
|
+
if (!result.find(({ _id }) => _id === item.product_id)) {
|
|
134
|
+
subtotal -= (ecomUtils.price(item) * item.quantity);
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
}
|
|
126
138
|
|
|
127
|
-
|
|
139
|
+
const pointsValue = ((rule.earn_percentage || 1) / 100)
|
|
140
|
+
* (subtotal - (amount.discount || 0));
|
|
141
|
+
|
|
142
|
+
if (pointsValue > 0) {
|
|
143
|
+
let validThru: string | undefined;
|
|
144
|
+
if (rule.expiration_days > 0) {
|
|
145
|
+
const d = new Date();
|
|
146
|
+
d.setDate(d.getDate() + 2 + rule.expiration_days);
|
|
147
|
+
validThru = d.toISOString();
|
|
148
|
+
}
|
|
149
|
+
const data = {
|
|
150
|
+
name: rule.name,
|
|
151
|
+
program_id: getProgramId(rule, i),
|
|
152
|
+
earned_points: pointsValue,
|
|
153
|
+
active_points: pointsValue,
|
|
154
|
+
ratio: rule.ratio || 1,
|
|
155
|
+
order_id: orderId,
|
|
156
|
+
};
|
|
157
|
+
if (validThru) {
|
|
158
|
+
Object.assign(data, { valid_thru: validThru });
|
|
159
|
+
}
|
|
160
|
+
pointEntries.push(data);
|
|
161
|
+
}
|
|
128
162
|
}
|
|
129
163
|
}
|
|
164
|
+
|
|
165
|
+
await docRef.set({
|
|
166
|
+
customerId,
|
|
167
|
+
pointEntries,
|
|
168
|
+
queuedAt: Timestamp.now(),
|
|
169
|
+
});
|
|
170
|
+
|
|
171
|
+
return responsePubSub(ECHO_SUCCESS);
|
|
130
172
|
}
|
|
131
173
|
}
|
|
132
174
|
|
|
@@ -76,7 +76,7 @@ export default async (appData: AppModuleBody) => {
|
|
|
76
76
|
if (pointsApplied && Array.isArray(programsRules) && programsRules.length) {
|
|
77
77
|
// for (const programId in pointsApplied) {
|
|
78
78
|
Object.keys(pointsApplied).forEach((programId) => {
|
|
79
|
-
|
|
79
|
+
let pointsValue = pointsApplied[programId];
|
|
80
80
|
if (pointsValue > 0) {
|
|
81
81
|
const programRule = programsRules.find((programRuleFound, index) => {
|
|
82
82
|
if (programRuleFound) {
|
|
@@ -87,14 +87,21 @@ export default async (appData: AppModuleBody) => {
|
|
|
87
87
|
});
|
|
88
88
|
|
|
89
89
|
if (programRule) {
|
|
90
|
+
let maxPoints = programRule.max_points;
|
|
90
91
|
const ratio = programRule.ratio || 1;
|
|
92
|
+
if (!maxPoints && programRule.max_amount_percentage && params.amount) {
|
|
93
|
+
maxPoints = Math.round(
|
|
94
|
+
((programRule.max_amount_percentage * params.amount.total) / 100) / ratio,
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
if (maxPoints < pointsValue) {
|
|
98
|
+
pointsValue = maxPoints;
|
|
99
|
+
}
|
|
91
100
|
transaction.loyalty_points = {
|
|
92
101
|
name: programRule.name,
|
|
93
102
|
program_id: programRule.program_id,
|
|
94
103
|
ratio,
|
|
95
|
-
points_value:
|
|
96
|
-
? programRule.max_points
|
|
97
|
-
: pointsValue,
|
|
104
|
+
points_value: pointsValue,
|
|
98
105
|
};
|
|
99
106
|
transaction.amount = pointsValue * ratio;
|
|
100
107
|
}
|
|
@@ -36,11 +36,18 @@ export default (data: AppModuleBody) => {
|
|
|
36
36
|
if (Array.isArray(appData.programs_rules)) {
|
|
37
37
|
const pointsPrograms = {};
|
|
38
38
|
appData.programs_rules.forEach((programRule, index) => {
|
|
39
|
+
let maxPoints = programRule.max_points;
|
|
40
|
+
const ratio = programRule.ratio || 1;
|
|
41
|
+
if (!maxPoints && programRule.max_amount_percentage && params.amount) {
|
|
42
|
+
maxPoints = Math.round(
|
|
43
|
+
((programRule.max_amount_percentage * params.amount.total) / 100) / ratio,
|
|
44
|
+
);
|
|
45
|
+
}
|
|
39
46
|
const programId = getProgramId(programRule, index);
|
|
40
47
|
pointsPrograms[programId] = {
|
|
41
48
|
name: programRule.name,
|
|
42
|
-
ratio
|
|
43
|
-
max_points:
|
|
49
|
+
ratio,
|
|
50
|
+
max_points: maxPoints,
|
|
44
51
|
min_subtotal_to_earn: programRule.min_subtotal_to_earn,
|
|
45
52
|
earn_percentage: programRule.earn_percentage,
|
|
46
53
|
};
|
|
@@ -6,7 +6,12 @@ import {
|
|
|
6
6
|
ApiEventHandler,
|
|
7
7
|
} from '@cloudcommerce/firebase/lib/helpers/pubsub';
|
|
8
8
|
import logger from 'firebase-functions/logger';
|
|
9
|
+
import config from '@cloudcommerce/firebase/lib/config';
|
|
10
|
+
import functions from 'firebase-functions/v1';
|
|
9
11
|
import handleLoyaltyPointsEvent from './functions-lib/handle-loyalty-points-event';
|
|
12
|
+
import addPoints from './functions-lib/cron-add-points';
|
|
13
|
+
|
|
14
|
+
const { httpsFunctionOptions: { region } } = config.get();
|
|
10
15
|
|
|
11
16
|
const handleApiEvent: ApiEventHandler = async ({
|
|
12
17
|
evName,
|
|
@@ -37,5 +42,11 @@ export const loyaltypoints = {
|
|
|
37
42
|
onStoreEvent: createAppEventsFunction(
|
|
38
43
|
'loyaltyPoints',
|
|
39
44
|
handleApiEvent,
|
|
40
|
-
)
|
|
45
|
+
),
|
|
46
|
+
|
|
47
|
+
cronAddPoints: functions.region(region).pubsub
|
|
48
|
+
.schedule('28 * * * *')
|
|
49
|
+
.onRun(() => {
|
|
50
|
+
return addPoints;
|
|
51
|
+
}),
|
|
41
52
|
};
|
|
@@ -14,7 +14,11 @@
|
|
|
14
14
|
.Mercadopago
|
|
15
15
|
.getIssuers(window.mpPaymentMethodId, (status, issuer) => {
|
|
16
16
|
console.log(issuer);
|
|
17
|
-
const token = `${res.id} // ${JSON.stringify({
|
|
17
|
+
const token = `${res.id} // ${JSON.stringify({
|
|
18
|
+
payment_method_id: window.mpPaymentMethodId,
|
|
19
|
+
issuer,
|
|
20
|
+
deviceId: window.MP_DEVICE_SESSION_ID || 0
|
|
21
|
+
})}`;
|
|
18
22
|
return resolve(token);
|
|
19
23
|
});
|
|
20
24
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
window.Mercadopago.getIdentificationTypes(),window._mpHash=function(t){return new Promise((o,e)=>{window._mpBrand(t.number).then(()=>{return c=t,new Promise((n,o)=>{var e,t,r=window.storefrontApp["customer"],a={},d=(a.cardNumber=c.number,a.cardholderName=c.name,a.cardExpirationMonth=c.month,a.cardExpirationYear=c.year,a.securityCode=c.cvc,c.doc?a.docNumber=c.doc:a.docNumber=r.doc_number,a.email=r.main_email,a.payment_method_id=window.mpPaymentMethodId,document.createElement("form"));for(const s in a)a[s]&&(e=a[s],(t=document.createElement("input")).setAttribute("type","text"),t.setAttribute("id",s),t.setAttribute("data-checkout",s),t.setAttribute("value",e),d.appendChild(t));var i=document.createElement("select"),m=(i.setAttribute("data-checkout","docType"),document.createElement("option"));m.text="j"===r.registry_type?"CNPJ":"CPF",m.value="j"===r.registry_type?"CNPJ":"CPF",m.setAttribute("selected",!0),i.add(m),d.appendChild(i),window.Mercadopago.createToken(d,(e,t)=>{(200===e?n:o)(t)})});var c}).then(n=>{window.Mercadopago.getIssuers(window.mpPaymentMethodId,(e,t)=>{console.log(t);t=n.id+" // "+JSON.stringify({payment_method_id:window.mpPaymentMethodId,issuer:t});return o(t)})}).catch(e)})},window._mpInstallments=function(t){return new Promise((r,a)=>{window._mpBrand(t.number).then(e=>{e={payment_method_id:e,amount:t.amount};return window.Mercadopago.getInstallments(e,(e,t)=>{if(200===e){var n=[];for(let e=0;e<t[0].payer_costs.length;e++){var o=t[0].payer_costs[e];n.push({number:o.installments,tax:0<o.installment_rate,value:o.installment_amount})}r(n)}else console.log("installments method info error:",response),a(response)})}).catch(a)})},window._mpBrand=function(t){return new Promise((n,o)=>{let e=String(t);if(6<=(e=e.substring(0,6)).length)return window.Mercadopago.getPaymentMethod({bin:e},(e,t)=>{200===e?(window.mpPaymentMethodId=t[0].id,n(t[0].id)):(console.log("payment method info error:",t),o(t))});o(new Error("Failed trying installments with card number yet imcomplete"))})};
|
|
1
|
+
window.Mercadopago.getIdentificationTypes(),window._mpHash=function(t){return new Promise((o,e)=>{window._mpBrand(t.number).then(()=>{return c=t,new Promise((n,o)=>{var e,t,r=window.storefrontApp["customer"],a={},d=(a.cardNumber=c.number,a.cardholderName=c.name,a.cardExpirationMonth=c.month,a.cardExpirationYear=c.year,a.securityCode=c.cvc,c.doc?a.docNumber=c.doc:a.docNumber=r.doc_number,a.email=r.main_email,a.payment_method_id=window.mpPaymentMethodId,document.createElement("form"));for(const s in a)a[s]&&(e=a[s],(t=document.createElement("input")).setAttribute("type","text"),t.setAttribute("id",s),t.setAttribute("data-checkout",s),t.setAttribute("value",e),d.appendChild(t));var i=document.createElement("select"),m=(i.setAttribute("data-checkout","docType"),document.createElement("option"));m.text="j"===r.registry_type?"CNPJ":"CPF",m.value="j"===r.registry_type?"CNPJ":"CPF",m.setAttribute("selected",!0),i.add(m),d.appendChild(i),window.Mercadopago.createToken(d,(e,t)=>{(200===e?n:o)(t)})});var c}).then(n=>{window.Mercadopago.getIssuers(window.mpPaymentMethodId,(e,t)=>{console.log(t);t=n.id+" // "+JSON.stringify({payment_method_id:window.mpPaymentMethodId,issuer:t,deviceId:window.MP_DEVICE_SESSION_ID||0});return o(t)})}).catch(e)})},window._mpInstallments=function(t){return new Promise((r,a)=>{window._mpBrand(t.number).then(e=>{e={payment_method_id:e,amount:t.amount};return window.Mercadopago.getInstallments(e,(e,t)=>{if(200===e){var n=[];for(let e=0;e<t[0].payer_costs.length;e++){var o=t[0].payer_costs[e];n.push({number:o.installments,tax:0<o.installment_rate,value:o.installment_amount})}r(n)}else console.log("installments method info error:",response),a(response)})}).catch(a)})},window._mpBrand=function(t){return new Promise((n,o)=>{let e=String(t);if(6<=(e=e.substring(0,6)).length)return window.Mercadopago.getPaymentMethod({bin:e},(e,t)=>{200===e?(window.mpPaymentMethodId=t[0].id,n(t[0].id)):(console.log("payment method info error:",t),o(t))});o(new Error("Failed trying installments with card number yet imcomplete"))})};
|
|
@@ -28,12 +28,15 @@ export default async (appData) => {
|
|
|
28
28
|
const notificationUrl = `${baseUri}/mercadopago-webhook`;
|
|
29
29
|
let token;
|
|
30
30
|
let paymentMethodId;
|
|
31
|
+
let deviceId;
|
|
31
32
|
const isPix = params.payment_method.code === 'account_deposit';
|
|
32
33
|
if (params.credit_card && params.credit_card.hash) {
|
|
33
34
|
const hashParts = params.credit_card.hash.split(' // ');
|
|
34
35
|
[token] = hashParts;
|
|
35
36
|
try {
|
|
36
|
-
|
|
37
|
+
const parsed = JSON.parse(hashParts[1]);
|
|
38
|
+
paymentMethodId = parsed.payment_method_id;
|
|
39
|
+
deviceId = parsed.deviceId;
|
|
37
40
|
} catch (e) {
|
|
38
41
|
paymentMethodId = params.credit_card.company || 'visa';
|
|
39
42
|
}
|
|
@@ -142,14 +145,18 @@ export default async (appData) => {
|
|
|
142
145
|
}
|
|
143
146
|
}
|
|
144
147
|
try {
|
|
148
|
+
const headers = {
|
|
149
|
+
Authorization: `Bearer ${process.env.MERCADOPAGO_TOKEN}`,
|
|
150
|
+
'Content-Type': 'application/json',
|
|
151
|
+
};
|
|
152
|
+
if (deviceId) {
|
|
153
|
+
Object.assign(headers, { 'X-meli-session-id': deviceId });
|
|
154
|
+
}
|
|
145
155
|
// https://www.mercadopago.com.br/developers/pt/reference/payments/_payments/post
|
|
146
156
|
const { data } = await axios({
|
|
147
157
|
url: 'https://api.mercadopago.com/v1/payments',
|
|
148
158
|
method: 'post',
|
|
149
|
-
headers
|
|
150
|
-
Authorization: `Bearer ${process.env.MERCADOPAGO_TOKEN}`,
|
|
151
|
-
'Content-Type': 'application/json',
|
|
152
|
-
},
|
|
159
|
+
headers,
|
|
153
160
|
data: payment,
|
|
154
161
|
});
|
|
155
162
|
if (data) {
|
|
@@ -235,7 +242,10 @@ export default async (appData) => {
|
|
|
235
242
|
const qrCodeBase64 = data.point_of_interaction.transaction_data.qr_code_base64;
|
|
236
243
|
transaction.notes = '<div style="display:block;margin:0 auto"> '
|
|
237
244
|
+ `<img width="280" height="280" style="margin:5px auto" src='data:image/jpeg;base64,${qrCodeBase64}'/> `
|
|
238
|
-
+ `<
|
|
245
|
+
+ `<input readonly type="text" id="pix-copy" value="${qrCode}" />`
|
|
246
|
+
+ `<button type="button" class="btn btn-sm btn-light" onclick="let codePix = document.getElementById('pix-copy')
|
|
247
|
+
codePix.select()
|
|
248
|
+
document.execCommand('copy')">Copiar Pix</button></div>`;
|
|
239
249
|
}
|
|
240
250
|
return {
|
|
241
251
|
status: 200,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mp-create-transaction.js","sourceRoot":"","sources":["../src/mp-create-transaction.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,MAAM,MAAM,2BAA2B,CAAC;AAC/C,OAAO,MAAM,MAAM,oCAAoC,CAAC;AACxD,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,kBAAkB,GAAG,CAAC,MAAc,EAAE,EAAE;IAC5C,QAAQ,MAAM,EAAE;QACd,KAAK,UAAU;YACb,OAAO,QAAQ,CAAC;QAClB,KAAK,YAAY;YACf,OAAO,gBAAgB,CAAC;QAC1B,KAAK,UAAU;YACb,OAAO,MAAM,CAAC;QAChB;YACE,OAAO,SAAS,CAAC;KACpB;AACH,CAAC,CAAC;AAEF,eAAe,KAAK,EAAE,OAAsB,EAAE,EAAE;IAC9C,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAC,MAAM,CAAC;IAC5D,MAAM,OAAO,GAAG,WAAW,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,qBAAqB,CAAC;IACzF,iDAAiD;IACjD,4BAA4B;IAC5B,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IACzC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAiC,CAAC;IACzD,yBAAyB;IACzB,MAAM,SAAS,GAAG,EAAE,GAAG,WAAW,CAAC,IAAI,EAAE,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;IACtE,MAAM,eAAe,GAAG,GAAG,OAAO,sBAAsB,CAAC;IAEzD,IAAI,KAAyB,CAAC;IAC9B,IAAI,eAAuB,CAAC;IAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,KAAK,iBAAiB,CAAC;IAC/D,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE;QACjD,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACxD,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;QACpB,IAAI;YACF,
|
|
1
|
+
{"version":3,"file":"mp-create-transaction.js","sourceRoot":"","sources":["../src/mp-create-transaction.ts"],"names":[],"mappings":"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"}
|