/// <summary>
 /// Base ctor to initialize the messages
 /// </summary>
 /// <param name="merchantID">Google Checkout Merchant ID</param>
 /// <param name="merchantKey">Google Checkout Merchant Key</param>
 /// <param name="env">A String representation of 
 /// <see cref="EnvironmentType"/></param>
 /// <param name="googleOrderNumber">The Google Order Number</param>
 /// <param name="cart">The shopping cart to post</param>
 public OrderRecurrenceRequest(string merchantID,
     string merchantKey, string env, string googleOrderNumber,
     AutoGen.ShoppingCart cart)
     : base(merchantID, merchantKey, env, googleOrderNumber)
 {
     _cart = cart;
 }
Exemplo n.º 2
0
        public Order(AutoGen.MerchantCalculationCallback Callback)
        {
            _ShoppingCart = Callback.shoppingcart;

            _OrderLines = new ArrayList();
            for (int i = 0; i < Callback.shoppingcart.items.Length; i++)
            {
                AutoGen.Item ThisItem = Callback.shoppingcart.items[i];

                XmlNode[] merchantItemPrivateDataNodes = new XmlNode[] {};

                if (ThisItem.merchantprivateitemdata != null &&
                    ThisItem.merchantprivateitemdata.Any != null &&
                    ThisItem.merchantprivateitemdata.Any.Length > 0)
                {
                    merchantItemPrivateDataNodes = ThisItem.merchantprivateitemdata.Any;
                }
                _OrderLines.Add(
                    new OrderLine(ThisItem.itemname, ThisItem.itemdescription,
                                  ThisItem.quantity, ThisItem.unitprice.Value,
                                  ThisItem.taxtableselector,
                                  merchantItemPrivateDataNodes));
            }

            if (Callback.shoppingcart.merchantprivatedata != null &&
                Callback.shoppingcart.merchantprivatedata.Any != null &&
                Callback.shoppingcart.merchantprivatedata.Any.Length > 0)
            {
                _MerchantPrivateDataNodes = Callback.shoppingcart.merchantprivatedata.Any;
            }
        }
Exemplo n.º 3
0
 /// <summary>
 /// Base ctor to initialize the messages
 /// </summary>
 /// <param name="merchantID">Google Checkout Merchant ID</param>
 /// <param name="merchantKey">Google Checkout Merchant Key</param>
 /// <param name="env">A String representation of
 /// <see cref="EnvironmentType"/></param>
 /// <param name="googleOrderNumber">The Google Order Number</param>
 /// <param name="cart">The shopping cart to post</param>
 public OrderRecurrenceRequest(string merchantID,
                               string merchantKey, string env, string googleOrderNumber,
                               AutoGen.ShoppingCart cart)
     : base(merchantID, merchantKey, env, googleOrderNumber)
 {
     _cart = cart;
 }
 /// <summary>
 /// Base ctor to initialize the messages
 /// </summary>
 /// <param name="googleOrderNumber">The Google Order Number</param>
 /// <param name="cart">The shopping cart to post</param>
 public OrderRecurrenceRequest(string googleOrderNumber,
     AutoGen.ShoppingCart cart)
     : base(GCheckoutConfigurationHelper.MerchantID.ToString(),
     GCheckoutConfigurationHelper.MerchantKey,
     GCheckoutConfigurationHelper.Environment.ToString(),
     googleOrderNumber)
 {
     _cart = cart;
 }
Exemplo n.º 5
0
 /// <summary>
 /// Base ctor to initialize the messages
 /// </summary>
 /// <param name="googleOrderNumber">The Google Order Number</param>
 /// <param name="cart">The shopping cart to post</param>
 public OrderRecurrenceRequest(string googleOrderNumber,
                               AutoGen.ShoppingCart cart)
     : base(GCheckoutConfigurationHelper.MerchantID.ToString(),
            GCheckoutConfigurationHelper.MerchantKey,
            GCheckoutConfigurationHelper.Environment.ToString(),
            googleOrderNumber)
 {
     _cart = cart;
 }
Exemplo n.º 6
0
        public static Basket GetAcBasket(AutoGen.ShoppingCart shoppingcart, bool clearShipNTax)
        {
            TraceContext trace    = WebTrace.GetTraceContext();
            string       traceKey = "GoogleCheckout.AC.AcHelper";

            trace.Write(traceKey, "Begin AcHelper.GetAcBasket");

            int basketId = AcHelper.GetAcBasketId(shoppingcart);

            trace.Write(traceKey, "Look for basket ID " + basketId.ToString());
            Basket basket = BasketDataSource.Load(basketId, false);

            if (basket == null)
            {
                trace.Write(traceKey, "Basket not found. Creating New Basket.");
                basket = new Basket();
            }
            else
            {
                //basket found. check if content hash matches
                string contentHash = GetReportedBasketHash(shoppingcart);
                if (contentHash.Equals(GetAcBasketHash(basket)))
                {
                    //hash matched. basket has not changed.
                    if (clearShipNTax)
                    {
                        ClearShippingAndTaxes(basket);
                    }
                    return(basket);
                }
            }

            trace.Write(traceKey, "Clear existing Basket contents and populate with Google Input.");
            basket.Clear();

            if (shoppingcart.items != null)
            {
                trace.Write(traceKey, "Looping " + shoppingcart.items.Length.ToString() + " items in Google cart");
            }
            foreach (Item thisItem in shoppingcart.items)
            {
                trace.Write(traceKey, "itemName: " + thisItem.itemname);
                BasketItem basketItem = new BasketItem();
                basketItem.Name     = thisItem.itemname;
                basketItem.Quantity = (short)thisItem.quantity;
                basketItem.Price    = thisItem.unitprice.Value;

                XmlNode[] privateNodes = thisItem.merchantprivateitemdata.Any;
                foreach (XmlNode privateNode in privateNodes)
                {
                    trace.Write(traceKey, "privateNode.Name: " + privateNode.Name);
                    switch (privateNode.Name)
                    {
                    case "productId":
                        basketItem.ProductId = AlwaysConvert.ToInt(privateNode.InnerText);
                        break;

                    case "orderItemType":
                        basketItem.OrderItemType = (OrderItemType)AlwaysConvert.ToEnum(typeof(OrderItemType), privateNode.InnerText, OrderItemType.Product, true);
                        break;

                    case "shippable":
                        basketItem.Shippable = (Shippable)AlwaysConvert.ToEnum(typeof(Shippable), privateNode.InnerText, Shippable.Yes, true);
                        break;

                    case "taxCodeId":
                        basketItem.TaxCodeId = AlwaysConvert.ToInt(privateNode.InnerText);
                        break;

                    case "weight":
                        basketItem.Weight = AlwaysConvert.ToDecimal(privateNode.InnerText);
                        break;

                    case "wrapStyleId":
                        basketItem.WrapStyleId = AlwaysConvert.ToInt(privateNode.InnerText);
                        break;

                    case "optionList":
                        basketItem.OptionList = privateNode.InnerText;
                        break;

                    case "giftMessage":
                        basketItem.GiftMessage = privateNode.InnerText;
                        break;

                    case "lineMessage":
                        basketItem.LineMessage = privateNode.InnerText;
                        break;

                    case "lastModifiedDate":
                        basketItem.LastModifiedDate = AlwaysConvert.ToDateTime(privateNode.InnerText, LocaleHelper.LocalNow);
                        break;

                    case "orderBy":
                        basketItem.OrderBy = AlwaysConvert.ToInt16(privateNode.InnerText);
                        break;

                    case "parentItemId":
                        basketItem.ParentItemId = AlwaysConvert.ToInt(privateNode.InnerText);
                        break;

                    case "sku":
                        basketItem.Sku = privateNode.InnerText;
                        break;

                    case "wishlistItemId":
                        basketItem.WishlistItemId = AlwaysConvert.ToInt(privateNode.InnerText);
                        break;

                    case "basketItemKitProducts":
                        List <string> kitList = new List <string>();
                        foreach (XmlNode subNode in privateNode.ChildNodes)
                        {
                            if (subNode.Name.Equals("kitProductId"))
                            {
                                int        kitProductId = AlwaysConvert.ToInt(subNode.InnerText);
                                KitProduct kitProd      = KitProductDataSource.Load(kitProductId);
                                if (kitProd != null)
                                {
                                    kitList.Add(kitProductId.ToString());
                                }
                            }
                        }
                        if (kitList.Count > 0)
                        {
                            basketItem.KitList = string.Join(",", kitList.ToArray());
                        }
                        break;

                    case "inputs":
                        foreach (XmlNode subNode in privateNode.ChildNodes)
                        {
                            if (subNode.Name.Equals("itemInput"))
                            {
                                int inputFieldId = 0;
                                foreach (XmlAttribute attr in subNode.Attributes)
                                {
                                    if (attr.Name.Equals("inputFieldId"))
                                    {
                                        inputFieldId = AlwaysConvert.ToInt(attr.InnerText);
                                        break;
                                    }
                                }
                                InputField inputField = InputFieldDataSource.Load(inputFieldId);
                                if (inputField != null)
                                {
                                    BasketItemInput bInput = new BasketItemInput();
                                    bInput.InputFieldId = inputFieldId;
                                    bInput.InputValue   = subNode.InnerText;
                                    basketItem.Inputs.Add(bInput);
                                }
                            }
                        }
                        break;

                    case "couponCode":
                        basketItem.Sku = privateNode.InnerText;
                        break;
                    }
                }
                basket.Items.Add(basketItem);
            }
            trace.Write(traceKey, "Saving basket");
            basket.Save();

            string key = "Basket_" + basket.BasketId.ToString();

            ContextCache.SetObject(key, basket);

            trace.Write(traceKey, "Basket created, returning to caller (End GetAcBasket)");
            return(basket);
        }
Exemplo n.º 7
0
 public static Basket GetAcBasket(AutoGen.ShoppingCart shoppingcart)
 {
     return(GetAcBasket(shoppingcart, false));
 }