Checkout orders.csv problem

Get help with nopcart Perl, PHP or ASP checkout related issues.

Moderators: Koibito, Stefko, Randy

Checkout orders.csv problem

Postby Dave B » Tue Aug 22, 2006 12:17 am

I'm a newbie at this but I've been able to correct all of my errors up to this point from information I've found here on the forum. I've been working on this problem for a few days and can't find a solution. When I checkout using checkout.php, I receive the following error message:
Unable to open CSV file for writing. Your order has not been saved.

I know that this is a fairly common problem but I've searched the forum and haven't found anything that works. I tried switching from header.html/footer.html to header.php/footer.php but it didn't make any difference so I switched back to the .html files. What has me stumped is that I DO get the order confirmation sent to me but the customer doesn't get an email and nothing gets written to orders.csv.

Here is the URL to the order page:
http://www.berryhillguns.com/htdocs/partstest.html

The checkout.php, header.html, footer.html and orders.csv are all in the following directory:
http://www.berryhillguns.com/cgibin/

Permissions for checkout.php and orders.csv are 777

Here is checkout.php. It's basically the free checkout.php file that I put into the user defined variables:

<?
//=====================================================================||
// NOP Design JavaScript Shopping Cart ||
// PHP SCRIPT Checkout Module ||
// ||
// For more information on SmartSystems, or how NOPDesign can help you ||
// Please visit us on the WWW at http://www.nopdesign.com ||
// ||
// Javascript portions of this shopping cart software are available as ||
// freeware from NOP Design. You must keep this comment unchanged in ||
// your code. For more information contact FreeCart@NopDesign.com. ||
// ||
// JavaScript Shop Module, V.4.4.0 ||
//=====================================================================||
// ||
// Function: Writes available form elements from the NOP ||
// Free Cart (http://www.nopdesign.com/freecart) ||
// and other form elements to an email file, and ||
// send user confirmation ||
// ||
//=====================================================================||


//######################################################################
// #
// User defined variables: #
// $header - string value containing the complete #
// path of the HTML page header #
// $footer - string value containing the complete #
// path of the HTML page footer #
// $youremail - string value containing the email address to #
// send catalog orders in EMAIL or BOTH modes #
// $returnpage - URL to send user when checkout is complete #
// $csvfilename - string value containing the complete #
// path of the user database. #
// $csvquote - string value containing what to use for quotes #
// in the csv file (typically "" or \") #
// $mode - string value containing 'EMAIL', 'FILE' or #
// 'BOTH' to determine if the script should send #
// an email to you with the new order, write the #
// order to a CSV file, or do both. #
//######################################################################
$header = "http://www.berryhillguns.com/cgibin/header.html";
$footer = "http://www.berryhillguns.com/cgibin/footer.html";
$returnpage = "http://www.berryhillguns.com";
$youremail = "db@berryhillguns.com";
$csvfilename = "http://www.berryhillguns.com/cgibin/orders.csv";
$csvquote = "\"\"";
$mode = "BOTH";


//##############################################################
//#FUNCTION: doFormError #
//#RETURNS: #
//#PARAMETERS: A error message string. #
//#PURPOSE: Generates an HTML page indicating a form #
//# submission error occurred. #
//##############################################################
function doFormError($errString) {

include($header);
#include("header.php");

echo "<FONT SIZE=+2>The form you submitted was not complete.<BR><BR></FONT>";
echo "$errString<BR><BR>\n";
echo "<INPUT TYPE=BUTTON ONCLICK='history.back()' VALUE=' Return to the checkout page '><HR>";

include($footer);
#include("footer.php");

exit;
}

//##############################################################
//#FUNCTION: doError #
//#RETURNS: #
//#PARAMETERS: A error message string. #
//#PURPOSE: Generates an HTML page indicating an error #
//# occurred. #
//##############################################################
function doError($errString) {

include($header);
#include("header.php");
echo "$errString<BR><BR>\n";

include($footer);
#include("footer.php");
exit;
}



//##############################################################
//##############################################################
//### MAIN ###
//##############################################################
//##############################################################

if (($b_first == "") || ($b_last == "") || ($b_addr == "") || ($b_city == "") || ($b_state == "") || ($b_zip == "") || ($b_phone == "") || ($b_email == "")) {
doFormError("I'm sorry, but it appears that you forgot to fill in a required field. Please go <A HREF='Javascript:history.go(-1);'>back</A> and correct the error.");
exit;
}

//# checks for valid email address
if( !(ereg("^(.+)@(.+)\\.(.+)$",$b_email)) ) {
doFormError("You submitted an invalid email address. Please go <A HREF='Javascript:history.go(-1);'>back</A> and correct the error.");
exit;
}

$today = date ("l, F jS Y");
$strMessageBody = "";
$strMessageBody .= "A new order has been received. A summary of this order appears below.\n";
$strMessageBody .= "\n";
$strMessageBody .= "Order Date: $today \n";
$strMessageBody .= " \n";
$strMessageBody .= "Bill To: \n";
$strMessageBody .= "-------- \n";
$strMessageBody .= " $b_first $b_last \n";
$strMessageBody .= " $b_addr \n";
$strMessageBody .= " $b_addr2 \n";
$strMessageBody .= " $b_city, $b_state $b_zip \n";
$strMessageBody .= " $b_phone \n";
$strMessageBody .= " $b_fax \n";
$strMessageBody .= " $b_email \n";
$strMessageBody .= " \n";
$strMessageBody .= " \n";
$strMessageBody .= "Ship To: \n";
$strMessageBody .= "-------- \n";
$strMessageBody .= " $s_first $s_last \n";
$strMessageBody .= " $s_addr \n";
$strMessageBody .= " $s_addr2 \n";
$strMessageBody .= " $s_city, $s_state $s_zip \n";
$strMessageBody .= " $s_phone \n";
$strMessageBody .= " \n";
$strMessageBody .= " \n";
$strMessageBody .= "Qty Price(\$) Product ID - Product Name\n";
$strMessageBody .= "===================================================================== \n";
$strMessageBody .= "$QUANTITY_1 \$$PRICE_1 $ID_1 - $NAME_1 $ADDTLINFO_1 \n";
if( $NAME_2 ) {$strMessageBody .= "$QUANTITY_2 \$$PRICE_2 $ID_2 - $NAME_2 $ADDTLINFO_2 \n";}
if( $NAME_3 ) {$strMessageBody .= "$QUANTITY_3 \$$PRICE_3 $ID_3 - $NAME_3 $ADDTLINFO_3 \n";}
if( $NAME_4 ) {$strMessageBody .= "$QUANTITY_4 \$$PRICE_4 $ID_4 - $NAME_4 $ADDTLINFO_4 \n";}
if( $NAME_5 ) {$strMessageBody .= "$QUANTITY_5 \$$PRICE_5 $ID_5 - $NAME_5 $ADDTLINFO_5 \n";}
if( $NAME_6 ) {$strMessageBody .= "$QUANTITY_6 \$$PRICE_6 $ID_6 - $NAME_6 $ADDTLINFO_6 \n";}
if( $NAME_7 ) {$strMessageBody .= "$QUANTITY_7 \$$PRICE_7 $ID_7 - $NAME_7 $ADDTLINFO_7 \n";}
if( $NAME_8 ) {$strMessageBody .= "$QUANTITY_8 \$$PRICE_8 $ID_8 - $NAME_8 $ADDTLINFO_8 \n";}
if( $NAME_9 ) {$strMessageBody .= "$QUANTITY_9 \$$PRICE_9 $ID_9 - $NAME_9 $ADDTLINFO_9 \n";}
if( $NAME_10 ){$strMessageBody .= "$QUANTITY_10 \$$PRICE_10 $ID_10 - $NAME_10 $ADDTLINFO_10 \n";}
if( $NAME_11 ){$strMessageBody .= "$QUANTITY_11 \$$PRICE_11 $ID_11 - $NAME_11 $ADDTLINFO_11 \n";}
if( $NAME_12 ){$strMessageBody .= "$QUANTITY_12 \$$PRICE_12 $ID_12 - $NAME_12 $ADDTLINFO_12 \n";}
if( $NAME_13 ){$strMessageBody .= "$QUANTITY_13 \$$PRICE_13 $ID_13 - $NAME_13 $ADDTLINFO_13 \n";}
$strMessageBody .= "===================================================================== \n";
$strMessageBody .= "SUBTOTAL: $SUBTOTAL \n";
$strMessageBody .= "TOTAL: $TOTAL \n";
$strMessageBody .= "\n";
$strMessageBody .= "\n\n";
$strMessageBody .= "Comments: \n";
$strMessageBody .= "--------- \n";
$strMessageBody .= "$comment \n";
$strMessageBody .= " \n";


if( $mode == "BOTH" || $mode == "EMAIL") {
//# Send email order to you...
$mailheaders = "From: $b_email\r\n";
$mailheaders .="X-Mailer: PHP Mail generated by:NOP Design Shopping Cart\r\n";
$subject = "New Online Order";
mail($youremail, $subject, $strMessageBody, $mailheaders);
}


if( $mode == "BOTH" || $mode == "FILE") {

$csvcomments = $comment;
if (!$CSVF = fopen($csvfilename,'a')) {
doError("Unable to open CSV file for writing. Your order has not been saved.");
exit;
}

fputs($CSVF, $string);
fputs($CSVF, "\"");
fputs($CSVF, "$today");
fputs($CSVF, "\",\"");
fputs($CSVF, "$b_first");
fputs($CSVF, "\",\"");
fputs($CSVF, "$b_last");
fputs($CSVF, "\",\"");
fputs($CSVF, "$b_addr");
fputs($CSVF, "\",\"");
fputs($CSVF, "$b_addr2");
fputs($CSVF, "\",\"");
fputs($CSVF, "$b_city");
fputs($CSVF, "\",\"");
fputs($CSVF, "$b_state");
fputs($CSVF, "\",\"");
fputs($CSVF, "$b_zip");
fputs($CSVF, "\",\"");
fputs($CSVF, "$b_phone");
fputs($CSVF, "\",\"");
fputs($CSVF, "$b_fax");
fputs($CSVF, "\",\"");
fputs($CSVF, "$b_email");
fputs($CSVF, "\",\"");
fputs($CSVF, "$s_first");
fputs($CSVF, "\",\"");
fputs($CSVF, "$s_last");
fputs($CSVF, "\",\"");
fputs($CSVF, "$s_addr");
fputs($CSVF, "\",\"");
fputs($CSVF, "$s_addr2");
fputs($CSVF, "\",\"");
fputs($CSVF, "$s_city");
fputs($CSVF, "\",\"");
fputs($CSVF, "$s_state");
fputs($CSVF, "\",\"");
fputs($CSVF, "$s_zip");
fputs($CSVF, "\",\"");
fputs($CSVF, "$s_phone");
fputs($CSVF, "\",\"");
fputs($CSVF, "$QUANTITY_1");
fputs($CSVF, "\",\"");
fputs($CSVF, "\$$PRICE_1");
fputs($CSVF, "\",\"");
fputs($CSVF, "$ID_1");
fputs($CSVF, "\",\"");
fputs($CSVF, "$NAME_1");
fputs($CSVF, "\",\"");
fputs($CSVF, "$ADDTLINFO_1");
fputs($CSVF, "\",\"");
fputs($CSVF, "$QUANTITY_2");
fputs($CSVF, "\",\"");
fputs($CSVF, "\$$PRICE_2");
fputs($CSVF, "\",\"");
fputs($CSVF, "$ID_2");
fputs($CSVF, "\",\"");
fputs($CSVF, "$NAME_2");
fputs($CSVF, "\",\"");
fputs($CSVF, "$ADDTLINFO_2");
fputs($CSVF, "\",\"");
fputs($CSVF, "$QUANTITY_3");
fputs($CSVF, "\",\"");
fputs($CSVF, "\$$PRICE_3");
fputs($CSVF, "\",\"");
fputs($CSVF, "$ID_3");
fputs($CSVF, "\",\"");
fputs($CSVF, "$NAME_3");
fputs($CSVF, "\",\"");
fputs($CSVF, "$ADDTLINFO_3");
fputs($CSVF, "\",\"");
fputs($CSVF, "$QUANTITY_4");
fputs($CSVF, "\",\"");
fputs($CSVF, "\$$PRICE_4");
fputs($CSVF, "\",\"");
fputs($CSVF, "$ID_4");
fputs($CSVF, "\",\"");
fputs($CSVF, "$NAME_4");
fputs($CSVF, "\",\"");
fputs($CSVF, "$ADDTLINFO_4");
fputs($CSVF, "\",\"");
fputs($CSVF, "$QUANTITY_5");
fputs($CSVF, "\",\"");
fputs($CSVF, "\$$PRICE_5");
fputs($CSVF, "\",\"");
fputs($CSVF, "$ID_5");
fputs($CSVF, "\",\"");
fputs($CSVF, "$NAME_5");
fputs($CSVF, "\",\"");
fputs($CSVF, "$ADDTLINFO_5");
fputs($CSVF, "\",\"");
fputs($CSVF, "$QUANTITY_6");
fputs($CSVF, "\",\"");
fputs($CSVF, "\$$PRICE_6");
fputs($CSVF, "\",\"");
fputs($CSVF, "$ID_6");
fputs($CSVF, "\",\"");
fputs($CSVF, "$NAME_6");
fputs($CSVF, "\",\"");
fputs($CSVF, "$ADDTLINFO_6");
fputs($CSVF, "\",\"");
fputs($CSVF, "$QUANTITY_7");
fputs($CSVF, "\",\"");
fputs($CSVF, "\$$PRICE_7");
fputs($CSVF, "\",\"");
fputs($CSVF, "$ID_7");
fputs($CSVF, "\",\"");
fputs($CSVF, "$NAME_7");
fputs($CSVF, "\",\"");
fputs($CSVF, "$ADDTLINFO_7");
fputs($CSVF, "\",\"");
fputs($CSVF, "$QUANTITY_8");
fputs($CSVF, "\",\"");
fputs($CSVF, "\$$PRICE_8");
fputs($CSVF, "\",\"");
fputs($CSVF, "$ID_8");
fputs($CSVF, "\",\"");
fputs($CSVF, "$NAME_8");
fputs($CSVF, "\",\"");
fputs($CSVF, "$ADDTLINFO_8");
fputs($CSVF, "\",\"");
fputs($CSVF, "$QUANTITY_9");
fputs($CSVF, "\",\"");
fputs($CSVF, "\$$PRICE_9");
fputs($CSVF, "\",\"");
fputs($CSVF, "$ID_9");
fputs($CSVF, "\",\"");
fputs($CSVF, "$NAME_9");
fputs($CSVF, "\",\"");
fputs($CSVF, "$ADDTLINFO_9");
fputs($CSVF, "\",\"");
fputs($CSVF, "$QUANTITY_10");
fputs($CSVF, "\",\"");
fputs($CSVF, "\$$PRICE_10");
fputs($CSVF, "\",\"");
fputs($CSVF, "$ID_10");
fputs($CSVF, "\",\"");
fputs($CSVF, "$NAME_10");
fputs($CSVF, "\",\"");
fputs($CSVF, "$ADDTLINFO_10");
fputs($CSVF, "\",\"");
fputs($CSVF, "$QUANTITY_11");
fputs($CSVF, "\",\"");
fputs($CSVF, "\$$PRICE_11");
fputs($CSVF, "\",\"");
fputs($CSVF, "$ID_11");
fputs($CSVF, "\",\"");
fputs($CSVF, "$NAME_11");
fputs($CSVF, "\",\"");
fputs($CSVF, "$ADDTLINFO_11");
fputs($CSVF, "\",\"");
fputs($CSVF, "$QUANTITY_12");
fputs($CSVF, "\",\"");
fputs($CSVF, "\$$PRICE_12");
fputs($CSVF, "\",\"");
fputs($CSVF, "$ID_12");
fputs($CSVF, "\",\"");
fputs($CSVF, "$NAME_12");
fputs($CSVF, "\",\"");
fputs($CSVF, "$ADDTLINFO_12");
fputs($CSVF, "\",\"");
fputs($CSVF, "$QUANTITY_13");
fputs($CSVF, "\",\"");
fputs($CSVF, "\$$PRICE_13");
fputs($CSVF, "\",\"");
fputs($CSVF, "$ID_13");
fputs($CSVF, "\",\"");
fputs($CSVF, "$NAME_13");
fputs($CSVF, "\",\"");
fputs($CSVF, "$ADDTLINFO_13");
fputs($CSVF, "\",\"");
fputs($CSVF, "$SUBTOTAL");
fputs($CSVF, "\",\"");
fputs($CSVF, "$TOTAL");
fputs($CSVF, "\",\"");
fputs($CSVF, "$SHIPPING");
fputs($CSVF, "\",\"");
fputs($CSVF, "$comment");
fputs($CSVF, "\"\n");

fclose($CSVF);
}

//# Send email conformation to the customer.....
$mailheaders = "From: $youremail\r\n";
$mailheaders .="X-Mailer: PHP Mail generated by:NOP Design Shopping Cart\r\n";
$subject = "Order Confirmation";
mail($b_email, $subject, $strMessageBody, $mailheaders);

include($header);
#include("header.php");

echo "<h2>Thank you</h2>";
echo "Thank you for your order from our online store. You will receive a confirmation email of your order ";
echo "momentarily. Please contact us at $youremail if you have any questions or concerns.";
echo "<P>";
echo "<A HREF=\"$returnpage\" target=_top>Return Home</A>";
echo "<P>";

include($footer);
#include("footer.php");

?>


Any help would be appreciated!

Dave
Dave B
 
Posts: 11
Joined: Mon Aug 21, 2006 11:50 pm

Re: Checkout orders.csv problem

Postby Koibito » Tue Aug 22, 2006 1:05 am

Dave B wrote:$header = "http://www.berryhillguns.com/cgibin/header.html";
$footer = "http://www.berryhillguns.com/cgibin/footer.html";
$returnpage = "http://www.berryhillguns.com";
$youremail = "db@berryhillguns.com";
$csvfilename = "http://www.berryhillguns.com/cgibin/orders.csv";
$csvquote = """";
$mode = "BOTH";


Dave,

You are using URLs here, but it needs to know what the path is. So instead of

$header = "http://www.berryhillguns.com/cgibin/header.html";
$footer = "http://www.berryhillguns.com/cgibin/footer.html";
$csvfilename = "http://www.berryhillguns.com/cgibin/orders.csv";

and assuming that your checkout.php is in /htdocs and that /cgi-bin is a subdirectory of /htdocs, you would use:

$header = "cgibin/header.html";
$footer = "cgibin/footer.html";
$csvfilename = "cgibin/orders.csv";

Header and footer don't need to be in /cgi-bin. You can put them in /htdocs, together with the checkout.php file.

You could also use absolute paths. Assuming that you are runing this on a Linux server or some other UNIX clone, that would look like this:

$header = "/usr/home/dave/htdocs/cgibin/header.html";
$footer = "/usr/home/dave/htdocs/cgibin/footer.html";
$csvfilename = "/usr/home/dave/htdocs/cgibin/orders.csv";
John
Koibito
Site Admin / Guru
 
Posts: 918
Joined: Sun May 28, 2006 1:59 am
Location: New Jersey, USA

Postby Dave B » Tue Aug 22, 2006 3:08 am

I tried leaving the files in the /cgibin directory and using what you suggested:
$header = "cgibin/header.html";
$footer = "cgibin/footer.html";
$csvfilename = "cgibin/orders.csv";

but I still received the same error message. I did receive my email but the customer didn't receive his.

I tried moving checkout.php, header.html and footer.html to the /htdocs directory and changed to code in the checkout.php file to read:
$header = "header.html";
$footer = "footer.html";
$returnpage = "/";
$youremail = "db@berryhillguns.com";
$csvfilename = "orders.csv";
$csvquote = "\"\"";
$mode = "BOTH";

Since I moved these files from /cgibin to /htdocs, I also changed checkout.html to direct to /htdocs/checkout.php:
<FONT CLASS="checkout">
<form action="http://www.berryhillguns.com/htdocs/checkout.php" method="POST" onSubmit="return CheckForm(this)">
<NOBR>
<SCRIPT>
CheckoutCart();
</SCRIPT>
</NOBR>

This didn't work either. I received the "Unable to open CSV file for writing. Your order has not been saved" error message. I received my email of the order but the customer did not receive his. All of the info in the email that I'm receiving is correct.
Dave B
 
Posts: 11
Joined: Mon Aug 21, 2006 11:50 pm

Postby Dave B » Tue Aug 22, 2006 3:25 am

Dave B wrote:Since I moved these files from /cgibin to /htdocs, I also changed checkout.html to direct to /htdocs/checkout.php:
<FONT CLASS="checkout">
<form action="http://www.berryhillguns.com/htdocs/checkout.php" method="POST" onSubmit="return CheckForm(this)">
<NOBR>
<SCRIPT>
CheckoutCart();
</SCRIPT>
</NOBR>


I wasn't sure if that was correct either so I changed the form action line to:
<form action="checkout.php" method="POST" onSubmit="return CheckForm(this)">

but I received the same response as all the others.
Dave B
 
Posts: 11
Joined: Mon Aug 21, 2006 11:50 pm

Postby Dave B » Tue Aug 22, 2006 3:28 am

Update: I got it to work this morning. It was an issue with permissions after all. When I looked at the permissions using Smart FTP, it showed "777" but that wasn't what the permissions really were. I was "denied acces" when I tried to change them using Smart FTP. My internet host had to make the changes.

Now that I've got that worked out, does anyone happen to have a script for the checkout.html file that allows the customer to select payment by either check or credit card? I'd like to make it allow only one or the other, either by a drop-down list or buttons. If the customer selects the "check" option then they wouldn't be able to type their credit card info into any of those fields.

Thanks!

Dave
Dave B
 
Posts: 11
Joined: Mon Aug 21, 2006 11:50 pm

Postby Koibito » Thu Aug 24, 2006 1:48 am

Dave B wrote:Now that I've got that worked out, does anyone happen to have a script for the checkout.html file that allows the customer to select payment by either check or credit card? I'd like to make it allow only one or the other, either by a drop-down list or buttons. If the customer selects the "check" option then they wouldn't be able to type their credit card info into any of those fields.


Yes, I'm using a custom checkout. (I should actually say "my wife is using a custom checkout", because it is her web site).

The checkout process consist of two parts.

The checkout.html form has two additional variables: Destination (domestic or international) and Payment Method (Credit Card, PayPal, Check or Money Order).

The checkout.pl script (I'm using the Perl version, but you can do the same thing with PHP) sends out custom e-mails with information that is only relevant for a specific destination and/or payment method. It also creates a checkout page that has a "Pay Now" button for the Credit Card/PayPal people only, and it gives information about checks and money order only for customers who want to pay that way.

An example. This is how I show the PayPal stuf only to customers who are going to pay by credit card or through PayPal.

Code: Select all
if ( ($method eq "Domestic") && (($payment_method eq "Credit Card") || ($payment_method eq "PayPal")) ) {
print "<table width="280" border="1" cellpadding="8" cellspacing="0" style="border-width: 2px 2px 2px 2px; border-color: #990000; border-style: solid; margin-left: 20px;">";
print "<tr>";
print "<td align="center" style="border-color:#ffffff;border-style:none;color:#000000"><br />To pay - click on button below:</td>";
print "</tr><tr>";
print "<td align="center" style="border-color:#ffffff;border-style:none;">";
print "<input type="hidden" name="cmd" value="_cart" />";
print "<input type="hidden" name="upload" value="1" />";
print "<input type="hidden" name="business" value="me\@mydomain.com" />";
print "<input type="hidden" name="currency_code" value="USD" />";
print "<input type="hidden" name="return" value="http://www.mydomain.com/thankyou.php" />";
print "<input type="hidden" name="cn" value="If you are a resident of New Jersey, 7% sales tax will be added. Thank you!" />";
print "<input type="hidden" name="first_name" value="$b_first" />";
print "<input type="hidden" name="last_name" value="$b_last" />";
print "<input type="hidden" name="address1" value="$b_addr" />";
print "<input type="hidden" name="address2" value="$b_addr2" />";
print "<input type="hidden" name="city" value="$b_city" />";
print "<input type="hidden" name="state" value="$b_state" />";
print "<input type="hidden" name="zip" value="$b_zip" />";
print "<input type="hidden" name="email" value="$b_email" />";
print "<input type="hidden" name="no_shipping" value="1" />";
print "<input type="hidden" name="shipping2" value="" />";
print "<input type="submit" value="     Pay Now     " class="button" />";
print "</form>";
print "</td></tr><tr>";
print "<td align="center" style="border-color:#ffffff;border-style:none;"><p align="left" style="font-size:11px;color:#000000">You will be transferred to PayPal's secure server to complete your purchase. You may pay by Credit Card or PayPal account.</p></td>";
print "</tr>";
print "</table>";
}


There is no need to show this to customers who are goig to pay you by check. It will only confuse them. On the other hand, people who are going to send you a check or money order must know what name to write on the check and your address. That information is in the e-mail that they get and on the second checkout page.

The files can be downloaded from here: http://www.kamya.com/test/kamya2.zip
John
Koibito
Site Admin / Guru
 
Posts: 918
Joined: Sun May 28, 2006 1:59 am
Location: New Jersey, USA


Return to Help: Perl/PHP/ASP Checkout

Who is online

Users browsing this forum: No registered users and 0 guests