logo
Readme/Documentation

The Web Shop Solution 1.0
www.bluegalaxy.info/webshopsolution
support@webshopsolution.com
Copyright © 2005
Last updated: July 1st, 2005
Download this Readme:

CONTENTS:
  1. Description of Contents of ZIP file
  2. How To Install The Shopping Cart
  3. The Server Variables
  4. The General Settings Variables
  5. The Payment Options Variables
  6. Real-time Credit Card Processor Settings
    1. 2Checkout
    2. Cardservice International (CSI)
    3. Cambist
    4. InternetSecure
    5. Paypal
    6. Verisign
    7. Worldpay
  7. The Customization Variables
  8. HTML Form Tags and HREF Links Explained
  9. About lang.txt
  10. Javascript Features Explained
  11. About Store Security
  12. All About Shipping
  13. Email Features
  14. Other Special Features
    1. Server Side Includes (SSI) and Cart Summary feature
    2. Multi-item Forms
  15. Disclaimer and Legal Stuff


1 DESCRIPTION OF CONTENTS OF ZIP FILE:

cart.pl     (The cart script)
cc_secure.pl     (An extra script for securely collecting credit card data)
readme.html     (Instructions and documentation. This document.)
vars.txt     (Variables file)
lang.txt     (Language file)
shopperid.txt   (An empty file that will contain the latest shopperid number.)

Note: The Readme zip file contains all the above files except for the cart.pl script.

The shopperid.txt file is like the cart's counter. It will only contain a number. The number in the shopperid.txt file increments whenever a new person uses the cart. By default, the shopperid count will start at 1. If you would like the shopperid count to start with a higher number, you can download the shopperid.txt file from your cgi-bin, open it in Wordpad or Notepad and change it so that the count begins with any number you'd like. If you have not installed the cart yet, you can set the number that you'd like the count to start at in the shopperid.txt file before you upload the file for the first time.

Top of page.


2 HOW TO INSTALL THE SHOPPING CART

The following are step by step instructions for installing the cart that anyone can follow. At least that is the goal! Otherwise, help is available: support@webshopsolution.com

Note: Do not attempt to run the cart.pl script on a site other than which it was licensed for. Not only will the cart not run, but it would be a violation of the Software License Agreement.

Step 1:
Unzip the WSSCart.zip package. You can unzip it with a program such as Winzip or any other program that unzips files that end in the .zip extension. You can find such a program for free here: http://www.tucows.com or here: http://www.download.com. Be sure to pay close attention to where you unzip the file on your computer so that you don't lose it.

Step 2:
Open your FTP program. To install the cart you will need an FTP program like WS_FTP or CuteFTP. You can download an FTP program from either of these sites: http://www.tucows.com or http://www.download.com. I use WS_FTP and that is what I recommend. The following instructions will generally work for any FTP program, but the specific instructions below will be based on using WS_FTP Pro. Once you have WS_FTP opened, do the following:
  1. Log into your website using your FTP address, user name and password. This information is provided to you by your web host. more details
  2. Make your way to your website's cgi-bin. In WS_FTP, this will be on the right side (remote). Perhaps your cgi-bin will be called "cgi-local" or "cgi" or something similar.
  3. In the left side of the window (local), go to the folder that contains your unzipped cart files.
  4. Find and select the ASCII upload setting in your FTP program. In WS_FTP it is in the middle column.
  5. Select the cart.pl script in the left window (local) by clicking on it once. If your host says that scripts must have the ".cgi" extension, then rename "cart.pl" to "cart.cgi". The script can work either way.
  6. Upload it to your cgi-bin in ASCII format. (WS_FTP: Use the right pointing arrow in the middle column)
File Name Upload Format Chmod Setting
1. cart.pl or cart.cgi ASCII
755 (executable)

Step 3:
Chmod the cart.pl script 755 (executable) if your server is Unix or Linux based. If your server is Windows based, send your web host an email and ask them to configure your server and set permissions so that the cart.pl script will execute. How to "chmod" using WS_FTP:
  1. Select the cart.pl script in your cgi-bin in the right side of the window (remote) by clicking on it. Right click. A menu will appear.
  2. Select "FTP Commands" from that menu. Another, smaller menu will appear. At the bottom of that menu, find "CHMOD".
  3. A "Remote file permissions" box will appear. Where it says "Numeric Value:" type in 755.
  4. Click OK. Your cart.pl script is now chmod 755.
  5. See a visual tutorial of this.
Step 4:
Test the cart by pointing your browser at it. For example:
http://www.yourdomain.com/cgi-bin/my_cart.pl?test

If the cart says "Installation Success", congratulations, the cart is running! Go on to Step 5. If you instead see an "Internal Server Error", that means the cart is not yet running and you will need to visit the Installation Troubleshooting tips below before going on to Step 5.

Step 5:
Now that your cart is running, you can upload the rest of your cart files. The three files in the table below are the only three files that need to be uploaded at the time of installation. In addition to uploading the three files listed below, you will need to create a "temp" folder in your cgi-bin and chmod it 777 so that it is fully writable (if your server is Unix or Linux based). If your server is Windows based, send your web host an email and ask them to configure your server and set permissions so that the temp folder will be fully writable. Notes:
  • The shopperid.txt file is an empty text file. It will be used as the cart's counter file. It can be uploaded "as is" and the count will start at 1, or you can place a number in this file if you want the count to start at a higher number. As with all the cart files, it should be edited in a plain text editer like Notepad or Simpletext and saved as plain text. (.txt)
  • Important: Before the vars.txt file is uploaded, you will need to set the full URL to the cart (taken from Step 4, but without '?test') in SV#1. For example:
    1 Full URL location to cart.pl script -->http://www.yourdomain.com/cgi-bin/my_cart.pl
  • The lang.txt file can be uploaded, "as is". No changes to this file are necessary at the time of installation.
File Name Upload Format Chmod Setting
1. shopperid.txt ASCII
777 (writable)
2. vars.txt ASCII No chmod necessary
3. lang.txt ASCII No chmod necessary
Optional, but also recommended:
4. pending.txt ASCII
777 (writable)

Step 6:
Now that your cart is installed, take time to read through the rest of this Readme document and discover the many features of the Web Shop Solution Cart and customize your cart to your website by setting the Server Variables, the General Settings Variables, the Payment Options Variables, and the Customization Variables. This Readme documentation explains every variable in the vars.txt file and an overview of all features of the cart.

Installation Troubleshooting

Problem: cart.pl script keeps yielding "Internal Server Error".

  1. Does your host allow you to run CGI Perl scripts?
  2. Are you running/installing it on the domain that you registered the software license for?
  3. Did you upload the cart.pl script into a directory where your host allows you to run Perl scripts? (most commonly called "cgi-bin".)
  4. Did you upload cart.pl in ASCII format? It should NOT be uploaded in binary format.
  5. Are your cgi-bin and cart.pl script both chmod 755 so that they are executable (Unix only)?
  6. If you have looked at all the above and the cart.pl script still won't run when you point your browser at it, try changing the very first line in the cart.pl script from:
    #!/usr/bin/perl
    to:
    #!/usr/local/bin/perl
    And if that doesn't fix the problem, try changing it to:
    #!/usr/bin/perl5
  7. If when pointing your browser at it, the cart.pl script serves as plain text, try renaming it to "cart.cgi".
  8. If you get a "File Not Found" message, you may not be using the correct URL to access the cart.pl script. Contact your host and ask them what the correct URL is to access this script on your website with a web browser.
  9. Email us at: support@webshopsolution.com, or contact us via our Contact Us page. Provide the full URL of the cart.pl script that you are trying to install and your FTP information. We will log in and attempt to get your cart running for you.
Problem: The cart.pl script is installed, but it keeps saying it is empty.

  1. Manually create a directory called "temp" with your FTP program in your cgi-bin directory (same directory where your vars.txt and cart.pl script are located).
  2. Chmod the "temp" folder 777 if your host server is Unix/Linux. If your server is Windows based, send your web host an email and ask them to configure your server and set permissions so that the temp folder will be fully writable.
Problem: The shopper ID number doesn't increment.

  1. Make sure the "shopperid.txt" is in your cgi-bin and chmod it 777 so that it is fully writable (if your host server is Unix/Linux). If your server is Windows based, send your web host an email and ask them to configure your server and set permissions so that the shopperid.txt file is fully writable.
Still having problems? Help is available: support@webshopsolution.com

Top of page.  Top of section.


3 THE SERVER VARIABLES:

The "SERVER VARIABLES" section of the vars.txt file is the first block of variables in the vars.txt file. This section begins with the line:
### SERVER VARIABLES - (DO NOT REMOVE OR ALTER THIS LINE)

Below you will find an explanation of each variable including what the variable does and how it should be set. When referring to SERVER VARIABLES I may use the two letter abbreviation "SV". For example, I may refer to SERVER VARIABLE #1 as "SV#1" for short.

Jump to a variable:
1 2 3 4 5


1 Full URL location to cart.pl script -->
This is probably the most important variable that your cart will use. It is the one variable that MUST be set and it MUST be set correctly. This is the full URL to your cart.pl script. The default location of the cart.pl script will usually be the "cgi-bin" on your website, but there are many servers where that is not the case. The cart.pl script might be installed in a "cgi" folder, or "scripts" folder for example. Here is an example of what SV#1 should look like:
1 Full URL location to cart.pl script -->http://www.yoursite.com/cgi-bin/my_cart.pl
Notice this is a full URL and not just a system path. Here is an example of an INCORRECT setting:
1 Full URL location to cart.pl script -->/cgi-bin/my_cart.pl

This is also the exact URL you will need to use in all of your HTML product forms or "View Cart" links. This exact URL is what you will be using in the ACTION tag in each of your cart forms. For example:
<FORM METHOD=POST ACTION="http://www.yoursite.com/cgi-bin/my_cart.pl">

Note: If you use a 'www.' in your URL in SV#1 like this:
1 Full URL location to cart.pl script -->http://www.yoursite.com/cgi-bin/my_cart.pl
then you will need to use the 'www.' in your ACTION tags as well. So this would be incorrect:
<FORM METHOD=POST ACTION="http://yoursite.com/cgi-bin/my_cart.pl">
It is important that your ACTION tags exactly match what you have set in this variable.


2 Username and password for cart "back-end" management/diagnostics -->
Merchants can set up a username and password in this variable that will be used by the cart to grant access to the cart's back-end and diagnostic features. It contains a username and a password separated by a pipe '|' symbol. For example:
2 Username and password for cart "back-end" management/diagnostics -->username|password

The username and password should be alphanumeric (letters and numbers only). When you write for technical support, in addition to providing the full URL to the cart, you would need to provide this username and password so that we can use your cart's diagnostic features to better help you.

Some of the Web Shop Solution Cart's diagnostic features include: ?vars (to view the vars.txt settings online), ?lang (to view the lang.txt settings online), ?path (displays the system path of the folder the cart.pl script is located in), and ?env (to view the environment variables set by the server). These diagnostics are accessed with "query strings" at the end of the URL of your cart, like so:

http://www.yoursite.com/cgi-bin/my_cart.pl?vars
http://www.yoursite.com/cgi-bin/my_cart.pl?lang
http://www.yoursite.com/cgi-bin/my_cart.pl?path
http://www.yoursite.com/cgi-bin/my_cart.pl?env

As more features are added to the Web Shop Solution Cart, there will be a growing number of merchant "back-end" cart management tools that will be available. The username and password set here will be used to access those cart management tools as well.

Note: This is a security feature. Without this variable set, all cart diagnostics will available to anyone who accesses them using the query strings shown above. With this variable set, the cart will require the correct username and password before any of the diagnostic tools can be accessed.


3 URL to images or thumb-nail directory -->
This variable tells your cart.pl script where you keep your product graphics. Setting this variable with a URL allows you to use relative URLs or just the names of your images in your product forms instead of full URLs. For example, instead of using a full URL to your product image in your product form like this:
<INPUT TYPE=HIDDEN NAME=img VALUE="http://www.yoursite.com/images/product_thumb.jpg">
You can use just the name of the image in your "img" tag and the cart will still be able to display the product graphic:
<INPUT TYPE=HIDDEN NAME=img VALUE="product_thumb.jpg">
This is meant to be a convenience to you or the webmaster designing product forms for your website.

Here is an example of how this variable should be set:
3 URL to images or thumb-nail directory -->http://www.yoursite.com/images

Note: With this variable set, you can still use full URLs to your product graphics in your product forms if you want to. The cart will still be able to display them.


4 Domains/IPs authorized to post to this cart -->
4 Domains/IPs authorized to post to this cart -->127.0.0.1


5 Sendmail, Windmail or Blat path -->
5 Sendmail, Windmail or Blat path -->C:\WINDOWS\system32\Blat.exe


Top of page.  Top of section.


4 THE GENERAL SETTINGS VARIABLES:

The "GENERAL SETTINGS" section of the vars.txt file is the second block of variables in the vars.txt file. This section begins with the line:
### GENERAL SETTINGS - (DO NOT REMOVE OR ALTER THIS LINE)

Below you will find an explanation of each variable including what the variable does and how it should be set. When referring to GENERAL SETTINGS VARIABLES I may use the three letter abbreviation "GSV". For example, I may refer to GENERAL SETTINGS VARIABLE #1 as "GSV#1" for simplicity.

Jump to a variable:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
61 62 63 64


1 Name of website -->
Set this to the name of your website:
1 Name of website -->The Web Shop Solution

This will be used as the title of all cart generated pages. It will also appear at the top of all cart pages if you have CV#12 set to 1. For example:
12 Show name of website at top of all pages -->1


2 Order details emailed to the merchant here -->
Set this variable with one or more merchant email addresses, separated by a comma.
2 Order details emailed to the merchant here -->orders@yourname.com,alternate_address@yahoo.com

Each address listed here will get a merchant email receipt from the cart for every order. The first email address listed here will be the default "From:" address listed in all customer email receipts, unless you have GSV#51 set with an alternate "From:" email address.


3 Default continue shopping URL -->
The "continue shopping" URL is the URL that customers are taken to when they click the "Continue Shopping" button in the cart.
3 Default continue shopping URL -->http://www.yourname.com/products_home.html

There are two ways to set the URL that the customer is taken to when they click the "Continue Shopping" button in the cart:
  1. Every product form or "View Cart" form can have its own "continue shopping" URL assigned. Like this:
    <INPUT TYPE=HIDDEN NAME="continue_shopping" VALUE="http://www.yourname.com/products.html">

  2. If you do not include a "continue shopping" URL in your form, then the cart will use the default "continue shopping" URL set here.

4 Cookie life -->
How long do you want the shopper_id cookie to last in the shopper's browser before it expires? Set this variable with the number of days. Default is 90.
4 Cookie life -->90


5 Linking to product_details -->
The "product_details" feature provides an alternative way for shoppers to navigate your cart and web store. Once a product has been added to the cart, the shopper can click the "Continue Shopping" button and be taken to the page that button leads to, or they can click the image of the product in the cart, or the name of the product in the cart and be taken back to the page where they found the product. This feature works in conjunction with the "product_details" tag if it is set in a product form or HREF link. For example, in a product form you could set up a "product_details" tag like this:
<INPUT TYPE=HIDDEN NAME=product_details VALUE="http://www.yourname.com/small_widget.html">

When the shopper clicks the image of the product in the cart, or the name of the product in the cart, they will be taken to the specific URL listed in the "product_details" tag:
http://www.yourname.com/small_widget.html

The "Continue Shopping" button often points back to the last page that the shopper was shopping in or the default shopping page that is listed in GSV#3. The "product_details" feature allows every product in the cart to link back to the specific page that it came from, just like Amazon.com!

Set this variable to 1 if you want the name of the product to be a link to the product_details page.
5 Linking to product_details -->1

Set this variable to 2 if you want only the product image to link to the product_details page.
5 Linking to product_details -->2

Set this variable to 3 if you want both the name and the image of the product to link to the product_details page.
5 Linking to product_details -->3

You will find working product form examples of this on our demo page.


6 Empty entire cart button -->
There are two possible settings for this variable. Zero or blank means this feature is turned off.
6 Empty entire cart button -->
6 Empty entire cart button -->0

Setting it to 1 means this feature is enabled and an "Empty Entire Cart" button will appear on the cart contents page.
6 Empty entire cart button -->1


7 Enable "continue shopping" button on top -->
A "Continue Shopping" button will normally appear at the bottom of the cart contents page. Setting this variable to 1 will create a second "Continue Shopping" button, near the top of the cart contents page. If enabled, this feature may make it easier for shoppers to find the "Continue Shopping" button.
7 Enable "continue shopping" button on top -->1

Setting this to zero or blank will turn off this feature.
7 Enable "continue shopping" button on top -->
7 Enable "continue shopping" button on top -->0


8 Enable "Remove" button for each product -->
If set to 1, a "Remove" button will appear in the cart contents table with each product. The "Remove" button allows a shopper a way to quickly delete any product from their order.
8 Enable "Remove" button for each product -->1

Setting this to zero or blank will turn off the "Remove" button for each product.
8 Enable "Remove" button for each product -->
8 Enable "Remove" button for each product -->0

The "Remove" button can either be a graphic button that you design (i.e. a .gif or .jpeg), or it can be a standard HTML submit button with whatever text you want it to have. This is all determined by what you have set in variable A8 of your lang.txt file.
8 (Remove button) -->

To use your own graphic button, simply put the URL to your graphic in variable A8 of your lang.txt file. For example:
8 (Remove button) -->http://www.yourname.com/images/remove.gif
Remove

To use a standard submit button, just place text in variable A8 of your lang.txt file. For example:
8 (Remove button) -->Remove
or
8 (Remove button) -->Delete

This will produce a button that looks like this:


You can even use another language. For example, Spanish:
8 (Remove button) -->Cancelación
French:
8 (Remove button) -->Enlevez

Note: If you disable the "Remove" button for each product, shoppers will still be able to delete products from their cart by setting the quantity to zero and then clicking the "Change" button.


9 Enable "Preview Checkout" page -->
If set to 1, this variable will turn on the "Preview Checkout" page. The Preview Checkout page is a page that contains a summary of the order that the shopper can look at to confirm that everything is correct before finalizing the transaction. It provides a way for the shopper to see and proofread all the details of their order before clicking the final submit button to submit payment. The "Preview Checkout" page contains the shipping address that the shopper already submitted and it shows a breakdown of all applicable sales taxes, discounts, and shipping charges.

Possible settings:
9 Enable "Preview Checkout" page -->
9 Enable "Preview Checkout" page -->0
9 Enable "Preview Checkout" page -->1
9 Enable "Preview Checkout" page -->2

The Preview Checkout page is available for all but the following payment options:
Check and Money Order payment option
Credit Card Transaction via Telephone payment option

This is because those two payment options are not finalized after the final submit button is clicked, but require further action on the part of the shopper, such as calling the toll free number to provide their credit card information or filling in and mailing their check or money order.

If this variable is set to 2, then the Preview Checkout page will still be turned off, but the shipping/billing fields will be the last page the shopper sees before their order is finalized. If the shopper has already submitted their shipping/billing address, then the fields will be populated with the shopper's addresses. Otherwise, the fields will be empty. This gives shoppers who have already typed in their shipping and billing addresses one last chance to proofread the address they provided before their order is finalized.


10 Show product images on preview and receipt pages -->
If set to 1, this will enable product images to appear on the preview and receipt pages. Zero or blank turn this feature off.

Note: If this is enabled, the printable receipt page will not be as compact and could lead to extra printed pages.

Possible settings:
10 Show product images on preview and receipt pages -->
10 Show product images on preview and receipt pages -->0
10 Show product images on preview and receipt pages -->1


11 Make checks payable to -->
If the Check or Money Order Payment Option (PV#1) is enabled, then this is the name that checks and money orders should be made payable to.
11 Make checks payable to -->Your Name Here

The contents of this variable will be attached to the end of the text you have in variable B14 of your lang.txt file.
14 -->Checks and money orders should be made payable to:
Example:
Print out this page and mail it with your check or money order to the address listed below. Checks and money orders should be made payable to: "Your Name Here".


12 Merchant address name -->
This will appear at the top of the mailing address listed on the receipt page of the cart.
12 Merchant address name -->Your Business Name Here


13 Merchant street address -->
This will be a part of the mailing address listed on the receipt page of the cart.
13 Merchant street address -->c/o P.O Box 1234


14 Merchant city, state, zip -->
This will be a part of the mailing address listed on the receipt page of the cart.
14 Merchant city, state, zip -->New York, New York 22222


15 Merchant phone number -->
This will appear on the receipt page of the cart, and it will be used as the phone number to call for the Credit Card Transaction via Telephone payment option.
15 Merchant phone number -->1-800-555-1212


16 Website address -->
This link to your main page will appear on the receipt page of the cart.
16 Website address -->www.yourname.com


17 Enable "custom price add-on" feature in product forms -->
The "custom price add-on" feature allows you to have custom options in your product forms that will add to the overall price of a product. There are examples of this feature in action on our Demo page. It can be seen in the "Stylish Men's Tie", "Napoleon Dynamite t-shirt", "Buy 2 pounds of Premium Coffee - Get a Free Mug!", and "Gift Basket with Roses" forms. It works by using a plus symbol '+' followed by the currency symbol your cart uses: '$', followed by a number, in one of the custom tags of your form. If a shopper selects that custom option, then the add-on amount will add to the price of the product.

In the Napoleon Dynamite t-shirt example, the price of a t-shirt is $18. If the shopper selects the XXL size, then $2 is added to the price of the shirt. Instead of the t-shirt being $18, it appears in the cart as $20 because of this customer selection:
<OPTION>XXL +$2.00

Setting this variable to 1 will enable the "custom price add-on" feature in the cart.
17 Enable "add to price" feature in product forms -->1

Leaving it blank or setting it to zero will turn this feature off.
17 Enable "custom price add-on" feature in product forms -->
17 Enable "custom price add-on" feature in product forms -->0


18 Enable "Company Name" field on shipping/billing page -->
If this variable is set to 1, the "Company Name" field will appear on the shipping/billing page of the cart, allowing you to collect the company name of your shopper. If you don't want this extra "Company Name" field to appear, set this to zero or leave it blank.
18 Enable "Company Name" field on shipping/billing page -->1

The text label for this field is stored in variable E5 of the lang.txt file. For example:
5 shipping company name -->Company Name:

Since the text in the lang.txt file can be edited, you could use this field to collect some other extra information that you may want. It is possible to enable this field and make it required. To make it required, add the word "company" to GSV #63.


19 Enable second address field on shipping/billing page -->
Like the company name field, this second address field is optional. If you don't want this second address field to appear, set this to zero or leave it blank. Setting this variable to 1 will make a second address field appear on the shipping/billing page of the cart. This extra field will provide more space for shopper's with long or complicated shipping addresses.
19 Enable second address field on shipping/billing page -->1

The text label for this field is stored in variable E7 of the lang.txt file. For example:
7 shipping address2 -->Address 2:

Since the text in the lang.txt file can be edited, you could use this field for some other purpose. It is possible to enable this field and make it required. To make it required, add the word "address2" to GSV #63.


20 Enable "Same As Above" button -->
To enable the "Same As Above" button on the shipping/billing page of the cart, set this variable to 1.
20 Enable "Same As Above" button -->1

The "Same As Above" button will appear between the shipping and billing address fields. This button uses javascript to copy everything the shopper typed in the shipping fields to the billing fields, which is a convenience for your shoppers as it saves them time and means less typing if their shipping and billing addresses are the same. The text label for this field is stored in variable E24 of the lang.txt file. For example:
24 (Same as Above button) -->Same As Above

Which produces:


If you would like, you can use your own custom graphic "Same As Above" button. To do that, create your graphic, upload it to your server, and paste the URL to that graphic in place of the text that was in E24 of the lang.txt file. For example:
24 (Same as Above button) -->http://www.yourdomain.com/images/same_as_above.gif

Which produces:
Same As Above

To disable this feature and require the shopper to type in their shipping and billing addresses separately, set this variable to zero or leave it blank.
20 Enable "Same As Above" button -->
20 Enable "Same As Above" button -->0


21 Record pending orders to flat file database -->
Set this variable to 1 (default) to enable the cart to record each pending order notice to a flat file database called pending_db.txt.
21 Record pending orders to flat file database -->1

The default location is the cgi-bin where the cart.pl script is installed. *This variable can also be set to a system path to the pending.txt file if you want to over-ride the default location that the pending.txt file will be recorded to.
21 Record pending orders to flat file database -->/cgi-bin/MyCart/pending.txt

*Note: If you are going to override the default location, it is important to make sure this system path is absolutely correct. For security purposes, the name of the file must remain "pending_db.txt". You can always download this file to you computer and rename it anything you want.

The pending_db.txt file will be recorded in this format:

729|Fri. Mar 25, 2004 15:58:19|payment method|chris nielsen|2020 Wells Rd. Apt. 17P|address 2|Orange Park|FL|32073|USA|(904) 272- 0355|chris@bluegalaxy.net|company name|chris nielsen|2020 Wells Rd. Apt. 17P|address 2|Orange Park|FL|32073|USA|(904) 272-0355|chris@bluegalaxy.net|company name|promo code|order subtotal|sales tax|discounts|shipping charges|order total|How did you hear about us?|customer comments|blank|Name of product|price|shipping|image|continue shopping URL|quantity|custom1|custom2|custom3|custom4|product2..

01. shopperid number
02. timestamp
03. payment method
04. shipping name
05. shipping name 2
06. shipping address 1
07. shipping address 2
08. shipping city
09. shipping state/province
10. shipping zip/postal code
11. shipping country
12. shipping phone
13. shipping email
14. shipping company name
15. billing name
16. billing name 2
17. billing address 1
18. billing address 2
19. billing city
20. billing state/province
21. billing zip/postal code
22. billing country
23. billing phone
24. billing email
25. billing company name
26. coupon code
27. order subtotal
28. salex tax
29. discounts
30. total shipping charges
31. order grand total
32. How did you hear about us?
33. customer comments
34. reserved, left blank

**products actually kept in a separate file...

35. product name
36. product price
37. product shipping
38. product image
39. product continue shopping URL
40. product quantity
41. product custom1
42. product custom2
43. product custom3
44. product custom4

Every line will have a minimum of 44 fields. This includes product details for one product. For each additional product, there will be 9 more product fields.


22 Change and Remove buttons side by side -->
If set to 1, this variable will place the Change and Remove buttons side by side in the cart for each product.
22 Change and Remove buttons side by side -->0
22 Change and Remove buttons side by side -->1

Otherwise, those buttons will be stacked. If the Remove* button is not enabled, then setting this to 1 will cause the Change button to appear next to the quantity text box to make the cart contents page more compact. *Make the "Remove" text above a link

**Show some screen captures here...


23 Enable decimals in product quantities -->
Default is zero. If left blank or set to 0 this variable will restrict all product quantities to whole numbers. No decimals will be allowed. For example, a quantity may not be changed to 1.5 by clicking the "Change" button on the cart contents page, but it can be changed to any whole number. Decimals will be allowed in quantites if this is set to 1. For example: .5, 2.2, 3.05, etc.. However, any decimal smaller than .01 will delete the product from the cart.

Setting this variable to 2 will cause the "Change" button to not appear on the cart contents page, and the customer will not be able to change a quantity of a product that is already in the cart, except for deleting the product.

Another way to make the Change button not appear in the cart is to leave variable A7 in the lang.txt file blank. For example:
7 (Change button) -->

Examples of possible settings:
23 Enable decimals in product quantities -->
23 Enable decimals in product quantities -->0
23 Enable decimals in product quantities -->1
23 Enable decimals in product quantities -->2

Note: Setting this variable to 1 is only for merchants who sell a single type of product such as coffee where they don't want the quantity to be a unit, but choose to use it instead as the amount of product ordered. They could change the "Quantity" label to something like "Amount (in lbs.)". Typing .5 in the quantity field would allow the shopper to purchase a half pound (0.5 lbs) of coffee.

Selling a half pound of coffee can also be achieved by leaving this variable set to zero or blank so that the quantity is whole units. The idea in this case is to set up the product form to sell a half pound of coffee as one unit. For example:

<input type=hidden name="name" value="Half pound of coffee">
<input type=hidden name="quantity" value="1">

If the shopper changes the quantity to 2, then they would be purchasing 1 lb. of coffee. Setting the quantity to 3 would allow them to purchase 1.5 lbs. of coffee. etc..

Merchants who sell more than one type of product should leave this variable blank. It doesn't make sense to allow the shopper to purchase .5 t-shirts or 1.3 music cds.

24 Suppress some custom descriptions -->
Leaving this variable blank (default) will cause all custom product descriptions to appear in the preview checkout page, the receipt page, and the email receipts.
24 Suppress some custom descriptions -->

If you would like to limit the number of custom descriptions you want to appear in all these places, then set this variable with the number of custom descriptions you want shown. For example, setting it to zero would hide all custom description data from the preview checkout page, receipt page, and email receipts.
24 Suppress some custom descriptions -->0

Setting it to 1 would allow only the first custom descrition:
24 Suppress some custom descriptions -->1

Setting it to 4 would allow only the first four custom descritions, etc..
24 Suppress some custom descriptions -->4


25 Display transaction progress meter on various cart pages -->
25 Display transaction progress meter on various cart pages -->1


26 Store customer shipping address in a cookie -->
Setting this variable to 1 will allow the cart to store the shopper's shipping/billing addresses in a cookie on the shopper's computer. When the shopper comes back to your site to purchase something else in the future, they won't need to type in their address again because the cart will get the shipping/billing addresses from the cookie. This is a convenience for your shoppers. The cookie is set to last for one year.
26 Store customer shipping address in a cookie -->1

Of course, this feature will only work for shoppers who have cookies enabled in their browser. If the shopper uses a different browser or computer the next time they shop in your store, or if they have deleted their cookies, then they would need to type in their shipping and billing addresses again. Leaving this variable blank or setting it to zero will turn this feature off.


27 Activate sales tax -->
This variable activates sales tax. Setting this to zero or blank will turn off all sales tax charges in the cart.

Possible settings:
27 Activate sales tax -->
27 Activate sales tax -->0
27 Activate sales tax -->1
27 Activate sales tax -->2
27 Activate sales tax -->3
27 Activate sales tax -->4

Sales tax (or VAT) can be calculated in 5 different ways:
0 or blank = No sales taxes calculated.
1 = Allow sales tax on subtotal based on the shopper's shipping address.
2 = Allow sales tax on subtotal and shipping charges, based on the shopper's shipping address.
3 = Force sales tax on subtotal. This applies to all purchases and ignores the shopper's shipping address. The first sales tax rate in GSV#28 is used.
4 = Force sales tax on subtotal and shipping charges. This applies to all purchases and ignores the shopper's shipping address. The first sales tax rate in GSV#28 is used.

Note: If an item is marked with a #nontaxable#* tag, and this variable is set to 4, then sales tax will still be applied to this item's shipping total.
*Make the #nontaxable# text above a link


28 Sales tax locations (comma separated) -->
Only one rate is needed in this variable if GSV#27 is set to 3 or 4.

Examples of possible settings:
28 Sales tax locations (comma separated) -->6.75
28 Sales tax locations (comma separated) -->7,8,15

The rates in this variable correspond to the locations in GSV#29. For example, 8 corresponds to the location British Columbia.

29 Sales tax locations (comma separated) -->
The locations in this variable correspond to the rates in GSV#28. For example, Ontario corresponds to the rate 15.

Examples of possible settings:
29 Sales tax locations (comma separated) -->Minnesota
29 Sales tax locations (comma separated) -->Alberta,British Columbia,Ontario

Note: There is no need to set this variable if GSV#27 is set to 3 or 4.


30 Sales tax rounded up or down (1 = round up. 0 = round down.) -->
Here is how the cart will calculate sales tax as it relates to totals that end in fractions of a cent:

By default, if a sales tax total ends in less than half a cent, then the sales tax total will be rounded down. For example if the sales tax rate is 7.24% and the subtotal is $10.00, then the sales tax total would be rounded down to $ 0.72.
0.0724 * 10.00 = .724 ----> rounded down to $ .72

By default, if a sales tax total ends in more than half a cent, then the total will be rounded up. For example if the sales tax rate is 7.26% and the subtotal is $10.00, then the sales tax total would be rounded up to $ 0.73.
0.0726 * 10.00 = .726 ----> rounded up to $ .73

Set this variable to 1 to have the sales tax totals that end in .05 rounded up (default setting), or set it to 0 or blank to have sales tax totals that end in half cents rounded down. For example, if the sales tax rate is 7.25% and the total is $10.00, then the sales tax would be $ 0.73 if you round up, or $ 0.72 if you round down.
0.0725 * 10.00 = .725 ----> round up or down?

Examples of possible settings:
30 Sales tax rounded up or down (1 = round up. 0 = round down.) -->0
30 Sales tax rounded up or down (1 = round up. 0 = round down.) -->1


31 Currency Symbol and decimals -->
This variable contains three symbols, separated by two pipe '|' symbols.

31 Currency Symbol and decimals -->$|,|.

The first symbol is the currency symbol you want the cart to use. The second symbol is the separator that you want to separate every three digits of a large number. For example, set to a comma as shown above: $ 1,200.00. The third symbol is the decimal symbol you want to use. Some European countries use a decimal for a separator and a comma as a decimal. For example: EUR 1.200,00
31 Currency Symbol and decimals -->EUR|.|,

More examples:
31 Currency Symbol and decimals -->€|.|,
31 Currency Symbol and decimals -->£|,|.


32 Activate shipping -->
This variable tells the cart what type of shipping model you would like to use (if any). Possible settings are:

32 Activate shipping -->
32 Activate shipping -->0
32 Activate shipping -->1
32 Activate shipping -->2

Setting this to zero or blank will turn off all shipping charges in the cart. Setting it to 1 enables shipping based on units, and setting it to 2 enables shipping based on the subtotal in the cart.


33 Available shipping options -->
This variable lists the types of shipping options you want to be made available to your shoppers. List each shipping option label as you want it to appear in the select menu on the cart contents page, separated by commas. For example:

33 Available shipping options -->Standard Shipping (5-7 Business days),Priority Shipping (3-5 Business days),Fedex Overnight (Next day delivery)

The option that you want to be the "default" shipping option should be listed first in the list.


34 Corresponding shipping rates/files -->
This variable contains the names of the shipping files that correspond to the shipping options listed in GSV#33 above. The names of the files here should correspond to the options in GSV#33, listed in the same order. For example:

34 Corresponding shipping rates/files -->standard.txt,priority.txt,fedex.txt

In this case, the first file "standard.txt" corresponds to the first shipping option in GSV#33 "Standard Shipping (5-7 Business days)". The second file "priority.txt" corresponds to the second shipping option in GSV#33 "Priority Shipping (3-5 Business days)". etc..

If your shipping rates are not going to be based on the location of the shopper, but are going to be standardized, AND there is going to be a single rate for each shipping option, then there is another way you can set this variable. You can list rates here instead of names of shipping files. For example:
34 Corresponding shipping rates/files -->2.25,4,5.95

This means that Standard Shipping (5-7 Business days) charges $2.25 per pound or unit to ship. And it costs $4 per unit to ship Priority Shipping (3-5 Business days), while it costs $5.95 per unit to ship Fedex Overnight (Next day delivery). If you want different charges to apply based on the number of units, then that would need to be listed in the shipping.txt files that you create. An example of a "standard.txt" file where there are various charges based on the number of units, but where shipping is independent of location:

Location -->ANY
Rates -->2.25:1,2.75:2,3.25:4,5:20

What this means is:
It costs $2.25 to ship one unit of product to anywhere using Standard Shipping (5-7 Business days).
It costs $2.75 to ship two or three units of product anywhere using Standard Shipping (5-7 Business days).
It costs $3.25 to ship more than 4 but less than 20 units of product anywhere using Standard Shipping (5-7 Business days).
It costs $5 to ship more than 20 units of product anywhere using Standard Shipping (5-7 Business days).


35 Shipping options display (select or radio) -->
This variable works the same way as PV#7. It can be set with either a number or the word "RADIO". Examples of possible settings:

35 Shipping options display (select or radio) -->1
35 Shipping options display (select or radio) -->3
35 Shipping options display (select or radio) -->RADIO

If it is set to a number, then the cart will display all shipping options available to the customer in a select menu and the number will be how many options are displayed at a time. So setting it to 1 would produce a select menu like this:



If it is set to zero or left blank, then the cart will use a select menu of SIZE=1 by default. If this variable is set to 3 as shown above, then the shipping options will be displayed in the cart contents page in a select menu like this:



If this variable is set to "RADIO" then all the shipping options will appear in a radio menu where the shopper can choose one option. Example:

Standard Shipping (5-7 Business days)
Priority Shipping (3-5 Business days)
Fedex Overnight (Next day delivery)

Note: When the shopper clicks the "Remember My Choice" button for the shipping option, the cart will remember the customer's choice so the shopper will not have to select their shipping option again, unless they change their mind and decide to select a different shipping option later. After the "Remember My Choice" button has been clicked once, the shopper will see their choice selected automatically when they return to the cart, a convenience for your shoppers!
Remember My Choice


36 Add products to top or bottom of cart contents table (1 = top. 0 = bottom.) -->
When a new product is added to the cart, would you like it to appear at the top of the cart contents table, or at the bottom? Setting this to 1 will cause all new products to appear at the top of the cart (newest at the top, oldest at the bottom):
36 Add products to top or bottom of cart contents table (1 = top. 0 = bottom.) -->1

Setting this to 0 or leaving it blank will cause all new products to appear at the bottom of the cart (newest at the bottom, oldest at the top):
36 Add products to top or bottom of cart contents table (1 = top. 0 = bottom.) -->0


37 Use abbreviated values in state and country lists -->
Setting this variable to 1 enables this feature. Setting this to zero or blank will turn this feature off.
37 Use abbreviated values in state and country lists -->1

This feature works with four variables in the lang.txt file (E: SHIPPING/BILLING PAGE variables #26-29). If this variable is enabled, AND there are abbreviations in lang.txt variables E28 and/or E29, then the cart will use the abbreviations as the actual values in the form, and use the lists in E26 and E27 as the labels seen by the shopper. For example, if this variable is not enabled, the cart will create a select menu with state and countries taken from E26 and E27 like this:

<OPTION>Alabama</OPTION>

If Alabama is selected, the value that is used is "Alabama". If this variable is enabled, the cart will create a select menu with state and countries taken from E26 and E27 used as labels, and abbreviations taken from E28 and E29 used as values, like this:

<OPTION VALUE="AL">Alabama</OPTION>

Note: For this to work, there must be the same number of abbreviations in E28 as labels in E26 and there must be the same number of country abbreviations in E29 as labels in E27.

This feature allows the This feature is perfect for Real-time credit card processors such as CSI that require all countries and states to be abbreviated.


38 Enable "Make changes" link on preview checkout page -->
If this variable is enabled by setting it to 1, then there will be a "Make Changes" button above the "Finalize" order button on the preview checkout page.
38 Enable "Make changes" link on preview checkout page -->1

If this variable is set to 2, there will be a "Make Changes" button next to the "Finalize" order button on the preview checkout page.
38 Enable "Make changes" link on preview checkout page -->2

The button can be a graphic or standard submit button. The text for the button is found in variable C26 of the lang.txt file.
26 (Make changes button) -->Make Changes

or
26 (Make changes button) -->http://www.yourdomain.com/images/make_changes.gif
Make Changes

If this variable is set to 3, then the text in variable C25 of the lang.txt file will appear above the "Finalize" order button on the preview checkout page.
38 Enable "Make changes" link on preview checkout page -->3

This text can be anything you want. It can be a link back to the cart contents page as the default example shows, or it can be a graphic link, or not a link at all!

25 -->Need to change something? <a href="http://www.yourdomain.com/cgi-bin/my_cart.pl">Click here.</a>

If this variable is set to 4, then the "Make changes" link will appear below the summary table on the preview checkout page.
38 Enable "Make changes" link on preview checkout page -->4

If this variable is set to 5, then a "Make Changes" button will appear below the summary table on the preview checkout page.
38 Enable "Make changes" link on preview checkout page -->5

1 = Submit button above Finalize button
2 = Submit button next to Finalize button
3 = Text link above Finalize button
4 = Text link below preview summary table
5 = Submit button below preview summary table

**Show some screen captures here...


39 Minimum subtotal allowed to complete an order -->
Want to enforce a minimum subtotal before a shopper can complete an order? Set this variable with the minumum amount you will allow. Example:
39 Minimum subtotal allowed to complete an order -->15

According to the example above, there is a minimum subtotal in the cart of $15. This means a shopper will not be able to "Check out" and complete their order until there is a subtotal of at least $15 in the cart. As long as the subtotal in the cart is less than the amount set here, there will be no "Checkout" button. (The "Checkout" button is set in variables A12 and A21 of the lang.txt file.) In place of the "Checkout" button, the shopper will see the text you have set in variable A18 of the lang.txt file:
18 --><font color="#FF0000">Your order can not be completed until<BR> it meets the minimum order requirement of:</font>

Note: The "subtotal" is the total of the prices of all the products added to the cart. It does not include sales taxes, shipping charges, or discounts.


40 Minimum number of items allowed to complete an order -->
Want to enforce a minimum number of items in the cart before a shopper can complete an order? Set this variable with the minumum number of items you will allow before an order can be completed. Example:
40 Minimum number of items allowed to complete an order -->5

According to the example above, the minimum quantity of items a shopper can have in their cart before they will be able to "Check out" and complete their order is 5. This can be one item with a quantity of at least 5, or it can be more than one item as long as the total of all quantities in the cart is at least 5.

As long as the minimum quantity of items set here is not reached, there will be no "Checkout" button. (The "Checkout" button is set in variables A12 and A21 of the lang.txt file.) In place of the "Checkout" button, the shopper will see the text you have set in variable A19 of the lang.txt file:
19 -->At this quantity, the order can not be completed.<BR>Minimum number of items required in the cart to complete an order:


41 Disable all javascript features -->
Leaving this variable blank will keep all the cart's javascript features enabled. (Recommended.)
41 Disable all javascript features -->

Setting this variable to 1 will turn off all javascript features of the cart at once.
41 Disable all javascript features -->1

Note: The Web Shop Solution Cart does not require any javascript in order to function. All javascript features are optional conveniences for your shoppers. If a shopper does not have javascript enabled in their browser, the cart will still function for them, as if javascript was turned off. But shoppers who have javascript enabled in their browsers will benefit from the convenience of those features. For a complete rundown of the various javascript features used by the Web Shop Solution Cart, click here.

NOTICE: Due to the wide variety of browsers and browser versions available, we make no guarantees that the javascript code used by the Web Shop Solution Cart will work consistently in every browser.


42 Storewide discount -->
This discount will apply to the subtotal in the cart. It has three parts, separated by a pipe symbol. For example:

42 Storewide discount -->subtotal|50|10

The first part is what the discount is going to be based on. It can be set with "subtotal" or "items".

The second part is the number that triggers the discount and the third part is a actual discount amount. For example, in this case:
42 Storewide discount -->subtotal|50|10
the discount is based on the subtotal in the cart. When there is a subtotal of $50 or more, a $10 discount is applied.

The third field can be either a flat amount as shown above, or it can be a percentage. To make it a percentage, simply put this symbol on the end: %.

For example:
42 Storewide discount -->items|10|25%
In this example, the discount is triggered when there are 10 items in the cart, or one item with a quantity of 10. A 25% discount will be applied.

Lets say you want a storewide discount for the holidays that you want to apply to all orders regardless of quantities or subtotals. You could do that like this:
42 Storewide discount -->items|1|15%

Because every order has at least one item, this means that for every order, apply a 15% discount.

Products can be excluded from this discount by inserting a #nodiscount# tag in your product form. Example:
<INPUT TYPE=HIDDEN NAME="custom1" VALUE="#nodiscount#">
Here, "custom1" could be any custom number. For example: "custom6".

In an HREF link, you can replace the pound symbol '#' with this encoding: %23

For example:
http://www.YourName.com/cgi-bin/my_cart.pl?name=Purse&price=20&custom1=Black+Leather&custom2=%23nodiscount%23


43 Enable Coupon/Gift Certificate Discount -->
Setting this variable to 1 will enable the shopper to type in a coupon code or gift certificate number on the cart contents page.
43 Enable Coupon/Gift Certificate Discount -->1

Setting it to zero will quickly turn this feature off without needing to touch your coupons.txt or giftcert.txt files.
43 Enable Coupon/Gift Certificate Discount -->0

In order to use discount coupons in your store, all you need to do is set this variable to 1 and create a file called "coupons.txt". Inside this file you can list the coupon codes along with their discounts, each on a separate line in the file. For example:

abc|10
css|5%
123|10%

Each line represents a separate coupon discount. The code is on the left "abc" followed by a pipe symbol '|', followed by the amount of the discount. The code should be alphanumeric (letters or numbers only) and can be up to 15 characters long. The corresponding amount of the discount can be either a flat amount off (number by itelf), or a percentage off of the subtotal (percent sign '%' included).

According to the example shown above, if someone types "css" (case sensitive) into the coupon field on the cart contents page and clicks the submit button, the cart will apply a 5% discount off of the subtotal of this customer's order. If a customer uses the "abc" code, then $10 will be discounted from the subtotal. The codes and amounts can be anything you want and you can list an unlimited number of them in the coupons.txt file.

This feature will not work if this variable is set to zero or there is no "coupons.txt" file in your cgi-bin. Coupon codes can be used one time per order. A customer can only use one coupon code per order.


44 Placement of Coupon/Gift Certificate text box (right = 0, left = 1) -->
44 Placement of Coupon/Gift Certificate text box (right = 0, left = 1) -->


45 Display breakdown/details of of all applicable discounts -->
45 Display breakdown/details of of all applicable discounts -->1


46 Align breakdown/details to the right or left (right = 0, left = 1) -->
46 Align breakdown/details to the right or left (right = 0, left = 1) -->1


47 Display grand total in "Checkout" button -->
Setting this variable to 1 will cause the cart to use the text in variable A21 of the lang.txt file along with the grand total in the "Checkout" button.
21 (Checkout button alternate) -->Purchase for

So if the grand total is $21.46 after taxes and shipping and discounts have been tallied, the button will look like this:


Leaving this variable blank or setting it to zero will cause the cart to use the "Checkout" button you have defined in variable A12 of the lang.txt file.
12 (Checkout button default) -->http://www.yourdomain.com/images/checkout_red.gif
Checkout

Examples of possible settings:
47 Display grand total in "Checkout" button -->
47 Display grand total in "Checkout" button -->1


48 Track shoppers using only cookies -->
Setting this to zero or blank is the default setting. The cart will attempt to use cookies to track every shopper. If the shopper does not have cookies enabled in their browser, then the cart will use the shopper's IP Address, browser, and OS information for tracking.
48 Track shoppers using only cookies -->
48 Track shoppers using only cookies -->0

Here is how it works:
Whenever a new shopper accesses your cart by clicking on a link or adding an item to the cart, the cart will create two text files in your "temp" folder. The first text file will be named something like "778.txt", where "778" is the incremented shopper_id number that is taken from the shopperid.txt file. When the cart creates this file, it will simultaneously attempt to place a cookie on the shopper's computer that identifies the shopper as shopper number 778. The cookie looks like this:

shopper_id=778

The second file that the cart creates is named based on the shopper's IP Address, browser information, and OS version. This file will also be created in the "temp" folder and will look something like this:

c-66-177-152-20.se.client2.attbi.comMozilla4.0compatibleMSIE6.0WindowsNT5.1.txt
or
c-66-177-152-20.se.client2.attbi.comMozilla5.0WindowsUWindowsNT5.1en-USrv1.4Gecko20030624Netscape7.1ax.txt

While this file name may look strange, it is created because the cart needs to have a "plan B" for tracking the shopper in the event that the shopper does not have cookies enabled in their browser. The name of the file is meant to be as unique as possible. The first example above is a shopper that is using Microsoft Internet Explorer 6.0 browser on Windows XP. The second example is that same shopper using Netscape 7.1 browser on Windows XP.

Both of the files that the cart creates for this shopper will contain identical information. On a subsequent visit to the cart, or when the shopper adds a second item to the cart, the cart will now be able to determine if the shopper has cookies enabled in their browser. If the shopper does have cookies enabled, meaning the cart found the "shopper_id=778" cookie, then the strange looking file with the shopper's IP address will be deleted and the cart will only use the "778.txt" file to track the shopper from now on. If the shopper does not have cookies enabled, meaning the cart did NOT find the "shopper_id=778" cookie, then the strange looking file with the shopper's IP address will be used to track the shopper from now on, and the "778.txt" file will be deleted.

Setting this variable to 1, will tell the cart to use only cookies for tracking shoppers.
48 Track shoppers using only cookies -->1

While cookies are a more secure and robust method of shopper tracking, this means you could potentially lose customers that refuse to enable cookies in their browsers. If a shopper with cookies disabled attempts to place an item in your cart, the cart will remain empty and the shopper will see a message that says something like: "You must enable cookies in your browser in order to shop in our secure store."

The best way to track shoppers is to use cookies, therefore the cart will always attempt to use cookies to track shoppers. But since there are some people who don't have cookies enabled in their browsers, some AOL users for example, the cart needs to be flexible enough to prevent a loss of sales to those customers. That is why The Web Shop Solution cart utilizes this "plan B" method of tracking. This "plan B" method of tracking is not perfect though, and is not as good as using cookies. Here's why: Not all internet users have a unique IP address when they are online. Some major ISP's such as AOL use shared IP addresses for their subscribers. This means that two people on opposite sides of the United States could be surfing the internet with the same IP address. Why is this a problem? Because there is a possibility that both of those shoppers are shopping in your store at nearly the same time, both have cookies disabled, both could be using the same browser, and both could be using the same operating system. Which means the cart would not be able to distinguish between them. When one of the shoppers adds something to the cart or deletes something from the cart, the other shopper would see the changes made to their cart contents. They would be essentially sharing the same basket. While this would be a rare occurance, it is not desirable. The Web Shop Solution cart does come with some features that address this potential issue.

1. You could decide to enforce cookies, so that there is NEVER a possibility of sharing basket contents. To enforce cookies, simply set this variable to 1. For example:
48 Track shoppers using only cookies -->1


2. You could put a text message somewhere in your cart that admonishes shoppers to enable cookies in their browser "For the best shopping experience".

3. You can set GSV#49 to 1 so that in the event that there are shared basket contents, at least there will not be a potential of one shopper seeing another shopper's shipping/billing address. This is a security feature.
49 Do not store shipping addresses for IP tracking -->1


4. GSV#50 limits the amount of time the IPtracking.txt file resides in the temp folder.
50 Shoppers data expires (days) -->2
See GSV#50 for instructions on setting this variable. The "2" above means that the IPtracking.txt file will be deleted from the temp folder after two days. Decreasing the amount of time the IPtracking.txt file is allowed to live in the temp folder reduces the likelihood of a shared basket occurance by shoppers who have cookies disabled.


49 Do not store shipping addresses for IP tracking -->


50 Shoppers data expires (days) -->
This tells the program how long shopper's basket files can exist in the temp folder before they are deleted. Set this number too high and you could end up with a huge temp folder. That is okay if web space is not an issue. Set it too low and a returning customer could be upset to find out that their cart is now empty. For most websites, 3-7 days is about right.
50 Shoppers data expires (days) -->5

Note: For most transaction payment options, the shopper's basket will be deleted as soon as they finalize their order by clicking the final submit button and reaching the the cart's receipt page. So if someone pays via COD or credit card, as soon as they finalize their order, their basket file will be removed from the temp folder automatically. They can go back to the cart to order more products, but their basket will then be empty and they will be starting a new transaction.

Its like leaving the grocery store, receipt in hand, and realizing that you forgot one or two items. You can always grab a new cart and go back into the store to purchase those new items, but it would be considered a new transaction. The Web Shop Solution Cart works the same way when a transaction is completed by a shopper.

The two exceptions to this are "Check or Money Order" and "Transaction via Telephone" payment options. The basket files for these type of orders are not deleted when the shopper clicks the final submit button. This is because the shopper may need to go back and add something else to their cart before they actually mail out their money order or place a phone call to submit their credit card information. The order is not considered final until you actually receive payment. The shopper's basket files for these types of transactions will delete themselves automatically when the files become older than the number of days you set in GSV#50 above.

Another note about this feature:
The age of the basket files are reset every time the shopper accesses their cart and adds or deletes an item or changes a quantity. Basically, any time the shopper changes something in their cart their basket file gets a new timestamp that will be compared to the number of days you have set in this variable. So if a basket file sits for 4 days, and you have this variable set to 5 like so:
50 Shoppers data expires (days) -->5
If the shopper does not change anything in their cart in the next day, their basket will be deleted. However, if the shopper makes a change to anything in their cart, then their basket will remain for another five days.

In summary:
Payment options where the basket file is deleted immediately after the order has been finalized:
First Credit Card payment option
Second Credit Card payment option
Third Credit Card payment option
Fourth Credit Card payment option
Cash on Delivery (COD) payment option
Online Check Draft payment Option
Custom payment option

Payment options where the basket file is NOT deleted immediately after the order has been finalized:
Check and Money Order payment option
Credit Card Transaction via Telephone payment option



51 Merchant "From:" address to appear in customer receipts (if different from GSV#2) -->
By default, the "From:" portion of the email receipt that the shopper will get for their order will be the first email address listed in GSV#2.

What this variable does is allow you to use a different email address for the "From:" portion of customer email receipts.
51 Merchant "From:" address to appear in customer receipts (if different from GSV#2) -->sales@bluegalaxy.info/webshopsolution


52 Merchant email signature -->
This will appear at the bottom of all email receipts your cart sends out.

52 Merchant email signature -->Thank you for your order!|The Webshopsolution - A customizable, secure, easy-to-use|shopping cart system for your online store.|http://www.bluegalaxy.info/webshopsolution|cart@bluegalaxy.info/webshopsolution

Each line of your email signature is separated by a pipe '|' symbol. The above example would produce an email signature that looks like this:

Thank you for your order!
The Webshopsolution - A customizable, secure, easy-to-use
shopping cart system for your online store.
http://www.bluegalaxy.info/webshopsolution
cart@bluegalaxy.info/webshopsolution

You can use HTML tags in your email signature and they will show up fine as long as GSV#59 is set to use HTML in your email receipts.

53 Capture pending orders in receipt format for credit card transactions -->
This feature is enabled (set to 1) by default. Enabled, it will create a backup copy of the email receipt that the cart sends out, with all of the order details, in a folder called "pending" in your cgi-bin. In order for this feature to work, this variable needs to be set to 1 and the "pending" folder needs to exist in the cgi-bin where the cart.pl script resides and be fully writable. (chmod 777 on Unix/Linux servers)

This feature is a fail safe for merchants so that you never have to lose an order or not know what was ordered in the event that your server's sendmail program isn't working properly. Rather than allow the order to disappear in cyberspace because of a faulty sendmail program, the email with all order details will be safely recorded in the pending fiolder on your server, where you can log in and download it. The names of the pending order files will be "pending_110.txt", "pending_111.txt", "pending_112.txt", etc.. The format of each pending file will look just like the email receipts the cart sends out. Setting this variable to zero or leaving it blank will turn this feature off. (Not recommended)

Example settings:
53 Capture pending orders in receipt format for credit card transactions -->
53 Capture pending orders in receipt format for credit card transactions -->1

Note: For security, you will need to make sure that the contents of the pending folder are not viewable in a web browser. A call to the pending folder via a web browser should produce a "Forbidden" message.


54 Pending files expire (days) -->
This is the amount of days that pending order files (See GSV#53) are allowed to remain on your server in the "pending" directory before they are automatically deleted by the cart. This will help prevent you from running out of disk space in your cgi-bin. A good practice would be to periodically download all the pending files to a backup folder on your computer for safe-keeping.
54 Pending files expire (days) -->60


55 Email receipt column widths (template 1) -->
55 Email receipt column widths (template 1) -->14|24|8|8|8
Default is: -->14|24|8|8|8


56 Gather marketing inquiry information -->
This feature will create a "How did you hear about us" form that can be either a select menu or radio buttons made up of choices that you set in GSV#57 below. This variable tells the script what page of your cart you want the "How did you hear about us" form options to appear on. If you turn this feature on, the recommend setting is 1.
56 Gather marketing inquiry information -->1

The shipping/billing page of the cart is the best place to collect "How did you hear about us" data. Note: Once the shopper has submitted their response to this "How did you hear about us" form once, their answer is recorded to the same temp file that contains the rest of their order and the "How did you hear about us" form will not re-appear in the cart if the shopper goes back to edit their shipping/billing address.

0 or blank = "How did you hear about us" feature turned off.
1 = Located at the bottom of the shipping/billing page.
2 = Located at the bottom of the preview/checkout page.**

**Note: This option will appear at the bottom of the preview/checkout page for Secure Online Credit Card Transactions, but for Secure Online Credit Card Transactions, the form will have its own "Submit" button. Also, if this variable is set to 2, and the preview/checkout page is not enabled, then the marketing inquiry form will not appear in the cart. See GSV#9.

Examples of possible settings:
56 Gather marketing inquiry information -->
56 Gather marketing inquiry information -->0
56 Gather marketing inquiry information -->1
56 Gather marketing inquiry information -->2


57 Options for marketing inquiry form -->
This is a pipe separated list of options you want displayed in the "How did you hear about us" form. Each of these will appear as a choice for your shopper.

57 Options for marketing inquiry form -->Google search|A friend told me about it|Alexa|Yahoo search|Brochure|Radio Ad

It is also possible to include a text field at the bottom of your form to catch any other ways your customer found your site that you didn't think of. To include this text field, add something like this to the end of your list of options:

|TEXT^Other:^20-30

For example:
57 Options for marketing inquiry form -->Google search|A friend told me about it|Alexa|Yahoo search|Brochure|Radio Ad|TEXT^Other:^20-30

"TEXT" Tells the script that you want to create a text field. "Other:" is the label that you want the shopper to see in the form. "20-30" is the size and maxlength you want applied to the text field. Each of these three pieces of data is separated by (the carat symbol) ^ (uppercase 6 on most keyboards). The SIZE and MAXLENGTH attibutes of your text fields are separated by a hypen or "minus" symbol '-'. The result would look like this in the form:

Other:


58 Marketing inquiry form type -->
This variable gives you the choice of using either a SELECT MENU or RADIO buttons for the "How did you hear about us" form that you want to appear in your cart. There are two ways to set this variable. You can use a number from 1-5, or the word "RADIO". If this variable is set with a number from 1-5, the cart will use a standard select menu, with the number being how many options are displayed at a time (A maximum of 5 options are shown at a time).

Examples of possible settings:
58 Marketing inquiry form type -->1
58 Marketing inquiry form type -->3
58 Marketing inquiry form type -->RADIO

For the examples below, lets say that that GSV#57 is set like this:
57 Options for marketing inquiry form -->Google search|A friend told me about it|Alexa|Yahoo search|Brochure|Radio Ad

This setting:
58 Marketing inquiry form type -->1
would produce a select menu that looks like this:



If it is set to zero or left blank, then the cart will use a select menu of SIZE=1 by default. If this variable is set to 3 as shown above, the options will be displayed in a select menu like this:



If this variable is set to "RADIO" then all the shipping options will appear in a radio menu where the shopper can choose one option. This option is ideal if you only have two or three options.
58 Marketing inquiry form type -->RADIO
Example:

Google search
A friend told me about it
Alexa
Yahoo search
Brochure
Radio Ad


59 Email content type -->
The default setting here is "text/html". Most people have email browsers that can read HTML. The default email receipt template that the WSS cart produces is formatted using a fixed width font so that it will look consistent across email browsers. If this variable is set to "text/plain" then the formatting of the columns will not line up correctly if the shopper is not using a fixed width font. Most people view their email with variable width fonts, so it is recommended that you leave this variable set to "text/html". Also, setting this to text/html allows the merchant to add HTML formatting to any of the text that is found in the email receipts. See the "D: EMAIL RECEIPTS" section of the lang.txt file.

If you are not sure what this means, just leave this variable set to text/html.

Example settings:
59 Email content type -->text/html
59 Email content type -->text/plain
59 Email content type -->text/plain; charset=x-sjis


60 Email receipt template -->
The the default setting here is 1. The cart will automatically use an email template that is formatted with HTML and a fixed width font to produce an email receipt that looks like this:

### example graphic here ###

It is recommended that you leave this set to 1 in conjunction with GSV#59 set to "text/html".

If you want to ensure absolute consistency in the formatting of the email receipts that are sent out by the cart, (because there are some people who view their emails using plain text only) you can enable the second email template by setting this variable to 2. This email will look the same whether you have GSV#59 set to text/plain or text/html. But with GSV#59 set to text/html, you will still be able to use HTML to format some of the phrases that appear in the email receipts. See the "EMAIL RECEIPTS" section of the lang.txt file. Here is what the second email template looks like:

### example graphic here ###

Possible settings:
60 Email receipt template -->1
60 Email receipt template -->2

Notes:
1. The email template that you choose will also be the format that backup copies of your orders are recorded to in the pending and order files.
2. Blat does not support sending email in text/html format, so if you are hosted on a Windows server and you are going to be using Blat to send out email receipts, you may want to use email template 2 so that all of your email receipts will be formatted consistently.


61 Enable custom price override feature -->
The "custom price override" feature allows you to have custom options in your product forms that will override the price of a product. An example of this feature can be seen in the "5-Day Getaway to Greece" form on our Demo page. This feature is triggered if a custom option chosen by the shopper contains the currency symbol your cart uses: '$' followed by a number, with no spaces in between. For example, in the "5-Day Getaway to Greece" form, the price is $1999 for one person. But if the shopper chooses "Two People", the price is $2999. The $1999 price is overridden with a tag like this:
<INPUT TYPE=RADIO name=custom3 value="2 people $2999">
This special custom price override must be passed to the cart in one of the "custom" tags of your form, as shown above.

It is possible to include a currency symbol followed by a number in some custom product descriptions and NOT have the price overridden. To do that, you would just need to include a #no_custom_price_override# tag in your product form. For example:
<INPUT TYPE=HIDDEN NAME=custom8 VALUE="#no_custom_price_override#">
The cart would then treat the $2999 as just a product description, not a price override.

The #no_custom_price_override# tag can also be used in HREF links, but the pound symbol '#' needs to be replaced with its URL encoding '%23'. For example: &custom5=%23no_custom_price_override%23

Setting this variable to 1 will enable the "custom price override" feature in the cart.
61 Enable custom price override feature -->1

Leaving it blank or setting it to zero will turn this feature off.
61 Enable custom price override feature -->
61 Enable custom price override feature -->0


62 Enable Javascript shipping/billing form validation -->
62 Enable Javascript shipping/billing form validation -->1


63 Required fields -->
Which fields on the shipping/billing page of the cart do you want to be "required?"
63 Required fields -->name,address,city,state,zip,country,phone,email


64 Letters for cookie encryption (10-16 non-repeating mixed upper/lowercase) -->
Example setting:
64 Letters for cookie encryption (10-16 non-repeating mixed upper/lowercase) -->XzYwxZycTvRhCWiq

This is a security feature that prevents a clever shopper from changing their shopper_id cookie in order to attempt to gain access to someone else's shopping basket. The shopper_id cookie is encrypted with the letters set above. For example: shopper_id=cvvxwyZvXZ
Choose 10 to 16 letters only. They can be a mix of upper and lower case letters as shown in the example above. No letters should be repeated. It's okay to use an upper and a lowercase 'x'. For example: Xx. But not two lowercase x's, as that would be a repeated letter: xx


Top of page.  Top of section.


5 THE PAYMENT OPTION VARIABLES:

The "PAYMENT OPTIONS" section of the vars.txt file is the third block of variables. This section begins with the line:
### PAYMENT OPTIONS - (DO NOT REMOVE OR ALTER THIS LINE)

Below you will find an explanation of each variable including what the variable does and how it should be set. When referring to PAYMENT OPTIONS VARIABLES I may use the two letter abbreviation "PV". For example, I may refer to PAYMENT OPTIONS VARIABLE #1 as "PV#1" for simplicity.

Jump to a variable:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20


1 Check and Money Order payment option -->
To enable transactions via checks or money orders, set this variable to 1.
1 Check and Money Order payment option -->1

Language that is used by the cart in association with this payment option can be found in variables B1, B10, B14, B15, D26 and D27 of the lang.txt file:.
1 -->Check or Money Order
10 (Check or Money Order label) -->Your order will be shipped as soon as your check is cleared.
14 -->Checks and money orders should be made payable to:
15 -->Print out this page and mail it with your check or money order to the address listed below.
26 -->Checks and money orders should be made payable to:
27 -->Print this page and mail it with your check or money order to the address listed below.

The address that the customer will see is taken from GSV#11 - GSV#14.

Note: You never know if the customer really intends to order the products until you receive their check or money order in the mail. Therefore, the contents of your customer's 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. See GSV#50 for more details.


2 Credit Card Transaction via Telephone payment option -->
If you would like to provide your customers with the option of calling your toll free number to provide their credit card details, set this variable to 1.
2 Credit Card Transaction via Telephone payment option -->1

Language that is used by the cart in association with this payment option can be found in variables B2 and B11 of the lang.txt file:.
2 -->Credit Card Transaction via Telephone
11 (Credit Card Transaction via Telephone label) -->To complete your order, call the toll free number below to submit your credit card details. Print this page out and use it as your receipt. We will ask you for the Customer/Shopper ID number printed on this page. Calls are accepted from 9am to 8pm Pacific Standard time.

The toll free number that the customer will see is taken from GSV#15.

Note: You never know if the customer really intends to order the products until they call to provide their credit card details. Therefore, the contents of your customer's shopping cart will not be immediately erased after they place their order. This way if your customer decides to go back and add another item to their cart, they wont find it empty and get frustrated. See GSV#50 for more details.


3 Cash on Delivery (COD) payment option -->
This payment option means the shopper will pay for their products at the time they are delivered. To enable this payment option, set this variable to 1.
3 Cash on Delivery (COD) payment option -->1

Language that is used by the cart in association with this payment option can be found in variables B7 and D4 of the lang.txt file:.
7 -->Charge on Delivery (COD)
4 (COD payment option) -->You will be charged for your order at the time it is delivered.


4 Online Check Draft payment Option -->
4 Online Check Draft payment Option -->1


5 Custom payment option -->
Create your own custom payment option, name it anything you want and make up your own instructions for it! Just set this variable to 1 and create the text label that goes with it in variable B9 of the lang.txt file.
5 Custom payment option -->1

Language that is used by the cart in association with this payment option can be found in variable B9 and D6 of the lang.txt file:.
9 -->Custom Payment Option
6 (Custom payment option) -->These are special instructions for the Custom Payment Option


6 Unique SUCCESS string (1-12 characters, alphanumeric, no spaces) -->
6 Unique SUCCESS string (1-12 characters, alphanumeric, no spaces) -->T394hmpoie


7 Payment options display type -->
This variable works the same way as GSV#35. It can be set with either a number or the word "RADIO". Examples of possible settings:

7 Payment options display type -->1
7 Payment options display type -->5
7 Payment options display type -->RADIO

If it is set to a number, then the cart will display all payment options available to the customer in a select menu and the number will be how many options are displayed at a time. So setting it to 1 would produce a select menu like this:



If it is set to zero or left blank, then the cart will use a select menu of SIZE=1 by default. If this variable is set to 5 as shown above, then the payment options will be displayed in the cart contents page in a select menu with 5 options showing at a time, like this:



If this variable is set to "RADIO" then all the payment options will appear in a radio menu where the shopper can choose one option. This is ideal if you have two or three payment options enabled. But as you can see, it will also work if you have all 9 possible payment options available to your shoppers. Example:

Secure Online Credit Card Transaction - Cambist
Secure Online Credit Card Transaction - 2Checkout
Secure Online Credit Card Transaction - CSI
Check or Money Order
Credit Card Transaction via Telephone
Credit Card Transaction Option 4 - InternetSecure
Charge on Delivery (COD)
Custom Payment Option

Note: When the shopper clicks the "Remember My Choice" button for the payment option, the cart will remember the customer's choice so the shopper will not have to select their payment option again, unless they change their mind and decide to select a different payment option later. After the "Remember My Choice" button has been clicked once, the shopper will see their choice selected automatically when they return to the cart, a convenience for your shoppers!
Remember My Choice


8 Order of Payment options -->
8 Order of Payment options -->3,4,5,1,2


9 First Credit Card payment option -->
9 First Credit Card payment option -->Cambist


10 Username/login ID for first processor -->
10 Username/login ID for first processor -->DEMO


11 Extra information for first processor -->
11 Extra information for first processor -->Amex,Discover,book,AVSVerify,Language=English,UseCVV2=N


12 Second Credit Card payment option -->
12 Second Credit Card payment option -->


13 Username/login ID for second processor -->
13 Username/login ID for second processor -->


14 Extra information for second processor -->
14 Extra information for second processor -->


15 Third Credit Card payment option -->
15 Third Credit Card payment option -->


16 Username/login ID for third processor -->
16 Username/login ID for third processor -->


17 Extra information for third processor -->
17 Extra information for third processor -->


18 Fourth Credit Card payment option -->
18 Fourth Credit Card payment option -->


19 Username/login ID for fourth processor -->
19 Username/login ID for fourth processor -->


20 Extra information for fourth processor -->
20 Extra information for fourth processor -->


Top of page.  Top of section.


6 REAL-TIME CREDIT CARD PROCESSOR SETTINGS:

Compatible Real-Time Processors:
  1. 2Checkout
  2. Cardservice International (CSI)
  3. Cambist
  4. InternetSecure
  5. Paypal
  6. Verisign
  7. Worldpay
This section provides instructions on how to set up your cart to use any of the compatible real-time credit card processors listed above.

2Checkout:



Cardservice International (CSI):



Cambist:
Cambist is a real-time credit card processor and secure server that is compatible with the Web Shop Solution Cart. For information about their services including pricing information, visit their website:
http://www.cambist.com

The Web Shop Solution Cart will pass the full total, shopper id number, and billing address information to Cambist. Cambist will then securely collect your customer's credit card information. When your customer clicks the submit button on Cambist's secure credit card page, Cambist will either approve or decline the customer's card. If they decline your customer's card, your customer will be directed to your cart's "failure" page where they can choose another payment option. This helps to increase your sales! The customer can choose Cambist again, and this time enter a different credit card, or they can choose to pay some other way, according to which payment options you have made available in your cart. If Cambist approves your customer's credit card, then the customer will be charged and returned to your cart's "Thank you" page, where they can print out their receipt. At this point the customer will get an email receipt and you will get an email receipt from the cart stating that the transaction was completed.

Web Shop Solution example setup:

9 First Credit Card payment option -->Cambist
10 Username/login ID for first processor -->DEMO
11 First processor settings -->Amex,Discover,book,AVSVerify,Language=English,UseCVV2=N

Payment variable #9 or #12 or #15 or #18 should be set with just "Cambist", exactly as shown above.
The "Username/login ID" for this processor should be set with your Cambist Merchant ID.

Cambist supports the following special options:
  • The ability to restrict the card types that Cambist accepts for you by explicitly listing the card types you want Cambist to accept. Options:
    Visa, MasterCard, Amex, Discover
    You can set one or more of these options in the processor settings, spelled exactly as shown here, separated by commas with no spaces. For example:
    11 First processor settings -->Visa,MasterCard

  • You can tell Cambist what language you want them to use on their website for your orders. Example options:
    Language=English, Language=Spanish, Language=French
    Example:
    11 First processor settings -->Visa,MasterCard,Language=Spanish
    Contact Cambist for a complete list of supported languages.

  • Cambist can support "book" transactions. To use this feature, put "book" in your processor settings for the processor. Like so:
    11 First processor settings -->Visa,MasterCard,Language=Spanish,book
    Contact Cambist for complete details about this feature.

  • Cambist also has an "AVSVerify" service. Contact Cambist for complete details about this feature. To use this feature, put "AVSVerify" in your processor settings for the processor. Like so:
    11 First processor settings -->Visa,MasterCard,Language=Spanish,book,AVSVerify
    Another example:
    11 First processor settings -->Visa,Amex,AVSVerify

  • Cambist also has a feature that will allow you to not collect the three digit number on the back of most credit cards. To use this feature, put "UseCVV2=N" in your processor settings for the processor. For example:
    11 First processor settings -->MasterCard,Discover,book,UseCVV2=N
    If you are not sure what this means, don't include "UseCVV2=N" in your processor settings for the processor.

  • You can test your connection to Cambist before going live by putting "TEST" in your processor settings for the processor. For example:
    11 First processor settings -->book,AVSVerify,TEST
    Another example:
    11 First processor settings -->Visa,MasterCard,TEST
    To simulate a successful transaction, put an item in the cart that will produce a grand total ending in a five or zero. i.e. '.95' or '.00'.
    The credit card number you can use for testing: 5419840000000003
    When you are ready to go live with Cambist, simply remove "TEST" from your processor settings for the processor and make sure your Cambist Merchant ID is set correctly as your Username/login ID.


InternetSecure:



Paypal:



Verisign:



Worldpay:



Top of page.  Top of section.


7 THE CUSTOMIZATION VARIABLES:

Jump to a variable:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15


1 URL to company logo -->
1 URL to company logo -->http://www.bluegalaxy.info/webshopsolution/images/wss_logo.gif


2 BODY tag -->
2 BODY tag --><BODY BGCOLOR=#FFFFFF BACKGROUND="">


3 Standard font tag -->
3 Standard font tag --><font face="Verdana,Denmark,Intrepid" color="#000000" size="-1">


4 Header font tag -->
4 Header font tag --><font face="Verdana,Denmark,Intrepid" color="#000000" size="+1">


5 Title font tag -->
5 Title font tag --><i><font face="Verdana,Denmark,Intrepid" color="#CC0000" size="+2">


6 Alternate font tag -->
6 Alternate font tag --><font face="Verdana,Denmark,Intrepid" color="#ffffff" size="-1">


7 Table cell background color -->
7 Table cell background color -->#CC0000


8 Width of cart contents table -->
8 Width of cart contents table -->700


9 Border width of cart contents table -->
9 Border width of cart contents table -->1


10 Preview and receipt page highlight color -->
10 Preview and receipt page highlight color -->#CC0000


11 Receipt page highlights -->
11 Receipt page highlights -->off


12 Show name of website at top of all pages -->
12 Show name of website at top of all pages -->


13 Width of table on receipt page -->
13 Width of table on receipt page -->700


14 Table border around shipping address on receipt page -->
14 Table border around shipping address on receipt page -->1


Top of page.  Top of section.


8 HTML FORM TAGS AND HREF LINKS EXPLAINED:

These are the basic building blocks of HTML product forms and HREF links that can be set up on your website, which make it possible to start selling products using your Web Shop Solution Cart.
HTML Form tags the cart can read:

Introduction:
Every HTML product form begins with an "ACTION" tag that points to the exact URL of your cart that you have set in SV#1. It looks like this:
<FORM METHOD=POST ACTION="http://www.yoursite.com/cgi-bin/my_cart.pl">
Every product form ends with a closing form tag that looks like this:
</FORM>

HTML product forms can be created in your favorite HTML editor. Just make sure that your product forms use the product form tag examples shown here. There are complete product form examples on our demo page.

Description of tags:
  • NAME=name
    <INPUT TYPE=HIDDEN NAME=name VALUE="Incredible Widget">

    • The value of this tag is the name of the product and will appear in the first column ("Item:" column) of the cart.

    HREF link example:
    http://www.yoursite.com/cgi-bin/my_cart.pl?name=Set+of+five+candles&price=9.95&custom2=All+scented+and+wrapped+in+plastic&custom1=Item%231000723&quantity=1&sh=1&img=http://www.bluegalaxy.info/webshopsolution/images/candles.jpg&continue_shopping=http://www.bluegalaxy.info/webshopsolution/demo.html
    &product_details=http://www.bluegalaxy.info/webshopsolution/images/candlesL.jpg


  • NAME=price
    <INPUT TYPE=HIDDEN NAME=price VALUE="1.75">

    • The value of this tag is the price of the product and will appear in the "Each:" column of the cart.

    HREF link example:
    http://www.yoursite.com/cgi-bin/my_cart.pl?name=Set+of+five+candles&price=9.95&custom2=All+scented+and+wrapped+in+plastic&custom1=Item%231000723&quantity=1&sh=1&img=http://www.bluegalaxy.info/webshopsolution/images/candles.jpg&continue_shopping=http://www.bluegalaxy.info/webshopsolution/demo.html
    &product_details=http://www.bluegalaxy.info/webshopsolution/images/candlesL.jpg


  • NAME=quantity
    <INPUT TYPE=HIDDEN NAME=quantity VALUE="1">

    • The value of this tag is the quantity of the product and will appear in the "Quantity:" column of the cart. The quantity of the item can be set in a HIDDEN tag or text box, or select menu or any other form element that you want to set up to either set or collect the quantity of the product. If a quantity tag is not present in a product form or HREF link, the default quantity sent to the cart is "1".

    HREF link example:
    http://www.yoursite.com/cgi-bin/my_cart.pl?name=Set+of+five+candles&price=9.95&custom2=All+scented+and+wrapped+in+plastic&custom1=Item%231000723&quantity=1&sh=1&img=http://www.bluegalaxy.info/webshopsolution/images/candles.jpg&continue_shopping=http://www.bluegalaxy.info/webshopsolution/demo.html
    &product_details=http://www.bluegalaxy.info/webshopsolution/images/candlesL.jpg


  • NAME=sh
    <INPUT TYPE=HIDDEN NAME=sh VALUE="1">

    • The value of this tag is the number of shipping units this product represents. If your cart is calculating shipping based on weight, you could tell the cart that this particular product weighs 2 pounds by setting the "sh" value to 2. The "sh" value is used by the cart for shipping calculations.

    HREF link example:
    http://www.yoursite.com/cgi-bin/my_cart.pl?name=Set+of+five+candles&price=9.95&custom2=All+scented+and+wrapped+in+plastic&custom1=Item%231000723&quantity=1&sh=1&img=http://www.bluegalaxy.info/webshopsolution/images/candles.jpg&continue_shopping=http://www.bluegalaxy.info/webshopsolution/demo.html
    &product_details=http://www.bluegalaxy.info/webshopsolution/images/candlesL.jpg


  • NAME=continue_shopping
    <INPUT TYPE=HIDDEN NAME=continue_shopping VALUE="http://www.bluegalaxy.info/webshopsolution/demo.html">

    • The value of this tag is the URL that the customer will be taken to when they click the "Continue Shopping" button in the cart.

    HREF link example:
    http://www.yoursite.com/cgi-bin/my_cart.pl?name=Set+of+five+candles&price=9.95&custom2=All+scented+and+wrapped+in+plastic&custom1=Item%231000723&quantity=1&sh=1&img=http://www.bluegalaxy.info/webshopsolution/images/candles.jpg&continue_shopping=http://www.bluegalaxy.info/webshopsolution/demo.html
    &product_details=http://www.bluegalaxy.info/webshopsolution/images/candlesL.jpg


  • NAME=product_details
    <INPUT TYPE=HIDDEN NAME=product_details VALUE="http://www.bluegalaxy.info/webshopsolution/multi-items.html">
    <INPUT TYPE=HIDDEN NAME=product_details VALUE="http://www.yoursite.com/images/larger_image.jpg">

    • The value of this tag is the URL that the customer will be taken to when they click the image of the product or the name of the product in the cart. This allows each product in the cart to actually link back to the exact page of your website where it was found by the shopper, just like Amazon.com! This greatly aids in navigation of your website as shoppers will always be able to re-find the products that they've added to their cart.
    • The product_details tag can also be used to link to a larger image instead of a web page.

    HREF link example:
    http://www.yoursite.com/cgi-bin/my_cart.pl?name=Set+of+five+candles&price=9.95&custom2=All+scented+and+wrapped+in+plastic&custom1=Item%231000723&quantity=1&sh=1&img=http://www.bluegalaxy.info/webshopsolution/images/candles.jpg&continue_shopping=http://www.bluegalaxy.info/webshopsolution/demo.html
    &product_details=http://www.bluegalaxy.info/webshopsolution/images/candlesL.jpg



  • NAME=custom
    <INPUT TYPE=HIDDEN NAME=custom1 VALUE="Item# 219975-J">
    <INPUT TYPE=HIDDEN NAME=custom2 VALUE="An astonishing archeological discovery!">
    <INPUT TYPE=HIDDEN NAME=custom3 VALUE="One of 200 found in a plastic box buried under a newly discovered pyramid in Venezuela.">
    ...
    <INPUT TYPE=HIDDEN NAME=custom100 VALUE="One hundred pieces of product data for this item? Seems like overkill!">

    • custom tags are actually product descriptions that will appear in the "Description:" column of the cart. An unlimited number of product descriptions can be assigned to any product.
    • All custom tags end in a number. i.e. custom1, custom2, custom3, custom8, custom19, etc.. The order of the custom tags is the order that the product descriptions will appear in the "Description:" column of the cart.

    HREF link example:
    http://www.yoursite.com/cgi-bin/my_cart.pl?name=Set+of+five+candles&price=9.95&custom2=All+scented+and+wrapped+in+plastic&custom1=Item%231000723&quantity=1&sh=1&img=http://www.bluegalaxy.info/webshopsolution/images/candles.jpg&continue_shopping=http://www.bluegalaxy.info/webshopsolution/demo.html
    &product_details=http://www.bluegalaxy.info/webshopsolution/images/candlesL.jpg


  • NAME=img
    <INPUT TYPE=HIDDEN NAME=img VALUE="widget.jpg">
    <INPUT TYPE=HIDDEN NAME=img VALUE="http://www.yoursite.com/images/widget.jpg">

    • The value of this tag can be either a full URL to the product graphic, or just the name of the product graphic. SV#3 allows you to use just the name of the product graphic in your forms, such as "widget.jpg" instead of the full URL to the graphic.
    • Product images will appear in the first column ("Item:" column) of the cart.
    • It is possible to use the product_details tag to turn the product image in the cart into link to a larger image. To do this, the product_details tag can simply be set with the URL to the larger image. When a shopper clicks the product image in the cart, instead of being taken to a web page, the shopper will see the larger image. For example:
      <INPUT TYPE=HIDDEN NAME=product_details VALUE="http://www.yoursite.com/images/larger_image.jpg">

    HREF link example:
    http://www.yoursite.com/cgi-bin/my_cart.pl?name=Set+of+five+candles&price=9.95&custom2=All+scented+and+wrapped+in+plastic&custom1=Item%231000723&quantity=1&sh=1&img=http://www.bluegalaxy.info/webshopsolution/images/candles.jpg&continue_shopping=http://www.bluegalaxy.info/webshopsolution/demo.html
    &product_details=http://www.bluegalaxy.info/webshopsolution/images/candlesL.jpg


  • NAME=add
    <INPUT TYPE=HIDDEN NAME=add VALUE="1">
    <INPUT TYPE=SUBMIT NAME=add VALUE="Put in Shopping Cart">

    • Every HTML product form needs to have an "add" tag.
    • If you use a standard submit button, then your "add" tag can look like this:
      <INPUT TYPE=SUBMIT NAME=add VALUE="Put in Shopping Cart">
      Which produces:
    • You could use a graphic submit button in place of a standard submit button. In that case, you would need two tags instead of one. For example:
      <INPUT TYPE=HIDDEN NAME=add VALUE="1">
      <INPUT TYPE=IMAGE SRC="http://www.yoursite.com/images/add_to_cart.gif" border="0" alt="Add to Cart">
      Which produces:



  • VALUE=#noshipping#
    <INPUT TYPE=HIDDEN NAME=custom2 VALUE="#noshipping#">

    • To use this feature, set one of your "custom" tags to VALUE=#noshipping#, as shown above.
    • The #noshipping# tag tells the cart to exclude this particular product from all shipping calculations.
    • Notice in the HREF link example below, the pound symbols '#' have been replaced with the URL encoding '%23'.

    HREF link example:
    http://www.yoursite.com/cgi-bin/my_cart.pl?name=Digital+e-card&price=1.75&custom2=Since+this+is+a+digital+product,+it+is+excluded+from+shipping+calculations.&custom1=%23noshipping%23&quantity=1&continue_shopping=http://www.bluegalaxy.info/webshopsolution/demo.html


  • VALUE=#nontaxable#
    <INPUT TYPE=HIDDEN NAME=custom4 VALUE="#nontaxable#">

    • To use this feature, set one of your "custom" tags to VALUE=#nontaxable#, as shown above.
    • The #nontaxable# tag tells the cart to exclude this particular product from all sales tax calculations.
    • Notice in the HREF link example below, the pound symbols '#' have been replaced with the URL encoding '%23'.

    HREF link example:
    http://www.yoursite.com/cgi-bin/my_cart.pl?name=Digital+e-card&price=1.75&custom2=Since+this+is+a+digital+product,+it+is+excluded+from+shipping+calculations.&custom1=%23nontaxable%23&quantity=1&continue_shopping=http://www.bluegalaxy.info/webshopsolution/demo.html


  • VALUE=#nodiscount#
    <INPUT TYPE=HIDDEN NAME=custom1 VALUE="#nodiscount#">

    • To use this feature, set one of your "custom" tags to VALUE=#nodiscount#, as shown above.
    • The #nodiscount# tag tells the cart to exclude this particular product from all discounts.
    • Notice in the HREF link example below, the pound symbols '#' have been replaced with the URL encoding '%23'.

    HREF link example:
    http://www.yoursite.com/cgi-bin/my_cart.pl?name=Digital+e-card&price=1.75&custom2=Since+this+is+a+digital+product,+it+is+excluded+from+shipping+calculations.&custom1=%23nodiscount%23&quantity=1&continue_shopping=http://www.bluegalaxy.info/webshopsolution/demo.html


  • VALUE=#no_custom_price_override#
    <INPUT TYPE=HIDDEN NAME=custom3 value="#no_custom_price_override#">

    • To use this feature, set one of your "custom" tags to VALUE=#no_custom_price_override#, as shown above.
    • The #no_custom_price_override# tag makes it possible to include a currency symbol followed by a number in some custom product descriptions and NOT have the price overridden. See GSV#61 for more details.
    • Notice in the HREF link example below, the pound symbols '#' have been replaced with the URL encoding '%23'.

    HREF link example:
    http://www.yoursite.com/cgi-bin/my_cart.pl?name=Digital+e-card&price=1.75&custom2=Since+this+is+a+digital+product,+it+is+excluded+from+shipping+calculations.&custom1=%23no_custom_price_override%23&quantity=1&continue_shopping=http://www.bluegalaxy.info/webshopsolution/demo.html




Top of page.  Top of section.


9 ABOUT LANG.TXT:

Top of page.  Top of section.


10 JAVASCRIPT FEATURES EXPLAINED:

All of the javascript features used by the Web Shop Solution Cart are optional. None are required for the standard functioning of the cart, which means the Web Shop Solution Cart will work for shoppers with or without javascript enabled in their browsers.

All of the javascript features described here are enabled by default unless you decide to turn off all javascript features in the cart like this:
41 Disable all javascript features -->1

Here I will describe what each javascript feature in the cart does and what happens if the shopper does not have javascript enabled in their browser.

NOTE: Due to the wide variety of browsers and browser versions available, we make no guarantees that the javascript code used by the Web Shop Solution Cart will work consistently in every browser.

  1. Javascript alert box - This appears on the cart contents page when the "Empty Entire Cart" button is clicked. To see this feature, the "Empty Entire Cart" button needs to be enabled. The text in the javascript alert box comes from variable A20 in the lang.txt file. For example:
    20 -->Do you really want to empty the entire cart? Click OK to empty.

  2. Same As Above button - If enabled, this "Same As Above" button appears on the shipping/billing page of the cart. With one click it allows the shopper to fill in the billing address fields using the same information they just typed in for their shipping address. A convenience for your shoppers. The label for this button comes from variable E24 in the lang.txt file. For example:
    24 (Same as Above button) -->Same As Above

  3. Javascript print button - This button appears at the bottom of the printable reciept page after a transaction has been successfully completed. This javascript print button works in Netscape 7.1+ and Firefox, but not in Internet Explorer 6 or Opera. Microsoft's Internet Explorer does not support the window.print() function, so a text phrase is substituted for the print button in MSIE browsers. The text comes from variable C24 in the lang.txt file. For example:
    24 (Print this page for your receipt alternate text) -->PRINT THIS PAGE FOR YOUR RECEIPT

  4. Shipping and billing address form validation - If enabled, this javascript works on the shipping/billing page of the cart as an optional extra to improve user-friendliness for the shopper and ensure that the merchant is collecting all the data they require. All shipping/billing form submissions are validated on the server but if the shopper has Javascript enabled in their browser, an initial form validation is done client-side on the fly to check for simple errors such as missing information or non-numeric characters in a numeric field. This means the shopper gets faster feedback than waiting for a response from the server. And it means the merchant will be more likely to get email addresses and phone numbers in the correct format. This feature will only validate the shipping and billing fields that you tell the cart to "require" in GSV#63. This feature also allows you (the merchant) to define the error messages that will appear next to the required fields on the shipping/billing page. See lang.txt "E: SHIPPING/BILLING PAGE" variables #32-43.

  5. Javascript autosubmit to credit card processor - If the Preview Checkout page of the cart is turned off, the Web Shop Solution Cart will create an intermediate autosubmit page after the shipping/billing page of the cart. This javascript autosubmit page will flash briefly as it is automatically directing the shopper to the secure real-time credit card processor page. This means one less button to click for shoppers who have javascript enabled in their browsers.

Top of page.  Top of section.


11 STORE SECURITY:

Variables that relate to cart security: GSV#63


Top of page.  Top of section.


12 ALL ABOUT SHIPPING:

The Web Shop Solution Cart offers 9 different ways for shipping to be calculated!

The Web Shop Solution Cart was designed to provide merchants with maximum flexibility in getting shipping charges as accurate as possible! With powerful flexibility built into this shopping cart software, its hard to imagine a shipping scenario that can not be handled.

Here is a list of the 9 shipping options available:
  1. Shipping based on flat fees per item to various locations
  2. Shipping based on flat fees per item, independent of shopper's location
  3. Shipping based on total weight or number of units to various locations
  4. Shipping based on flat fees at various increments of the subtotal to various locations
  5. Shipping based on percentage of subtotal to various locations
  6. Shipping based on total weight or number of units, independent of the shopper's location
  7. Shipping based on flat fees at various increments of the subtotal, independent of location
  8. Shipping based on percentages of subtotal, independent of location
  9. Shipping turned off in the cart, NO SHIPPING

Notice that the shipping options can be broken down into two groups:
  • Shipping calculations that are based on the shopper's shipping address (location)
  • Shipping calculations that are NOT based on the shopper's location


1. Shipping that is independent of the shoppers location
a. Shipping based on subtotal, independent of location (flat fees at various increments of the subtotal)
b. Shipping based on subtotal, independent of location (percentages of subtotal)
c. Shipping based on flat fees per item, independent of shopper's location

2. Shipping that is based on the shopper's shipping address
a. Shipping based on total weight or number of units to various locations
b. Shipping based on subtotal to various locations (flat fees at various increments of the subtotal)
c. Shipping based on subtotal to various locations (percentage of subtotal)


32 Activate shipping -->1
33 Available shipping options -->Standard Shipping (5-7 Business days),Priority Shipping (3-5 Business days),Fedex Overnight (Next day delivery)
34 Corresponding shipping rates/files -->2.25:.50,1.25,5.50:.50

Top of page.  Top of section.


13 EMAIL FEATURES:

Top of page.  Top of section.


14 OTHER SPECIAL FEATURES:

Special Features Menu:
  1. Server Side Includes (SSI) and Cart Summary feature
  2. Multi-item Forms
Server Side Includes (SSI) and Cart Summary feature

The Web Shop Solution cart has a summary feature that will display the number of items in the cart along with the subtotal in the cart. The cart's summary feature can be accessed with a ?summary query to the cart. Like this:

http://www.yourdomain.com/cgi-bin/my_cart.pl?summary

That is the URL to the cart plus '?' plus 'summary'.
Click here to see a live example.

The Web Shop Solution cart has an "SSI" feature that allows you to display a small summary of the cart contents on any page of your website. This small summary of the cart contents will appear in the web page as soon as the page is loaded, via a real-time query of the cart. Here is an example of the tag that if inserted into a web page, will display a small summary of the cart contents:

<!--#include virtual="/cgi-bin/my_cart.pl?summary" -->

About this feature:
1. Paste the above "virtual include" tag into any web page on your site where you want to display a small summary of your shopper's cart contents. Assuming your cart is installed in the "cgi-bin" of your website and it is named "cart.pl", the tag should look exactly as you see above.
2. Server Side Includes will only work in static web pages. So it won't work in an "index.php" page, but it would work in an "index.html" or "index.shtml" page.
3. This feature will only work in a web page that has the same domain name as the cart.
4. In order for this feature to work, your website must be SSI enabled. Your web host can help you with this.
5. Some servers require that you use a .shtml extension for the web page where the "virtual include" tag is inserted.

All the text that is used for this feature is kept in the lang.txt file (in the "MISC CART PAGES" section), which makes it easy to customize the cart summary. For example:

14 (Cart summary feature) --><table border=1><tr><td bgcolor=#cccccc align=center>Order Summary</td></tr>
15 (Cart summary feature) --><tr><td><b><font color="#000000">Items in cart:</font></b>
16 (Cart summary feature) --></td></tr><tr><td><b><font color="#000000">Subtotal:</font></b>
17 (Cart summary feature) --></td></tr><tr><td align=center><a href="http://www.yoursite.com/cgi-bin/my_cart.pl">Go to cart</a></td></tr></table>

The above settings produce a cart summary that looks like this:
Summary 1

Notice that you can control any of the text that is used, you can use any fonts or font colors and sizes that you want, and you can choose to wrap the cart summary in a table and control the table elements.

By playing with the table tags, you can get very different results. For example, making the following changes in the lang.txt file:

14 (Cart summary feature) --><table border=1><tr><td bgcolor=#D8000E align=center><font color="white">Order Summary:</font></td></tr>
15 (Cart summary feature) --><tr><td><b><font color="#000000">Items in cart:</font></b>
16 (Cart summary feature) --></td></tr><tr><td><b><font color="#000000">Subtotal:</font></b>
17 (Cart summary feature) --></td></tr></table>

can produce a different looking cart summary:
Summary 2

Here is another example:

14 (Cart summary feature) -->
15 (Cart summary feature) --><b><font face="verdana">Items in Cart:</b>
16 (Cart summary feature) --><br><b>Current subtotal:</font></b>
17 (Cart summary feature) -->

Which produces:

Items in Cart: 0
Current subtotal:
$ 0.00



Top of page.  Top of section.

Multi-item Forms

Send multiple items to the cart with just one click! Multi-item forms are a special type of product form that the Web Shop Solution Cart can read, which allow the shopper to add multiple products to the cart with only one click of a submit button.
  • Multi-item forms can be set up with checkboxes so that only the products that the shopper checks will be added to the cart.
  • Multi-item forms can be set up with quantity text boxes so that only the products that the shopper sets a quantity to will be added to the cart.
  • Multi-item forms can be set up with checkboxes and quantity text boxes so that only the products that the shopper checks will be added to the cart, while also letting the shopper choose their quanity.
  • Multi-item forms can be set up with only HIDDEN tags so that the shopper doesn't have to check anything or change any quantities. When the shopper clicks the submit button, the products will each be added to the cart automatically. This can be usefull for situations where you require that one product be purchased in addition to another. For example, you may require a set up fee in addition to the product you are selling.
  • Multi-item forms can be included in any other product form so that more than one product can be added to the cart with one click.
Name each multi-item product "multi-item1", "multi-item2", "multi-item8", etc. Each multi-item tag needs to be accompanied by a corresponding "quantity" tag. So "multi-item8" would need to be accompanied by a "quantity8" tag. The value portion of each multi-item tag includes five or more fields separated by the "|" delimiter. The KEY to the multi-item form fields is as follows:

name|price|sh|img|product_details|custom1|custom2|custom3|etc.

  1. Here is an example of a multi-item form tag set up to use a checkbox:

    <INPUT TYPE=CHECKBOX NAME="multi-item2" VALUE="Enya - Watermark|13.95|1|watermark.jpg|http://www.bluegalaxy.info/webshopsolution/demo.html|<b>Original Release Date:</b> 1988|<b>Label:</b> Warner Brothers">Enya - Watermark $13.95
    <INPUT TYPE=HIDDEN NAME="quantity2" VALUE="1">

    Enya - Watermark $13.95

    Notice that two tags were used. The "multi-item2" tag is a CHECKBOX, but there is a "quantity2" tag that is HIDDEN. The numbers in these tags need to match in order for the form to work: "quantity2" goes with "multi-item2". "quantity6" would not work with "multi-item2".

  2. Here is that same multi-item form set up using a quantity text box:

    <INPUT TYPE=HIDDEN NAME="multi-item2" VALUE="Enya - Watermark|13.95|1|watermark.jpg|http://www.bluegalaxy.info/webshopsolution/demo.html|<b>Original Release Date:</b> 1988|<b>Label:</b> Warner Brothers">
    <INPUT TYPE=TEXT NAME="quantity2" VALUE="" SIZE=2 MAXLENGTH=4>

      Enya - Watermark $13.95

    Notice in this case the "multi-item2" tag is HIDDEN, and the "quantity2" tag accepts the quantity.

  3. Here is that same multi-item form set up using a checkbox and quantity text box:

    <INPUT TYPE=CHECKBOX NAME="multi-item2" VALUE="Enya - Watermark|13.95|1|watermark.jpg|http://www.bluegalaxy.info/webshopsolution/demo.html|<b>Original Release Date:</b> 1988|<b>Label:</b> Warner Brothers"> Enya - Watermark $13.95  <INPUT TYPE=TEXT NAME="quantity2" VALUE="1" SIZE=2 MAXLENGTH=4>

    Enya - Watermark $13.95   

    Notice in this case the "multi-item2" tag is a CHECKBOX, and the "quantity2" tag accepts the quantity.

  4. It is possible to use any of the above multi-item tag examples in any other product form in order to send more than one product to the cart with a single click. This is an excellent suggestive selling technique. For example:

    <INPUT TYPE=CHECKBOX NAME="multi-item2" VALUE="Enya - Watermark|13.95|1|watermark.jpg|http://www.bluegalaxy.info/webshopsolution/demo.html|<b>Original Release Date:</b> 1988|<b>Label:</b> Warner Brothers">
    <INPUT TYPE=HIDDEN NAME="quantity2" VALUE="" SIZE=2 MAXLENGTH=4>

    See Example #4 here.
There are more multi-item form examples here:
http://www.bluegalaxy.info/webshopsolution/multi-items.html

Top of page.  Top of section.


15 DISCLAIMER AND LEGAL STUFF:

Top of page.  Top of section.


Home | Features | Demo | Readme | Pricing and Ordering | Contact Us

Copyright © The Web Shop Solution 2005