% 'THIS PAGE DISPLAYS PRODUCTS FOR A SELECTED CATEGORY 'IT SUBMITS TO ITSELF AND TAKES A CERTAIN ACTION DEPENDING UPON THE BUTTON PUSHED 'DECLARE SOME VARIABLES Dim prodid, quantity, arrCart, scartItem, vQty 'SET THEIR VALUES prodid = Request.Form("hdnProdID") IF Request.Form("txtQty") > "" THEN quantity = Request.Form("txtQty") ELSE quantity = 0 END IF 'CREATE A VARIABLE TO HOLD THE CONTENTS OF THE CART arrCart = Session("MyCart") 'CREATE A VARIABLE TO HOLD A COUNT OF THE NUMBER OF CART ITEMS scartItem = Session("cartItem") 'IF WE ARE NOT ABLE TO CREATE A SESSION, LET THEM KNOW If scartItem = "" Then Response.Redirect "error.asp?msg=" & Server.URLEncode ("The application was not able to create a session to store your order. Please try again.") End If 'CREATE A COUNTER SO WE KNOW WHETHER TO CHARGE THE SINGLE OR MULTI SHIP RATE vQty = 1 'LOOP THROUGH THE PROD IDS 'LOOK THEM UP IN THE PROD TABLE 'ADD THEM TO THE USER SESSION (CART) If prodid <> "" Then 'IF THIS NEW CART ITEM IS LESS THAN THE MAX NUMBER OF CART ITEMS, INCREMENT THE COUNTER If scartItem < maxCartItems Then scartItem = scartItem + 1 End If 'SET OUR SESSION VARIABLE WITH THE VALUE OF THE NEW COUNT Session("cartItem") = scartItem 'OPEN A RECORDSET TO GET THE PRODUCT DETAILS dim rsItem Set rsItem = Server.CreateObject("ADODB.Recordset") rsItem.Open "products", dbc, adOpenForwardOnly,adLockReadOnly,adCmdTable rsItem.Filter = "ProductID = " & prodid If Not rsItem.EOF Then 'ADD ITEM OPTIONS TO THE CART ARRAY IF Request.Form("selOption") <> "" THEN DIM vOptArray, vLength, q vOptArray = split(Request.Form("selOption"),",") vLength = UBound(vOptArray) q=0 FOR q=0 TO vLength IF vOptArray(q) > "" THEN DIM sqlOptions, rsOpt, vOptID 'CREATE A SQL STATEMENT FOR THE OPTION NAMES sqlOptions="SELECT o.OptionName as OptionName, i.ItemDesc as ItemDesc, i.OptionItemPrice as OptionItemPrice FROM ProductOptions o, ProductOptionItems i " sqlOptions=sqlOptions & "WHERE o.OptionID=i.OptionID AND i.OptionItemID = " sqlOptions=sqlOptions & vOptArray(q) sqlOptions=sqlOptions & ";" 'CREATE A RECORDSET Set rsOpt = Server.CreateObject("ADODB.Recordset") 'OPEN THE RECORDSET rsOpt.Open sqlOptions, dbc, adOpenForwardOnly, adLockReadOnly 'IF WE FIND RECORDS SHOW THEM IF NOT rsOpt.EOF THEN 'LOOP THROUGH THE RECORDSET While Not rsOpt.EOF IF q=0 THEN arrCart(cOptID_0,scartItem) = vOptArray(q) vOptID = vOptArray(q) arrCart(cOptName_0,scartItem) = rsOpt("OptionName") arrCart(cOptDesc_0,scartItem) = rsOpt("ItemDesc") arrCart(cOptPrice_0,scartItem) = rsOpt("OptionItemPrice") END IF IF q=1 THEN arrCart(cOptID_1,scartItem) = vOptArray(q) vOptID = vOptArray(q) arrCart(cOptName_1,scartItem) = rsOpt("OptionName") arrCart(cOptDesc_1,scartItem) = rsOpt("ItemDesc") arrCart(cOptPrice_1,scartItem) = rsOpt("OptionItemPrice") END IF IF q=2 THEN arrCart(cOptID_2,scartItem) = vOptArray(q) vOptID = vOptArray(q) arrCart(cOptName_2,scartItem) = rsOpt("OptionName") arrCart(cOptDesc_2,scartItem) = rsOpt("ItemDesc") arrCart(cOptPrice_2,scartItem) = rsOpt("OptionItemPrice") END IF IF q=3 THEN arrCart(cOptID_3,scartItem) = vOptArray(q) vOptID = vOptArray(q) arrCart(cOptName_3,scartItem) = rsOpt("OptionName") arrCart(cOptDesc_3,scartItem) = rsOpt("ItemDesc") arrCart(cOptPrice_3,scartItem) = rsOpt("OptionItemPrice") END IF IF q=4 THEN arrCart(cOptID_4,scartItem) = vOptArray(q) vOptID = vOptArray(q) arrCart(cOptName_4,scartItem) = rsOpt("OptionName") arrCart(cOptDesc_4,scartItem) = rsOpt("ItemDesc") arrCart(cOptPrice_4,scartItem) = rsOpt("OptionItemPrice") END IF IF q=5 THEN arrCart(cOptID_5,scartItem) = vOptArray(q) vOptID = vOptArray(q) arrCart(cOptName_5,scartItem) = rsOpt("OptionName") arrCart(cOptDesc_5,scartItem) = rsOpt("ItemDesc") arrCart(cOptPrice_5,scartItem) = rsOpt("OptionItemPrice") END IF IF q=6 THEN arrCart(cOptID_6,scartItem) = vOptArray(q) vOptID = vOptArray(q) arrCart(cOptName_6,scartItem) = rsOpt("OptionName") arrCart(cOptDesc_6,scartItem) = rsOpt("ItemDesc") arrCart(cOptPrice_6,scartItem) = rsOpt("OptionItemPrice") END IF IF q=7 THEN arrCart(cOptID_7,scartItem) = vOptArray(q) vOptID = vOptArray(q) arrCart(cOptName_7,scartItem) = rsOpt("OptionName") arrCart(cOptDesc_7,scartItem) = rsOpt("ItemDesc") arrCart(cOptPrice_7,scartItem) = rsOpt("OptionItemPrice") END IF IF q=8 THEN arrCart(cOptID_8,scartItem) = vOptArray(q) vOptID = vOptArray(q) arrCart(cOptName_8,scartItem) = rsOpt("OptionName") arrCart(cOptDesc_8,scartItem) = rsOpt("ItemDesc") arrCart(cOptPrice_8,scartItem) = rsOpt("OptionItemPrice") END IF IF q=9 THEN arrCart(cOptID_9,scartItem) = vOptArray(q) vOptID = vOptArray(q) arrCart(cOptName_9,scartItem) = rsOpt("OptionName") arrCart(cOptDesc_9,scartItem) = rsOpt("ItemDesc") arrCart(cOptPrice_9,scartItem) = rsOpt("OptionItemPrice") END IF rsOpt.MoveNext WEND rsOpt.Close SET rsOpt = NOTHING sqlOptions = "" END IF 'IF vOptArray(q) > "" END IF ' IF Request.Form("selOption") > "" NEXT 'FOR q=0 TO vLength END IF 'IF Request.Form("selOption") > "" THEN 'IF THIS IS THE FIRST ITEM IN OUR CART JUST ADD IT 'v 5.5 IF scartitem = 1 THEN arrCart(cProductid,scartItem) = rsItem("ProductID") arrCart(cProductCode,scartItem) = rsItem("Code") arrCart(cProductname,scartItem) = rsItem("Name") arrCart(cQuantity,scartitem) = CInt(quantity) arrCart(cUnitPrice,scartItem) = rsItem("Price") arrCart(cShipCost,scartItem) = rsItem("ShipCost") 'arrCart(cShipCost,scartItem) = rsItem("ShipCost") + (CInt(quantity)-1) arrCart(cShipCostMulti,scartItem) = rsItem("ShipCostMulti") arrCart(cTaxable,scartItem) = rsItem("Taxable") 'UPDATE THE CART SESSION VARIABLE Session("MyCart") = arrCart ELSE 'THERE ARE ALREADY ITEMS IN THE CART 'CHECK TO SEE IF THIS NEW ITEM IS ALREADY IN THE CART DIM k k = 1 'LOOP THROUGH THE EXISTING CART ITEMS For k = 1 to scartItem-1 'IF THIS CART ITEM HAS THE SAME PRODUCT ID AS OUR NEW ITEM 'UPDATED TO CHECK THE OPTIONS AS WELL. THE PROD AND OPTIONS NEED TO BOTH BE THE SAME 'ELSE IT IS A NEW ITEM '26-NOV-02 IF arrCart(cProductID,k) = rsItem("ProductID") AND arrCart(cOptID_0,k) = vOptID THEN 'ADJUST THE EXISTING CART ITEM QTY arrCart(cQuantity,k) = arrCart(cQuantity,k) + CInt(quantity) 'REMOVE THE NEW ITEM FROM THE COUNT scartItem = scartItem - 1 'SAVE THESE VALUES TO SESSION VARIABLES Session("cartItem") = scartItem Session("MyCart") = arrCart ELSE 'ELSE THERE ARE NO EXISTING CART ITEMS WITH THIS PRODUCT ID 'SO WE CREATE NEW ITEM AND ADD IT TO THE CART ARRAY arrCart(cProductid,scartItem) = rsItem("ProductID") arrCart(cProductCode,scartItem) = rsItem("Code") arrCart(cProductname,scartItem) = rsItem("Name") arrCart(cQuantity,scartitem) = CInt(quantity) arrCart(cUnitPrice,scartItem) = rsItem("Price") arrCart(cShipCost,scartItem) = rsItem("ShipCost") arrCart(cShipCostMulti,scartItem) = rsItem("ShipCostMulti") arrCart(cTaxable,scartItem) = rsItem("Taxable") 'UPDATE THE CART SESSION VARIABLE Session("MyCart") = arrCart END IF 'arrCart(cProductID,k) = rsItem("ProductID") Response.Write arrCart(cProductid,1) NEXT 'For k = 1 to scartItem-1 'UPDATE THE CART SESSION VARIABLE Session("MyCart") = arrCart END IF 'arrCart(cProductID,k) = rsItem("ProductID") 'UPDATE THE CART SESSION VARIABLE Session("MyCart") = arrCart END IF 'IF scartitem > 1 THEN 'HONESTLY CANNOT REMEMBER WHAT THIS IS FOR... IF CInt(quantity) > vQty THEN vQty = CInt(quantity) ELSE vQty = vQty END IF 'JUST IN CASE WE HAVE NOT CAUGHT THIS ALREADY Session("MyCart") = arrCart 'CLOSE OUR RECORSET AND CONNECTION rsItem.Close dbc.Close 'ELSE THEY ARE NOT ADDING AN ITEM BUT TAKING SOME OTHER ACTION ON THIS PAGE ELSE 'DEPENDING ON WHICH BUTTON WAS PUSHED, DO SOMETHING 'SEND THEM BACK HOME IF Request.Form("actionHome") > "" THEN Response.Redirect "default.asp" END IF 'RECALCULATE THE CART IF Request.Form("actionRecall") > "" THEN For i = 1 To scartItem Dim tquantity tquantity = Request("quantity" & Cstr(i)) arrCart(cQuantity,i) = CInt(tquantity) Next For i = 1 to scartItem If Request.Form("chkDelete" & CStr(i)) = "yes" Then scartItem = scartItem - 1 Dim x For x = 1 to UBound(arrCart,1) arrCart(x,i) = "" Next Dim n n = i while n < UBound(arrCart,2) For x = 1 to UBound(arrCart,1) arrCart(x,n) = arrCart(x,n + 1) arrCart(x,n + 1) = "" Next n = n + 1 wend end If Next 'SAVE THESE VALUES TO SESSION VARIABLES Session("cartItem") = scartItem Session("MyCart") = arrCart 'RELOAD THE PAGE Response.Redirect("addprod.asp") END IF IF Request.Form("actionCheckOut") > "" THEN 'GO TO CHECKOUT Response.Redirect(cSSLURL&"customer.asp") END IF IF Request.Form("actionEmpty") > "" THEN 'EMPTY THE CART Session.Abandon Response.Redirect "default.asp" END IF END IF 'IF THERE ARE NO ITEMS IN THE CART, SHOW THIS MESSAGE If scartItem < 1 Then %>