BasketItemManager
The class manages product items in the basket.
Namespace
Ektron.Cms.Framework.Commerce.BasketItemManager
Constructors
BasketItemManager()
BasketItemManager(ApiAccessMode)
Properties
ApiMode
. Gets or sets the current API access mode. If set toAdmin
, the API runs with the permissions of an administrator.ApplicationPath
. Gets the application path to the Workarea.ContentLanguage
. Gets or sets the current content language.InPreviewMode
. Gets or sets the preview mode and returns true if the site is in preview mode.IsCommerceEnabled
. Checks for a commerce license.RequestInformation
. Gets information about the current request.SitePath
. Gets the site path.UserId
. Gets or sets the ID of the currently logged-in user.
Methods
Add
Add(Ektron.Cms.Commerce.BasketItemData)
Adds the product or variant or kit items to the basket.
Authenticated users
- CMS Administrators
- Users that have access permission
To create anonymous user access with this method, set the API access mode (ApiMode
) in the Manager class when instantiating the class.
Fields
*=Required
- * Basket ID
- * Product ID
- Quantity
Parameters
basketItemData
. BasketItemData object to be added.
Returns
Returns the added basket item data.
.aspx code snippet
<ol class="formFields"> <li class="clearfix"> <ektronUI:Label ID="uxBasketIdLabel" AssociatedControlID="uxBasketId" CssClass="span-5 last" runat="server" Text="* Basket Id:" /> <ektronUI:TextField ID="uxBasketId" CssClass="span-6" runat="server" ValidationGroup="RegisterValidationGroup" Text="" /> </li> <div class="ektronTopSpace"></div> <li class="clearfix"> <ektronUI:Label ID="uxProductIdLabel" AssociatedControlID="uxProductId" CssClass="span-5 last" runat="server" Text="* Product Id:" /> <ektronUI:TextField ID="uxProductId" CssClass="span-6" runat="server" ValidationGroup="RegisterValidationGroup" Text="" /> </li> <div class="ektronTopSpace"></div> <li class="clearfix"> <ektronUI:Label ID="uxProductQuantityLabel" AssociatedControlID="uxProductQuantity" CssClass="span-5 last" runat="server" Text=" Quantity:" /> <ektronUI:TextField ID="uxProductQuantity" CssClass="span-6" runat="server" ValidationGroup="RegisterValidationGroup" Text="" /> </li> <div class="ektronTopSpace"></div> <li class="clearfix"> <ektronUI:Button ID="uxSubmit" runat="server" OnClick="uxSubmit_Click" Text="Add"></ektronUI:Button> <ektronUI:Label ID="uxRequiredLabel" CssClass="span-5" runat="server" Text="* - Required" /> </li> </ol> <asp:Literal ID="uxMessage" runat="server"></asp:Literal>
.aspx.cs code-behind namespace
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using Ektron.Cms; using Ektron.Cms.Commerce; using Ektron.Cms.Framework.Commerce;
.aspx.cs code-behind method
protected void uxSubmit_Click(object sender, EventArgs e) { try { BasketItemManager basketItemManager = new BasketItemManager(); Ektron.Cms.Framework.Commerce.BasketManager basketManager = new Ektron.Cms.Framework.Commerce.BasketManager(); long basketId = long.Parse(uxBasketId.Text); long productId = long.Parse(uxProductId.Text); int quantity= int.Parse(uxProductQuantity.Text); BasketData basketData = basketManager.GetItem(basketId); if (basketData != null) { BasketItemData basketItemData = new BasketItemData() { BasketId = basketId, ProductId = productId, ProductType = Ektron.Cms.Common.EkEnumeration.CatalogEntryType.Product, Quantity = quantity }; BasketItemData newBasketItemData = basketItemManager.Add(basketItemData); if (newBasketItemData.Id > 0) { MessageUtilities.UpdateMessage(uxMessage, "Product " + productId + " is added with basket " + basketId + " with new basketItem Id " + newBasketItemData.Id, Message.DisplayModes.Success); } else { MessageUtilities.UpdateMessage(uxMessage, "Product adding process has been failed. ", Message.DisplayModes.Warning); } } else { MessageUtilities.UpdateMessage(uxMessage, "Invalid basket Id. ", Message.DisplayModes.Warning); } uxPageMultiView.SetActiveView(uxViewMessage); } catch (Exception ex) { MessageUtilities.UpdateMessage(uxMessage, ex.Message, Message.DisplayModes.Error); uxPageMultiView.SetActiveView(uxViewMessage); } }
Delete
Delete(System.Int64,System.Int64)
Deletes the basket item from the basket.
Authenticated users
- CMS Administrators
- Users that have access permission
To create anonymous user access with this method, set the API access mode (ApiMode
) in the Manager class when instantiating the class.
Fields
*=Required
- * Basket Item ID
- * Basket ID
Parameters
basketItemId
. Basket Item ID.basketId
.aspx code snippet
<ol class="formFields"> <li class="clearfix"> <ektronUI:Label ID="uxBasketItemIdLabel" AssociatedControlID="uxBasketItemId" CssClass="span-5 last" runat="server" Text="* BasketItem Id:" /> <ektronUI:TextField ID="uxBasketItemId" CssClass="span-6" runat="server" ValidationGroup="RegisterValidationGroup" Text="" /> </li> <div class="ektronTopSpace"></div> <li class="clearfix"> <ektronUI:Label ID="uxBasketIdLabel" AssociatedControlID="uxBasketId" CssClass="span-5 last" runat="server" Text="* Basket Id:" /> <ektronUI:TextField ID="uxBasketId" CssClass="span-6" runat="server" ValidationGroup="RegisterValidationGroup" Text="" /> </li> <div class="ektronTopSpace"></div> <li class="clearfix"> <ektronUI:Button ID="uxSubmit" runat="server" OnClick="uxSubmit_Click" Text="Delete"></ektronUI:Button> <ektronUI:Label ID="uxRequiredLabel" CssClass="span-5" runat="server" Text="* - Required" /> </li> </ol> <asp:Literal ID="uxMessage" runat="server"></asp:Literal>
.aspx.cs code-behind namespace
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using Ektron.Cms; using Ektron.Cms.Commerce; using Ektron.Cms.Framework.Commerce;
.aspx.cs code-behind method
protected void uxSubmit_Click(object sender, EventArgs e) { try { BasketItemManager basketItemManager = new BasketItemManager(); Ektron.Cms.Framework.Commerce.BasketManager basketManager = new Ektron.Cms.Framework.Commerce.BasketManager(); long basketId = long.Parse(uxBasketId.Text); long basketItemId = long.Parse(uxBasketItemId.Text); BasketData basket = basketManager.GetItem(basketId); if (basket != null) { if (basket.Items.FindAll(x => x.Id.Equals(basketItemId)).ToList().Count > 0) { basketItemManager.Delete(basketItemId, basketId); MessageUtilities.UpdateMessage(uxMessage, "Basket item " + basketItemId + " has been removed from the basket " + basketId, Message.DisplayModes.Success); } else { MessageUtilities.UpdateMessage(uxMessage, "Basket Item Id is not valid. ", Message.DisplayModes.Warning); } } else { MessageUtilities.UpdateMessage(uxMessage, "Basket Id is not valid. ", Message.DisplayModes.Warning); } uxPageMultiView.SetActiveView(uxViewMessage); } catch (Exception ex) { MessageUtilities.UpdateMessage(uxMessage, ex.Message, Message.DisplayModes.Error); uxPageMultiView.SetActiveView(uxViewMessage); } }
GetKitConfiguration (shopper)
GetKitConfiguration(System.Int64,System.String)
Retrieves the kit configuration data.
Authenticated users
- CMS Administrators
- Users that have access permission
To create anonymous user access with this method, set the API access mode (ApiMode
) in the Manager class when instantiating the class.
Fields
*=Required
- * Basket Item ID
- Shopper ID
Parameters
basketItemId
. ID of the basket item.shopperId
. ID of the shopper; it should be a GUID.
Returns
Kit configuration data for the basket item.
.aspx code snippet
<ol class="formFields"> <li class="clearfix"> <ektronUI:Label ID="uxBasketItemIdLabel" AssociatedControlID="uxBasketItemId" CssClass="span-5 last" runat="server" Text="* BasketItem Id:" /> <ektronUI:TextField ID="uxBasketItemId" CssClass="span-6" runat="server" ValidationGroup="RegisterValidationGroup" Text="" /> </li> <div class="ektronTopSpace"></div> <li class="clearfix"> <ektronUI:Label ID="uxShopperIdLabel" AssociatedControlID="uxShopperId" CssClass="span-5 last" runat="server" Text="* Shopper Id:" /> <ektronUI:TextField ID="uxShopperId" CssClass="span-6" runat="server" ValidationGroup="RegisterValidationGroup" Text="" /> </li> <div class="ektronTopSpace"></div> <li class="clearfix"> <ektronUI:Button ID="uxSubmit" runat="server" OnClick="uxSubmit_Click" Text="GetKitConfigurationForShopper"></ektronUI:Button> <ektronUI:Label ID="uxRequiredLabel" CssClass="span-5" runat="server" Text="* - Required" /> </li> </ol> <ol class="formFields"> <li class="clearfix"> <asp:Literal ID="uxMessage" runat="server"></asp:Literal> </li> <li class="clearfix"> <asp:Literal ID="uxKitConfigId" runat="server"></asp:Literal> </li> <li class="clearfix"> <asp:Literal ID="uxBasketItemId" runat="server"></asp:Literal> </li> <li class="clearfix"> <asp:Literal ID="uxPriceModifier" runat="server"></asp:Literal> </li> <li class="clearfix"> <asp:Literal ID="uxOptionName" runat="server"></asp:Literal> </li> </ol>
.aspx.cs code-behind namespace
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using Ektron.Cms; using Ektron.Cms.Framework.User; using Ektron.Cms.Framework.Community;
.aspx.cs code-behind method
protected void uxSubmit_Click(object sender, EventArgs e) { try { BasketItemManager basketItemManager = new BasketItemManager(); long basketItemId = long.Parse(uxBasketItemId.Text); string shopperId = uxShopperId.Text; KitConfigData kitConfigData = basketItemManager.GetKitConfiguration(basketItemId, shopperId); if (kitConfigData != null) { MessageUtilities.UpdateMessage(uxMessage, "Details of the kit coonfiguration for the basket item " + basketItemId + " is given below.", Message.DisplayModes.Success); uxKitConfigId.Text = " KitConfig Id : " + kitConfigData.Id; uxBasketItemIds.Text = " BasketItem Id : " + kitConfigData.BasketItemId; uxPriceModifier.Text = " Price Modifier : " + kitConfigData.PriceModifier; uxOptionName.Text = " Option Name : " + kitConfigData.Groups.Select(x => x.Name).FirstOrDefault(); } else { MessageUtilities.UpdateMessage(uxMessage, "Basket item id or user id is not valid. ", Message.DisplayModes.Warning); } uxPageMultiView.SetActiveView(uxViewMessage); } catch (Exception ex) { MessageUtilities.UpdateMessage(uxMessage, ex.Message, Message.DisplayModes.Error); uxPageMultiView.SetActiveView(uxViewMessage); } }
GetKitConfiguration(user)
GetKitConfiguration(System.Int64,System.Int64)
Retrieves the kit configuration data.
Authenticated users
- CMS Administrators
- Users that have access permission
To create anonymous user access with this method, set the API access mode (ApiMode
) in the Manager class when instantiating the class.
Fields
*=Required
- * Basket Item ID
- * User ID
Parameters
basketItemId
. ID of the basket item.userId
. ID of the user.
Returns
Kit configuration data for the basket item.
.aspx code snippet
<ol class="formFields"> <li class="clearfix"> <ektronUI:Label ID="uxBasketItemIdLabel" AssociatedControlID="uxBasketItemId" CssClass="span-5 last" runat="server" Text="* BasketItem Id:" /> <ektronUI:TextField ID="uxBasketItemId" CssClass="span-6" runat="server" ValidationGroup="RegisterValidationGroup" Text="" /> </li> <div class="ektronTopSpace"></div> <li class="clearfix"> <ektronUI:Label ID="uxUserIdLabel" AssociatedControlID="uxUserId" CssClass="span-5 last" runat="server" Text="* User Id:" /> <ektronUI:TextField ID="uxUserId" CssClass="span-6" runat="server" ValidationGroup="RegisterValidationGroup" Text="" /> </li> <div class="ektronTopSpace"></div> <li class="clearfix"> <ektronUI:Button ID="uxSubmit" runat="server" OnClick="uxSubmit_Click" Text="GetKitConfiguration"></ektronUI:Button> <ektronUI:Label ID="uxRequiredLabel" CssClass="span-5" runat="server" Text="* - Required" /> </li> </ol> <ol class="formFields"> <li class="clearfix"> <asp:Literal ID="uxMessage" runat="server"></asp:Literal> </li> <li class="clearfix"> <asp:Literal ID="uxKitConfigId" runat="server"></asp:Literal> </li> <li class="clearfix"> <asp:Literal ID="uxBasketItemId" runat="server"></asp:Literal> </li> <li class="clearfix"> <asp:Literal ID="uxPriceModifier" runat="server"></asp:Literal> </li> <li class="clearfix"> <asp:Literal ID="uxOptionName" runat="server"></asp:Literal> </li> </ol>
.aspx.cs code-behind namespace
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using Ektron.Cms; using Ektron.Cms.Framework.User; using Ektron.Cms.Framework.Community;
.aspx.cs code-behind method
protected void uxSubmit_Click(object sender, EventArgs e) { try { BasketItemManager basketItemManager = new BasketItemManager(); long basketItemId = long.Parse(uxBasketItemId.Text); long userId = long.Parse(uxUserId.Text); KitConfigData kitConfigData = basketItemManager.GetKitConfiguration(basketItemId, userId); if (kitConfigData != null) { MessageUtilities.UpdateMessage(uxMessage, "Details of the kit coonfiguration for the basket item " + basketItemId + " is given below.", Message.DisplayModes.Success); uxKitConfigId.Text = " KitConfig Id : " + kitConfigData.Id; uxBasketItemIds.Text = " BasketItem Id : " + kitConfigData.BasketItemId; uxPriceModifier.Text = " Price Modifier : " + kitConfigData.PriceModifier; uxOptionName.Text = " Option Name : " + kitConfigData.Groups.Select(x => x.Name).FirstOrDefault(); } else { MessageUtilities.UpdateMessage(uxMessage, "Basket item id or user id is not valid. ", Message.DisplayModes.Warning); } uxPageMultiView.SetActiveView(uxViewMessage); } catch (Exception ex) { MessageUtilities.UpdateMessage(uxMessage, ex.Message, Message.DisplayModes.Error); uxPageMultiView.SetActiveView(uxViewMessage); } }
Update
Update(Ektron.Cms.Commerce.BasketItemData)
Updates the kit configuration data item in the basket.
Authenticated users
- CMS Administrators
- Users that have access permission
To create anonymous user access with this method, set the API access mode (ApiMode
) in the Manager class when instantiating the class.
Fields
*=Required
- * Product ID
- * Basket Item ID
Parameters
basketItemData
. BasketItemData object to be updated.
Returns
Returns the BasketItemData object.
.aspx code snippet
<ol class="formFields"> <li class="clearfix"> <ektronUI:Label ID="uxProductIdLabel" AssociatedControlID="uxProductId" CssClass="span-5 last" runat="server" Text="* Product Id:" /> <ektronUI:TextField ID="uxProductId" CssClass="span-6" runat="server" ValidationGroup="RegisterValidationGroup" Text="" /> </li> <div class="ektronTopSpace"></div> <li class="clearfix"> <ektronUI:Label ID="uxBasketItemIdLabel" AssociatedControlID="uxBasketItemId" CssClass="span-5 last" runat="server" Text="* BasketItem Id:" /> <ektronUI:TextField ID="uxBasketItemId" CssClass="span-6" runat="server" ValidationGroup="RegisterValidationGroup" Text="" /> </li> <div class="ektronTopSpace"></div> <li class="clearfix"> <ektronUI:Button ID="uxSubmit" runat="server" OnClick="uxSubmit_Click" Text="Update"></ektronUI:Button> <ektronUI:Label ID="uxRequiredLabel" CssClass="span-5" runat="server" Text="* - Required" /> </li> </ol> <asp:Literal ID="uxMessage" runat="server"></asp:Literal>
.aspx.cs code-behind namespace
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using Ektron.Cms; using Ektron.Cms.Commerce; using Ektron.Cms.Framework.Commerce;
.aspx.cs code-behind method
protected void uxSubmit_Click(object sender, EventArgs e) { try { BasketItemManager basketItemManager = new BasketItemManager(); CatalogEntryManager catalogEntryManager = new CatalogEntryManager(); long productId = long.Parse(uxProductId.Text); long basketItemId = long.Parse(uxBasketItemId.Text); EntryData entryData = new KitData(); KitData kitData = new KitData(); entryData = catalogEntryManager.GetItem(productId); if ((entryData as KitData) != null) { kitData = entryData as KitData; KitConfigData kitConfigData = new KitConfigData() { Groups = kitData != null ? kitData.OptionGroups : new List<OptionGroupData>() }; BasketItemData basketItemData = new BasketItemData() { Id= basketItemId, ProductId= productId, ProductType= Ektron.Cms.Common.EkEnumeration.CatalogEntryType.Kit, Configuration= kitConfigData }; basketItemManager.Update(basketItemData); MessageUtilities.UpdateMessage(uxMessage, "Basket Item is updated with basket item " + basketItemId +".", Message.DisplayModes.Success); } else { MessageUtilities.UpdateMessage(uxMessage, "The product is not a Kit. Kit item can only be updated. Update process is failed. ", Message.DisplayModes.Warning ); } uxPageMultiView.SetActiveView(uxViewMessage); } catch (Exception ex) { MessageUtilities.UpdateMessage(uxMessage, ex.Message, Message.DisplayModes.Error); uxPageMultiView.SetActiveView(uxViewMessage); } }
UpdateQuantity
UpdateQuantity(System.Int64,System.Int64,System.Int32)
Updates the basket item quantity.
Authenticated users
- CMS Administrators
- Users that have access permission
To create anonymous user access with this method, set the API access mode (ApiMode
) in the Manager class when instantiating the class.
Fields
*=Required
- * Basket Item ID
- * Basket ID
- * Quantity
Parameters
basketItemId
. ID of the basket item.basketId
. ID of the basket, in which the item quantity is updated.productQuantity
. Product quantity to update.
.aspx code snippet
<ol class="formFields"> <li class="clearfix"> <ektronUI:Label ID="uxBasketItemIdLabel" AssociatedControlID="uxBasketItemId" CssClass="span-5 last" runat="server" Text="* BasketItem Id:" /> <ektronUI:TextField ID="uxBasketItemId" CssClass="span-6" runat="server" ValidationGroup="RegisterValidationGroup" Text="" /> </li> <div class="ektronTopSpace"></div> <li class="clearfix"> <ektronUI:Label ID="uxBasketIdLabel" AssociatedControlID="uxBasketId" CssClass="span-5 last" runat="server" Text="* Basket Id:" /> <ektronUI:TextField ID="uxBasketId" CssClass="span-6" runat="server" ValidationGroup="RegisterValidationGroup" Text="" /> </li> <div class="ektronTopSpace"></div> <li class="clearfix"> <ektronUI:Label ID="uxProductQuantityLabel" AssociatedControlID="uxProductQuantity" CssClass="span-5 last" runat="server" Text="* Quantity:" /> <ektronUI:TextField ID="uxProductQuantity" CssClass="span-6" runat="server" ValidationGroup="RegisterValidationGroup" Text="" /> </li> </li> <div class="ektronTopSpace"></div> <li class="clearfix"> <ektronUI:Button ID="uxSubmit" runat="server" OnClick="uxSubmit_Click" Text="UpdateQuantity"></ektronUI:Button> <ektronUI:Label ID="uxRequiredLabel" CssClass="span-5" runat="server" Text="* - Required" /> </li> </ol> <asp:Literal ID="uxMessage" runat="server"></asp:Literal>
.aspx.cs code-behind namespace
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using Ektron.Cms; using Ektron.Cms.Commerce; using Ektron.Cms.Framework.Commerce;
.aspx.cs code-behind method
protected void uxSubmit_Click(object sender, EventArgs e) { try { BasketItemManager basketItemManager = new BasketItemManager(); Ektron.Cms.Framework.Commerce.BasketManager basketManager = new Ektron.Cms.Framework.Commerce.BasketManager(); long basketId = long.Parse(uxBasketId.Text); long basketItemId = long.Parse(uxBasketItemId.Text); int quantity = int.Parse(uxProductQuantity.Text); BasketData basket = basketManager.GetItem(basketId); if(basket!=null ) { if (basket.Items.FindAll(x => x.Id.Equals(basketItemId)).ToList().Count > 0) { basketItemManager.UpdateQuantity(basketItemId,basketId, quantity); MessageUtilities.UpdateMessage(uxMessage, "Quantity " + quantity + " is updated to the basket item " + basketItemId + " in the basket " + basketId, Message.DisplayModes.Success); } else { MessageUtilities.UpdateMessage(uxMessage, "BasketItem Id is not valid. ", Message.DisplayModes.Warning); } } else { MessageUtilities.UpdateMessage(uxMessage, "Basket Id is not valid. " , Message.DisplayModes.Warning ); } uxPageMultiView.SetActiveView(uxViewMessage); } catch (Exception ex) { MessageUtilities.UpdateMessage(uxMessage, ex.Message, Message.DisplayModes.Error); uxPageMultiView.SetActiveView(uxViewMessage); } }