Ejemplo n.º 1
0
        private void SetupTransactionItems(StringBuilder script, AnalyticsTransaction transaction)
        {
            foreach (AnalyticsTransactionItem item in transaction.Items)
            {
                if (item.IsValid())
                {
                    script.Append(trackerName + "._addItem(");
                    script.Append("\"" + item.OrderId + "\",");
                    script.Append("\n");

                    script.Append("\"" + item.Sku + "\",");
                    script.Append("\n");

                    script.Append("\"" + item.ProductName + "\",");
                    script.Append("\n");

                    script.Append("\"" + item.Category + "\",");
                    script.Append("\n");

                    script.Append("\"" + item.Price + "\",");
                    script.Append("\n");

                    script.Append("\"" + item.Quantity + "\"");
                    script.Append("\n");

                    script.Append(");");
                    script.Append("\n");
                }
            }
        }
        private void DoGoogleAnalyticsTracking()
        {
            if (order == null)
            {
                return;
            }
            if (order.AnalyticsTracked)
            {
                return;
            }
            if (store == null)
            {
                return;
            }

            try
            {
                mojoGoogleAnalyticsScript analytics = Page.Master.FindControl("mojoGoogleAnalyticsScript1") as mojoGoogleAnalyticsScript;
                if (analytics == null)
                {
                    DoAsyncTracking(); return;
                }

                AnalyticsTransaction transaction = new AnalyticsTransaction();
                transaction.OrderId   = order.OrderGuid.ToString();
                transaction.City      = order.CustomerCity;
                transaction.Country   = order.CustomerCountry;
                transaction.State     = order.CustomerState;
                transaction.StoreName = siteSettings.SiteName + " - " + store.Name;
                transaction.Tax       = order.TaxTotal.ToString(CultureInfo.InvariantCulture);
                transaction.Total     = order.OrderTotal.ToString(CultureInfo.InvariantCulture);

                foreach (OrderOffer offer in order.OrderOffers)
                {
                    AnalyticsTransactionItem item = new AnalyticsTransactionItem();
                    item.Category    = string.Empty;
                    item.OrderId     = order.OrderGuid.ToString();
                    item.Price       = offer.OfferPrice.ToString(CultureInfo.InvariantCulture);
                    item.ProductName = offer.Name;
                    item.Quantity    = offer.Quantity.ToString(CultureInfo.InvariantCulture);
                    item.Sku         = offer.OfferGuid.ToString();
                    transaction.Items.Add(item);
                }

                if (transaction.IsValid())
                {
                    analytics.Transactions.Add(transaction);
                    Order.TrackAnalytics(order.OrderGuid);
                }
            }
            catch (Exception ex)
            {
                log.Error("error tracking order in google analytics.", ex);
            }
        }
Ejemplo n.º 3
0
 private void SetupTransactionItems(HtmlTextWriter writer, AnalyticsTransaction transaction)
 {
     foreach (AnalyticsTransactionItem item in transaction.Items)
     {
         if (item.IsValid())
         {
             writer.Write("_gaq.push(['_addItem',");
             writer.Write("'" + item.OrderId + "',");
             writer.Write("'" + item.Sku + "',");
             writer.Write("'" + item.ProductName + "',");
             writer.Write("'" + item.Category + "',");
             writer.Write("'" + item.Price + "',");
             writer.Write("'" + item.Quantity + "'");
             writer.Write("]);");
         }
     }
 }
Ejemplo n.º 4
0
 private void SetupUniversalTransactionItems(HtmlTextWriter writer, AnalyticsTransaction transaction)
 {
     foreach (AnalyticsTransactionItem item in transaction.Items)
     {
         if (item.IsValid())
         {
             writer.Write("ga('ecommerce:addItem', {");
             writer.Write("'id':'" + item.OrderId + "'");
             writer.Write(",'name':'" + item.ProductName + "'");
             writer.Write(",'sku':'" + item.Sku + "'");
             writer.Write(",'category':'" + item.Category + "'");
             writer.Write(",'price':'" + item.Price + "'");
             writer.Write(",'quantity':'" + item.Quantity + "'");
             writer.Write("});");
         }
     }
 }
        private void DoAsyncTracking()
        {
            AnalyticsAsyncTopScript analytics = Page.Master.FindControl("analyticsTop") as AnalyticsAsyncTopScript;

            if (analytics == null)
            {
                return;
            }

            AnalyticsTransaction transaction = new AnalyticsTransaction();

            transaction.OrderId   = order.OrderGuid.ToString();
            transaction.City      = order.CustomerCity;
            transaction.Country   = order.CustomerCountry;
            transaction.State     = order.CustomerState;
            transaction.StoreName = siteSettings.SiteName + " - " + store.Name;
            transaction.Tax       = order.TaxTotal.ToString(CultureInfo.InvariantCulture);
            transaction.Total     = order.OrderTotal.ToString(CultureInfo.InvariantCulture);

            foreach (OrderOffer offer in order.OrderOffers)
            {
                AnalyticsTransactionItem item = new AnalyticsTransactionItem();
                item.Category    = string.Empty;
                item.OrderId     = order.OrderGuid.ToString();
                item.Price       = offer.OfferPrice.ToString(CultureInfo.InvariantCulture);
                item.ProductName = offer.Name;
                item.Quantity    = offer.Quantity.ToInvariantString();
                item.Sku         = offer.OfferGuid.ToString();
                transaction.Items.Add(item);
            }

            if (transaction.IsValid())
            {
                analytics.Transactions.Add(transaction);
                Order.TrackAnalytics(order.OrderGuid);
            }
        }