WhidbeyNET E-Commerce Shopping Cart
By Dansie
Dansie Shopping Cart 3.38
By Dansie Website Design
www.dansie.net
cart@dansie.net
Copyright © Dec 10, 1997-2003

The ReadMe may be big, not because the Dansie Shopping Cart is difficult to set up, but because it has so many customizable options! Most likely your cart has a basic configuration setting provided by WhidbeyNET which you may want to change.

Rule #1 ALWAYS KEEP A BACKUP!

You should have recived a copy of your vars.dat file which contains many of the settings described in this document. You will find instructions for installing your customised vars.dat file in Mall Version. Enjoy



CONTENTS:

  1. About lang.dat
  2. Setting HOST variables
  3. Setting PERSONAL variables
  4. How shipping is calculated
  5. Setting SECURE SERVER variables (Real-time credit card processors)
  6. Setting DATABASE variables (If you choose to use product databases)
  7. Advanced Database Features
  8. Miscellaneous features
  9. Mall Version.



§1 ABOUT LANG.DAT:

lang.dat is a data file that contains the language that your cart will speak. It's just a list of phrases that the cart uses. Feel free to modify lang.dat to suit your needs better. Some people have even put HTML tags in it to make radical changes to the appearance of their cart. If you are seeing a lot of HTML tags appearing in the email receipts, then set Personal Variable #57 to "text/html" (without the quotes). Would you like some custom text or HTML to appear at the top or bottom of your shopping cart pages? See lang.dat #111 and #114.
Would you like to have the cart aligned right or left? Set lang.dat #111 and #114 with some tables tags like so:
111 (footer) --></TD></TR></TABLE></DIV>
114 (header) --><DIV ALIGN=RIGHT><TABLE WIDTH=80%><TR><TD>

You may put JavaScript tags in your lang.dat variables, but make sure that you precede any single quotes with a back slash like so:
<SELECT NAME=example OnChange=\'SomeFunction()\';>

All of the submit buttons that you see in the dynamically generated pages of the cart can be converted to image buttons instead. This is for you advanced web designers who want to customize almost every detail of your site. First you would create your images. Then you would put the URL to the images in one or more of these lang.dat variables: 19, 35, 38, 41, 88, 146, 148. Also, Database Variable #15 can be substituted with an image too. The current text in the lang variables indicates what that variable is for.

There are two buttons in the cart that cannot be changed to image buttons. They are the "Same As Above" shipping/billing address copy button in lang.dat #105 and the "PRINT THIS PAGE FOR YOUR RECEIPT" button that appears at the bottom of receipt pages for Netscape browsers in lang.dat #13. These are not submit buttons but rather JavaScript buttons and need to remain that way. An image wont work for those two.

Back to top.



§2 HOST VARIABLES:

When installing the Dansie Shopping Cart, remember, you most likely only need to set the first 5 Host Variables to get your cart running.

1 Full URL location to cart.pl script -->http://www.YourName.net/cgi-bin/cart.pl
This is your shopping cart's URL location and name. Full URL path not system path.

Make sure that this URL matches exactly what you have (or will have) in the ACTION attribute in the FORM tags of your
HTML product forms. For example, notice these two URLs are NOT the same:
http://www.YourName.net/cgi-bin/cart.pl
http://YourName.net/cgi-bin/cart.pl

Do not attempt to run the cart.pl script on a site other than which it was licensed for.

2 Default return shopping URL -->http://www.YourName.net/store.html
This is the default "Return Shopping" URL for when people click the "Continue Shopping" button at the bottom of the shopping cart. You may specify return URLs in the HTML forms for every product that is purchased like so:
<INPUT TYPE=HIDDEN NAME=return VALUE="http://www.dansie.net/demo.html">
You must use a full URL. A full URL begins with "http://" (or "https://" if you are using a site security certificate). Example:
<INPUT TYPE=HIDDEN NAME="return" VALUE="http://www.YourName.com/page.html">
And NOT like this:
<INPUT TYPE=HIDDEN NAME="return" VALUE="page.html">
See Template.html for more details. But if you don't use the "return" tag in an HTML form, this variable will be the default return shopping URL. If your website uses frames, do NOT set this to: http://www.YourName.com but rather http://www.YourName.com/main.html In other words, don't set this to the parent document on a framed website, set it to the main child page or you will get frames within frames.

3 URL to images or thumb-nail directory -->http://www.YourName.net/images
Specify a base URL for where all your product thumb nail images are located so that you only need to say:
<INPUT TYPE=HIDDEN NAME=img VALUE="img.gif">
instead of:
<INPUT TYPE=HIDDEN NAME=img VALUE="http://www.YourHost.com/img.gif">
in your HTML forms.
(However, your images will still work if you use a full URL in your forms. This makes Dansie Shopping Cart flexible.)

4 URL to Custom image or company logo -->http://www.YourName.net/logo.gif
Custom image for cart.pl to use that represents your business. This can be your company logo. Full URL path and name to this gif/jpg.

5 URL to wallpaper -->http://www.YourName.net/wp.jpg
This is a full URL path to some wallpaper that you may use in your shopping cart script. If you wish to use a solid background color instead, just leave this blank and set
Personal Variable #15.


Note: In most cases you will never need to set Host Variables 6 through 12.

6 Sendmail, Windmail or Blat path -->
Leave this variable blank at first. In mose cases you will never need to set it. This variable is so your shopping cart can send you an email when someone places an order and also email your customer a receipt. The email will contain the products that you need to ship to them, the prices and the totals.

Unix Hosts

If your host is Unix, you will most likely be able to leave this variable blank. By leaving it blank the Dansie Shopping Cart will try to automatically detect the location of your hosts sendmail program. If the Dansie Shopping Cart fails at detecting the location of your hosts sendmail program, then it will give you a message saying so when you point your browser at:
http://www.YourName.com/cgi-bin/cart.pl?test

If it fails, ask your host for the location of the sendmail program. Example:
6 Sendmail, Windmail or Blat path -->/usr/sbin/sendmail
Other common sendmail paths are:
/usr/bin/sendmail
/bin/sendmail
/usr/lib/sendmail
Windows NT Hosts

Blat

The Dansie Shopping Cart can work with a program called Blat to send email. Ask your host what the system path to Blat is. Ask them to install Blat too if they haven't already done so.
Get Blat here:
http://gepasi.dbs.aber.ac.uk/softw/Blat.html
Or: http://www.dansie.net/blat15i.zip
Example:
6 Sendmail, Windmail or Blat path -->C:/winnt/system32/blat.exe
Or backslashes may be necessary:
6 Sendmail, Windmail or Blat path -->C:\winnt\system32\blat.exe
Have your host run Blat like so to initialize it:
c:\WINNT\SYSTEM32\Blat.exe -install mail.yourhost.com youruserid@yourname.com
If your host requires that you pass the SMTP address to blat.exe then set this variable like so:
6 Sendmail, Windmail or Blat path -->C:/winnt/system32/blat.exe|mail.hostname.com
The system path to blat.exe, then a "|" pipe character, then the SMTP address.

If you are using Blat and you aren't receiving any email receipts from the cart then use this test script and instructions to isolate Blat from the cart to first confirm that Blat is working.

Windmail

The Dansie Shopping Cart can also work with Windmail. If using Windmail, ask your host what the system path is and set this variable like so:
6 Sendmail, Windmail or Blat path -->C:/winnt/system32/windmail.exe
Or backslashes may be necessary:
6 Sendmail, Windmail or Blat path -->C:\winnt\system32\windmail.exe
Or maybe just:
6 Sendmail, Windmail or Blat path -->windmail.exe
Get Windmail here: http://www.geocel.com/windmail/

If your host doesn't have a system windmail program for everyone to use, upload your own:
  • Make sure your host will allow you to run executables in your cgi-bin and get their SMTP address.
  • Set your hosts SMTP address in the windmail.ini file.
  • Upload the two files "windmail.exe" and "windmail.ini" into your cgi-bin.
  • Set Host Variable #6 as "windmail.exe"
  • If you are using Windmail and you aren't receiving any email receipts from the cart then use this test script and instructions to isolate Windmail from the cart to first confirm that Windmail is working.
    Email In General

    If you are waiting to hear from your host about this system path in order to use your hosts sendmail service, you may leave this variable blank and the cart will still work (without sending email of course). You may set Secure Server Variable #8 if you would like the orders appended to a data file on your host instead.

    If you get an internal server error going to a receipt page, or you see strange text at the bottom of receipt pages, and you are not getting any email, it could mean that you don't have this path set correctly. Ask your host what it is. Leave this variable blank until you get the correct path.

    If you wish to run the cart indefinitely without sendmail and just append your orders to a data file instead, then set this variable to "off" (without the quotes). Then the cart will run without giving you the red diagnostic messages.

    SPECIAL NOTE ABOUT ssl.pl and email
    If your ssl.pl script is on a remote host and you are not receiving your customers credit card numbers via email from the ssl.pl script, then see the "SENDMAIL VARIABLES" section near the top of the ssl.pl script. Your remote host may have a different sendmail path than your local host and you will have to set that in the ssl.pl script.
    7 Date program path -->/bin/date
    Leave this variable blank. In most cases the cart is able to auto detect the date program from the server. If you attempt to set this system path and you don't see the date and time at the top of receipt pages, then you don't have the correct date path. If you are waiting to hear from your host about this system path, you may leave this variable blank and the cart will still work. The cart will try to see if it can grab a default system time for you. If you wish, you may run the cart with this variable blank indefinitely. If you are on a Unix host, you may adjust the time and date with switches like so:
    7 Date program path -->/bin/date -u "+%d/%m/%y %T"

    8 System path to shoppers data files ("temp" directory) -->
    This is the system path to a directory where data files will be kept of your customers shopping cart contents. You will only need to set this variable if you want to change it's default location. Otherwise leave this variable blank. If you want to change it's default location and you are not sure what your system path is, ask your host. This is a system path to a directory that is located next to your cart.pl script in the same directory as your cart.pl script. The name of this directory is "temp".
    WARNING! Make sure you keep NOTHING else in this directory, because the shopping cart goes through it and deletes old files!
    Examples:
    /path/to/cgi-bin/temp          (UNIX)
    D:/home/YourName/cgi-bin/temp  (Windows_NT)
    
    9 System path and name of shopperid.dat file -->
    You will only need to set this variable if you want to change it's default location. Otherwise leave this variable blank. This is a system path to what is basically a count file (shopperid.dat). It will keep track of how many people have used your shopping cart and use this number as a shopper ID number. The default location of this auto generated file will be in the same directory as your cart.pl script.
    Examples:
    /path/to/cgi-bin/shopperid.dat         (UNIX)
    D:/home/YourName/cgi-bin/shopperid.dat (Windows_NT)
    
    10 System path and name of language File -->
    This is the system path and name of your lang.dat file. You will only need to set this variable if you want to change it's default location. Otherwise you can leave this variable blank. What language do you want your cart to speak today?
    /path/to/cgi-bin/lang.dat          (UNIX)
    D:/home/YourName/cgi-bin/lang.dat  (Windows_NT)
    
    11 Frames target name -->
    If your site is not using frames, then leave this blank. If your site uses frames you may leave this variable blank as well. If using frames you may set this to the name of the main frame that you want the cart to appear in. In most cases, it will work if you just leave this variable blank.

    12 Parent Frame URL -->
    If your site is not using frames, then leave this blank. If your site uses frames then set this to the main URL of your site, like http://www.YourName.com This should be a URL to the parent document that loads all your frames. Where as
    Host Variable #2 is a URL to a child page like http://www.YourName.com/RightFrame.html. Note: During a Secure Online Credit Card Transaction, the cart script will make the cart frame assume the entire browser window to effectuate the lock at the top of the browser. After a credit card transaction the link at the bottom of the receipt page will return the customer to the URL defined in this variable.

    If your cart is loading frames within frames when you click on the "Continue Shopping" button in the cart, check the URLs in the "return" tags of your HTML forms and make sure they are pointing to a child page and not parent document.
    <INPUT TYPE=HIDDEN NAME=return VALUE="http://www.YourName.net/ChildPage.html">

    13 merchant_passwords.dat location -->
    This variable may be used if you have the
    Mall Version. You may leave it blank. However if you wish to change the default location of the merchant_passwords.dat file then you may do so by setting this to a system path. The default location for this file is in the same directory as the main default vars.dat file.

    14 Login SSL URL -->
    This variable may be used if you have the
    Mall Version. If you have a site security certificate and you wish to allow your hosted merchants to login via "https", then set this variable with an "https" URL to the cart.pl script. They would then be able to download credit card information in a secure manner. You only need to set this variable in the default vars.dat file in your cgi-bin. You don't need to set it in each and every one of your merchants vars.dat files.

    15 Mall merchant overdue redirect URL -->http://www.YourName.com/PaymentOverdue.html
    This variable may be used if you have the
    Mall Version. If one of your hosted merchants is overdue payment, you can disable their cart by simply renaming their directory or vars.dat file. Removing their login name and password from the merchant_passwords.dat file is also advised. If this variable is set with a URL and a shopper tries to use your clients cart, their browser will be redirected to the URL. You can make a custom page giving your client instructions how they can make payment and reactivate their shopping cart. You only need to set this variable in the default vars.dat file in your cgi-bin. You don't need to set it in each and every one of your merchants vars.dat files.

    Back to top.



    §3 PERSONAL VARIABLES:

    1 Custom Options -->20
    With every item you can have an array of custom descriptions. Such as color of shirt, size of shirt, or other attributes that might actually change the price of that item according to your specifications. These options would be in the
    SELECT, CHECKBOX, RADIO, TEXT and HIDDEN tags of your HTML forms. You can have as many custom descriptions of your items as you need. It is recommended for performance reasons that you keep this variable as small as possible. For example, if an item of yours that contains the largest number of custom descriptions comes to 20, then set this to 20. There is no need for the shopping cart script to search for higher variable values in this array. Default is set at 20. Example: The mens tie on the Dansie Shopping Cart website uses 3 custom name/value pairs. Size, Color, and Clip. http://www.dansie.net/demo.html If we were to use a stock number tag with the tie like this:
    <INPUT TYPE=HIDDEN NAME="custom4" VALUE="Stock# 0004">
    Then this item would have 4 custom descriptions. For more info on this, see Template.html.

    This variable also sets the maximum number of items you will be having in your "multi-items" forms. See Section 2 of Template.html for details about "multi-items" forms. For example, the Banana Split, Pineapple and Watermelon on this page http://www.dansie.net/demo.html has three items in this "multi-items" form. If you had a "multi-items" form that has 30 items in it, then set this no lower than 30. You only need to set this as high as the number of multi-items you have in any one form. Not as many items you have advertised on your entire site. So if you have 10 multi-item forms on your website and each form has 10 items in it, you would only need to set this variable as high as 10 and not 100.

    2 Order details are emailed to the merchant here -->cart@dansie.net
    This is where you put your email address. When someone orders something a copy of the order details will be emailed to you. This email that the cart sends you will help you fill their order. Need to send copies of the order to more than one address? Just set this variable like so:
    sales@YourName.net, orders@YourName.net, dropshipper@YourName.net
    
    Separated by either commas, spaces or both. Note: If you are using the ssl.pl script, customers credit card numbers will be emailed to the email address(s) you set in
    Secure Server Variable #11.

    The cart can also send receipts to www.Jfax.com. This is a neat email to fax service. Just put your authorized email address in the first position of PV#2 and put your Jfax email address in any other position.

    3 Data file extension-->dat
    This is nothing technical. It just tells your cart script what file extension to name the data files of your customer's carts that appear in your "temp" directory. Default is dat. You could change it to txt or others, but you can just leave it alone.

    4 Business name -->ABC Widget Company
    This is the name of your business. Don't leave this variable blank. If you don't want your business name to appear at the top of the carts pages, then set
    PV#44 to 0.

    5 Checks payable to -->John Doe
    This is who you want your customer to make their checks and money orders payable to. Perhaps it will be the same as Business Name (#4) above.

    6 Guarantee statement on receipt page -->If not completely satisfied with any item within 30 days, return in original packaging for a refund.
    This one is pretty self explanatory. This statement will be displayed on the webpage after a customer has made a purchase.

    7 Address name -->ABC Widget Company. Attn: John Doe
    This is the name of the mailing address of your company. Why three variables for the same name you ask? (
    4,5 and 7). This provides flexibility. This could be exactly the same as business name (#4) above.

    8 Street address -->1234 Main Street
    This is your street address.

    9 City, state, zip -->New York, NY 22222
    This is your city, state and zip.

    10 Toll free phone number for cc transactions -->1-800-555-1212
    This is where you put your telephone number for Credit Card Transactions Via Telephone. If you don't have a phone number and are not going to provide this payment option for your customers, then just leave this variable empty. Example:
    10 Toll free phone number for cc transactions -->

    11 Website address -->www.YourName.net
    This is your website address. Why again if we covered it in Host Variable #2? This variable wont be a link, just printed on the screen. You can have these two variables the same if you want. Or you may have this one say "yourname.com" instead of "http://www.yourname.com". Its up to you.

    12 Allow Sales Tax -->1
    The Dansie Shopping Cart can calculate sales tax (or VAT) 5 different ways:
    0 = No sales tax. The cart will not calculate any sales tax.
    1 = Allow sales tax on subtotal.
    2 = Force sales tax on subtotal.
    3 = Allow sales tax on subtotal and shipping charges.
    4 = Force sales tax on subtotal and shipping charges.

    If you are selling a few items that are nontaxable, then use this tag in the corresponding item's HTML form.
    <INPUT TYPE=HIDDEN NAME="custom2" VALUE="#nontaxable#">
    Of course, make sure the name "custom2" is not in conflict with any other custom name. See Template.html for details on "custom".

    If you set this variable to either 2 or 4 then it's recommended that you keep the Sales Tax State Verification feature in PV#76 turned off.

    13 Your State(s) of taxation -->California
    This is the state(s) you are in where you need to collect sales tax. If you need to collect tax in more than one state define this variable like so:
    13 Your State(s) of taxation -->California,Nevada,Hawaii
    If you only need to collect sales tax in one state, the cart will display a checkbox. If you need to collect tax in multiple states, the cart will display a select pull-down menu. See also the sales tax state verification feature in
    PV#76.

    If you have PV#12 set to something other than 0 (off), then don't leave this variable blank. Put something in here such as your state or province of sales taxation or VAT.

    14 State sales tax rate -->7.75
    This is the sales tax rate in your state. If you need to collect tax in more than one state define this variable like so:
    14 State sales tax rate -->7.75,6.00,4.00
    If you are collecting sales tax in multiple states, make sure the numbers here correspond in order with the states defined in #13 above.

    15 bgcolor -->#FFFFFF
    This is the background color of the pages of your shopping cart if no wallpaper is defined in
    Host Variable #5. Want to control the LINK and VLINK colors in the BODY tag of the carts dynamic pages? Set Personal Variable #15 like so:
    -->#FFFFFF" LINK=#0000FF VLINK=#000099 "
    Or with marginheight and marginwidth:
    -->#FFFFFF" marginheight=0 marginwidth=0 "
    Copy and paste this into your vars.dat file. Looks funny, but it will work.

    16 Header font color -->#FF0000
    This is the header font color in the shopping cart.

    17 Header font face -->Times New Roman
    This is the header face font in the shopping cart.

    18 Header font size -->+2
    This is the size of the headers in the shopping cart.

    19 Standard font color -->#000000
    This is the standard font color of the shopping cart.

    20 Standard font face -->Times New Roman


    21 Standard font size -->+1


    22 Thumb-nail image borders -->2
    Define the width of the borders around your thumb-nail images. Can be 0 and up.

    23 Shopper's data expires -->3.0
    This is the amount of days that shopping cart data files are allowed to remain on your host in the "temp" directory, before the shopping cart script deletes them. This makes Dansie Shopping Cart really intelligent and tidy, and prevents you from eventually running out of web space on your host. If you set this variable too low, your shoppers baskets could be erased before they are finished completing their order. Between 1 and 3 days are recommended settings.
    3.0  = three days.
    1.0  = one day.
    0.5  = 12 hours.
    0.08 = two hours.
    0.04 = one hour.
    
    The Dansie Shopping Cart immediately removes the following types of orders after they have been placed:
    It doesn't immediately remove the following because the sales are not yet final. The customer may decide to go back and add a couple more items to their cart before calling in their credit card number or mailing you their check. 24 Secure online cc transaction payment option -->1
    If this is set to 1 then the option of Secure online credit card transaction will appear in the shopping cart. If set to 0 then it will not appear. If you are going to accept credit cards as a payment option, see
    Section 11 in this ReadMe for details on setting that up.

    After Secure Online Credit Card Transactions, Online Check Drafts and COD orders, the customers data file is immediately erased because the order is considered final. However, with Credit Card Transaction Via Telephone and Check Or Money Order, the contents of their shopping cart are not erased as the order is not final and the customer could still choose to go back and add more items to their cart before they send you their check or call you.

    25 Transaction via toll free number payment option -->1
    Enables credit card transaction via toll free phone number. Set this to 1 to enable it and 0 to disable it.

    26 Check or Money Order payment option -->1
    Enables transaction via Check or Money Order. Set this to 1 to enable it and 0 to disable it.

    The "Check or Money Order" payment option is not designed to take your customers shipping address if you set it to "1". It just gives them a custom order form that they can print out and mail to you with their check/money order. If you would like the cart script to take your customers shipping address and notify you by email when they may be placing an order via "Check or Money Order", then set this variable to "2" (Without the quotes.)

    Notes: Remember, you never know if the customer is really going to order the products until you receive their check in the mail. Therefore, the contents of your customers shopping cart will not be immediately erased after they place their order. This way if your customer decides to go back and add just one more item to their cart, they wont find it empty and get frustrated.

    27 Allow shipping -->1
    The cart has five shipping methods you can use:
    1. Set this variable to 1 if you want the shopping cart to calculate shipping costs based upon the weight of the products they are purchasing.
    2. Set this variable to 1 if you want the shopping cart to calculate shipping costs based upon a flat fee for each item.
    3. Set this variable to 2 if you want the shopping cart to calculate shipping costs based upon the amount of the customer's purchase with flat charges a various increments. Example:
      Under $100   - $10 s&h
      $100 - $200  - $20 s&h
      $200 or over - Free
    4. Set this to 2 if you want the shopping cart to calculate shipping costs based upon the amount of the customer's purchase with flat charges a various increments. Example:
      Under $100   - 5%
      $100 - $200  - 4%
      $200 or over - Free
    5. Set this to 1 if you want to use Custom Database Shipping Tables.
    6. If you are going to make a "shipping included" type of statement, then set this to 0. The cart wont calculate any shipping then.
    See
    Section 10 for detailed information on setting up shipping charges.

    28 Show shipping weight with each item -->0
    If you set
    #27 above to 0 or 2, then ignore this variable. If you set this to 1 then you will see shipping with each item on the invoices. If you set this to 0 then you will only see shipping at the bottom of each invoice. Try it either way and see which you like best. If you set this to 1, make sure you define #32 below also.

    29 Shipping methods -->Standard UPS,2 day UPS,Next day UPS,Europe,Australia
    If you set
    #27 above to 0 or 2, then ignore this variable. This is an array containing all of the shipping methods you want to offer if you are doing shipping by the weight of your items. Separate them with commas like you see here. You may define anywhere from 1 to 100 shipping locations (or more). Nice huh?

    30 Initial shipping cost of first pound -->5.95,8.95,18.95,15.00,20.00
    If you set
    #27 above to 0 or 2, then ignore this variable. These are the prices of the initial shipping costs of each item (per pound/kilo). They must correspond in order with #29 above. Set them to whatever you need to. Then, in each product's HTML form, use a tag like this:
    <INPUT TYPE=HIDDEN NAME="sh" VALUE="1">
    "sh" means shipping and handling. "1" means one pound/kilo.

    Do you want the cart to say something like "Call for shipping quote" and not have any numeric value appear in the SELECT pull-down menu? Then set both PV#30 and PV#31 like so:
    30 Initial shipping cost of first pound -->0.00
    The "0.00" will tell the cart to not show ANY number (price) in that option.

    31 Shipping cost for each additional pound -->.50,.50,.50,2,3
    These are the costs of each additional (pound/kilo) per unit. They must also correspond in order with the
    #29 and #30 above. Example: If someone selects "Standard UPS" and their order has 3 pounds (or kilos) of products in it, the cart will charge 5.95 + .50 + .50 (6.95 total.)

    Do you want the cart to say something like "Call for shipping quote" and not have any numeric value appear in the SELECT pull-down menu? Then set both PV#30 and PV#31 like so:
    30 Initial shipping cost of first pound -->0.00
    The "0.00" will tell the cart to not show ANY number (price) in that option.

    32 Type of measure of weight. lbs or kg, etc. or just "units" -->Lbs.
    This concept allows your shopping cart to be very accurate about shipping costs. You may set this to lbs or kg, etc. or just "units". The shopping cart doesn't really understand what a pound or kilo is, but this word that you define here will be displayed in the shopping cart if you have
    #28 above set to 1. It will be there to tell your customer how many "pounds" an item weighs for S&H purposes.

    33 Is your host currently resolving IP addresses? -->1
    1 = yes. 0 = no.
    Sometimes hosts don't resolve IP addresses and in the email that you receieve it will say something like 208.222.43.221 as the IP address. You may convert that to something like this: wt-03.aol.com But at first, just leave this at 1. Later, if you notice that all the IP addresses look like "208.222.43.221" then set this variable to 0.

    34 Shipping calculated by amount of purchase: Locations -->USA,Canada,U.S. Territories
    You only need to set this variable if you set
    #27 above to 2. These values must correspond in order with the values in #35 below. The locations above are separated by commas. The corresponding shipping costs in #35 below are separated by vertical pipe symbols "|". You may define as many locations as you wish.

    35 Shipping calculated by amount of purchase: Amounts -->55,3.95,100,5|55,6.95,100,10|55,9.95,100,20
    You only need to set this variable if you set #27 above to 2. #35 above contains shipping calculation information for the three corresponding locations defined in #34 above. The three sets of information are separated by "|". The purchase amounts and shipping charges are separated by commas. In the above example, "55" is the lowest purchase amount defined for USA. The next number, "3.95", is the shipping charge (for any purchase amounts under $55). The third number, "100", is the highest purchase amount defined for USA in this example. The fourth number, "5", means that $5.00 will be charged for any purchase amounts that are under $100. Any purchase amounts $100 or over, will be "free shipping" or "shipping included" in this example. In the above example shipping for USA would be calculated like so:
    Order sub-totals Under $55                            - $3.95 s&h
    Order sub-totals Under $100 (but greater than $54.99) - $5.00
    Any order $100 and over                               - s&h is free.
    
    Always set this variable from smallest order totals to largest (ie, 55 to 100, not 100 to 55). Any sub-total equaling or exceeding the highest defined would be considered free shipping, so define it as high as you need to. Example: 55,3.95,100,5,200,10,500,25,1000,50

    If you want to use percentages instead of flat charges, set this variable like so:
    100,5%,200,4%,1000,3%,1000000,2%|etc|etc

    5% shipping for orders totaling $100 or less.
    4% shipping for orders totaling $200 or less.
    3% shipping totaling $1000 or less.
    2% shipping totaling $1000000 or less.
    Free shipping when subtotal is over $1000000.


    Do you want the cart to say something like "Call for shipping quote" and not have any numeric value appear in the SELECT pull-down menu? Then set PV#35 like so:
    35 Shipping calculated by amount of purchase: Amounts -->0.00
    The "0.00" will tell the cart to not show ANY number (price) in that option.

    36 Currency Symbol and decimals -->$|2|,
    This variable has three fields separated by the "|" (pipe) character. The first field will be the currency symbol you want the cart to display. The second field is how many decimal places you want the cart to use with your currency. The third field is what character you want used to separate the currency every three digits. Examples:
    36 Currency Symbol and decimals -->$|2|,
         Which will yield: $ 9,999.99
    36 Currency Symbol and decimals -->L|0|.
         Which will yield: L 9.000
    36 Currency Symbol and decimals -->£|2|,
         Which will yield: £ 9,999.99
    Note: If you have this variable set to use no decimals, then it's recommended to not use any decimals in your prices or the programs calculations may not appear correct. Also, if you use the Korean currency symbol "\" then you may need to leave
    Personal Variables #17 and #20 blank or the Korean browser may not display the Korean currency symbol correctly.

    37 Email receipt to customer -->1
    The Dansie Shopping Cart always gives your customer a printable receipt in their web browser. However, if you would like the cart to send them a receipt by email too, then set this variable to 1. If not, set it to 0.

    38 Background color of various tables -->#ddFFFF
    When a customer chooses "Check or Money Order" transaction, they get a printable custom order form. This form has a table where they print their shipping address. You can set the background color of this table here. If you leave it blank, the default is white. This is here in case you want to use a white font (#16) on your pages and still be able to read this table. This also sets the color in the row across the top of the shopping cart display where it says, Item: Description: Quantity: Each: Total:

    39 IP addresses or cookies for shopper ID -->1
    0 = IP address, browser and operating system info alone.
    1 = Cookies first, but if disabled, use IP address, browser and operating system info.
    2 = Cookies alone.

    The recommended and most reliable way for the cart to identify your shoppers is if you set this variable to 1 AND your shoppers have cookies enabled in their browser.

    40 Size of table borders when viewing shopping cart -->3
    This will set the thickness of the borders in the HTML table on the page that your customers see after they put an item in the cart, or view the cart. If you set this to 0, there will be horizontal rules
    between items for clarity.

    41 The width of the table when viewing the shopping cart -->90%
    Just like it says. If you are not sure what this does, set it to 50% and then put an item in your cart. You will see that the page seems too narrow. You may set this to pixels or percentages. Examples:
    41 The width of the table when viewing the shopping cart -->85%
    41 The width of the table when viewing the shopping cart -->600
    41 The width of the table when viewing the shopping cart -->800

    42 Online Check Draft Option -->icheck
    Yes, a fourth payment option. This is related to
    #24, #25, #26 and #45. You have six options here. Examples:
    42 Online Check Draft Option -->0
    42 Online Check Draft Option -->icheck
    42 Online Check Draft Option -->http://www.dansie.net/cgi-bin/scripts/ssl.pl
    42 Online Check Draft Option -->telecheck
    42 Online Check Draft Option -->https://oec2.chexpedite.net/YOURID/NBDS_FromCart.asp

    This variable is related to PV#50, PV#51 and PV#60.

    43 Use "state" field in shipping address -->1
    Europeans don't need to ask for this field in the shipping address. If you set this to 0, "state" will not appear in the shipping address forms. If you set it to 1, it will. Basically, if you expect all your customers will be outside the USA, then set this to 0, turning it off.

    44 Show business name at top of all pages -->1
    At the top of the pages that the shopping cart generates, you will see your business name followed by your
    company logo. Some customers have logos that have their business name in it and would like to suppress the display of their business name just above it. If you would like to do this, then set this variable to 0. Else, leave it at 1.

    45 Cash On Delivery payment option -->9.50
    A fifth payment option. This is related to
    #24, #25, #26 and #42. Set this to the price you want to charge your customers for shipping products to them in this manner. Set this to 0 if you do not wish to allow this payment option. If you wish to allow this payment option, but not charge anything for it, then set it to: "0.00".

    46 Customer Comments -->30|4
    This variable, if used, will create a TEXTAREA box where your customers enter their shipping information. You may solicit them for "Comments, questions, suggestions" or "Special shipping instructions" or a personal message if they are shipping the products to a loved one. This variable needs two numbers separated by the "|" character. The first number is the number of columns you want in the TEXTAREA. The second number is the number of rows you want in the TEXTAREA. Want to change the wording just above the TEXTAREA box? See lang.dat variable #99. If you do not wish to have this TEXTAREA box to appear in your cart, then either set this variable to 0 or leave it blank.
    If you would like some default text to appear inside the TEXTAREA, then set a third field here like so:
    46 Customer Comments -->60|8|What is your favorite color?<BR><BR>Favorite number?<BR><BR>Favorite rock band?<BR><BR>Favorite movie?
    (Use the <BR> tag to indicate line breaks.)

    47 Required fields -->name,company,address,city,state,zip,country,phone,email,comments
    If you set PV#47 like you see above, then all shipping and billing address fields will be required. If any of these words are in this variable the cart will require that your customers include that info when they submit their shipping/billing address. If you don't want to require that your customers include their phone number, then don't put that word in this variable, etc.

    48 Turn off all JavaScript -->0
    The Dansie Shopping Cart uses a little JavaScript to autocalc prices in the buttons and a few other minor things. The cart's JavaScript is compatible with MSIE and Netscape browsers both new and older versions except with some Mac browser versions and version 3.01 of Netscape which has a bug with JavaScript being used inside of nested tables. However, these nice features are not necessary for the cart to work. You can turn all JavaScript off if you like. Just set this variable to 1.

    49 Add and redirect -->0
    The Dansie Shopping Cart has the ability to add your customers items to their cart without needing to actually load a new page and view their shopping cart contents everytime. If you set this variable to 1, it will activate the "Add and Redirect" feature. Set it to 0 and the cart will show your customer their shopping cart contents everytime they put an item in it. If you set this to 2, then your customers item will be added and they will be redirected without the JavaScript popup box.

    If you would like to keep this variable set to 0, but you have a few products that you would like to use this feature with, then use this tag in those HTML product forms:
    <INPUT TYPE=HIDDEN NAME=redirect VALUE="1">
    or
    <INPUT TYPE=HIDDEN NAME=redirect VALUE="2">

    Make sure the URLs in your HTML FORM tags are EXACTLY the same as the URL in Host Variable #1. For example, notice how these two URLs below are NOT the same:
    http://www.YourName.com/cgi-bin/cart.pl
    http://YourName.com/cgi-bin/cart.pl
    One is missing the "www.". If you wish to run your shopping cart without the "www." in the URL, that is fine, just make sure that Host Variable #1 is set that way too. Otherwise, when using the Add and Redirect feature, the cart will keep informing you that it is empty.

    50 i-check, ValidCheck ID or Telecheck ID -->
    If you have an account with
    i-check, ValidCheck.com or Signio/Verisign's Telecheck for Online Check Drafts, then put your account ID here. Make sure you have Personal Variable #42 set to properly too.
    Currency Exchange Rate Feature:
    If you are having the Dansie Shopping Cart use a currency other than US Dollars, but need to have it translated to US Dollars before sending the customer to i-Check, then set this variable like so:
    00000000|.80
    The first field to the left of the "|" character will be your ID with i-Check like normal. The field on the right of the "|" character will be the exchange rate. The total will be divided by the number you place here before the customer is sent to i-Check.
    51 Wallpaper URL or background color on check draft table -->#808080
    If you have
    Personal Variable #42 set to the URL to your ssl.pl script and are going to have the shopping cart collect and send you your customers bank and check info, then set this variable to the full URL path to some wallpaper that you would like to have appear in the background of the check table. Or set it to a solid background color like you see here. If you are accessing your ssl.pl script via "https" then it is recommended to access this image via "https" too.

    52 Webstore discount -->subtotal|100|10
    The Dansie Shopping Cart can calculate discounts for your customers based upon either the "subtotal" or the total number of "items" they are purchasing. In the above example, if you set Personal Variable #52 this way in your vars.dat file, it will subtract 10% from any orders subtotaling $100 or more. If you set this variable like this: "items|10|15", the cart will apply a 15% discount if your customer orders 10 items or more. The first field must be either "subtotal" or "items". The second and third fields can be any numerical value you like. If you do not wish to use this feature leave this variable blank. If you would like to provide more discounts at a higher subtotal or item total, then add more values to PV#52 like so:
    52 Webstore discount -->subtotal|500|10|600|15|1000|20
    $500 gets a 10% discount. $600 gets a 15% discount. And $1000 gets a 20% discount. Etc.
    The Dansie Shopping Cart has three discount features:
    Webstore Discount, Coupon Discount, and Volume Discount Pricing described in section 1C of the Template.html file.

    If you have the cart set to use Webstore or Coupon discounts but you want certain items to always be full price and never be discounted, then use a tag like so:
    <INPUT TYPE=HIDDEN NAME="custom1" VALUE="#nodiscount#">
    In order to reduce confusion for your customers it is highly recommended to include another custom description tag like this:
    <INPUT TYPE=HIDDEN NAME="custom2" VALUE="No discounts on this item.">

    53 Email Signature -->Dansie Shopping Cart|CGI Software for your webstore|http://www.dansie.net|cart@dansie.net
    You can have this info appended to the bottom of email receipts that get sent to your customers. Put your name, company slogan, mailing address, website address, email address, phone number here, etc. Use the "|" to indicate where you want line breaks. If you don't wish to use a signature, then leave this blank. If you set this to "default" (without the quotes), the shopping cart will automatically put your business name (
    PV#4), website address (HV#2) and email address (PV#2) at the bottom of the email receipts.

    54 Paper color font -->
    Some people like to use a black background and a white font. However, you can't read it when you print it out on a printer. If you must use a white font, but want to use a different color on your receipt pages so your customer can read what they print out, set this to the receipt page font color and either wallpaper or background color. Example:
    54 Paper color font -->#000000|#FFFFFF
    Or:
    54 Paper color font -->#000000|http://www.YourName.com/SpecialWallpaper.gif
    If you want to use the same font colors throughout the cart and even on the receipt pages then just leave this variable blank.

    55 Disable all diagnostics for security reasons -->0
    The Dansie Shopping Cart has some helpful diagnostic features. Such as:
    http://www.YourName.com/cgi-bin/cart.pl?vars
    http://www.YourName.com/cgi-bin/cart.pl?env
    http://www.YourName.com/cgi-bin/cart.pl?path
    http://www.YourName.com/cgi-bin/cart.pl?lang
    http://www.YourName.com/cgi-bin/cart.pl?write_test
    If you feel that allowing your cart script to display these environment variables and system paths could be a security risk for you, then set this variable to 1. To enable all diagnostics leave this variable at 0. If you ever email us because you need any help with your shopping cart make sure this is set to 0 so we can help you. We recommend leaving this set to 0 until you feel your web store is complete. When everything is working properly and you are ready to take your web store public, then set this to 1 if you like. Note: If your vars.dat file is missing from your cgi-bin or your cart.pl script can't find it, env, path and lang will still work.

    56 Meta Tags --><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
    If you are going to translate your lang.dat file into a foreign language and you need the Dansie Shopping Cart to use a special meta tag, set it here. If you don't have any clue what this is about, then just ignore this variable or leave it blank. Anything you insert in this variable will appear between the <HEAD></HEAD> tags of the carts pages. You can also put CSS (Cascading Style Sheet) tags here.

    For Japanese, set this with:
    <META http-equiv="Content-Type" content="text/html; charset=shift_jis">

    57 Email Content-Type -->text/plain; charset=iso-8859-2
    If you are going to translate your lang.dat file into a foreign language and you need the Dansie Shopping Cart to use a special content type in the email, set it here. If you don't have any clue what this is about, then just ignore this variable or leave it blank.

    You can put HTML tags in your lang.dat file to make radical changes to the appearance of the cart. If you are seeing a lot of HTML tags appearing in the email receipts, then set
    Personal Variable #57 to:
    57 Email Content-Type -->text/html

    If you have translated the lang.dat file to Japanese, set this to:
    57 Email Content-Type -->text/plain; charset=x-sjis

    58 Email Content-Transfer-Encoding -->8-bit
    If you are going to translate your lang.dat file into a foreign language and you need the Dansie Shopping Cart to use special encoding in the email, set it here. If you don't have any clue what this is about, then just ignore this variable or leave it blank.

    59 Allow Coupon/Gift Certificate Discount -->1
    Activating this feature will allow your customers to enter a coupon or gift certificate number that will give them a discount. If you do not wish to use this feature, then set this variable to 0. Set this to 1 if you want to activate this feature. If you do not wish to have the
    Webstore Discount (PV#52) feature to be available in conjunction with this discount feature, then set this variable to 2. This way if a customer qualifies for the Webstore Discount and enters in a coupon or gift certificate number, they will only get the discount associated with this feature and not the Webstore Discount. How it works: Create a file named "discount.dat" and put it in the same directory as your vars.dat file. This file should look like so:
    abc|10%
    def|15%
    123|10
    456|50
    
    If a customer enters in a coupon or gift certificate number that matches a string in one of the left fields, the customer will receive the discount in the corresponding right field. Use the "|" delimiter for this file. The gift certificate numbers can be anywhere from 1 to 10 characters long made up of numbers and/or letters. You may designate the values as either percentages or flat amounts. Example: If a customer enters in "abc" they will receive a 10% discount on their order. If a customer enters in "456" they will receive a $50 discount on their order. The discount will apply on the subtotal of their order but not on their sales tax and shipping. So they will still pay for any applicable sales tax and shipping. You may have as many coupon/gift certificate numbers and values as you wish in your "discount.dat" file. The numbers don't delete themselves from the discount.dat file after use. You will need to remove them when you want them removed.
    The Dansie Shopping Cart has three discount features: Webstore Discount, Coupon Discount, and Volume Discount Pricing described in section 1C of the Template.html file.

    If you have the cart set to use Webstore or Coupon discounts but you want certain items to always be full price and never be discounted, then use a tag like so:
    <INPUT TYPE=HIDDEN NAME="custom1" VALUE="#nodiscount#">
    In order to reduce confusion for your customers it is highly recommended to include another custom description tag like this:
    <INPUT TYPE=HIDDEN NAME="custom2" VALUE="No discounts on this item.">

    60 URL to Online Check Draft image instructions -->
    If you don't have
    PV#42 set to the full URL to your ssl.pl script, then you can ignore this variable. If you do, then set this to the full URL of an image that may be visually helpful in filling out the Online Check Draft form. Example:
    60 URL to Online Check Draft image instructions -->http://www.dansie.net/images/check.gif
    If you are accessing your ssl.pl script in "https" mode then it's best to access this image via "https" as well.

    61 Disable truncating of quantity numbers -->0
    The Dansie Shopping Cart normally truncates all quantity numbers if your customers try to type something in like "2.5" into the quantity box. However, if you would like to disable this feature, set this variable to 1. If you would like to remove the ability of your shoppers to change the quantity of their items after they place them in the basket, then set this variable to 2. The "Change" button will not be displayed then.

    62 Auxiliary payment option -->
    A sixth payment option. This is related to
    #24, #25, #26, #42 and #45. If you don't need a sixth payment option, then leave this variable blank. If you do, then type in some text here like so:
    62 Auxiliary payment option -->Free on the house
    lang.dat variable #83 will allow you to put some customized text on the receipt page related to this payment option.

    63 Suppress custom descriptions -->0
    You can set this variable to 0, 1, 2 or 3. Above it's shown being set to 0.

    64 Add items to top or bottom of cart contents? -->top
    After clicking on submit buttons in your HTML product forms, the item gets sent to the cart.pl script and appears on the "Your shopping cart contents:" page. You can have the Dansie Shopping Cart add your new items to either the top or the bottom of that list. Adding to the top is recommended as the shopper can quickly see their new item in their basket. If you have the cart add the new item to the bottom, they may need to scroll down to see it. You can set this variable to either "top" or "bottom".

    65 Shopper ID Prefix -->
    Most likely you will want to leave this variable blank. However, if you would like to append something to the beginning of your shopper ID numbers like a letter or two, then set that here. For example if a customer's shopper ID number would be 101, but you set this variable like so:
    65 Shopper ID Prefix -->A
    Then the customer's shopper ID number will appear like so: A101

    66 Authorized HTTP_REFERER domains -->
    This variable is a security device that allows you to control which domains your script will accept POSTs from when shoppers are adding items to their shopping basket. It will prevent people from saving your web pages to their computer, changing the prices in your HTML forms and submitting it from their computer. You may set it like so:
    66 Authorized HTTP_REFERER URLs -->www.YourName.com,222.22.22.22
    Put domain names or IP address here, but not URLs. Do not put "http://" in this variable. Do not put page names. Do not put URLs. Just domains or IP address as you see in the example above, separated by commas. The cart.pl script will compare the environment variable HTTP_REFERER with the domains you list here. If there is no match, then the item will not be added to the customers shopping cart basket. You may set as many authorized domains in this variable as you like separated by commas. If you don't wish to use this feature, you may leave this variable blank. If you are testing your HTML forms on your own computer, it is recommended to leave this variable blank or the items will never get added to your basket. If you have problems getting items to be added to your basket while using this feature, then leave this variable blank.

    If one of your shoppers can't seem to add an item to their basket and they get a PV#66 security message, but it works fine for you or anyone else, it could be that the shopper is behind a firewall.

    67 Display "Empty Entire Cart" Button -->0
    If you set this variable to 1 then a button will appear in the main Shopping Cart Contents page that will allow your shoppers to empty their entire cart by clicking one button.
    lang.dat variables related to this variable are #87, 88 and 89. If you do not wish to allow this option, then leave this variable blank or set to 0.

    68 Minimum Order -->
    If you set this variable to 100 then the Dansie Shopping Cart wont let anyone place an order unless their subtotal is $100 or higher. You can set it to any number you like. If you don't wish to use this feature then leave this variable blank. If you use this feature make sure that lang.dat #18 has something like this in it:
    18 -->Mimimum Order:<BR>To place an order, the subtotal must be a minimum of:


    69 Order Tracking -->
    The Dansie Shopping Cart can append summary information of every order to a pipe delimited "|" file called "tracking.dat". This info may be used for many purposes. You may create a program that will interpret and display this info for you. The fields of info that the cart appends are as follows:

    1. Shopper ID number (coupon codes will appear here too separated by a dash "-" if used.)
    2. Customer name and company name
    3. Email address
    4. Phone number
    5. Order total (including shipping and sales tax)
    6. Shipping charges
    7. Shipping method
    8. Products ordered (comma delimited) the prices and custom descriptions of each item (:: delimited). The quantity of each item will also appear in parenthesis.
    9. Date
    10. Sales tax
    11. Shipping Address
    12. City
    13. State
    14. Zip
    15. Country
    16. The payment method chosen by your customer
    17. Billing name and billing company name
    18. Billing address
    19. Billing city
    20. Billing state
    21. Billing zip
    22. Billing country
    23. Billing phone number
    24. Billing email
    25. Customer comments, if any. Original line breaks are replaced with a "" character.
    To utilize this feature, create an empty file called "tracking.dat", upload it to the directory you want and make sure it is writable. Then set the system path to the tracking.dat file in this variable like so:
    69 Order Tracking -->/path/to/cgi-bin/tracking.dat
    Not sure what your system path is? Go here:
    http://www.YourName.com/cgi-bin/cart.pl?path
    Do NOT set a URL in PV#69. Set the system path.
    This ReadMe will speak of "URLs" and "system paths". URL stand for Uniform Resource Locator. It is a website address that starts with "http" and is accessed via a web browser. A system path is a local path to a file on your hosts machine. Perl accesses files on your host's machine with system paths. System paths on Unix hosts start with a slash "/". System paths on Windows NT hosts start with a drive letter and a colon like so: "c:/home/YourName/cgi-bin/tracking.dat"
    Try to keep this in mind and not get the two confused.

    Storing credit card numbers in flat-file database format:
    Near the top of the ssl.pl script, if you set the $ssl_tracking_dir variable with a system path, then the ssl.pl script will record credit card info in a flat-file database format there. Example:
    $ssl_tracking_dir = "/secure/host/path/to/cgi-bin/tracking.dat";
    Make sure you make this file first and set write permissions on it.
    Please note that billing address info is not collected or recorded when using the Check or Money Order or COD payment options.

    70 Collect Company Name in shipping and billing -->1
    If you set this variable to 1 the Dansie Shopping Cart will collect your customers company name on the shipping and billing address page. If you set it to 0, then a text field that prompts for this info will not appear. Make sure that you have something like this in lang.dat #90:
    90 -->Company Name:
    Also, this field can be made to appear but not required. Or appear and be required. See
    PV#47 for details.

    71 Auxiliary Real-Time Credit Card Processor Payment Option -->
    This is a 7th payment option. Other payment options are
    #24, #25, #26, #42, #45, #62 and #81. The Dansie Shopping Cart currently works with many different real-time credit card processors as you can see in section 11 of this ReadMe. This payment option allows you to have the cart work with more than one real-time credit card processor. How to activate this payment option: If you need to set "Success" and "Failure" return URLs in your processors account, set them like so:
    Success: http://www.YourName.com/cgi-bin/cart.pl?aux_processorSSV#6
    Failure: http://www.YourName.com/cgi-bin/cart.pl?failure

    Change SSV#6 above to what you have in SSV#6.

    72 Email Receipt Tables -->15|26|4|10|10
    This variable allows you to change the way the email receipts look, making them more compact in a table type format. To use this feature, tell the cart program the width you want each column. The columns are respectively: The above settings are recommended for the column widths. You may set a column width to 0 (zero) and it will disable that column in the email receipts. Make sure you have lang variables #156 and #157 set in your
    lang.dat file. Customize them as you like. If you do not wish to use this feature, leave this variable blank. If you use a lot of HTML in your lang.dat file and your email receipts don't look right, then it's recommended to leave this variable blank.

    If, when using this feature, the text in lang.dat #156 doesn't appear to be spaced out properly, see that you leave PV#57 blank!

    73 Show shipping weight total on receipt pages -->1
    If you have the cart calculating shipping by the weight of the items and you have PV#27 set to 1, then you can also have the cart display the total weight of all the items near the sub total on receipt pages. Just set this variable to 1 to turn it on. If you do not wish to use this feature, leave this variable blank.

    74 States -->Alabama,Alaska,Arizona,etc...
    If this variable is set, then a pull-down SELECT menu will appear to collect the state on the carts page that collects the shipping/billing address. If you leave this variable blank, a TEXT field will appear where your shoppers can type in their state. You can enter as many states here as you like separated by commas. They will appear in the order you list them here. One neat feature, is if you spell your state(s) in
    PV#13 exactly as you spell them here, then if a shopper selects that they live within a sales taxable area, the cart will display the correct state as selected instead of the first state you list here. The default list of states that comes with the vars.dat file can be modified to include Canadian provinces etc. Customize the list however you like.

    75 Countries -->USA,European Economic Community,Albania,Algeria,etc...
    If this variable is set, then a pull-down SELECT menu will appear to collect the country on the carts page that collects the shipping/billing address. If you leave this variable blank, a TEXT field will appear where your shoppers can type in their country. You can enter as many countries here as you like separated by commas. They will appear in the order you list them here. The default list of countries that comes with the vars.dat file can be modified to include more or fewer countries. Customize the list however you like.

    76 Sales tax state verification -->1
    If you set this to "1", it will activate the cart's sales tax state verification. This will do two things:
    It is highly recommended to use this feature in conjunction with PV#74. If you activate this feature, but don't have PV#74 activated, then this feature may not work in all cases such as if a shopper misspells their state. PV#43 needs to be activated or this feature wont work at all.

    77 System path to .htpasswd file -->
    This variable has been made obsolete as you can now define a system path to numerous .htpasswd files for each product download you have listed in the passwords.dat file. See the
    Sell Passwords feature for details.

    78 Refuse email addresses -->
    You can tell the cart to refuse to accept orders with email addresses from domains or domain extensions that pose a security risk to your online business. Such as email addresses from anonymous email accounts or from foreign countries. Example:
    78 Refuse email addresses -->.ru,hotmail.com,jack@bigfoot.com
    In the above example, the cart wouldn't accept an order from anyone So you may define just a domain extension, a domain, or a complete email address. Adjust lang.dat variables #162 and #163 to best convey the language you would like the cart to use when a shopper attempts to use an email address domain that you have set the cart to refuse.

    79 Referral ID -->
    Sign up with the Dansie Shopping Cart Referral Program and earn free Dansie Shopping Cart software licenses with referred sales. Set this variable with your referral ID like so:
    79 Referral ID -->domain.com
    The cart.pl script will then automatically change the text link at the bottom of the pages generated by the cart.pl script to include your referral ID.

    80 Pending Order Tracking -->
    The Dansie Shopping Cart can append summary information of every order to a pipe delimited "|" file called "tracking.dat". See details on this in
    PV#69. However, if you are using a credit card processor (PV#24), this info may not get recorded if a shopper's browser doesn't return from a credit card processor's website. PV#80 can preemptively record this information for you BEFORE the cart sends the shopper to the credit card processor's website. This info may be used for many purposes. You may create a program that will interpret and display this info for you. The fields of info that the cart appends are as follows:

    1. Shopper ID number (coupon codes will appear here too separated by a dash "-" if used.)
    2. Customer name and company name
    3. Email address
    4. Phone number
    5. Order total (including shipping and sales tax)
    6. Shipping charges
    7. Shipping method
    8. Products ordered (comma delimited) the prices and custom descriptions of each item (:: delimited). The quantity of each item will also appear in parenthesis.
    9. Date
    10. Sales tax
    11. Shipping Address
    12. City
    13. State
    14. Zip
    15. Country
    16. The payment method chosen by your customer
    17. Billing name
    18. Billing address
    19. Billing city
    20. Billing state
    21. Billing zip
    22. Billing country
    23. Billing phone number
    24. Billing email
    25. Customer comments, if any. Original line breaks are replaced with a "" character.
    To utilize this feature, create an empty file called "pending.dat", upload it to the directory you want and make sure it is writable. Then set the system path to the pending.dat file in this variable like so:
    80 Pending Order Tracking -->/path/to/cgi-bin/pending.dat
    Not sure what your system path is? Go here:
    http://www.YourName.com/cgi-bin/cart.pl?path
    Do NOT set a URL in PV#80. Set the system path.
    This ReadMe will speak of "URLs" and "system paths". URL stand for Uniform Resource Locator. It is a website address that starts with "http" and is accessed via a web browser. A system path is a local path to a file on your hosts machine. Perl accesses files on your host's machine with system paths. System paths on Unix hosts start with a slash "/". System paths on Windows NT hosts start with a drive letter and a colon like so: "c:/home/YourName/cgi-bin/pending.dat"
    Try to keep this in mind and not get the two confused.

    81 Second Auxiliary Real-Time Credit Card Processor Payment Option -->
    This is an 8th payment option. Other payment options are
    #24, #25, #26, #42, #45, #62 and #71 . The Dansie Shopping Cart currently works with many different real-time credit card processors as you can see in section 11 of this ReadMe. This payment option allows you to have the cart work simultaneously with a third real-time credit card processor. How to activate this payment option: If you need to set "Success" and "Failure" return URLs in your processors account, set them like so:
    Success: http://www.YourName.com/cgi-bin/cart.pl?aux_processor2SSV#6
    Failure: http://www.YourName.com/cgi-bin/cart.pl?failure

    Change SSV#6 above to what you have in SSV#6.

    82 Suppress shipping/billing address in customers email receipts -->
    If you set this variable with a "1" the customers shipping and billing address will not be emailed back to them in their email receipt. The merchant will always get a copy in their email receipt. If you set this to "0" or leave it blank, customers shipping and billing address will be echoed back to them in their email receipt.

    83 Collect only billing address for credit card payments -->
    Due to concern of possible credit card misuse, some merchants want to ship only to the credit cards billing address. Normally the cart will collect both a shipping and a billing address which allows your customers to enter both their credit card billing address and the shipping address of a loved one. If you set this variable with a "1" the cart will only collect ONE name and address from shoppers when they select a credit card payment option. This compels your shoppers to have the items shipped to the same address as their credit card billing address. If you set this variable to 0 (zero) or leave it blank, the cart will collect both a shipping and billing address from your shoppers. See also lang.dat #172 and customize as you desire. Note that although the cart will only prompt and collect your shopper's credit card billing address if this feature is activated, they could try to change the billing address in the fields while on a real-time credit card processor's website. So always compare and confirm the shipping address is the same

    Back to top.



    §4 HOW SHIPPING IS CALCULATED:

    The Dansie Shopping Cart can currently calculate shipping six different ways:
    1. By the total weight of all the items. You define the weight of each item. Set Personal Variable #27 to "1" for this method.
    2. A flat fee per item. Example:
      <INPUT TYPE=HIDDEN NAME=sh VALUE="3.50">
      Set Personal Variable #27 to "1" for this method. Set PV#30 and PV#31 to something like "1,1.5,2".
    3. Based upon flat rates at various increments of the subtotal. See Personal Variables #34 and #35. Set Personal Variable #27 to "2" for this method.
    4. Based upon percentages at various increments of the subtotal. See Personal Variables #34 and #35. Set Personal Variable #27 to "2" for this method.
    5. Custom Database Shipping Tables. If your shipping company doesn't have consistent prices for each additional pound, then this is for you.
    6. No shipping. You can turn off all shipping calculations in the cart and just say, "Shipping Included" somewhere on your website.
    SHIPPING TYPE ONE: By the pound/kilo/unit:
    (When
    var #27 above is set to 1)

    Shipping for an item will be calculated according to the sh VALUE in the forms of your HTML pages. Example:
    <INPUT TYPE=HIDDEN NAME=sh VALUE="1"> (See Template.html)
    Or by the value of the shipping field in your flat-file databases. The script will multiply the sh VALUE times the value of #31 above to determine shipping for that item. If your item is heavier, set the sh VALUE to 2,3 or 10. The denomination of the sh VALUE can be pounds, kilograms, or just hypothetical units. This denomination should be defined by #32 above. #32 will be displayed in your script if (#28) is set to 1 and also it is displayed in the email receipts that the script sends to you after orders have been placed.

    Note: The first pound/kilo of the first item will not get the value of #31 but rather the value of #30. This insures that you wont charge someone 50 cents for shipping a one pound item but have to pay $5.95 yourself. Also, if your customer orders only one or two items that weigh less than one pound, the cart will charge them for a full pound. It will charge a minimum of one pound.

    An example of setting up shipping by the pound/kilo/unit:

    Let say that you decide that each unit (#32) is one pound and you set #32 to "lbs". You call some shipping companies and get current prices as to how much they charge for the first pound and each additional pound. Set #30 to the price for the first pound. If five day ground mail is 5.95 and 2 day air is 8.95 and overnight is 18.95, then set #30 to: (5.95,8.95,18.95); Set #31 the same way except how much you want to charge for each additional pound. eg,(.50,.75,.85);. If an item weighs 1 pound then you will put
    <INPUT TYPE=HIDDEN NAME=sh VALUE="1">
    in the HTML form in the page where it is sold. If an item weighs 2 pounds then you will put
    <INPUT TYPE=HIDDEN NAME=sh VALUE="2">
    in the HTML form in the page where it is sold. The shopping cart will multiply the sh value, times the quantity of that item purchased, times #31 (according to shipping method chosen). Then it will substitute one of the regular price values for the #30 values. Therefore:
    shipping = (Initial unit cost) + ( (units-1) x price per additional unit)
    OR, another way to look at it is:
    shipping = (first pound price) + ( (pounds-1) x price per additional pound)

    SHIPPING TYPE TWO: Flat fee per item:
    (When
    var #27 above is set to 1)

    If you want to charge just a flat shipping fee for each item, in terms of dollars (lets say $4.00), then put this in your form:
    <INPUT TYPE=HIDDEN NAME=sh VALUE="4.00">
    (Or put "4.00" in the appropriate field in your database if using them.)
    and set both #30 and #31 to something like this: (1,1.5,2). This way your cheapest form of shipping will be $4.00, your next shipping method would be $6.00 (4 x 1.5) and your most expensive shipping method would be $8.00 (4 x 2).

    Remember, you can provide as many shipping locations as you wish and to as many states and countries as as you like. All you have to do is put more locations (or speeds such as "overnight") in #29, and more values in #30 and #31.

    SHIPPING TYPE THREE: Scaled according to the subtotal with flat rates at various increments:
    (When var
    #27 above is set to 2)

    This is an easier way to set up your shipping charges, but not as accurate as by the pound/kilo. If you use this method, you will not have to use the "sh" hidden input tags in your HTML forms. Example:
    <INPUT TYPE=HIDDEN NAME="sh" VALUE="1">
    (Wont be necessary in your forms.)

    Example:
    $5 shipping for orders totaling $100 or less.
    $10 shipping for orders totaling $200 or less.
    $50 shipping totaling $1000 or less.
    Over $1000, free shipping.

    Read PERSONAL VARIABLE #34 and #35 above for details about how to use this shipping method.

    If you don't want shipping considered on some particular items, then use a tag like so in your HTML forms:
    <INPUT TYPE=HIDDEN NAME="custom1" VALUE="#noshipping#">

    SHIPPING TYPE FOUR: Scaled according to the subtotal with percentage rates at various increments:
    (When var
    #27 above is set to 2)

    This is an easier way to set up your shipping charges, but not as accurate as by the pound/kilo. If you use this method, you will not have to use the "sh" hidden input tags in your HTML forms. Example:
    <INPUT TYPE=HIDDEN NAME="sh" VALUE="1">
    (Wont be necessary in your forms.)

    Example:
    5% shipping for orders totaling $100 or less.
    4% shipping for orders totaling $200 or less.
    3% shipping totaling $1000 or less.
    2% shipping totaling $1000000 or less.
    Free shipping when subtotal is over $1000000.
    You customize the increments and charges of course.
    Read PERSONAL VARIABLE #34 and #35 above for details about how to use this shipping method.

    SHIPPING TYPE FIVE: Custom Database Shipping Tables:
    (When var
    #27 above is set to 1)

    This method may be used in combination with Shipping Type One and Shipping Type Two. Say you have a shipping company that has an unusual pattern for each additional pound when shipping to Australia. You could set PV#29 like so:
    29 Shipping methods -->Standard UPS,2 day UPS,Next day UPS,Europe,Australia
    Then you could set PV#30 and #31 like so:
    30 Initial shipping cost of first pound -->5.95,8.95,18.95,15.00,shipping.dat
    31 Shipping cost for each additional pound -->.50,.50,.50,2,shipping.dat
    Notice the fifth field separated by commas in PV#30 and #31 has "shipping.dat" in there instead of a numeric value. This tells the Dansie Shopping Cart to look for this plain text database file in the same directory that your vars.dat file is in. This "shipping.dat" file could look like so:
    1|20
    2|25
    3|31
    4|32
    5|38
    6|39
    7|50
    Pounds/Kilos are in the left fields and the shipping charges are in the right fields. Make sure you put them in order from 1 pound all the way as high as you wish to define your shipping charges. You can name the "shipping.dat" file anything you like. Also, you can use as many shipping.dat files as you like too. Just name them slightly different like "ship1.dat", "ship2.dat", etc.

    SHIPPING TYPE SIX: No shipping:
    (When var
    #27 above is set to 0)

    No shipping. You can turn off all shipping calculations in the cart and just say, "Shipping Included" somewhere on your website or even in your "lang.dat" file.
    Back to top.



    §5 SECURE SERVER VARIABLES:

    The Dansie Shopping Cart can either:


    Compatible Real-Time Processors:
    COMPATIBILITY NOTICE: The Dansie Shopping Cart is compatible with each of the real-time credit card processors listed in this section concerning basic credit card processing. The cart will POST the full total, shopper ID, customers name and billing address to the credit card processor's website for processing. The cart.pl script will issue the shopper a web page receipt if your credit card processing account is properly configured to return the shopper back to the "Return URL" after a credit card is approved. The cart does NOT work with any other services of the processors listed in this ReadMe except as specifically stated, such as, recurring billing, book transactions, authorize only transactions, etc.

    BACKWARDS COMPATIBILITY NOTICE: In the past some online real-time credit/debit card processors have made NON-backwards compatible changes to the way their system works which caused the Dansie Shopping Cart (and other shopping cart softwares) to no longer be able to work with them. We recommend that you inquire of your processor if they intend to remain backwards compatible and encourage them to do so. Dansie Website Design will not be responsible for loss of compatibility if your processor should make some non-backwards compatible changes. If this occurs, let us know and we can try to adjust the Dansie Shopping Cart to keep up with their non-backwards compatible changes. In some cases where the processors changes were too radical, we had to remove them from our list of compatible processors below.

    DUAL EMAIL RECEIPT NOTICE: The cart.pl script will email you a copy of the order details concerning the names and prices of the items that your shoppers order. The cart will pass the full total, shopper ID, customers name and billing address to the credit card processor for processing. The cart does NOT pass the details of the items your shoppers are ordering to the credit card processors. You will receive 2 emails for each credit card order. One from the cart.pl script with the order details, and a second email from your credit card processor confirming that your customer's credit card was approved. The cart inserts the shopper ID in the subject of the email for easy matching with the email receipt from the credit card processor. See
    Personal Variable #2 and Secure Server Variable #13 in this ReadMe for how to tell the cart which email address(es) to email the order details to.
    1. 2checkout.com
    2. arvicsecure.com
    3. atsbank.com
    4. AuthorizeNet
    5. Bank of America eStores
    6. BluePay.com
    7. Cambist
    8. Cardservice International and Clear Commerce
    9. CubeCard
    10. eProcessingNetwork (Controlled Devices)
    11. eWAY
    12. gochargeit.com
    13. GORealtime E-Commerce Transaction Processing
    14. InternetSecure
    15. iTransact
    16. NetBanx.com
    17. PayPal
    18. PayReady.net
    19. PSiGate
    20. SECPay
    21. SecureHosting.com
    22. SecurePay.com
    23. securetrading.com
    24. signio.com
    25. Skipjack
    26. Verisign
    27. WorldPay


    Cambist

    Cambist is a real-time credit card processor and secure server.
    http://www.cambist.com. If using Cambist as your secure server, set all variables in this section as instructed except for SSV#10.
    AuthorizeNet

    The Dansie Shopping Cart (cart.pl version 3.37+) will also work with AuthorizeNet SIM (Simple Integration Method) and the following AuthorizeNet "clones" (real-time credit card processors and secure servers.):
    2checkout.com, ecx.com, ishopsecure.com, merchantcommerce.net, netbilling.com, planetpayment.com, quickcommerce.net, richsolutions.com, rtware.net.

    NOTICE: The Dansie Shopping Cart has worked with AuthorizeNet Weblink method since 1998. Unfortunately AuthorizeNet has continued to make non-backwards compatible changes to their system requiring all shopping cart software developers to also make changes to their software in order to remain compatible. Their practice of making non-backwards compatible changes has led to many of their merchants losing orders on three occasions from 1998 to 2002 until we were able to reprogram our software to "keep up" with their changes. No other processor that the Dansie Shopping Cart works with has had as many interruptions with their compatibility. Due to their practice of non-backwards compatible changes, AuthorizeNet may not remain compatible with the Dansie Shopping Cart indefinitely.

    Set Secure Variables 1,2,6,7,9 and 13. Follow these steps:
    1. Set Secure Server Variable #1 to:
      https://secure.authorize.net/gateway/transact.dll
      For QuickCommerce accounts, set SSV#1 to:
      https://secure.quickcommerce.net/gateway/transact.dll
      For TRANSACT-SECURETM posting set SSV#1 to:
      https://verify.ishopsecure.com/authorizenet/cgi_bin/verify.cgi
      For richsolutions.com, set SSV#1 to:
      https://www.richsolutions.com/Pay/WebLink.aspx
      For the other clones, set SSV#1 to the transaction posting URL they provide you.
    2. Set SSV#2 with your AuthorizeNet or clone Login ID.
    3. Set SSV#9 with your AuthorizeNet transaction key. You must have cart.pl version 3.37+. Example:
      9 -->txnkey=abcd1234
      Set PV#55 to 1 to disable diagnostics so your variables can't be viewed from any web browser.
    4. Upload the SimLib.pm and SimHMAC.pm provided by AuthorizeNet to the same directory that your vars.dat file is located in.
    5. AuthorizeNet accounts login here: https://secure.authorize.net
      QuickCommerce accounts login here: https://secure.quickcommerce.net
      Or login to your clone processor.
      1. Inside your AuthorizeNet account locate "Response/Receipt URLs" and enter your Return Link URL in the designated field.
        http://www.YourName.com/cgi-bin/cart.pl?SSV#6
        This URL needs to be exactly what you have in HV#1 plus a question mark, plus what you have in SSV#6.
        The SSV#6 at the end of the URL above is what you define in variable SSV#6.
      2. Inside your AuthorizeNet account locate "Default Receipt Link URL" and enter your Return Link URL in the designated field. This URL is identical to Response/Receipt URLs above.
      3. Make sure there is no URL set in "Default Relay Response URL".
      4. Set your AuthorizeNet account into TEST mode to run a test order. Click on "Settings", "Test Mode", "Turn Test On". Test credit card number with AuthorizeNet: 5419840000000003

    6. Set SSV#9 with x_Type to tell AuthorizeNet if you want AUTH_ONLY or AUTH_CAPTURE. Example:
      9 -->txnkey=abcd1234,x_Type=AUTH_ONLY
      Separate it from the txnkey with a comma. If you don't set x_Type in SSV#9, the default value sent to AuthorizeNet will be AUTH_CAPTURE.
    7. Mall Version note: Set your Return Link URL like so:
      http://www.YourName.com/cgi-bin/cart.pl?SSV#6|merchant|MerchantName
      Change SSV#6 to what you have in SSV#6 and "MerchantName" to what the merchant's name is.
    Note that the AuthorizeNet web page receipt will flash briefly and then automatically refresh the shopper's browser over to the cart's receipt page. That is normal. This will ensure that the shopper's browser returns to the cart to trigger the email receipts with the order details and shipping address.

    eProcessingNetwork (Controlled Devices)

    eProcessingNetwork (Controlled Devices) is a real-time credit card processor and secure server.
    http://www.eProcessingNetwork.Com http://www.ctrldvcs.com

    InternetSecure

    The Dansie Shopping Cart will also work with InternetSecure (a real-time credit card processor and secure server.)
    http://www.internetsecure.com. Set Secure Server Variables #1,2,6,7,8,11 and 12.
    atsbank.com

    The Dansie Shopping Cart will also work with www.atsbank.com (a real-time credit card processor and secure server.)
    http://www.atsbank.com. Set Secure Server Variables #1,2,6,7,8,11 and 12.
    iTransact

    The Dansie Shopping Cart will also work with iTransact (a real-time credit card processor and secure server.) Set Secure Server Variables #1,2,6,7,8,11 and 12.

    Cardservice International

    The Dansie Shopping Cart will also work with Cardservice International (CSI) LinkPoint HTML PayOnly service. (a real-time credit card processor and secure server.)
    http://www.cardservice-network.com and http://www.clearcommerce.com. Set Secure Server Variables #1,2,6,7,8,11 and 12.
    Note: CSI doesn't display the shopper ID (invoice number) generated from the shopping cart in the CSI email receipts. So, matching the cart's email receipt order details with the CSI email receipt credit card transaction confirmation may be difficult if your site has large volumes of orders. Also, CSI LinkPoint HTML PayOnly service does not pre-populate the billing address fields on their site so shoppers will need to re-enter their billing info. The Dansie Shopping Cart works with CSI's LinkPoint HTML "PayOnly" service but it does NOT work with CSI's LinkPoint API or "PayPlus" service.

    GORealtime E-Commerce Transaction Processing

    The Dansie Shopping Cart will also work with GORealtime E-Commerce Transaction Processing (a real-time credit card processor and secure server.)
    http://www.gorealtime.com. Set Secure Server Variables #1,2,6,7,8,11 and 12.
    SECPay

    The Dansie Shopping Cart will also work with SECPay, a UK-based credit card processor that works in UK Pounds Sterling.
    http://www.secpay.com. Set Secure Server Variables #1,2,6,7,8,11 and 12.
    gochargeit.com

    The Dansie Shopping Cart will also work with gochargeit.com (a real-time credit card processor and secure server.)
    http://www.gochargeit.com. Set Secure Server Variables #1,2,6,7,8,11 and 12.
    Verisign (Formerly signio.com)

    The Dansie Shopping Cart will also work with Verisign (Formerly signio.com) (a real-time credit card processor and secure server.)
    http://www.signio.com. It works with their Payflow Link service and also with their Telecheck check draft service. Note: Verisign does not allow you to work with multiple Return URLs. This can be a problem if you want to utilize more than one shopping cart with just one Verisign processing account. Set Secure Server Va