[ic] employees generating quotes - my script etc

DB interchange-users@icdevgroup.org
Thu Feb 13 09:14:00 2003


> DB WROTE:
>> I'd be 
>> happy to post my script here if anyone would like to see it.
>> 
>> DB
> 
> sounds interesting especially with the pre-populated cart.
> lets have a look if you don't mind ... 

OK here goes... there are 2 parts, the script and the web page which 
calls it. Employees use this web page to send the quotes. I don't know 
how this post will be formatted but if it's too ugly let me know and I 
can email more info.

---begin web page ------
<HTML>
  <HEAD>
   <TITLE>AutoQuote</TITLE>
  </HEAD>

  <BODY>
<h1>AutoQuote</h1>
   <FORM ACTION="../cgi-bin/quote.pl" METHOD=POST>

    <p>
     Customer email: <INPUT TYPE="text" NAME="email">
    </p>

<p>
Notes (try to be brief, don't hit Enter... text will auto-wrap)<br>
<textarea name="notes" WRAP="virtual" rows="10" cols="50">
</textarea>
</p>

    <p>
  SKU1: <INPUT TYPE="text" NAME="sku1"> QTY: <INPUT SIZE="4" TYPE="text" 
NAME="qty1" VALUE="0">
<br> SKU2: <INPUT TYPE="text" NAME="sku2"> QTY: <INPUT SIZE="4" 
TYPE="text" NAME="qty2" VALUE="0">
<br> SKU3: <INPUT TYPE="text" NAME="sku3"> QTY: <INPUT SIZE="4" 
TYPE="text" NAME="qty3"
VALUE="0">
<br> SKU4: <INPUT TYPE="text" NAME="sku4"> QTY: <INPUT SIZE="4" 
TYPE="text" NAME="qty4"
VALUE="0">
<br> SKU5: <INPUT TYPE="text" NAME="sku5"> QTY: <INPUT SIZE="4" 
TYPE="text" NAME="qty5"
VALUE="0">
<br> SKU6: <INPUT TYPE="text" NAME="sku6"> QTY: <INPUT SIZE="4" 
TYPE="text" NAME="qty6"
VALUE="0">
<br> SKU7: <INPUT TYPE="text" NAME="sku7"> QTY: <INPUT SIZE="4" 
TYPE="text" NAME="qty7"
VALUE="0">
<br> SKU8: <INPUT TYPE="text" NAME="sku8"> QTY: <INPUT SIZE="4" 
TYPE="text" NAME="qty8"
VALUE="0">
<br> SKU9: <INPUT TYPE="text" NAME="sku9"> QTY: <INPUT SIZE="4" 
TYPE="text" NAME="qty9"
VALUE="0">
<br>SKU10: <INPUT TYPE="text" NAME="sku10"> QTY: <INPUT SIZE="4" 
TYPE="text" NAME="qty10"
VALUE="0">
</p>

    <INPUT TYPE="submit" VALUE="Submit the form">

   </FORM>
  </BODY>
</HTML>
---end web page ------



---- begin script ----

#!/usr/bin/perl
# quote.pl -- Quote generator

# Get data from form
$form_data_size = $ENV{'CONTENT_LENGTH'};
read (STDIN, $form_data, $form_data_size);
@info_returned = split (/&/,$form_data);

foreach $keyvalue (@info_returned)
{
     ($key, $value) = split(/=/, $keyvalue);
     $value =~ tr/+/ /;
     $value =~ s/%([\dA-Fa-f][\dA-Fa-f])/pack("C",hex($1))/eg;
     $pairs{$key} = $value;
}

#Read form input
$email = $pairs{'email'};
$notes = $pairs{'notes'};
$sku1 = $pairs{'sku1'};
$qty1 = $pairs{'qty1'};
$sku2 = $pairs{'sku2'};
$qty2 = $pairs{'qty2'};
$sku3 = $pairs{'sku3'};
$qty3 = $pairs{'qty3'};
$sku4 = $pairs{'sku4'};
$qty4 = $pairs{'qty4'};
$sku5 = $pairs{'sku5'};
$qty5 = $pairs{'qty5'};
$sku6 = $pairs{'sku6'};
$qty6 = $pairs{'qty6'};
$sku7 = $pairs{'sku7'};
$qty7 = $pairs{'qty7'};
$sku8 = $pairs{'sku8'};
$qty8 = $pairs{'qty8'};
$sku9 = $pairs{'sku9'};
$qty9 = $pairs{'qty9'};
$sku10 = $pairs{'sku10'};
$qty10 = $pairs{'qty10'};

# Assign random id number to quote
$quote_id=0;
$quote_id=rand;
$quote_id=int $quote_id*100000;

# Open file of the same name as quote_id
# These files live in their own directory.
# This directory must exist & be writeable!
# Their URL is short so won't break due to
# wrapping in customer's email program

$filename= '/home/myusername/www/q/'.$quote_id.'.html';
open(QUOTE, ">$filename") || die("Could not open file!");

# generate ugly long URL for prepopulated cart
# Only items whose qty>0 are included
# Don't forget to enter qty on quote form!

$basket_url='http://MyDomain.com/ord/basket.html?mv_action=refresh&mv_order_item='.$sku1.'&mv_order_quantity='.$qty1;
if ($qty2>0){
$basket_url=$basket_url.'&mv_order_item='.$sku2.'&mv_order_quantity='.$qty2;
}
if ($qty3>0){
$basket_url=$basket_url.'&mv_order_item='.$sku3.'&mv_order_quantity='.$qty3;
}
if ($qty4>0){
$basket_url=$basket_url.'&mv_order_item='.$sku4.'&mv_order_quantity='.$qty4;
}
if ($qty5>0){
$basket_url=$basket_url.'&mv_order_item='.$sku5.'&mv_order_quantity='.$qty5;
}
if ($qty6>0){
$basket_url=$basket_url.'&mv_order_item='.$sku6.'&mv_order_quantity='.$qty6;
}
if ($qty7>0){
$basket_url=$basket_url.'&mv_order_item='.$sku7.'&mv_order_quantity='.$qty7;
}
if ($qty8>0){
$basket_url=$basket_url.'&mv_order_item='.$sku8.'&mv_order_quantity='.$qty8;
}
if ($qty9>0){
$basket_url=$basket_url.'&mv_order_item='.$sku9.'&mv_order_quantity='.$qty9;
}
if ($qty10>0){
$basket_url=$basket_url.'&mv_order_item='.$sku10.'&mv_order_quantity='.$qty10;
}


#Begin output
print QUOTE <<EOM;
<HTML>
<HEAD><TITLE>Quote #$quote_id</TITLE></HEAD>
<BODY bgcolor="#C0C0C0">
<p align="center">
<img src="http://MyDomain.com/graphics/logo.gif"><br>
<B>Quote #$quote_id</B>
</p>
<p align="center">
Hi $email<BR><br>
<table align="center" width="500" border="0"><tr><td>
$notes
</td></tr></table>
<br>
<B><big>
<A HREF=\"$basket_url\">Click HERE to view your quote.</A>
</big><br>Your quote is valid for 30 days from the date your quote 
notification was sent.</B>
<BR>
<br>
If there are any problems with the qoute such as missing items or  a 
broken link, please
<A HREF=\"mailto:Parts\@MyDomain.com\?subject=Re: Quote# 
$quote_id">Click HERE</A> to Email us.
.<br> <br>
You may
also visit our website and enter
these numbers one at a time into  the search box in the upper right of 
our home page at
http://MyDomain.com<br>
$sku1<br>
$sku2<br>
$sku3<br>
$sku4<br>
$sku5<br>
$sku6<br>
$sku7<br>
$sku8<br>
$sku9<br>
$sku10<br>
</p>
</BODY></HTML>
EOM
# Close file
close QUOTE;

#send email to customer
$Mailer = '/usr/sbin/sendmail -t';
open MAIL,"|$Mailer";
print MAIL <<THE_EMAIL;
From: Quotes\@MyDomain.com
To: $email
Subject: MyDomain Quote $quote_id

Your quote from MyDomain is ready!

$notes

Please click the link below to view your quote.
The link is provided in several formats to
accomodate various email readers.

<A HREF=\"http://mydomain.com/q/$quote_id.html\">Click Here</A>

Click here:
http://mydomain.com/q/$quote_id.html

In case none of the above links works, copy this URL into your web browser:
http://mydomain.com/q/$quote_id.html

If you have any questions or problems, just reply to this message.

THE_EMAIL
close MAIL;

print "Content-Type:text/html", "\n\n";
print "Done... Click <a 
href=\"http://www.mydomain.com/q/$quote_id.html\">here</a> to view 
result\n";
print "<p>";
print "<small>";
print "Email sent to $email</small><p>";
print "Click";
print "<A HREF=\"http://mydomain.com/quote/quoteform.html\">here</A>";
print " to do another quote";

# END
---- end script ----