@rsc-labs/medusa-store-analytics
Version:
Get analytics data about your store
55 lines (54 loc) • 2.14 kB
TypeScript
import { OrderStatus, TransactionBaseService } from "@medusajs/medusa";
type CustomersHistory = {
customerCount: string;
date: string;
};
export type CustomersHistoryResult = {
dateRangeFrom?: number;
dateRangeTo?: number;
dateRangeFromCompareTo?: number;
dateRangeToCompareTo?: number;
current: CustomersHistory[];
previous: CustomersHistory[];
};
type CustomersCounts = {
dateRangeFrom?: number;
dateRangeTo?: number;
dateRangeFromCompareTo?: number;
dateRangeToCompareTo?: number;
current: number;
previous: number;
};
type Distributions = {
returnCustomerRate?: number;
orderOneTimeFrequency?: number;
orderRepeatFrequency?: number;
};
type CustomersOrdersDistribution = {
dateRangeFrom?: number;
dateRangeTo?: number;
dateRangeFromCompareTo?: number;
dateRangeToCompareTo?: number;
current: Distributions;
previous: Distributions;
};
type CustomersRetentionRate = {
dateRangeFrom?: number;
dateRangeTo?: number;
dateRangeFromCompareTo?: number;
dateRangeToCompareTo?: number;
current: number;
previous: number;
};
export default class CustomersAnalyticsService extends TransactionBaseService {
private readonly customerService;
private readonly orderService;
constructor(container: any);
getHistory(from?: Date, to?: Date, dateRangeFromCompareTo?: Date, dateRangeToCompareTo?: Date): Promise<CustomersHistoryResult>;
getNewCount(from?: Date, to?: Date, dateRangeFromCompareTo?: Date, dateRangeToCompareTo?: Date): Promise<CustomersCounts>;
getNumberOfReturningCustomers(): Promise<number>;
getRepeatCustomerRate(orderStatuses: OrderStatus[], from?: Date, to?: Date, dateRangeFromCompareTo?: Date, dateRangeToCompareTo?: Date): Promise<CustomersOrdersDistribution>;
getCumulativeHistory(from?: Date, to?: Date, dateRangeFromCompareTo?: Date, dateRangeToCompareTo?: Date): Promise<CustomersHistoryResult>;
getRetentionRate(orderStatuses: OrderStatus[], from?: Date, to?: Date, dateRangeFromCompareTo?: Date, dateRangeToCompareTo?: Date): Promise<CustomersRetentionRate>;
}
export {};