@chordcommerce/analytics
Version:
Chord Commerce event tracking
92 lines (91 loc) • 4.98 kB
TypeScript
import type { AnyAnalytics, EventProperties, Options, ValidateResult, ChordAnalyticsOptions, AnyOptions, CartViewedInput, IdentifyTraits, CheckoutStartedInput, CheckoutStepCompletedInput, CheckoutStepViewedInput, EmailCapturedInput, ProductListViewedInput, ProductListFilteredInput, ProductAddedInput, ProductClickedInput, VariantClickedInput, ProductRemovedInput, ProductViewedInput, ProductsSearchedInput, CouponAppliedInput, CouponDeniedInput, CouponEnteredInput, CouponRemovedInput, SignedInInput, SignedOutInput, SignedUpInput, LoginStartedInput, ObjectTypes, SubscriptionCancelledInput, NavigationClickedInput, PaymentInfoEnteredInput } from '../types/index.js';
export interface ChordAnalyticsSnippet {
_loadOptions: ChordAnalyticsOptions<ObjectTypes>;
invoked: boolean;
methods: string[];
queue: any[];
factory: (method: string) => () => ChordAnalytics;
load: () => void;
SNIPPET_VERSION: string;
}
export declare class ChordAnalytics<T extends ObjectTypes = ObjectTypes> {
/**
* Allows snippet.js to detect whether this library has been initialized yet.
*/
initialize: true;
/**
* Allows snippet.js to detect whether the snippet has started running yet.
*/
invoked: true;
/**
* Options for ChordAnalytics.
*/
options: ChordAnalyticsOptions<T>;
constructor(options: ChordAnalyticsOptions<T>);
cdp: () => AnyAnalytics;
logger: (message?: any, ...optionalParams: any[]) => void;
/**
* Validate the body of a `track` event against the Chord tracking plan.
*/
validate: (event: string, props: EventProperties) => ValidateResult[];
/**
* Generate the event `meta` property.
*/
meta: () => {
ownership: {
oms_id: string;
store_id: string;
tenant_id: string;
};
version: {
major: number;
minor: number;
patch: number;
};
i18n: import("../types/client.js").i18nMetadata;
platform: import("../types/client.js").platformMetadata;
store: import("../types/client.js").storeMetadata;
};
/**
* Send a `track` event to the CDP with any event name and properties.
*/
track: (event: string, props?: EventProperties, options?: Options) => Promise<void>;
/**
* Send an `identify` event to the CDP with user id and traits.
*/
identify: {
(userId?: string, traits?: IdentifyTraits, options?: AnyOptions): void;
(traits?: IdentifyTraits, options?: AnyOptions): void;
};
/**
* Send a `page` event to the CDP.
*/
page: {
(): void;
};
reset: () => void;
trackCartViewed: (props: CartViewedInput<T>, options?: AnyOptions) => Promise<void>;
trackCheckoutStarted: (props: CheckoutStartedInput<T>, options?: AnyOptions) => Promise<void>;
trackCheckoutStepCompleted: (props: CheckoutStepCompletedInput, options?: AnyOptions) => Promise<void>;
trackCheckoutStepViewed: (props: CheckoutStepViewedInput, options?: AnyOptions) => Promise<void>;
trackCouponApplied: (props: CouponAppliedInput, options?: AnyOptions) => Promise<void>;
trackCouponDenied: (props: CouponDeniedInput, options?: AnyOptions) => Promise<void>;
trackCouponEntered: (props: CouponEnteredInput, options?: AnyOptions) => Promise<void>;
trackCouponRemoved: (props: CouponRemovedInput, options?: AnyOptions) => Promise<void>;
trackEmailCaptured: (props: EmailCapturedInput, options?: AnyOptions) => Promise<void>;
trackProductAdded: (props: ProductAddedInput<T>, options?: AnyOptions) => Promise<void>;
trackProductClicked: (props: ProductClickedInput<T>, options?: AnyOptions) => Promise<void>;
trackVariantClicked: (props: VariantClickedInput<T>, options?: AnyOptions) => Promise<void>;
trackProductListFiltered: (props: ProductListFilteredInput, options?: AnyOptions) => Promise<void>;
trackProductListViewed: (props: ProductListViewedInput<T>, options?: AnyOptions) => Promise<void>;
trackProductRemoved: (props: ProductRemovedInput<T>, options?: AnyOptions) => Promise<void>;
trackProductViewed: (props: ProductViewedInput<T>, options?: AnyOptions) => Promise<void>;
trackProductsSearched: (props: ProductsSearchedInput, options?: AnyOptions) => Promise<void>;
trackSignedIn: (props: SignedInInput, options?: AnyOptions) => Promise<void>;
trackSignedOut: (props?: SignedOutInput, options?: AnyOptions) => Promise<void>;
trackSignedUp: (props?: SignedUpInput, options?: AnyOptions) => Promise<void>;
trackLoginStarted: (props: LoginStartedInput, options?: AnyOptions) => Promise<void>;
trackSubscriptionCancelled: (props: SubscriptionCancelledInput, options?: AnyOptions) => Promise<void>;
trackNavigationClicked: (props: NavigationClickedInput, options?: AnyOptions) => Promise<void>;
trackPaymentInfoEntered: (props: PaymentInfoEnteredInput, options?: AnyOptions) => Promise<void>;
}