public void Missing_Id_Or_Name_Throws_Exception()
        {
            // Arrange
            ProductFieldObject product = new ProductFieldObject();

            product.Brand = "EPiServer";

            // Act
            string json = product.ToString();
        }
        public void Position_Is_Included_When_Not_Default_Value()
        {
            // Arrange
            ProductFieldObject product = new ProductFieldObject();

            product.Id       = "code";
            product.Position = 1;

            // Act
            string json = product.ToString();

            // Assert
            Assert.AreEqual(@"{""id"":""code"",""position"":1}", json);
        }
        public void Id_And_Brand_Is_Converted_Correctly()
        {
            // Arrange
            ProductFieldObject product = new ProductFieldObject();

            product.Id    = "code123";
            product.Brand = "EPiServer";

            // Act
            string json = product.ToString();

            // Assert
            Assert.AreEqual(@"{""id"":""code123"",""brand"":""EPiServer""}", json);
        }
        /// <summary>
        /// Tracks a product add command.
        /// </summary>
        /// <remarks>
        /// Typically used in combination with the click, detail, add,
        /// remove, checkout, purchase and refund actions
        /// </remarks>
        /// <example>
        /// ga('ec:addProduct', {               // Provide product details in an productFieldObject.
        ///   'id': 'P12345',                   // Product ID (string).
        ///   'name': 'Android Warhol T-Shirt', // Product name (string).
        ///   'category': 'Apparel',            // Product category (string).
        ///   'brand': 'Google',                // Product brand (string).
        ///   'variant': 'black',               // Product variant (string).
        ///   'price': '29.20',                 // Product price (currency).
        ///   'coupon': 'APPARELSALE',          // Product coupon (string).
        ///   'quantity': 1                     // Product quantity (number).
        /// });
        /// </example>
        /// <see cref="https://developers.google.com/analytics/devguides/collection/analyticsjs/enhanced-ecommerce#action-types"/>
        public string TrackProductAdd(string code, string name, string category = null, string brand = null, string variant = null, string coupon = null, int position = 0, double price = 0, int quantity = 0)
        {
            ProductFieldObject impression = new ProductFieldObject()
            {
                Id       = code,
                Name     = name,
                Category = category,
                Brand    = brand,
                Variant  = variant,
                Coupon   = coupon,
                Position = position,
                Price    = price,
                Quantity = quantity
            };

            return(impression.ToString("ec:addProduct"));
        }
        public void Verify_Formatting_Of_Action()
        {
            // Arrange
            ProductFieldObject product = new ProductFieldObject();

            product.Id       = "code";
            product.Position = 1;

            // Act
            string json = product.ToString("ec:addProduct");

            // Inspect
            Debug.Write(json);

            // Assert
            Assert.AreEqual(@"ga(""ec:addProduct"",{""id"":""code"",""position"":1});", json);
        }
 public ProductClickCommand(ProductClickActionFieldObject clickAction, ProductFieldObject product, EventCommand trackingEvent)
 {
     _clickAction   = clickAction;
     _product       = product;
     _trackingEvent = trackingEvent;
 }
Esempio n. 7
0
 public AddToBasketCommand(ProductFieldObject product, EventCommand trackingEvent)
 {
     _product       = product;
     _trackingEvent = trackingEvent;
 }
 public ProductDetailCommand(ProductFieldObject product)
 {
     _product = product;
 }
 public ProductDetailMeasurement(string currencyCode, ProductFieldObject productField)
 {
     _productField = productField;
     _currencyCode = currencyCode;
 }
Esempio n. 10
0
 public ProductClickEvent(string currencyCode, string list, ProductFieldObject product) : base("productClick")
 {
     _productField = product;
     _currencyCode = currencyCode;
     _list         = list;
 }
 public RemoveFromBasketCommand(ProductFieldObject product, EventCommand trackingEvent)
 {
     _product       = product;
     _trackingEvent = trackingEvent;
 }