UNPKG

sfcc-cip-analytics-client

Version:

SFCC Commerce Intelligence Platform Analytics Client

47 lines (46 loc) 2.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.queryCustomerRegistrationTrends = void 0; const types_1 = require("../types"); const helpers_1 = require("../helpers"); /** * Query customer registration trends to track acquisition effectiveness * Business Question: How effectively are we acquiring new customers and what drives registrations? * Primary users: Marketing and CRM teams * @param client The Avatica client instance (must have an open connection) * @param siteId The natural site ID to filter by * @param dateRange Date range to filter results * @param batchSize Size of each batch to yield (default: 100) */ const queryCustomerRegistrationTrends = function queryCustomerRegistrationTrends(client, params, batchSize = 100) { const { sql, parameters } = queryCustomerRegistrationTrends.QUERY(params); return (0, helpers_1.executeParameterizedQuery)(client, (0, types_1.cleanSQL)(sql), parameters, batchSize); }; exports.queryCustomerRegistrationTrends = queryCustomerRegistrationTrends; exports.queryCustomerRegistrationTrends.metadata = { name: "customer-registration-trends", description: "Track customer acquisition effectiveness and registration drivers", category: "Customer Analytics", requiredParams: ["siteId", "from", "to"], }; exports.queryCustomerRegistrationTrends.QUERY = (params) => { (0, helpers_1.validateRequiredParams)(params, ["siteId", "dateRange"]); const { startDate, endDate } = (0, helpers_1.formatDateRange)(params.dateRange); const sql = ` SELECT r.registration_date AS "date", SUM(r.num_registrations) AS new_registrations, r.device_class_code, s.nsite_id FROM ccdw_aggr_registration r JOIN ccdw_dim_site s ON s.site_id = r.site_id WHERE r.registration_date >= '${startDate}' AND r.registration_date <= '${endDate}' AND s.nsite_id = '${params.siteId}' GROUP BY r.registration_date, r.device_class_code, s.nsite_id ORDER BY r.registration_date `; return { sql, parameters: [], }; };