Problems installing or using the NOP Design Free Shopping Cart that do not fit into one of the above categories.
Moderators: Koibito, Stefko, Randy
by foreigner » Tue Mar 09, 2010 8:27 pm
Hi all,
Somewhow my
if ( !bAlreadyInCart ) {
iNumberOrdered++;
script does not work. If I add the same item to the cart once again, the item adds itself as a new line to the cart
instead incresing its amount within the cart. I could not find out why.
Any help is appreciated.
Here is my AddToCart script:
- Code: Select all
//---------------------------------------------------------------------||
// FUNCTION: AddToCart ||
// PARAMETERS: Form Object ||
// RETURNS: Cookie to user's browser, with prompt ||
// PURPOSE: Adds a product to the user's shopping cart ||
//---------------------------------------------------------------------||
function AddToCart(thisForm) {
var iNumberOrdered = 0;
var bAlreadyInCart = false;
var notice = "";
iNumberOrdered = GetCookie("NumberOrdered");
if ( iNumberOrdered == null )
iNumberOrdered = 0;
if ( thisForm.ID_NUM == null )
strID_NUM = "";
else
strID_NUM = thisForm.ID_NUM.value;
if ( thisForm.QUANTITY == null )
strQUANTITY = "1";
else
strQUANTITY = thisForm.QUANTITY.value;
if ( thisForm.PRICE == null )
strPRICE = "0.00";
else
strPRICE = thisForm.PRICE.value;
if ( thisForm.NAME == null )
strNAME = "";
else
strNAME = thisForm.NAME.value;
if ( thisForm.SHIPPING == null )
strSHIPPING = "0.00";
else
strSHIPPING = thisForm.SHIPPING.value;
if ( thisForm.ADDITIONALINFO == null ) {
strADDTLINFO = ".";
} else {
strADDTLINFO = thisForm.ADDITIONALINFO[thisForm.ADDITIONALINFO.selectedIndex].value;
}
if ( thisForm.ADDITIONALINFO1 != null ) {
strADDTLINFO += thisForm.ADDITIONALINFO1[thisForm.ADDITIONALINFO1.selectedIndex].value;
}
if ( thisForm.productCode != null ) {
strADDTLINFO += "-"+thisForm.productCode.value;
}
if ( thisForm.FILENAME == null )
strFILENAME = "";
else
strFILENAME = thisForm.FILENAME.value;
if ( thisForm.EXT == null )
strEXT = "";
else
strEXT = thisForm.EXT.value;
if ( thisForm.CTYPE == null )
strCTYPE = "";
else
strCTYPE = thisForm.CTYPE.value;
if ( thisForm.IMAGESRC == null )
strIMAGESRC = "";
else
strCIMAGESRC = thisForm.IMAGESRC.value;
//Is this product already in the cart? If so, increment quantity instead of adding another.
for ( i = 1; i <= iNumberOrdered; i++ ) {
NewOrder = "Order." + i;
database = "";
database = GetCookie(NewOrder);
Token0 = database.indexOf("|", 0);
Token1 = database.indexOf("|", Token0+1);
Token2 = database.indexOf("|", Token1+1);
Token3 = database.indexOf("|", Token2+1);
Token4 = database.indexOf("|", Token3+1);
Token5 = database.indexOf("|", Token4+1);
Token6 = database.indexOf("|", Token5+1);
Token7 = database.indexOf("|", Token6+1);
Token8 = database.indexOf("|", Token7+1);
fields = new Array;
fields[0] = database.substring( 0, Token0 );
fields[1] = database.substring( Token0+1, Token1 );
fields[2] = database.substring( Token1+1, Token2 );
fields[3] = database.substring( Token2+1, Token3 );
fields[4] = database.substring( Token3+1, Token4 );
fields[5] = database.substring( Token4+1, Token5 );
fields[6] = database.substring( Token5+1, Token6 );
fields[7] = database.substring( Token6+1, Token7 );
fields[8] = database.substring( Token7+1, Token8 );
fields[9] = database.substring( Token8+1, database.length );
if ( fields[0] == strID_NUM &&
fields[2] == strPRICE &&
fields[3] == strNAME &&
fields[5] == strADDTLINFO &&
fields[6] == strFILENAME &&
fields[6] == strEXT &&
fields[7] == strCTYPE &&
fields[8] == strCIMAGESRC
) {
bAlreadyInCart = true;
dbUpdatedOrder = strID_NUM + "|" +
(parseInt(strQUANTITY)+parseInt(fields[1])) + "|" +
strPRICE + "|" +
strNAME + "|" +
strSHIPPING + "|" +
strADDTLINFO + "|" +
strFILENAME + "|" +
strEXT + "|" +
strCTYPE + "|" +
strCIMAGESRC;
strNewOrder = "Order." + i;
DeleteCookie(strNewOrder, "/");
SetCookie(strNewOrder, dbUpdatedOrder, null, "/");
notice = strQUANTITY + " " + strNAME + strAdded;
break;
}
}
if ( !bAlreadyInCart ) {
iNumberOrdered++;
if ( iNumberOrdered > 7 )
alert( strSorry );
else {
dbUpdatedOrder = strID_NUM + "|" +
strQUANTITY + "|" +
strPRICE + "|" +
strNAME + "|" +
strSHIPPING + "|" +
strADDTLINFO + "|" +
strFILENAME + "|" +
strEXT + "|" +
strCTYPE + "|" +
strCIMAGESRC;
strNewOrder = "Order." + iNumberOrdered;
SetCookie(strNewOrder, dbUpdatedOrder, null, "/");
SetCookie("NumberOrdered", iNumberOrdered, null, "/");
//notice = strQUANTITY + " " + "ad." + " " + strNAME + strAdded;
}
}
if ( DisplayNotice && notice != "")
alert(notice);
}
-
foreigner
- WebMaster
-
- Posts: 3
- Joined: Fri Jun 17, 2005 10:33 am
-
by auntnana21 » Wed Mar 10, 2010 9:46 pm
I'm having the exact same problem! Any help would be appreciated. Either increasing the quantity or throwin up an alert works for me. Just want one of them to work.
- Code: Select all
//---------------------------------------------------------------------||
// FUNCTION: AddToCart ||
// PARAMETERS: Form Object ||
// RETURNS: Cookie to user's browser, with prompt ||
// PURPOSE: Adds a product to the user's shopping cart ||
//---------------------------------------------------------------------||
function AddToCart(thisForm) {
var iNumberOrdered = 0;
var bAlreadyInCart = false;
var notice = "";
iNumberOrdered = GetCookie("NumberOrdered");
if ( iNumberOrdered == null )
iNumberOrdered = 0;
if ( thisForm.ID_NUM == null )
strID_NUM = "";
else
strID_NUM = thisForm.ID_NUM.value;
if ( thisForm.QUANTITY == null )
strQUANTITY = "1";
else
strQUANTITY = thisForm.QUANTITY.value;
if ( thisForm.PRICE == null )
strPRICE = "0.00";
else
strPRICE = thisForm.PRICE.value;
if ( thisForm.NAME == null )
strNAME = "";
else
strNAME = thisForm.NAME.value;
if ( thisForm.SHIPPING == null )
strSHIPPING = "0.00";
else
strSHIPPING = thisForm.SHIPPING.value;
if ( thisForm.ADDEDFIELD == null )
strADDEDFIELD = "";
else
strADDEDFIELD = thisForm.ADDEDFIELD.value;
if ( thisForm.ADDEDFIELD2 == "select" )
strADDEDFIELD2 = "";
else
strADDEDFIELD2 = thisForm.ADDEDFIELD2.value;
if ( thisForm.ADDEDFIELD3 == null )
strADDEDFIELD = "";
else
strADDEDFIELD3 = thisForm.ADDEDFIELD3.value;
if ( thisForm.ADDITIONALINFO == null ) {
strADDTLINFO = "";
} else {
strADDTLINFO = thisForm.ADDITIONALINFO.value;
}
if ( thisForm.ADDITIONALINFO2 != null ) {
strADDTLINFO += "; " + thisForm.ADDITIONALINFO2[thisForm.ADDITIONALINFO2.selectedIndex].value;
}
if ( thisForm.ADDITIONALINFO3 != null ) {
strADDTLINFO += "; " + thisForm.ADDITIONALINFO3[thisForm.ADDITIONALINFO3.selectedIndex].value;
}
if ( thisForm.ADDITIONALINFO4 != null ) {
strADDTLINFO += "; " + thisForm.ADDITIONALINFO4[thisForm.ADDITIONALINFO4.selectedIndex].value;
}
//Is this product already in the cart? If so, increment quantity instead of adding another.
for ( i = 1; i <= iNumberOrdered; i++ ) {
NewOrder = "Order." + i;
database = "";
database = GetCookie(NewOrder);
Token0 = database.indexOf("|", 0);
Token1 = database.indexOf("|", Token0+1);
Token2 = database.indexOf("|", Token1+1);
Token3 = database.indexOf("|", Token2+1);
Token4 = database.indexOf("|", Token3+1);
Token5 = database.indexOf("|", Token4+1);
Token6 = database.indexOf("|", Token5+1);
Token7 = database.indexOf("|", Token6+1);
Token8 = database.indexOf("|", Token7+1);
fields = new Array;
fields[0] = database.substring( 0, Token0 );
fields[1] = database.substring( Token0+1, Token1 );
fields[2] = database.substring( Token1+1, Token2 );
fields[3] = database.substring( Token2+1, Token3 );
fields[4] = database.substring( Token3+1, Token4 );
fields[5] = database.substring( Token4+1, Token5 );
fields[6] = database.substring( Token5+1, Token6 );
fields[7] = database.substring( Token6+1, Token7 );
fields[8] = database.substring( Token7+1, database.length );
if ( fields[0] == strID_NUM &&
fields[1] == strQUANTITY &&
fields[3] == strName &&
fields[8] == strADDEDFIELD3
) {
bAlreadyInCart = true;
dbUpdatedOrder = strID_NUM + "|" +
(parseInt(strQUANTITY)+parseInt(fields[1])) + "|" +
strPRICE + "|" +
strNAME + "|" +
strSHIPPING + "|" +
strADDTLINFO + "|" +
strADDEDFIELD + "|" +
strADDEDFIELD2 + "|" +
strADDEDFIELD3;
strNewOrder = "Order." + i;
DeleteCookie(strNewOrder, "/");
SetCookie(strNewOrder, dbUpdatedOrder, expires, "/");
notice = strID_NUM + " " + strQUANTITY + " " + strPRICE + " " + strNAME + " " + strADDTLINFO + " " + strADDEDFIELD + " " + strADDEDFIELD2 + " " + strADDEDFIELD3;
break;
}
}
if ( !bAlreadyInCart ) {
iNumberOrdered++;
if ( iNumberOrdered > 50 )
alert( strSorry );
else {
dbUpdatedOrder = strID_NUM + "|" +
strQUANTITY + "|" +
strPRICE + "|" +
strNAME + "|" +
strSHIPPING + "|" +
strADDTLINFO + "|" +
strADDEDFIELD + "|" +
strADDEDFIELD2 + "|" +
strADDEDFIELD3;
strNewOrder = "Order." + iNumberOrdered;
SetCookie(strNewOrder, dbUpdatedOrder, null, "/");
SetCookie("NumberOrdered", iNumberOrdered, null, "/");
notice = strID_NUM + " " + strQUANTITY + " " + strPRICE + " " + strNAME + " " + strADDTLINFO + " " + strADDEDFIELD + " " + strADDEDFIELD2 + " " + strADDEDFIELD3;
}
}
if ( DisplayNotice )
alert(notice);
return false;
}
-
auntnana21
- WebMaster
-
- Posts: 16
- Joined: Wed Oct 07, 2009 1:58 pm
by auntnana21 » Thu Mar 18, 2010 12:45 pm
I got it to work finally. I went back and added field by field until it worked.
- Code: Select all
//Is this product already in the cart? If so, increment quantity instead of adding another.
for ( i = 1; i <= iNumberOrdered; i++ ) {
NewOrder = "Order." + i;
database = "";
database = GetCookie(NewOrder);
Token0 = database.indexOf("|", 0);
Token1 = database.indexOf("|", Token0+1);
Token2 = database.indexOf("|", Token1+1);
Token3 = database.indexOf("|", Token2+1);
Token4 = database.indexOf("|", Token3+1);
Token5 = database.indexOf("|", Token4+1);
Token6 = database.indexOf("|", Token5+1);
Token7 = database.indexOf("|", Token6+1);
Token8 = database.indexOf("|", Token7+1);
fields = new Array;
fields[0] = database.substring( 0, Token0 );
fields[1] = database.substring( Token0+1, Token1 );
fields[2] = database.substring( Token1+1, Token2 );
fields[3] = database.substring( Token2+1, Token3 );
fields[4] = database.substring( Token3+1, Token4 );
fields[5] = database.substring( Token4+1, Token5 );
fields[6] = database.substring( Token5+1, Token6 );
fields[7] = database.substring( Token6+1, Token7 );
fields[8] = database.substring( Token7+1, database.length );
if ( fields[0] == strID_NUM &&
fields[1] == strQUANTITY &&
fields[2] == strPRICE &&
fields[3] == strNAME &&
fields[4] == strSHIPPING &&
fields[5] == strADDTLINFO &&
fields[6] == strADDEDFIELD &&
fields[7] == strADDEDFIELD2 &&
fields[8] == strADDEDFIELD3
) {
bAlreadyInCart = true;
dbUpdatedOrder = strID_NUM + "|" +
(parseInt(strQUANTITY)+parseInt(fields[1])) + "|" +
strPRICE + "|" +
strNAME + "|" +
strSHIPPING + "|" +
strADDTLINFO + "|" +
strADDEDFIELD + "|" +
strADDEDFIELD2 + "|" +
strADDEDFIELD3;
strNewOrder = "Order." + i;
DeleteCookie(strNewOrder, "/");
SetCookie(strNewOrder, dbUpdatedOrder, null, "/");
notice = strID_NUM + " " +strQUANTITY + " " + strPRICE + " " +strNAME + " " + strSHIPPING + " " +strADDTLINFO + strADDEDFIELD + strADDEDFIELD2 +strADDEDFIELD3;
break;
}
}
if ( !bAlreadyInCart ) {
iNumberOrdered++;
if ( iNumberOrdered > 12)
alert( strSorry );
else {
dbUpdatedOrder = strID_NUM + "|" +
strQUANTITY + "|" +
strPRICE + "|" +
strNAME + "|" +
strSHIPPING + "|" +
strADDTLINFO + "|" +
strADDEDFIELD + "|" +
strADDEDFIELD2 + "|" +
strADDEDFIELD3;
strNewOrder = "Order." + iNumberOrdered;
SetCookie(strNewOrder, dbUpdatedOrder, null, "/");
SetCookie("NumberOrdered", iNumberOrdered, null, "/");
notice = strID_NUM + " " +strQUANTITY + " " + strPRICE + " " +strNAME + " " + strSHIPPING + " " +strADDTLINFO + strADDEDFIELD + strADDEDFIELD2 +strADDEDFIELD3;
}
}
if ( DisplayNotice )
alert(notice);
}
-
auntnana21
- WebMaster
-
- Posts: 16
- Joined: Wed Oct 07, 2009 1:58 pm
Return to Help: Cart / General
Who is online
Users browsing this forum: No registered users and 0 guests