Skip to main content
Email Password   helpLost your password?

Sample Image - shopcart.gif

Introduction

If you take a look at my code, you will see that it is not well documented, but I will try and remedy that with this article. The shopping cart object that I will demonstrate here was written by me for use in an ecommerce web page, as part of a library.

Shopping Cart

Let's get right into the object. The following section will create our object. We pass the connection string from the web page so that it is common.

using System;
using System.Data;
using System.Data.OleDb;

namespace Coder2k
{
    public class Cart
    {
        private string strConnection;
        
        public Cart(string conn)
        {
            strConnection = conn;
        }

The following is where our web page will get its cart. We'll demonstrate that later. We use stored procedures so that we can use any database that has an OLE interface and supports stored procedures.

        public OleDbDataReader GetCart(string CartID)
        {
            OleDbConnection conCart = new OleDbConnection(strConnection);
            OleDbCommand comCart = new OleDbCommand("qryGetCart", conCart);
            
            comCart.CommandType = CommandType.StoredProcedure;
            
            OleDbParameter parmCartID = new 
              OleDbParameter("@CartID", OleDbType.VarChar, 50);
            parmCartID.Value = CartID;
            comCart.Parameters.Add(parmCartID);
            
            conCart.Open();
            
            OleDbDataReader result = 
              comCart.ExecuteReader(CommandBehavior.CloseConnection);
            
            return result;
        }

Now, let's look at the rest of it which is very similar to this. Because of stored procedures, we don't need to know anything about the database in this object, which makes it easier to code.

        public void AddItem(string CartID, int ProdID, int Quantity)
        {
            OleDbConnection conItem = new OleDbConnection(strConnection);
            OleDbCommand comItem = new OleDbCommand("qryAddItem", conItem);
            
            comItem.CommandType = CommandType.StoredProcedure;
            
            OleDbParameter parmCartID = new 
              OleDbParameter("@CartID", OleDbType.VarChar, 50);
            parmCartID.Value = CartID;
            comItem.Parameters.Add(parmCartID);
            
            OleDbParameter parmProdID = new 
              OleDbParameter("@ProdID", OleDbType.Integer, 4);
            parmProdID.Value = ProdID;
            comItem.Parameters.Add(parmProdID);
            
            OleDbParameter parmQuant = new 
              OleDbParameter("@Quant", OleDbType.Integer, 4);
            parmQuant.Value = Quantity;
            comItem.Parameters.Add(parmQuant);
            
            conItem.Open();
            comItem.ExecuteNonQuery();
            conItem.Close();
        }
        
        public string GetCartID()
        {
            System.Web.HttpContext context = 
                  System.Web.HttpContext.Current;
            
            if (context.Request.Cookies["West_CartID"] != null)
            {
                return context.Request.Cookies["West_CartID"].Value;
            }
            else
            {
                Guid tempGuid = Guid.NewGuid();
                
                context.Response.Cookies["West_CartID"].Value 
                                             = tempGuid.ToString();
                
                return tempGuid.ToString();
            }
        }
    }
}

Now, the getCartID function is a strange one. It checks to see if the current user has a cart. If they do, it returns that ID, otherwise, it creates a new cart.

Web Pages

I think that the web pages can pretty much speak for themselves if you know ASP web controls. In a later edition of this article, I will explain more on these files, and maybe add some more functionality to the whole thing.

You must Sign In to use this message board.
 
 
Per page   
 FirstPrevNext
GeneralDoubt Pin
karanrambo
12:36 7 Nov '09  
GeneralRe: Doubt Pin
Coder2k
17:15 7 Nov '09  
GeneralAivea Commerce Server Pin
aiveacorporation
14:42 30 May '09  
GeneralDAAB Pin
sheemap
22:58 23 May '09  
GeneralDAAB Pin
sheemap
22:57 23 May '09  
GeneralMy vote of 1 Pin
Member 3162442
9:21 29 Dec '08  
GeneralUsless waste of time AVOID LIKE THE PLAUGE Pin
sofwreng
5:41 1 Jun '07  
GeneralRe: Usless waste of time AVOID _sofwreng_ LIKE THE PLAUGE Pin
rimblock
4:29 26 Jun '07  
GeneralNeed Assistance Pin
preetshweety
1:22 2 Apr '07  
QuestionOrder Confirmation Pin
stixoffire
1:04 20 Feb '07  
AnswerRe: Order Confirmation Pin
Coder2k
6:20 20 Feb '07  
GeneralRe: Order Confirmation Pin
stixoffire
9:45 20 Feb '07  
GeneralRe: Order Confirmation Pin
Coder2k
10:11 20 Feb '07  
GeneralPlease Post Only Complete and Reviewed Project Pin
ntorrisi
8:47 7 Feb '06  
GeneralWhat if cookies are disabled? Pin
Anonymous
19:23 8 Mar '05  
GeneralRe: What if cookies are disabled? Pin
Coder2k
6:39 9 Mar '05  
GeneralRe: What if cookies are disabled? Pin
Mike (PhilaNJ)
5:05 9 Apr '05  
GeneralRe: What if cookies are disabled? Pin
Anonymous
5:43 23 Oct '05  
GeneralRe: What if cookies are disabled? Pin
Member 4595696
5:10 8 Dec '07  
Generali need help Pin
intense0101
20:09 29 Jun '04  
GeneralRe: i need help Pin
Matt Redmond
11:27 20 May '09  
GeneralWhere is the SQL needed for this sample? Pin
Chris Allen Wright
3:20 4 Jun '04  
GeneralRe: Where is the SQL needed for this sample? Pin
Coder2k
11:42 21 Jun '04  
GeneralRe: Where is the SQL needed for this sample? Pin
dennym
15:51 10 Mar '05  
GeneralRe: Where is the SQL needed for this sample? Pin
Coder2k
6:09 11 Mar '05  


Last Updated 10 Mar 2003 | Advertise | Privacy | Terms of Use | Copyright © CodeProject, 1999-2009