/// <summary> /// Searches the specified page. /// </summary> /// <param name="query">The query.</param> /// <param name="hits">The number of hits.</param> public virtual void Search(string query, int hits) { Assert.ArgumentNotNull(query, "query"); if (!Tracker.IsActive) { return; } AnalyticsHelper analyticsHelper = Context.Entity.Resolve <AnalyticsHelper>(); Assert.IsNotNull(analyticsHelper, "analyticsHelper"); if (hits == 0) { string description = analyticsHelper.GetPageEventDescription(EventConstants.EventNoSearchHitsFound); if (string.IsNullOrEmpty(description)) { description = EventConstants.EventNoSearchHitsFound; } string text = description.FormatWith(new { Query = query }); if (Tracker.Current.CurrentPage != null) { var pageEventData = new PageEventData(EventConstants.EventNoSearchHitsFound) { Text = text, Data = query }; Tracker.Current.CurrentPage.Register(pageEventData); } } else { string description = analyticsHelper.GetPageEventDescription(EventConstants.EventSearch); if (string.IsNullOrEmpty(description)) { description = EventConstants.EventSearch; } string text = description.FormatWith(new { Query = query }); if (Tracker.Current.CurrentPage != null) { var pageEventData = new PageEventData(EventConstants.EventSearch) { Text = text, Data = query }; Tracker.Current.CurrentPage.Register(pageEventData); } } }
/// <summary> /// Products the reviewed. /// </summary> /// <param name="productCode">The product code.</param> /// <param name="productName">Name of the product.</param> /// <param name="title">The title.</param> /// <param name="description">The description.</param> /// <param name="rate">The product rate.</param> public virtual void ProductReviewed(string productCode, string productName, string title, string description, string rate) { Assert.ArgumentNotNull(title, "title"); Assert.ArgumentNotNull(description, "description"); Assert.ArgumentNotNull(rate, "rate"); Assert.ArgumentNotNull(productCode, "productCode"); Assert.ArgumentNotNull(productName, "productName"); if (!Tracker.IsActive) { return; } AnalyticsHelper analyticsHelper = Context.Entity.Resolve <AnalyticsHelper>(); Assert.IsNotNull(analyticsHelper, "analyticsHelper"); string eventDescription = analyticsHelper.GetPageEventDescription(EventConstants.EventProductReviewed); if (string.IsNullOrEmpty(eventDescription)) { eventDescription = EventConstants.EventProductReviewed; } string text = eventDescription.FormatWith(new { Title = title, Text = description, Rate = rate, ProductName = productName }); ListString data = new ListString { productCode, title, description, rate, productName }; var currentPage = Tracker.Current.CurrentPage; if (currentPage == null) { return; } var pageEventData = new PageEventData(EventConstants.EventProductReviewed) { Text = text, Data = data.ToString() }; currentPage.Register(pageEventData); }
/// <summary> /// Used to read the querystring parameter from a productlink in list and register event in analytics database. /// </summary> public virtual void FollowListHit() { if (!Tracker.IsActive) { return; } string setting = Settings.GetSetting("Ecommerce.Analytics.EventQueryStringKey"); UrlString urlString = new UrlString(WebUtil.GetRawUrl()); string listName = urlString[setting + "_data"] ?? string.Empty; AnalyticsHelper analyticsHelper = Context.Entity.Resolve <AnalyticsHelper>(); Assert.IsNotNull(analyticsHelper, "analyticsHelper"); string eventDescription = analyticsHelper.GetPageEventDescription(EventConstants.EventUserClickedItemInList); if (string.IsNullOrEmpty(eventDescription)) { eventDescription = EventConstants.EventUserClickedItemInList; } string text = eventDescription.FormatWith(new { List = listName, ProductName = Sitecore.Context.Item["Title"] }); ListString data = new ListString { listName, Sitecore.Context.Item["Title"] }; var currentPage = Tracker.Current.CurrentPage; if (currentPage == null) { return; } var pageEventData = new PageEventData(EventConstants.EventUserClickedItemInList) { Text = text, Data = data.ToString() }; currentPage.Register(pageEventData); }
/// <summary> /// User login succeded. /// </summary> /// <param name="userName">Name of the user.</param> public virtual void UserLoginSucceded(string userName) { Assert.ArgumentNotNull(userName, "userName"); if (!Tracker.IsActive) { return; } AnalyticsHelper analyticsHelper = Context.Entity.Resolve <AnalyticsHelper>(); Assert.IsNotNull(analyticsHelper, "analyticsHelper"); string description = analyticsHelper.GetPageEventDescription(EventConstants.EventUserLoginSucceded); if (string.IsNullOrEmpty(description)) { description = EventConstants.EventUserLoginSucceded; } string text = description.FormatWith(new { Username = userName, }); ListString data = new ListString { userName }; var currentPage = Tracker.Current.CurrentPage; if (currentPage == null) { return; } var pageEventData = new PageEventData(EventConstants.EventUserLoginSucceded) { Text = text, Data = data.ToString() }; currentPage.Register(pageEventData); }
/// <summary> /// Go to check out. /// </summary> public virtual void GoToCheckOut() { if (!Tracker.IsActive) { return; } AnalyticsHelper analyticsHelper = Context.Entity.Resolve <AnalyticsHelper>(); Assert.IsNotNull(analyticsHelper, "analyticsHelper"); string description = analyticsHelper.GetPageEventDescription(EventConstants.EventGoToCheckout); var currentPage = Tracker.Current.CurrentPage; if (currentPage != null) { currentPage.Register(EventConstants.EventGoToCheckout, description); } }
/// <summary> /// Registers the no parameter event. /// </summary> /// <param name="event">The event.</param> public static void RegisterNoParameterEvent(string @event) { if (!Tracker.IsActive) { return; } AnalyticsHelper analyticsHelper = Context.Entity.Resolve <AnalyticsHelper>(); Assert.IsNotNull(analyticsHelper, "analyticsHelper"); string description = analyticsHelper.GetPageEventDescription(@event); var currentPage = Tracker.Current.CurrentPage; if (currentPage != null) { currentPage.Register(@event, description); } }
/// <summary> /// Checkouts the delivery next. /// </summary> /// <param name="deliveryAlternativeOption">The delivery alternative option.</param> /// <param name="notificationOption">The notification option.</param> /// <param name="notificationText">The notification text.</param> public virtual void DeliveryNext(string deliveryAlternativeOption, string notificationOption, string notificationText) { Assert.ArgumentNotNull(deliveryAlternativeOption, "deliveryAlternativeOption"); Assert.ArgumentNotNull(notificationOption, "notificationOption"); Assert.ArgumentNotNull(notificationText, "notificationText"); if (!Tracker.IsActive) { return; } AnalyticsHelper analyticsHelper = Context.Entity.Resolve <AnalyticsHelper>(); Assert.IsNotNull(analyticsHelper, "analyticsHelper"); string description = analyticsHelper.GetPageEventDescription(EventConstants.EventCheckoutDeliveryNext); if (string.IsNullOrEmpty(description)) { description = EventConstants.EventCheckoutDeliveryNext; } string text = description.FormatWith(new { DeliveryAlternativeOption = deliveryAlternativeOption, NotificationOption = notificationOption, NotificationText = notificationText }); ListString data = new ListString { deliveryAlternativeOption, notificationOption, notificationText }; var currentPage = Tracker.Current.CurrentPage; if (currentPage == null) { return; } var pageEventData = new PageEventData(EventConstants.EventCheckoutDeliveryNext) { Text = text, Data = data.ToString() }; currentPage.Register(pageEventData); }
/// <summary> /// Checkout delivery alternative changed. /// </summary> /// <param name="optionTitle">The option title.</param> /// <param name="optionCode">The option code.</param> public virtual void PaymentMethodSelected(string optionTitle, string optionCode) { Assert.ArgumentNotNull(optionTitle, "optionTitle"); Assert.ArgumentNotNull(optionCode, "optionCode"); if (!Tracker.IsActive) { return; } AnalyticsHelper analyticsHelper = Context.Entity.Resolve <AnalyticsHelper>(); Assert.IsNotNull(analyticsHelper, "analyticsHelper"); string description = analyticsHelper.GetPageEventDescription(EventConstants.EventCheckoutPaymentMethodSelected); if (string.IsNullOrEmpty(description)) { description = EventConstants.EventCheckoutPaymentMethodSelected; } string text = description.FormatWith(new { Option = optionTitle, }); ListString data = new ListString { optionCode, optionTitle }; var currentPage = Tracker.Current.CurrentPage; if (currentPage == null) { return; } var pageEventData = new PageEventData(EventConstants.EventCheckoutPaymentMethodSelected) { Text = text, Data = data.ToString() }; currentPage.Register(pageEventData); }
/// <summary> /// Shopping Cart Emptied event. /// </summary> /// <param name="shoppingCartContent">Content of the shopping cart.</param> /// <param name="itemsInShoppingCart">The items in shopping cart.</param> public virtual void ShoppingCartEmptied(string shoppingCartContent, uint itemsInShoppingCart) { Assert.ArgumentNotNull(shoppingCartContent, "shoppingCartContent"); Assert.ArgumentNotNull(itemsInShoppingCart, "itemsInShoppingCart"); if (!Tracker.IsActive) { return; } AnalyticsHelper analyticsHelper = Context.Entity.Resolve <AnalyticsHelper>(); Assert.IsNotNull(analyticsHelper, "analyticsHelper"); string description = analyticsHelper.GetPageEventDescription(EventConstants.EventShoppingCartEmptied); if (string.IsNullOrEmpty(description)) { description = EventConstants.EventShoppingCartEmptied; } string text = description.FormatWith(new { Amount = itemsInShoppingCart, ShoppingCartContent = shoppingCartContent }); ListString data = new ListString { itemsInShoppingCart.ToString(CultureInfo.InvariantCulture), shoppingCartContent }; var currentPage = Tracker.Current.CurrentPage; if (currentPage == null) { return; } var pageEventData = new PageEventData(EventConstants.EventShoppingCartEmptied) { Text = text, Data = data.ToString() }; currentPage.Register(pageEventData); }
/// <summary> /// Add to shopping cart event. /// </summary> /// <param name="productCode">The product code.</param> /// <param name="productName">Name of the product.</param> /// <param name="quantity">The quantity.</param> /// <param name="price">The price.</param> public virtual void AddToShoppingCart(string productCode, string productName, uint quantity, decimal price) { Assert.ArgumentNotNull(productName, "productName"); Assert.ArgumentNotNull(productCode, "productCode"); if (!Tracker.IsActive) { return; } AnalyticsHelper analyticsHelper = Context.Entity.Resolve <AnalyticsHelper>(); Assert.IsNotNull(analyticsHelper, "analyticsHelper"); string description = analyticsHelper.GetPageEventDescription(EventConstants.EventAddToShoppingCart); if (string.IsNullOrEmpty(description)) { description = EventConstants.EventAddToShoppingCart; } string text = description.FormatWith(new { Quantity = quantity, ProductName = productName, Price = price }); ListString data = new ListString { productName, quantity.ToString(CultureInfo.InvariantCulture), price.ToString(CultureInfo.InvariantCulture), productCode.ToString(CultureInfo.InvariantCulture) }; var currentPage = Tracker.Current.CurrentPage; if (currentPage == null) { return; } var pageEventData = new PageEventData(EventConstants.EventAddToShoppingCart) { Text = text, Data = data.ToString() }; currentPage.Register(pageEventData); }