/// <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; }
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; } }
/// <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; }
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); }
public static Basket GetAcBasket(AutoGen.ShoppingCart shoppingcart) { return(GetAcBasket(shoppingcart, false)); }