UNPKG

@pinelab/vendure-plugin-metrics

Version:

Vendure plugin measuring and visualizing e-commerce metrics

38 lines (37 loc) 1.17 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ConversionMetric = void 0; const graphql_1 = require("../ui/generated/graphql"); /** * Conversion of sessions to orders */ class ConversionMetric { constructor() { this.metricType = graphql_1.AdvancedMetricType.Number; this.code = 'conversion'; this.allowProductSelection = false; } getTitle(ctx) { return `Conversion Rate`; } calculateDataPoints(ctx, orders, sessions) { const placedOrders = orders.length; const sessionCount = sessions.length; // Calculate conversion rate (as a percentage) let conversionRate = 0; if (sessionCount > 0) { conversionRate = (placedOrders / sessionCount) * 100; } if (conversionRate > 100) { // Conversion rate cannot be more than 100% conversionRate = 100; } return [ { legendLabel: 'Conversion of sessions to orders (%)', value: parseFloat(conversionRate.toFixed(2)), }, ]; } } exports.ConversionMetric = ConversionMetric;