TicketUserServices

<back to all web services

SalesOverviewRequest

Requires Authentication
Requires any of the roles:Admin, TeamAdminRequired permission:Sales.Total
The following routes are available for this service:
POST/sales/overview

export class SalesKpis
{
    public grossNet?: number;
    public refunded?: number;
    public ticketsAllReal?: number;
    public ticketsPaid?: number;
    public orders?: number;
    public aov?: number;

    public constructor(init?: Partial<SalesKpis>) { (Object as any).assign(this, init); }
}

export class KpiDelta
{
    public abs?: number;
    public pct?: number;
    public dir?: string;

    public constructor(init?: Partial<KpiDelta>) { (Object as any).assign(this, init); }
}

export class SalesDeltas
{
    public grossNet?: KpiDelta;
    public refunded?: KpiDelta;
    public ticketsAllReal?: KpiDelta;
    public ticketsPaid?: KpiDelta;
    public orders?: KpiDelta;
    public aov?: KpiDelta;

    public constructor(init?: Partial<SalesDeltas>) { (Object as any).assign(this, init); }
}

export class SalesTrendBucket
{
    public bucket?: string;
    public revenue?: number;
    public tickets?: number;

    public constructor(init?: Partial<SalesTrendBucket>) { (Object as any).assign(this, init); }
}

export class SalesTopEvent
{
    public eventId?: number;
    public eventName?: string;
    public eventDate?: string;
    public grossNet?: number;
    public paidTickets?: number;
    public realTickets?: number;
    public orders?: number;

    public constructor(init?: Partial<SalesTopEvent>) { (Object as any).assign(this, init); }
}

export class SalesRecentOrder
{
    public ticketId?: number;
    public createdAt?: string;
    public eventName?: string;
    public amount?: number;
    public ticketCount?: number;
    public buyerName?: string;

    public constructor(init?: Partial<SalesRecentOrder>) { (Object as any).assign(this, init); }
}

export class SalesHourBucket
{
    public hour?: number;
    public revenue?: number;
    public orders?: number;
    public tickets?: number;

    public constructor(init?: Partial<SalesHourBucket>) { (Object as any).assign(this, init); }
}

export class SalesDowBucket
{
    public dow?: number;
    public revenue?: number;
    public orders?: number;
    public tickets?: number;

    public constructor(init?: Partial<SalesDowBucket>) { (Object as any).assign(this, init); }
}

export class SalesProduct
{
    public ticketName?: string;
    public tickets?: number;
    public revenue?: number;
    public orders?: number;

    public constructor(init?: Partial<SalesProduct>) { (Object as any).assign(this, init); }
}

export class SalesOverviewResult
{
    public current?: SalesKpis;
    public previous?: SalesKpis;
    public delta?: SalesDeltas;
    public trend?: SalesTrendBucket[];
    public previousTrend?: SalesTrendBucket[];
    public topEvents?: SalesTopEvent[];
    public recentOrders?: SalesRecentOrder[];
    public byHourOfDay?: SalesHourBucket[];
    public byDayOfWeek?: SalesDowBucket[];
    public topProducts?: SalesProduct[];
    public hasAnyDataEver?: boolean;
    public owners?: number[];
    public bucket?: string;
    public freshnessUtc?: string;
    public statusCode?: number;
    public message?: string;

    public constructor(init?: Partial<SalesOverviewResult>) { (Object as any).assign(this, init); }
}

export class SalesOverviewRequest
{
    public eventOwnerId?: number;
    public additionalOwnerIds?: number[];
    public eventId?: number;
    public fromUtc?: string;
    public toUtc?: string;
    public compareFromUtc?: string;
    public compareToUtc?: string;
    public bucket?: string;
    public topEventsLimit?: number;
    public recentOrdersLimit?: number;

    public constructor(init?: Partial<SalesOverviewRequest>) { (Object as any).assign(this, init); }
}

TypeScript SalesOverviewRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /sales/overview HTTP/1.1 
Host: stubbur-app.azurewebsites.net 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	eventOwnerId: 0,
	additionalOwnerIds: 
	[
		0
	],
	eventId: 0,
	fromUtc: 0001-01-01,
	toUtc: 0001-01-01,
	compareFromUtc: 0001-01-01,
	compareToUtc: 0001-01-01,
	bucket: String,
	topEventsLimit: 0,
	recentOrdersLimit: 0
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	current: 
	{
		grossNet: 0,
		refunded: 0,
		ticketsAllReal: 0,
		ticketsPaid: 0,
		orders: 0,
		aov: 0
	},
	previous: 
	{
		grossNet: 0,
		refunded: 0,
		ticketsAllReal: 0,
		ticketsPaid: 0,
		orders: 0,
		aov: 0
	},
	delta: 
	{
		grossNet: 
		{
			abs: 0,
			pct: 0,
			dir: String
		},
		refunded: 
		{
			abs: 0,
			pct: 0,
			dir: String
		},
		ticketsAllReal: 
		{
			abs: 0,
			pct: 0,
			dir: String
		},
		ticketsPaid: 
		{
			abs: 0,
			pct: 0,
			dir: String
		},
		orders: 
		{
			abs: 0,
			pct: 0,
			dir: String
		},
		aov: 
		{
			abs: 0,
			pct: 0,
			dir: String
		}
	},
	trend: 
	[
		{
			bucket: 0001-01-01,
			revenue: 0,
			tickets: 0
		}
	],
	previousTrend: 
	[
		{
			bucket: 0001-01-01,
			revenue: 0,
			tickets: 0
		}
	],
	topEvents: 
	[
		{
			eventId: 0,
			eventName: String,
			eventDate: 0001-01-01,
			grossNet: 0,
			paidTickets: 0,
			realTickets: 0,
			orders: 0
		}
	],
	recentOrders: 
	[
		{
			ticketId: 0,
			createdAt: 0001-01-01,
			eventName: String,
			amount: 0,
			ticketCount: 0,
			buyerName: String
		}
	],
	byHourOfDay: 
	[
		{
			hour: 0,
			revenue: 0,
			orders: 0,
			tickets: 0
		}
	],
	byDayOfWeek: 
	[
		{
			dow: 0,
			revenue: 0,
			orders: 0,
			tickets: 0
		}
	],
	topProducts: 
	[
		{
			ticketName: String,
			tickets: 0,
			revenue: 0,
			orders: 0
		}
	],
	hasAnyDataEver: False,
	owners: 
	[
		0
	],
	bucket: String,
	freshnessUtc: 0001-01-01,
	statusCode: 0,
	message: String
}