/// <summary>
        /// Records a product view which doesn't belong to a category
        /// </summary>
        static private void ECommerceViewWithoutCategory()
        {
            var piwikTracker = new PiwikTracker(SiteId, PiwikBaseUrl);

            piwikTracker.SetUserAgent(UA);

            piwikTracker.SetEcommerceView("SKU VERY nice indeed", "PRODUCT name");

            var response = piwikTracker.DoTrackPageView("another incredible title!");

            DisplayDebugInfo(response);
        }
        /// <summary>
        /// Records a category page view
        /// </summary>
        static private void ECommerceCategoryView()
        {
            var piwikTracker = new PiwikTracker(SiteId, PiwikBaseUrl);

            piwikTracker.SetUserAgent(UA);

            piwikTracker.SetEcommerceView("", "", new List <string> {
                "Electronics & Cameras"
            });
            var response = piwikTracker.DoTrackPageView("Looking at Electronics & Cameras page with a page level custom variable");

            DisplayDebugInfo(response);
        }
        /// <summary>
        /// Records a product view
        /// </summary>
        static private void ECommerceView()
        {
            var piwikTracker = new PiwikTracker(SiteId, PiwikBaseUrl);

            piwikTracker.SetUserAgent(UA);

            piwikTracker.SetEcommerceView("SKU2", "PRODUCT name", new List <string> {
                "Electronics & Cameras", "Clothes"
            });

            var response = piwikTracker.DoTrackPageView("incredible title!");

            DisplayDebugInfo(response);
        }
Exemplo n.º 4
0
        public void SetEcommerceView_Test(string sku, string name, string categories, double price)
        {
            // Arrange
            List <string> categoryList = null;

            if (!string.IsNullOrEmpty(categories))
            {
                categoryList = categories.Split(',').ToList();
            }
            // Act
            _sut.SetEcommerceView(sku, name, categoryList, price);
            var actualRequest = _sut.GetRequest(SiteId);
            // Assert
            var actualRequestArguments = new Uri(actualRequest).ParseQueryString().ToKeyValuePairs().ToDictionary(kvp => kvp.Key, kvp => kvp.Value);
            var actualVariablesById    = JsonConvert.DeserializeObject <Dictionary <int, object> >(actualRequestArguments["cvar"]);

            Assert.That(actualVariablesById.Count, Is.EqualTo(4));
            foreach (var variableById in actualVariablesById)
            {
                Console.WriteLine(variableById.Key + "=" + variableById.Value);
                var variableValue = JsonConvert.DeserializeObject <string[]>(variableById.Value.ToString());
                switch (variableById.Key)
                {
                case PiwikTracker.CvarIndexEcommerceItemPrice:
                    Assert.That(variableValue, Is.EquivalentTo(new[] { "_pkp", price.ToString("0.##", CultureInfo.InvariantCulture) }));
                    break;

                case PiwikTracker.CvarIndexEcommerceItemName:
                    Assert.That(variableValue, Is.EquivalentTo(new[] { "_pkn", name }));
                    break;

                case PiwikTracker.CvarIndexEcommerceItemCategory:
                    if (string.IsNullOrEmpty(categories))
                    {
                        continue;
                    }
                    Assert.That(variableValue, Is.EquivalentTo(new[] { "_pkc", new JavaScriptSerializer().Serialize(categoryList) }));
                    break;

                case PiwikTracker.CvarIndexEcommerceItemSku:
                    Assert.That(variableValue, Is.EquivalentTo(new[] { "_pks", sku }));
                    break;

                default:
                    throw new NotImplementedException();
                }
            }
        }