Code: Select all
<%@ Control Language="C#" ClassName="AddToCartEx" %>
<script runat="server">
private int _ProductId;
protected void Page_Load(object sender, EventArgs e)
{
_ProductId = PageHelper.GetProductId();
if (_ProductId > 0)
AddToCart();
}
protected void AddToCart()
{
//GET THE PRODUCT ID FROM THE URL
Product product = ProductDataSource.Load(_ProductId);
if (product != null)
{
string lastShoppingUrl = NavigationHelper.GetLastShoppingUrl();
if (product.HasChoices)
{
//CANT ADD DIRECTLY TO BASKET, SEND TO MORE INFO
Response.Redirect(product.NavigateUrl);
}
BasketItem basketItem = BasketItemDataSource.CreateForProduct(_ProductId, 1);
if (basketItem != null)
{
// DETERMINE IF THE LICENSE AGREEMENT MUST BE REQUESTED
BasketItemLicenseAgreementCollection basketItemLicenseAgreements = new BasketItemLicenseAgreementCollection(basketItem, LicenseAgreementMode.OnAddToBasket);
if ((basketItemLicenseAgreements.Count > 0))
{
// THESE AGREEMENTS MUST BE ACCEPTED TO ADD TO BASKET
List<BasketItem> basketItems = new List<BasketItem>();
basketItems.Add(basketItem);
string guidKey = Guid.NewGuid().ToString("N");
Cache.Add(guidKey, basketItems, null, System.Web.Caching.Cache.NoAbsoluteExpiration, new TimeSpan(0, 10, 0), System.Web.Caching.CacheItemPriority.NotRemovable, null);
string acceptUrl = Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes("~/Basket.aspx"));
string declineUrl = Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(Page.ResolveClientUrl(product.NavigateUrl)));
Response.Redirect("~/BuyWithAgreement.aspx?Items=" + guidKey + "&AcceptUrl=" + acceptUrl + "&DeclineUrl=" + declineUrl);
}
//ADD ITEM TO BASKET
Basket basket = Token.Instance.User.Basket;
basket.Items.Add(basketItem);
basket.Save();
//Determine if there are associated Upsell products
if (basketItem.Product.GetUpsellProducts(basket).Count > 0)
{
//redirect to upsell page
string returnUrl = Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(Request.Url.ToString()));
Response.Redirect("~/ProductAccessories.aspx?ProductId=" + basketItem.ProductId + "&ReturnUrl=" + returnUrl);
}
// IF BASKET HAVE SOME VALIDATION PROBLEMS MOVE TO BASKET PAGE
List<string> basketMessages;
if (!basket.Validate(out basketMessages))
{
Session.Add("BasketMessage", basketMessages);
Response.Redirect(NavigationHelper.GetBasketUrl());
}
//IF THERE IS NO REGISTERED BASKET CONTROL, WE MUST GO TO BASKET PAGE
if (!PageHelper.HasBasketControl(this.Page)) Response.Redirect(NavigationHelper.GetBasketUrl());
}
}
}
</script>
<asp:Label ID="Label1" runat="server" Text="Add products to cart from affliates site." Font-Bold="true"></asp:Label>