The ReadMe may be big, not because the Dansie Shopping Cart is difficult to set up, but because it has so many customizable options! Most likely you will only need to define 5 variables in order to initially get your cart working! Enjoy.
If you are using the ssl.pl script to collect credit card info, are you using a site security certificate?
If you are using the ssl.pl script to collect credit card info, and you have credit card info being emailed to you (SSV#11), are you using PGP? (SSV#10)
If you are using the ssl.pl script to collect credit card info, and you have the cart recording that credit card info to data files on your website (SSV#8), is that credit card info being written to a directory that is NOT viewable with a web browser?
You can have the credit card info recorded to directories accessible from the web if it's protected by .htaccess and .htpasswd files and you use your website's site security certificate to download that info via "https".
cgi-bin browsing. Does your host have your site configured so that your cgi-bin directory cannot be browsed?
Go here:
http://www.YourName.com/cgi-bin/
If you see "Forbidden" or a similar message then that is good. If you see a listing of all the files in your cgi-bin directory and can view text files by clicking on them, that's NOT good. Ask your host to fix that so that your cgi-bin directory is NOT browsable. You should also get an Internal Server Error if you try to view a .dat file in your cgi-bin. If your server is not configured to protect you against cgi-bin browsing, or perhaps you are running the cart.pl script in a directory that is named something other than "cgi-bin", use the .htaccess file that comes in the ReadMe zip package. Be sure to upload this file in ASCII format and not binary format.
Are all images being loaded in the cart's pages via "https"? Even if you have HV#1 and SSV#1 set with an "https" URL, if you have any images in your cart's pages with a "http" URL, web browsers will report that some data is not secure. This can make some shoppers concerned. To help browsers to stop complaining from some insecure content in the pages, check your lang.dat file and vars.dat file for any "http" URLs and replace them with "https". (A website SSL certificate is required to use https, of course.) Check the thumbnail "img" tags in your HTML forms and make sure you don't have "http" URLs there. See HV#3. It's best to only use image names in your "img" tags and put all the images in your thumbnail directory. Then you can make sure all thumbnail image URLs are "https" by setting HV#3 with an "https" URL.
An email receipt from the shopping cart is NOT proof that you have received payment. Always check with your merchant account or credit card processor to confirm that a shoppers card has been approved for the correct amount prior to shipping any products. Some processors will email you a confirmation, others will also provide a way for you to login to your account and verify on their website. If a shopper places an order via the "Check or Money Order" payment option, likewise, you will want to receive and clear their check prior to shipping any products.
Are you about to email us your FTP password? Don't. For your security, use our secure form instead.
The Dansie Shopping Cart (cart.pl script) does not handle credit card numbers. The ssl.pl script can collect your customers credit card numbers for you. The Dansie Shopping Cart can be configured with varying levels of security from very high to very low. How high security is set is the responsibility of you, the merchant. If you want the ssl.pl script to collect credit card numbers for you and you have a site security certificate, then the numbers will be encrypted during their journey from your customers computer to your website. If you set SSV#10 so that the ssl.pl script will work with PGP then credit card numbers can be encrypted before they are emailed to you or written to encrypted data files on your host. If you are going to hire the services of a real-time credit card processor then you don't need to worry about using a site security certificate, the ssl.pl script or PGP.
About the "temp" directory
Most likely you will never need to look in this directory or even concern yourself with what is in it. It's a scratch pad (short term memory) for the cart program to write to in order to keep track of items shoppers are preparing to purchase. Some spammers have been known to try to post URLs to shopping carts, but their attempts are futile as this information is not seen by human eyes. If you see it in your temp directory, you can just disregard it. See PV#23 for information on setting the expiration date of this data. See also PV#88 and PV#89 for how to block abusive bots.
Dansie Website Design will not be held responsible for any type of damage or loss of time that may occur as a result of using this script. This includes but is not limited to the corruption or loss of data on your host. (Not that we intentionally put anything in it that will cause any problems on your host, we just have to say this to cover ourselves.) Customer assumes full responsibility for any damages or loss of time that may occur.
cart.pl (The cart script)
ssl.pl (An extra script for SSL)
ssl.txt (Variables file for ssl.pl)
ReadMe.html (Instructions)
template.html (HTML form examples)
vars.dat (Variables)
lang.dat (Language)
shopperid.dat (An empty file. Each shopper will be assigned a number.
This file was formerly called "invoice.dat")
cart.gif ("View Cart" image)
stuff.dat (An example database file. The use of which is optional.)
.htaccess (Can be used to protect your cgi-bin from directory browsing.
See Security Checklist in section 1 for details. )
If you have difficulty opening vars.dat or lang.dat, try renaming them to vars.txt and lang.txt. Open them with WordPad or NotePad. Before (or after) you upload them to your cgi-bin on your host, rename them back to ".dat".
The shopperid.dat file is like the cart's counter. It increments when a new person uses the cart, and not when an order is placed. Your website visitors may play with your cart without placing an order. So if you only see orders with shopper ID numbers 15, 25, 33, 38, etc, that is normal. You can download the shopperid.dat file from your cgi-bin, open it in Notepad and change it to begin with any number you like.
lang.dat is a data file that contains the language that your cart will speak. It's just a list of phrases that the cart uses. Feel free to modify lang.dat to suit your needs better. Some people have even put HTML tags in it to make radical changes to the appearance of their cart. If you are seeing a lot of HTML tags appearing in the email receipts, then set Personal Variable #57 to "text/html" (without the quotes). Would you like some custom text or HTML to appear at the top or bottom of your shopping cart pages? See lang.dat #111 and #114.
Would you like to have the cart aligned right or left? Set lang.dat #111 and #114 with some tables tags like so:
111 (footer) --></TD></TR></TABLE></DIV>
114 (header) --><DIV ALIGN=RIGHT><TABLE WIDTH=80%><TR><TD>
You may put JavaScript in your lang.dat variables, but make sure:
You precede all single quotes with a back slash like so: <SELECT NAME=example OnChange=\'SomeFunction()\';>
Don't use any HTML comment tags <!-- -->.
Remove any blank lines from the script.
All statements must end with a semi-colon ";". "return true;" instead of "return true".
All of the submit buttons that you see in the dynamically generated pages of the cart can be converted to image buttons instead. This is for you advanced web designers who want to customize almost every detail of your site. First you would create your images. Then you would put the URL to the images in one or more of these lang.dat variables: 19, 35, 38, 41, 88, 146, 148. Also, Database Variable #15 can be substituted with an image too. The current text in the lang variables indicates what that variable is for.
There are two buttons in the cart that cannot be changed to image buttons. They are the "Same As Above" shipping/billing address copy button in lang.dat #105 and the "PRINT THIS PAGE FOR YOUR RECEIPT" button that appears at the bottom of receipt pages for Netscape browsers in lang.dat #13. These are not submit buttons but rather JavaScript buttons and need to remain that way. An image wont work for those two.
Set the first 5 HOST VARIABLES at the top of the vars.dat file. Only the HOST VARIABLES are required to get the script running. You can set the other variables later after you get cart.pl running. Refer to the HOST VARIABLES section below in this ReadMe for detailed instructions on the HOST VARIABLES. Do not attempt to run the cart.pl script on a site other than which it was licensed for.
STEP 2:
Upload all four of these files into the SAME directory, most likely your cgi-bin. Perhaps your cgi-bin will be called "cgi-local" or "cgi" or something similar. If your host says that scripts must have the ".cgi" extension, then rename "cart.pl" to "cart.cgi". The script can work either way.
File name:
Upload format:
Chmod (Unix only):
1) cart.pl
ASCII
755 (executable)
2) vars.dat
ASCII
Chmod not necessary
3) lang.dat
ASCII
Chmod not necessary
4) shopperid.dat
ASCII
777 (writable)
Chmod your cart.pl script 755. Chmod the shopperid.dat file 777. "chmod" is only necessary on a Unix host. If your site is hosted on a Windows NT server don't worry about "chmod".
If the script is successfully installed, you will see a test item to put into the shopping cart. Put the test item into the shopping cart. If you see a display of that item in the shopping cart, then all is working fine. Now you can set all your other variables in the vars.dat file.
If your Dansie Shopping Cart is not working, or does strange things, see "Trouble Shooting" below.
STEP 5:
Refer to the Template.html for creating some of your own product forms, or the database section in this ReadMe for info on creating product databases. The use of product databases are optional.
Trouble Shooting:
If your shopping cart continually tells you that your cart is empty, manually create a directory called "temp" with your FTP program in your cgi-bin directory (same directory where your vars.dat and cart.pl script is in). Chmod "temp" 777 if your host is Unix.
If the shopper ID number never increments past "1", make sure "shopperid.dat" is in your cgi-bin and chmod "shopperid.dat" 777 (writable).
If you are hosted on a Windows NT host and the shopping cart keeps saying that it is empty, it is because the permissions on the "temp" directory is not globally writable. Contact your host and ask them to set permissions on the "temp" directory and the "shopperid.dat" file so that the cart.pl script will have permission to write and re-write to them. Go here for a diagnostic:
http://www.YourName.com/cgi-bin/cart.pl?write_test
Try changing the very first line in the cart.pl script from:
#!/usr/bin/perl
To:
#!/usr/local/bin/perl
Email us at: cart@dansie.net.
Include the exact URL to your cart.pl script and a copy of your vars.dat file and we will quickly help you figure out what's wrong.
You must be an expert at HTML and FTP to install and enjoy the use of the Dansie Shopping Cart. You don't need to know anything about CGI or Perl. Always upload your perl scripts to your host in ASCII format. Not Binary. After uploading your script, chmod it 755 if your host is Unix. Make sure the directory that your cart.pl script is in is executable (755). Never touch the innards of the script. Only change the single variable at the top of the script if you need to. You may need to rename your script "cart.cgi" instead of "cart.pl" depending upon your host.
How to edit vars.dat and lang.dat files:
Always make a backup copy of vars.dat or lang.dat before you make changes to them. That way, if you bugger them up really bad, you can just revert to your backup copies.
Follow the instructions in the ReadMe for how to set the variables. Don't make any changes to your vars.dat or lang.dat file without reading what the ReadMe has to say about that variable first. This will save you a lot of trouble.
Be careful when making changes so that you do not over-write or erase variables or the arrow delimiters that go with the variables.
Use a plain text editor to open the file and always save as plain text. Microsoft's Notepad or Mac's SimpleText work good. Do not use an HTML editing program.
Upload/download the file to your cgi-bin in ASCII format only (as opposed to binary) You will find this setting in your FTP program.
System Paths and URLs:
This ReadMe will speak of "URLs" and "system paths". URL stand for Uniform Resource Locator. It is a website address that starts with "http" and is accessed via a web browser. A system path is a local path to a file on your hosts machine. Perl accesses files on your host's machine with system paths. System paths on Unix hosts start with a slash "/". System paths on Windows NT hosts start with a drive letter and a colon like so: "c:/home/YourName/cgi-bin/vars.dat"
System path examples:
/usr/local/etc/httpd/cgi-bin
c:/home/YourName/cgi-bin
Try to keep this in mind and not get URLs and system paths confused.
How do you know if the script is working?
Just point your web browser to it with a "test" query string and it will give you diagnostic tools if you installed it correctly. Example, type this at the top of your web browser:
http://www.YourName.com/cgi-bin/cart.pl?test
Try changing the very first line in the cart.pl script from:
#!/usr/bin/perl
To:
#!/usr/local/bin/perl
Email us at: cart@dansie.net. Include the exact URL to your cart.pl script and a copy of your vars.dat file and we will quickly help you figure out what's wrong.
If you use a mix of URLs where some of your URLs lack the "www." your browser will treat them as two different websites for cookie purposes and you can get behavior where you thought you removed an item from your basket, but then it reappears. It's a cookie website URL identification problem.
Do not attempt to run the cart.pl script on a site other than which it was licensed for.
1. Set HV#2 to a URL that does NOT load frames.
2. Set HV#12 to a URL that DOES load frames.
3. Set DBV#23 to a URL that does NOT load frames.
4. Leave HV#11 blank.
5. Make sure all your URLs in your "return" tags are a to a page that does NOT load frames.
<INPUT TYPE=HIDDEN NAME=return VALUE="http://www.YourName.com/rightframe.html">
6. If you want an <A HREF> link or a FORM's purchase button to load the cart in a different frame, then set the TARGET attribute to the name of the frame you want the cart to load in. Example:
<FORM METHOD=POST ACTION="http://www.YourName.com/cgi-bin/cart.pl" TARGET="right_frame">
7. Do not use TARGET attributes in a frame in which you want the cart to load in the same frame. Example:
<FORM METHOD=POST ACTION="http://www.YourName.com/cgi-bin/cart.pl">
The names of your frames are in the parent page that loads them. If you are not sure what the name of your frames are, ask your webmaster.
If you wish to run the cart indefinitely without sendmail and just append your orders to a data file instead, then set this variable to "off" like so:
6 Sendmail, Windmail or Blat path -->off
Then the cart will run without giving you the red diagnostic messages at the bottom of the receipt pages.
DIAGNOSING YOUR SERVER'S SENDMAIL PROGRAM:
If you have ran some test orders with the cart and didn't receive any email receipts, you may need to isolate your server's sendmail program and confirm that it's working. We have a variety of test scripts below that you can use for testing Unix sendmail programs as well as Blat and Windmail on Windows servers.
If you don't receive an email from your sendmail program using the test script, then email the test script to your host and ask them for assistance.
EMAIL LOG
The cart has an email log (cart.pl version 3.43+) that can record the commands it used to access your server's sendmail program, the date/time and the email headers it sent as well. It can also record email addresses submitted by your shoppers that were refused due to improper email address format. This can be helpful when your less than savvy internet shoppers complain they can't place an order because their email address is being rejected. You can view the log to see what they actually entered. To activate the email log, create a file called "email_log.txt" in the same directory as your vars.dat file. Make sure you set write permissions on this file (chmod 666). After you run a test order, download email_log.txt via FTP and you can see the command the cart used to send information to your server's sendmail program.
SPECIAL NOTE ABOUT ssl.pl
If you are using the ssl.pl script and you are not receiving your customers credit card numbers via email from it, then see the "SENDMAIL VARIABLES" section near the top of the ssl.pl script. Be sure to use PGP to encrypt credit card data via email.
Unix Hosts
If your host is Unix, you will most likely be able to leave this variable blank. By leaving it blank the Dansie Shopping Cart will try to automatically detect the location of your hosts sendmail program. If the Dansie Shopping Cart can't find the location of your hosts sendmail program, then it will give you a red text diagnostic message saying so when you point your browser at:
http://www.YourName.com/cgi-bin/cart.pl?test
Ask your host for the location of the sendmail program and set it in this variable. Example:
6 Sendmail, Windmail or Blat path -->/usr/sbin/sendmail
Other common sendmail paths are:
/usr/bin/sendmail
/bin/sendmail
/usr/lib/sendmail
If you see no red text diagnostic message, yet you don't receive email receipts from the cart.pl script, ask your host what the correct system path is to the sendmail program and set that in HV#6.
-f Switch
If the customer receives an email receipt but the merchant does not, it could be that your host has the sendmail program configured to require the -f switch.
By looking in the full headers of the email that the customer receives, you may find this:
X-Authentication-Warning: server099.server.com: user set sender to sales@yourname.com using -f
Notice where it mentions the -f switch. Some hosts require that you use the -f switch and this is a clue. If so, set HV#6 like so:
6 Sendmail, Windmail or Blat path -->/usr/sbin/sendmail -f webmaster@YourName.com
You would set the system path, followed by a space character, -f, another space character, then an authorized email address that contains your domain name.
An unusual possibility is that your host's sendmail program wont work if the -f switch is used. If you have confirmed this fact after running tests with the email_test.pl script, you can completely turn the use of the -f switch off in the cart.pl script by setting Host Variable #6 like so:
6 Sendmail, Windmail or Blat path -->no_f_switch|/usr/sbin/sendmail
This works with cart.pl version 3.64 and ssl.pl version 3.20.
-t Switch
If your host requires the use of the "-t" switch then set Host Variable #6 with the correct sendmail path, followed by a space character and then "-t". For example:
6 Sendmail, Windmail or Blat path -->/usr/sbin/sendmail -t
If your website is on a Unix server and you aren't receiving any email receipts from the cart then use this test script to isolate your host's sendmail program from the cart to first confirm that your host's sendmail program is working.
Windows Servers/Hosts
Blat
The Dansie Shopping Cart can work with a program called Blat to send email. Ask your host what the system path to Blat is. Ask them
to install Blat too if they haven't already done so.
Get Blat here: http://gepasi.dbs.aber.ac.uk/softw/Blat.html
Or: https://www.dansie.net/blat15i.zip
Example:
6 Sendmail, Windmail or Blat path -->C:/winnt/system32/blat.exe
Or backslashes may be necessary:
6 Sendmail, Windmail or Blat path -->C:\winnt\system32\blat.exe
Have your host run Blat like so to initialize it:
If your host requires that you pass the SMTP address to blat.exe then set this variable like so:
6 Sendmail, Windmail or Blat path -->C:/winnt/system32/blat.exe|mail.hostname.com
The system path to blat.exe, then a "|" pipe character, then the SMTP address.
If you are using Blat and you aren't receiving any email receipts from the cart then use this test script and instructions to isolate Blat from the cart to first confirm that Blat is working.
Windmail
The Dansie Shopping Cart can also work with Windmail. If using Windmail, ask your host what the system path is and set this variable like so:
6 Sendmail, Windmail or Blat path -->C:/winnt/system32/windmail.exe
Or backslashes may be necessary:
6 Sendmail, Windmail or Blat path -->C:\winnt\system32\windmail.exe
Or maybe just:
6 Sendmail, Windmail or Blat path -->windmail.exe
Get Windmail here: http://www.geocel.com/windmail/
If your host doesn't have a system windmail program for everyone to use, upload your own:
Make sure your host will allow you to run executables in your cgi-bin and get their SMTP address.
Set your hosts SMTP address in the windmail.ini file.
Upload the two files "windmail.exe" and "windmail.ini" into your cgi-bin.
Set Host Variable #6 as "windmail.exe"
If you are using Windmail and you aren't receiving any email receipts from the cart then use this test script and instructions to isolate Windmail from the cart to first confirm that Windmail is working.
If your cart is loading frames within frames when you click on the "Continue Shopping" button in the cart, check the URLs in the "return" tags of your HTML forms and make sure they are pointing to a child page and not parent document.
<INPUT TYPE=HIDDEN NAME=return VALUE="http://www.YourName.net/ChildPage.html">
14 Login SSL URL -->
This variable may be used if you have the Mall Version. If you have a site security certificate and you wish to allow your hosted merchants to login via "https", then set this variable with an "https" URL to the cart.pl script. They would then be able to download credit card information in a secure manner. You only need to set this variable in the default vars.dat file in your cgi-bin. You don't need to set it in each and every one of your merchants vars.dat files.
15 Mall merchant overdue redirect URL -->http://www.YourName.com/PaymentOverdue.html
This variable may be used if you have the Mall Version. If one of your hosted merchants is overdue payment, you can disable their cart by simply renaming their directory or vars.dat file. Removing their login name and password from the merchant_passwords.dat file is also advised. If this variable is set with a URL and a shopper tries to use your clients cart, their browser will be redirected to the URL. You can make a custom page giving your client instructions how they can make payment and reactivate their shopping cart. You only need to set this variable in the default vars.dat file in your cgi-bin. You don't need to set it in each and every one of your merchants vars.dat files.
This variable also sets the maximum number of items you will be having in your "multi-items" forms. See Section 2 of Template.html for details about "multi-items" forms. For example, the Banana Split, Pineapple and Watermelon on this page https://www.dansie.net/demo.html has three items in this "multi-items" form. If you had a "multi-items" form that has 30 items in it, then set this no lower than 30. You only need to set this as high as the number of multi-items you have in any one form. Not as many items you have advertised on your entire site. So if you have 10 multi-item forms on your website and each form has 10 items in it, you would only need to set this variable as high as 10 and not 100.
It's recommended to set the first email address in PV#2 with an email of your website domain and not a gmail or other type of free email service. Gmail has been known to delete or not deliver emails when they see an email coming in from "user@gmail.com", that did not actually originate from their email servers.
3 Data file extension-->dat
This is nothing technical. It just tells your cart script what file extension to name the data files of your customer's carts that appear in your "temp" directory. Default is dat. You could change it to txt or others, but you can just leave it alone.
8 Street address -->1234 Main Street
This is your street address.
9 City, state, zip -->New York, NY 22222
This is your city, state and zip.
10 Toll free phone number for cc transactions -->1-800-555-1212
This is where you put your telephone number for Credit Card Transactions Via Telephone. If you don't have a phone number and are not going to provide this payment option for your customers, then just leave this variable empty. Example:
10 Toll free phone number for cc transactions -->
11 Website address -->www.YourName.net
This is your website address. Why again if we covered it in Host Variable #2? This variable wont be a link, just printed on the screen. You can have these two variables the same if you want. Or you may have this one say "yourname.com" instead of "http://www.yourname.com". Its up to you.
12 Allow Sales Tax -->1
The Dansie Shopping Cart can calculate sales tax (or VAT) 5 different ways:
0 = No sales tax. The cart will not calculate any sales tax.
1 = Allow sales tax on subtotal.
2 = Force sales tax on subtotal.
3 = Allow sales tax on subtotal and shipping charges.
4 = Force sales tax on subtotal and shipping charges.
Setting PV#12 to 1 or 3 would tell the cart to allow sales tax. The shopper will be able to select which state/province he lives in, if any.
If you set PV#12 to 2 or 4 to "force sales tax" then the cart will always charge sales tax. Only one location can be listed and the shopper wouldn't have the ability to deselect it.
If you are selling a few items that are nontaxable, then use this tag in the corresponding item's HTML form.
<INPUT TYPE=HIDDEN NAME="custom2" VALUE="#nontaxable#">
Of course, make sure the name "custom2" is not in conflict with any other custom name. See Template.html for details on "custom".
If you set this variable to either 2 or 4 then it's recommended that you keep the Sales Tax State Verification feature in PV#76 turned off.
If you have PV#12 set to something other than 0 (off), then don't leave this variable blank. Put something in here such as your state or province of sales taxation or VAT.
14 State sales tax rate -->7.75
This is the sales tax rate in your state. If you need to collect tax in more than one state define this variable like so:
14 State sales tax rate -->7.75,6.00,4.00
If you are collecting sales tax in multiple states, make sure the numbers here correspond in order with the states defined in #13 above.
Set this variable with a hexadecimal value such as #FFFFFF (white) or #000000 (black).
If you do set HV#5 with a URL to wallpaper, be sure that the hexadecimal value in PV#15 is of approximate color to your wallpaper
Make sure that this color CONTRASTS with the font colors you have set in PV#16 and PV#19.
Want to control the LINK and VLINK colors in the BODY tag of the carts dynamic pages? Set Personal Variable #15 like so:
-->#FFFFFF" LINK=#0000FF VLINK=#000099 "
Or with marginheight and marginwidth:
-->#FFFFFF" marginheight=0 marginwidth=0 "
Copy and paste this into your vars.dat file. Looks funny, but it will work.
It doesn't immediately empty the shoppers baskets for the following payment options because the sales are not yet final. The customer may decide to go back and add a couple more items to their cart before calling in their credit card number or mailing you their check.
If you are using coupons and a shopper's grand total comes to $0.00, if they select a credit card payment option, they will be issued a receipt page rather than submitting $0.00 to a processor for payment.
After Secure Online Credit Card Transactions, Online Check Drafts and COD orders, the customers data file is immediately erased because the order is considered final. However, with Credit Card Transaction Via Telephone and Check Or Money Order, the contents of their shopping cart are not erased as the order is not final and the customer could still choose to go back and add more items to their cart before they send you their check or call you.
See Section 10 for detailed information on setting up shipping charges.
28 Show shipping weight with each item -->0
If you set #27 above to 0 or 2, then ignore this variable. If you set this to 1 then you will see shipping with each item on the invoices. If you set this to 0 then you will only see shipping at the bottom of each invoice. Try it either way and see which you like best. If you set this to 1, make sure you define #32 below also.
29 Shipping methods -->Standard UPS,2 day UPS,Next day UPS,Europe,Australia
If you set #27 above to 0 or 2, then ignore this variable. This is an array containing all of the shipping methods you want to offer if you are doing shipping by the weight of your items. Separate them with commas like you see here. You may define anywhere from 1 to 100 shipping locations (or more). Nice huh?
30 Initial shipping cost of first pound -->5.95,8.95,18.95,15.00,20.00
If you set #27 above to 0 or 2, then ignore this variable. These are the prices of the initial shipping costs of each item (per pound/kilo). They must correspond in order with #29 above. Set
them to whatever you need to. Then, in each product's HTML form, use a tag like this:
<INPUT TYPE=HIDDEN NAME="sh" VALUE="1">
"sh" means shipping and handling. "1" means one pound/kilo.
Do you want the cart to say something like "Call for shipping quote" and not have any numeric value appear in the SELECT pull-down menu? Then set both PV#30 and PV#31 like so:
30 Initial shipping cost of first pound -->0.00
The "0.00" will tell the cart to not show ANY number (price) in that option.
If you use decimals for the shipping weights of some of your products (for example, 4.2 lbs), you can choose if you want the cart to round up the shopper's total shipping weight to the next whole number, or calculate exact shipping including the decimals. See PV#84.
Do you want the cart to say something like "Call for shipping quote" and not have any numeric value appear in the SELECT pull-down menu? Then set both PV#30 and PV#31 like so:
30 Initial shipping cost of first pound -->0.00
The "0.00" will tell the cart to not show ANY number (price) in that option.
33 Is your host currently resolving IP addresses? -->1
1 = yes. 0 = no.
Sometimes hosts don't resolve IP addresses and in the email that you receieve it will say something like 208.222.43.221 as the IP address. You may convert that to something like this: wt-03.aol.com But at first, just leave this at 1. Later, if you notice that all the IP addresses look like "208.222.43.221" then set this variable to 0. Some hosts don't support resolving IP addresses and if you set this to 0, it could cause the server to not respond or respond very slowly. Keep that in mind if you decide to change this to 0.
35 Shipping calculated by amount of purchase: Amounts -->55,3.95,100,5|55,6.95,100,10|55,9.95,100,20
You only need to set this variable if you set #27 above to 2. #35 above contains shipping calculation information for the three corresponding locations defined in #34 above. The three sets of information are separated by "|". The purchase amounts and shipping charges are separated by commas. In the above example, "55" is the lowest purchase amount defined for USA. The next number, "3.95", is the shipping charge (for any purchase amounts under $55). The third number, "100", is the highest purchase amount defined for USA in this example. The fourth number, "5", means that $5.00 will be charged for any purchase amounts that are under $100. Any purchase amounts $100 or over, will be "free shipping" or "shipping included" in this example.
In the above example shipping for USA would be calculated like so:
Order sub-totals Under $55 - $3.95 s&h
Order sub-totals Under $100 (but greater than $54.99) - $5.00
Any order $100 and over - s&h is free.
Always set this variable from smallest order totals to largest (ie, 55 to 100, not 100 to 55). Any sub-total equaling or exceeding the highest defined would be considered free shipping, so define it as high as you need to. Example: 55,3.95,100,5,200,10,500,25,1000,50
If you want to use percentages instead of flat charges, set this variable like so:
100,5%,200,4%,1000,3%,1000000,2%|etc|etc
5% shipping for orders totaling $100 or less.
4% shipping for orders totaling $200 or less.
3% shipping totaling $1000 or less.
2% shipping totaling $1000000 or less.
Free shipping when subtotal is over $1000000.
Do you want the cart to say something like "Call for shipping quote" and not have any numeric value appear in the SELECT pull-down menu? Then set PV#35 like so:
35 Shipping calculated by amount of purchase: Amounts -->0.00
The "0.00" will tell the cart to not show ANY number (price) in that option.
37 Email receipt to customer -->1
The Dansie Shopping Cart always gives your customer a printable receipt in their web browser. However, if you would like the cart to send them a receipt by email too, then set this variable to 1. If not, set it to 0.
38 Background color of various tables -->#ddFFFF
When a customer chooses "Check or Money Order" transaction, they get a printable custom order form. This form has a table where they print their shipping address. You can set the background color of this table here. If you leave it blank, the default is white. This is here in case you want to use a white font (#16) on your pages and still be able to read this table. This also sets the color in the row across the top of the shopping cart display where it says, Item: Description: Quantity: Each: Total:
39 IP addresses or cookies for shopper ID -->1
0 = IP address, browser and operating system info alone.
1 = Cookies first, but if disabled, use IP address, browser and operating system info.
2 = Cookies alone.
Set this to 0 if you want the cart to identify your customer by their IP address, browser and operating system info alone and not use cookies.
If you have cookies disabled in your browser, and your ISP changes your IP address while you are still connected to the internet, then the cart will not be able to re-identify you and you will get a "Shopping Cart Empty" message.
If you have cookies disabled in your browser, and your ISP issues you a shared IP address, and another shopper happens to have the same IP address, browser and operating system info, you may experience a "shared basket".
Set this to 1 if you want the cart to identify your shoppers using cookies. If you set this to 1 and your customer has their cookies turned off in their browser, the Dansie Shopping Cart will automatically use your customer's IP address, browser and operating system info for identification instead.
If you have cookies disabled in your browser, and your ISP issues you a shared IP address, the cart can identify you by your IP address and distinguish you from other shoppers using the same IP address by your browser and operating system info.
If you have cookies disabled in your browser, and your ISP changes your IP address while you are still connected to the internet, then the cart will not be able to re-identify you and you will get a "Shopping Cart Empty" message.
If you have cookies disabled in your browser, and your ISP issues you a shared IP address, and another shopper happens to have the same IP address, browser and operating system info, you may experience a "shared basket".
Set this to 2 if you want the cart to only use cookies to identify your shoppers.
You could lose some shoppers this way who have cookies disabled, but have unique IP/browser/OS info. However, you will never have two shoppers experiencing a shared basket.
The recommended and most reliable way for the cart to identify your shoppers is if you set this variable to 1 AND your shoppers have cookies enabled in their browser.
40 Size of table borders when viewing shopping cart -->3
This will set the thickness of the borders in the HTML table on the page that your customers see after they put an item in the cart, or view the cart. If you set this to 0, there will be horizontal rules between items for clarity.
41 The width of the table when viewing the shopping cart -->90%
Just like it says. If you are not sure what this does, set it to 50% and then put an item in your cart. You will see that the page seems too narrow. You may set this to pixels or percentages. Examples:
41 The width of the table when viewing the shopping cart -->85%
41 The width of the table when viewing the shopping cart -->600
41 The width of the table when viewing the shopping cart -->800
Disable Payment Option. If you set it to 0, the cart will not display this payment option.
ssl.pl. If you set it to the full URL of your ssl.pl script, the cart will collect your customers check information and email it to you. The information can be collected securely too if the URL begins with "https". Various software is on the market that you can use to print the checks with.
PayByCheck.com/iCheck. If you set this to "icheck", the cart will take your customers shipping address and then send them to http://www.i-check.net
(i-check.net and http://www.paybycheck.com are the same company.)
to submit their check information. If you have an account with i-check and wish to set this variable to "icheck", login to your account with i-check and set your return URL like so:
http://www.YourName.com/cgi-bin/cart.pl?icheck1212abc
This is the full URL to your cart, followed by a "?" then "icheck" then the unique random id that you define in Secure Server Variable #6.
A "failure" URL would be:
http://www.YourName.com/cgi-bin/cart.pl?failure
If you are using the Dansie Shopping Cart Mall Version, then make the link like so:
http://www.YourName.com/cgi-bin/cart.pl?icheck1212abc&merchant=MerchantName
A "failure" URL with the mall version would be:
http://www.YourName.com/cgi-bin/cart.pl?failure&merchant=MerchantName
Last put your i-check ID in Personal Variable #50.
Signio/Verisign Telecheck. If you set this to "telecheck", the cart will take your customers shipping address and then send them to Signio (Verisign's Telecheck service) to submit their check information. If you have an account with Signio/Verisign and wish to set this variable to "telecheck", login to your Signio/Verisign account and set your return URL like so:
http://www.YourName.com/cgi-bin/cart.pl?check1212abc
This is the full URL to your cart, followed by a "?" then "check" then the unique random id that you define in Secure Server Variable #6.
Last make sure your Signio/Verisign login ID is in Personal Variable #50.
CHEXpedite If you set this with your full URL to CHEXpedite, then the cart will take your customers shipping/billing address and then send them to CHEXpedite for electronic check processing. Set your CHEXpedite ID in Personal Variable #50.
Currency Exchange Rate Feature:
If you are having the Dansie Shopping Cart use a currency other than US Dollars, but need to have it translated to US Dollars before sending the customer to i-Check, then set this variable like so: 00000000|.80
The first field to the left of the "|" character will be your ID with i-Check like normal. The field on the right of the "|" character will be the exchange rate. The total will be divided by the number you place here before the customer is sent to i-Check.
51 Wallpaper URL or background color on check draft table -->#808080
If you have Personal Variable #42 set to the URL to your ssl.pl script and are going to have the shopping cart collect and send you your customers bank and check info, then set this variable to the full URL path to some wallpaper that you would like to have appear in the background of the check table. Or set it to a solid background color like you see here. If you are accessing your ssl.pl script via "https" then it is recommended to access this image via "https" too.
If you have the cart set to use Webstore or Coupon discounts but you want certain items to always be full price and never be discounted, then use a tag like so:
<INPUT TYPE=HIDDEN NAME="custom1" VALUE="#nodiscount#">
In order to reduce confusion for your customers it is highly recommended to include another custom description tag like this:
<INPUT TYPE=HIDDEN NAME="custom2" VALUE="No discounts on this item.">
If you have translated the lang.dat file to Japanese, set this to:
57 Email Content-Type -->text/plain; charset=x-sjis
This variable may also be used to pass custom email headers with cart.pl version 3.55+ standard version. To pass custom headers, set this variable like so:
57 Email Content-Type -->text/plain|X-Header: anything here|X-Header2: anything here too
Begin the variable setting with either "text/plain" or "text/html", then separate each additional header with a pipe "|" character.
If a customer enters in a coupon or gift certificate number that matches a string in one of the left fields, the customer will receive the discount in the corresponding right field. Use the "|" delimiter for this file. The gift certificate numbers can be anywhere from 1 to 10 characters long made up of numbers and/or letters. You may designate the values as either percentages or flat amounts. Example: If a customer enters in "abc" they will receive a 10% discount on their order. If a customer enters in "456" they will receive a $50 discount on their order. The discount will apply on the subtotal of their order but not on their sales tax and shipping. So they will still pay for any applicable sales tax and shipping. You may have as many coupon/gift certificate numbers and values as you wish in your "discount.dat" file. The numbers don't delete themselves from the discount.dat file after use. You will need to remove them when you want them removed.
The Dansie Shopping Cart has three discount features: Webstore Discount, Coupon Discount, and Volume Discount Pricing described in section 1C of the Template.html file.
If you have the cart set to use Webstore or Coupon discounts but you want certain items to always be full price and never be discounted, then use a tag like so:
<INPUT TYPE=HIDDEN NAME="custom1" VALUE="#nodiscount#">
In order to reduce confusion for your customers it is highly recommended to include another custom description tag like this:
<INPUT TYPE=HIDDEN NAME="custom2" VALUE="No discounts on this item.">
60 URL to Online Check Draft image instructions -->
If you don't have PV#42 set to the full URL to your ssl.pl script, then you can ignore this variable. If you do, then set this to the full URL of an image that may be visually helpful in filling out the Online Check Draft form. Example:
60 URL to Online Check Draft image instructions -->https://www.dansie.net/images/check.gif
If you are accessing your ssl.pl script in "https" mode then it's best to access this image via "https" as well.
62 Auxiliary payment option -->
A sixth payment option. This is related to #24, #25, #26, #42 and #45. If you don't need a sixth payment option, then leave this variable blank. If you do, then type in some text here like so:
62 Auxiliary payment option -->Free on the house
lang.dat variable #83 will allow you to put some customized text on the receipt page related to this payment option.
Products ordered (comma delimited) the prices and custom descriptions of each item (:: delimited). The quantity of each item will also appear in parenthesis.
Date
Sales tax
Shipping Address
City
State
Zip
Country
The payment method chosen by your customer
Billing name and billing company name
Billing address
Billing city
Billing state
Billing zip
Billing country
Billing phone number
Billing email
Customer comments, if any. Original line breaks are replaced with a "" character.
To utilize this feature, create an empty file called "tracking.dat", upload it to the directory you want and make sure it is writable. Then set the system path to the tracking.dat file in this variable like so:
69 Order Tracking -->/path/to/cgi-bin/tracking.dat
Not sure what your system path is? Go here:
http://www.YourName.com/cgi-bin/cart.pl?path
Do NOT set a URL in PV#69. Set the system path.
This ReadMe will speak of "URLs" and "system paths". URL stand for Uniform Resource Locator. It is a website address that starts with "http" and is accessed via a web browser. A system path is a local path to a file on your hosts machine. Perl accesses files on your host's machine with system paths. System paths on Unix hosts start with a slash "/". System paths on Windows NT hosts start with a drive letter and a colon like so: "c:/home/YourName/cgi-bin/tracking.dat"
Try to keep this in mind and not get the two confused.
Storing credit card numbers in flat-file database format:
Near the top of the ssl.pl script, if you set the $ssl_tracking_dir variable with a system path, then the ssl.pl script will record credit card info in a flat-file database format there. Example:
$ssl_tracking_dir = "/secure/host/path/to/cgi-bin/tracking.dat";
Make sure you make this file first and set write permissions on it.
Please note that billing address info is not collected or recorded when using the Check or Money Order or COD payment options.
Set the URL to the real-time processors processing script in this variable followed by a pipe character then your login ID. For example:
71 Auxiliary Real-Time Credit Card Processor Payment Option -->https://secure.hurstlinks.net/~cubecard/checkout.php|YourLoginID
Or:
71 Auxiliary Real-Time Credit Card Processor Payment Option -->https://www.paypal.com/us/cgi-bin/webscr/|Your@Email.com
Or:
71 Auxiliary Real-Time Credit Card Processor Payment Option -->https://www.YourName.com/cgi-bin/ssl.pl
Be sure you have lang.dat #154 in your lang.dat file. Adjust it to say whatever you like. Examples:
154 -->AT&T Payment Option
154 -->CubeCard
154 -->PayPal
The cart can also be customized to work with a new processor. See: https://www.dansie.net/new_processor.html
First make the "test_form.html" file and confirm that the form works. Then make the processor.dat file, rename it to "processor2.dat", upload it to the same directory as your vars.dat file and set PV#71 like so:
71 Auxiliary Real-Time Credit Card Processor Payment Option -->processor2.dat
If you need to set "Success" and "Failure" return URLs in your processors account, set them like so:
Success: http://www.YourName.com/cgi-bin/cart.pl?aux_processorSSV#6
Failure: http://www.YourName.com/cgi-bin/cart.pl?failure
Change SSV#6 above to what you have in SSV#6.
If you need the cart to make a currency conversion before sending the shopper to a special processor, set this variable like so:
71 -->https://www.YourProcessor.com/cgi-bin/process.cgi|Your@Email.com|2.5
Notice there are three fields. Set your exchange rate in the third field. This works with cart.pl version 3.49+.
Also, make sure you have set these variables properly:
Make sure you have the latest lang.dat file with lang variables #159, 160 and 161.
You must have PV#74 and PV#75 filled with lists of states and countries.
The list of taxable locations in PV#13 needs to match (exactly) the corresponding locations you have set in PV#74. For example, if one is set with "ON Ontario" and the other is set with "Ontario" there can be no match.
PV#43 needs to be activated if this variable is set to "1".
79 Referral ID --> Sign up with the Dansie Shopping Cart Referral Program and earn free Dansie Shopping Cart software licenses with referred sales. Set this variable with your referral ID like so:
79 Referral ID -->domain.com
The cart.pl script will then automatically change the text link at the bottom of the pages generated by the cart.pl script to include your referral ID.
Shopper ID number (coupon codes will appear here too separated by a dash "-" if used.)
Customer name and company name
Email address
Phone number
Order total (including shipping and sales tax)
Shipping charges
Shipping method
Products ordered (comma delimited) the prices and custom descriptions of each item (:: delimited). The quantity of each item will also appear in parenthesis.
Date
Sales tax
Shipping Address
City
State
Zip
Country
The payment method chosen by your customer
Billing name
Billing address
Billing city
Billing state
Billing zip
Billing country
Billing phone number
Billing email
Customer comments, if any. Original line breaks are replaced with a "" character.
To utilize this feature, create an empty file called "pending.dat", upload it to the directory you want and make sure it is writable. Then set the system path to the pending.dat file in this variable like so:
80 Pending Order Tracking -->/path/to/cgi-bin/pending.dat
Not sure what your system path is? Go here:
http://www.YourName.com/cgi-bin/cart.pl?path
Do NOT set a URL in PV#80. Set the system path.
This ReadMe will speak of "URLs" and "system paths". URL stand for Uniform Resource Locator. It is a website address that starts with "http" and is accessed via a web browser. A system path is a local path to a file on your hosts machine. Perl accesses files on your host's machine with system paths. System paths on Unix hosts start with a slash "/". System paths on Windows NT hosts start with a drive letter and a colon like so: "c:/home/YourName/cgi-bin/pending.dat"
Try to keep this in mind and not get the two confused.
Set the URL to the real-time processors processing script in this variable followed by a pipe character then your login ID. For example:
81 Second Auxiliary Real-Time Credit Card Processor Payment Option -->https://www.paypal.com/us/cgi-bin/webscr/|Your@Email.com
Or:
81 Second Auxiliary Real-Time Credit Card Processor Payment Option -->https://www.SomeProcessor.com/process.cgi|9876543
Or:
81 Second Auxiliary Real-Time Credit Card Processor Payment Option -->https://www.YourName.com/cgi-bin/ssl.pl
Be sure you have lang.dat #165 in your lang.dat file. Adjust it to say whatever you like. Examples:
165 -->PayPal
165 -->SomeProcessor.com
The cart can also be customized to work with a new processor. See: https://www.dansie.net/new_processor.html
First make the "test_form.html" file and confirm that the form works. Then make the processor.dat file, rename it to "processor3.dat", upload it to the same directory as your vars.dat file and set PV#71 like so:
81 Second Auxiliary Real-Time Credit Card Processor Payment Option -->processor3.dat
If you need to set "Success" and "Failure" return URLs in your processors account, set them like so:
Success: http://www.YourName.com/cgi-bin/cart.pl?aux_processor2SSV#6
Failure: http://www.YourName.com/cgi-bin/cart.pl?failure
Change SSV#6 above to what you have in SSV#6.
If you need the cart to make a currency conversion before sending the shopper to a special processor, set this variable like so:
81 -->https://www.YourProcessor.com/cgi-bin/process.cgi|Your@Email.com|2.5
Notice there are three fields. Set your exchange rate in the third field. This works with cart.pl version 3.49+.
Never round up. Set this to 0 if you want the cart to not round up the weight of the order. For example, if all the items in a shoppers basket weigh 0.5 pounds/kilos/units, then the cart will calcualte 0.5 pounds times the first pound charge set in PV#30.
Round up for first pound only. Set this to 1 if you want the cart to round up the weight of the order to the next whole number if the total weight of the shoppers order is greater than 0 yet less than 1 pound/kilo/unit. For example, if all the items in a shoppers basket weigh 0.5 pounds, it will be rounded up to 1 but 1.5 would not be rounded up to 2.
Always round up. Set this to 2 if you want the cart to round up the weight of the order (if the weight is a non-whole number) to the next whole number no matter the weight of the order. For example, if all the items in a shoppers basket weigh 0.5, its pounds will be rounded up to 1. 1.5 would be rounded up to 2. 4.1 would be rounded up to 5. 7.7 would be rounded up to 8.
A flat fee per item. Example:
<INPUT TYPE=HIDDEN NAME=sh VALUE="3.50">
Set Personal Variable #27 to "1" for this method. Set PV#30 and PV#31 to something like "1,1.5,2".
Shipping for an item will be calculated according to the sh VALUE in the forms of your HTML pages. Example:
<INPUT TYPE=HIDDEN NAME=sh VALUE="1"> (See Template.html)
Or by the value of the shipping field in your flat-file databases. The script will multiply the sh VALUE times the value of #31 above to determine shipping for that item. If your item is heavier, set the sh VALUE to 2,3 or 10. The denomination of the sh VALUE can be pounds, kilograms, or just hypothetical units. This denomination should be defined by #32 above. #32 will be displayed in your script if (#28) is set to 1 and also it is displayed in the email receipts that the script sends to you after orders have been placed.
Note: The first pound/kilo of the first item will not get the value of #31 but rather the value of #30. This insures that you wont charge someone 50 cents for shipping a one pound item but have to pay $5.95 yourself. Also, if your customer orders only one or two items that weigh less than one pound, the cart will charge them for a full pound. It will charge a minimum of one pound.
An example of setting up shipping by the pound/kilo/unit:
Let say that you decide that each unit (#32) is one pound and you set #32 to "lbs". You call some shipping companies and get current prices as to how much they charge for the first pound
and each additional pound. Set #30 to the price for the first pound. If five day ground mail is 5.95 and 2 day air is 8.95 and overnight is 18.95, then set #30 to: (5.95,8.95,18.95); Set #31 the same way except how much you want to charge for each additional pound. eg,(.50,.75,.85);. If an item weighs 1 pound then you will put
<INPUT TYPE=HIDDEN NAME=sh VALUE="1">
in the HTML form in the page where it is sold. If an item weighs 2 pounds then you will
put
<INPUT TYPE=HIDDEN NAME=sh VALUE="2">
in the HTML form in the page where it is sold. The shopping cart will multiply the sh value, times the quantity of that item purchased, times #31 (according to shipping method chosen). Then it will substitute one of the regular price values for the #30 values. Therefore:
shipping = (Initial unit cost) + ( (units-1) x price per additional unit)
OR, another way to look at it is:
shipping = (first pound price) + ( (pounds-1) x price per additional pound)
If you want to charge just a flat shipping fee for each item, in
terms of dollars (lets say $4.00), then put this in your form:
<INPUT TYPE=HIDDEN NAME=sh VALUE="4.00">
(Or put "4.00" in the appropriate field in your database if using them.)
and set both #30 and #31 to something like this: (1,1.5,2). This way your cheapest form of shipping will be $4.00, your next shipping method would be $6.00 (4 x 1.5) and your most expensive shipping method would be $8.00 (4 x 2).
Remember, you can provide as many shipping locations as you wish and to
as many states and countries as as you like. All you have to do is put more locations (or speeds such as "overnight") in #29, and more values in #30 and #31.
This is an easier way to set up your shipping charges, but not as accurate as by the pound/kilo. If you use this method, you will not have to use the "sh" hidden input tags in your HTML forms. Example:
<INPUT TYPE=HIDDEN NAME="sh" VALUE="1">
(Wont be necessary in your forms.)
Example:
$5 shipping for orders totaling $100 or less.
$10 shipping for orders totaling $200 or less.
$50 shipping totaling $1000 or less.
Over $1000, free shipping.
Read PERSONAL VARIABLE #34 and #35 above for details about how to use this shipping method.
If you don't want shipping considered on some particular items, then use a tag like so in your HTML forms:
<INPUT TYPE=HIDDEN NAME="custom1" VALUE="#noshipping#">
This is an easier way to set up your shipping charges, but not as accurate as by the pound/kilo. If you use this method, you will not have to use the "sh" hidden input tags in your HTML forms. Example:
<INPUT TYPE=HIDDEN NAME="sh" VALUE="1">
(Wont be necessary in your forms.)
Example:
5% shipping for orders totaling $100 or less.
4% shipping for orders totaling $200 or less.
3% shipping totaling $1000 or less.
2% shipping totaling $1000000 or less.
Free shipping when subtotal is over $1000000.
You customize the increments and charges of course.
Read PERSONAL VARIABLE #34 and #35 above for details about how to use this shipping method.
This method may be used in combination with Shipping Type One and Shipping Type Two. Say you have a shipping company that has an unusual pattern for each additional pound when shipping to Australia. You could set PV#29 like so:
29 Shipping methods -->Standard UPS,2 day UPS,Next day UPS,Europe,Australia
Then you could set PV#30 and #31 like so:
30 Initial shipping cost of first pound -->5.95,8.95,18.95,15.00,shipping.dat
31 Shipping cost for each additional pound -->.50,.50,.50,2,shipping.dat
Notice the fifth field separated by commas in PV#30 and #31 has "shipping.dat" in there instead of a numeric value. This tells the Dansie Shopping Cart to look for this plain text database file in the same directory that your vars.dat file is in. This "shipping.dat" file could look like so:
0.5|12
1|20
1.5|22
2|25
3|31
4|32
5|38
6|39
7|50
Pounds/Kilos are in the left fields and the shipping charges are in the right fields. Make sure you put them in order from 1 pound all the way as high as you wish to define your shipping charges. Decimals can be used as you see in the example. You can name the "shipping.dat" file anything you like. Also, you can use as many shipping.dat files as you like too. Just name them slightly different like "ship1.dat", "ship2.dat", etc.
You can also skip weight increments like so:
150|47.95
200|78.29
250|98.29
In the above example, the cart would change $47.95 from 150-199 lbs. It would charge $78.29 from an order totalling 200-249 lbs.
No shipping. You can turn off all shipping calculations in the cart and just say, "Shipping Included" somewhere on your website or even in your "lang.dat" file.
Set SSV#9 with your AuthorizeNet transaction key. You must have cart.pl version 3.39+. Example:
9 -->txnkey=abcd1234
Replace the "abcd1234" with your exact AuthorizeNet transaction key.
Set PV#55 to 1 to disable diagnostics so your variables can't be viewed from any web browser.
Upload the SimLib.pm and SimHMAC.pm files provided by AuthorizeNet to the same directory that your cart.pl script is located in.
These files need to be uploaded in ASCII format and not binary. If you need any help locating or downloading these files you will need to contact AuthorizeNet technical support for assistance.
Inside your AuthorizeNet account locate Home, under Accounts, click Settings, under Transaction Response Settings, click Response/Receipt Urls, pick your Default Receipt Url, click Edit.
Default Receipt Link URL
Enter a default URL to link the customer to your website from the Receipt Page. This default URL will be used in the event that a Receipt Link URL is not passed with the transaction.
URL: http://www.YourName.com/cgi-bin/cart.pl?SSV#6
Receipt Method
Specify the method that should be used to render the page that the customer is linked to from the Receipt Page
LINK, GET or POST
Select LINK
Receipt Link Text
Enter the text that will be displayed as a link.
Link Text: http://www.YourName.com/cgi-bin/cart.pl?SSV#6
Mall Version note: If you are using the Dansie Shopping Cart Mall Version, set your Return Link URL like so: http://www.YourName.com/cgi-bin/cart.pl?SSV#6|merchant|MerchantName Change SSV#6 to what you have in SSV#6 and "MerchantName" to what the merchant's name is.
Alternatively it can be:
http://www.YourName.com/cgi-bin/cart.pl?SSV#6&merchant=MerchantName
Using "&" and "=" instead of the two pipe "|" characters.
Set SSV#9 with x_Type to tell AuthorizeNet if you want AUTH_ONLY or AUTH_CAPTURE. Example:
9 -->txnkey=abcd1234,x_Type=AUTH_ONLY
Separate it from the txnkey with a comma. If you don't set x_Type in SSV#9, the default value sent to AuthorizeNet will be AUTH_CAPTURE.
Note that the AuthorizeNet web page receipt will flash briefly and then automatically refresh the shopper's browser over to the cart's receipt page. That is normal. This will ensure that the shopper's browser returns to the cart to trigger the email receipts with the order details and shipping address.
Put this URL in Secure Server Variable #1:
https://secure.internetsecure.com/process.cgi
Set your merchant ID with InternetSecure in Secure Server Variable #2.
Since InternetSecure needs to know what currency and language you are using, set your currency flag and language in Secure Server Variable #9 separated by a comma. Example:
9 InternetSecure currency flag -->{US},english
If you want to run test orders first, set SSV#6 like so:
9 InternetSecure currency flag -->{US}{TEST},english
Remove {TEST} from SSV#6 when you want to go live.
Login to your InternetSecure account and set your Return URL to:
http://www.YourName.com/cgi-bin/cart.pl?SSV#6
This URL needs to be exactly what you have in HV#1 plus a question mark, plus what you have in SSV#6.
The SSV#6 at the end of the above URL is what you define in variable SSV#6 below.
It is also recommended to set your email address in SSV#13.
If you have PV#74 set with a list of states, you may want to set it with abbreviations of states instead as InternetSecure doesn't recognize the full state names, but rather just the two letter abbreviation. Or both like so:
-->AL Alabama,AK Alaska,AZ Arizona,etc
SSV#9 is used as a special flag for the "ret_mode" value with iTransact. Set it to either "redirect" or "post" or leave it blank. Blank or "redirect" are the recommended setting. Blank should help prevent warning messages from browsers upon leaving the iTransact website.
Also, if you accept online checks with iTransact, then put "acceptchecks" in SSV#9 as well. Example:
9 -->post,acceptchecks
If you wish do preauth only, set SSV#9 like so:
9 -->post,acceptchecks,preauth
A test credit card number to use with the testaccount is "5454545454545454". Use any expiration date greater than today.
The SSV#6 in the URL above is what you define in variable SSV#6 below.
Set your "Sorry" Page URL to:
http://www.YourName.com/cgi-bin/cart.pl?failure
Mall Version note: Set the "Thank You" and "Sorry" page URLs like so: http://www.YourName.com/cgi-bin/cart.pl?SSV#6&merchant=MerchantName
http://www.YourName.com/cgi-bin/cart.pl?failure&merchant=MerchantName
Change SSV#6 in the URL above to what you have in SSV#6 and "MerchantName" to what the merchant's name is. If you have the standard version shopping cart and not the Mall Version, ignore this point.
Set your "Order Submission Form URL" to the same URL that you have in Host Variable #1 of your vars.dat file.
Do NOT checkmark "Check here if this url is a CGI script." for both Thank You and Sorry page URLs.
DO checkmark "Check if you wish to automatically display specified URL after the LinkPoint HTML receipt page." for both Thank You and Sorry page URLs.
Disable the shipping address collection fields in your CSI account as the shopping cart collects that info for you.
Cardservice will tell you to set one of these URLs in Secure Server Variable #1:
https://www.linkpointcentral.com/lpc/servlet/lppay
https://secureweb.clearcommerce.com/cgi-bin/hlppay
https://secure.linkpt.net/lpcentral/servlet/lppay
Put your CSI Linkpoint or ClearCommerce Merchant ID in Secure Server Variable #2.
A test credit card number to use with the testaccount is "5419 8400 0000 0003", Visa, any expiration date greater than today.
You can set SSV#9 with CSI's txnmode and txntype variables. Examples:
9 -->txnmode=test,txntype=preauth
9 -->txntype=sale
txntype only works with cart.pl version 3.41+. Consult CSI for other possible values that can be used with these variable names.
Set Secure Server Variable #1 with:
https://payflowlink.paypal.com
Old Signio accounts would use:
https://payflowlink.signio.com/paylinks.dll
Put your Verisign login ID in Secure Server Variable #2.
The "PARTNER" ID is required for all new Verisign accounts as of Feb 15th 2001. Set your partner ID in SSV#9 like so:
-->partner=PartnerName
Login to your VeriSign Manager utility and set your Return Link URL.
Logon to https://manager.verisign.com
click on account info/payflow link info/look in form config section (first
section of edit config screen). Set the Return Link URL like so:
http://www.YourName.com/cgi-bin/cart.pl?SSV#6
The SSV#6 in the URL above is what you define in variable SSV#6 below.
If you are using the Dansie Shopping Cart Mall Version, set your Return Link URL like so:
http://www.YourName.com/cgi-bin/cart.pl?SSV#6|merchant|MerchantName
Change SSV#6 to what you have in SSV#6 and "MerchantName" to what the merchant's name is.
Set the "Return URL Method" in your Signio account to LINK instead of POST.
For testing, set SSV#2 to:
PAYFLOWDEMO
Use test card 5105105105105100
If you wish to use signio's electronic check processing, simply set PV#42 with "telecheck".
Special feature: If you would like transactions to be "authorization only" then set SSV#9 with "A" (without the quotes). If you would like transactions to be "Delayed Capture" then set it with "D". Otherwise, default is "Payment/Sale" ("S"). Example:
-->partner=PartnerName,A
-->partner=PartnerName,D
Put this URL in Secure Server Variable #1:
https://secure.worldpay.com/wcc/purchase
Put your account Installation ID with WorldPay in Secure Server Variable #2.
Put your currency name in SSV#9 like so:
-->currency=USD
or:
-->currency=GBP
or:
-->currency=AUD SSV#9 will not be used for card types in this situation, but just a way to pass the currency type to WorldPay.
You may also put your account into test mode by merely inserting "testMode" into SSV#9 like so:
-->currency=GBP,testMode=100
authMode and accId1 variables can be set in SSV#9 also like so:
-->currency=GBP,testMode=100,authMode=E,accId1=nnnn
or
-->currency=GBP,authMode=E,accId1=nnnn
Setting your Return URL with WorldPay Junior:
Put a META refresh tag in your resultY.html or thanks.html page like you see below and upload to CMS on the WorldPay website:
<META HTTP-EQUIV=REFRESH CONTENT=0;URL=http://www.YourName.com/cgi-bin/cart.pl?SSV#6>
Replace SSV#6 above with the random sequence of characters that you put in Secure Server Variable #6 in your vars.dat file.
Put a META refresh tag in your sorry.html page like you see below and upload to CMS on the WorldPay website:
<META HTTP-EQUIV=REFRESH CONTENT=0;URL=http://www.YourName.com/cgi-bin/cart.pl?failure>
Set your rejection URL to:
http://www.YourName.com/cgi-bin/cart.pl?failure
Note: This processor's technique of redirecting shopper's browsers back to the Return URL may cause a browser to yield a security warning message. This can be prevented if your return URL begins with "https" or if the processor provides an alternative redirection technique. Making your return URL begin with "https" would require that you obtain a site security certificate which can be costly. A better, more practical solution for all merchants would be to encourage the processor to modify or at least provide alternative redirection techniques that wont cause browsers to yield this warning message.
The Dansie Shopping Cart works with PayPal's WebPayment Standard service when you have a Premier or Business account. http://www.paypal.com. Set Secure Server Variables #1,2,6,7,8,12 and 13. Please note that your customers may have more than one item in their basket. The cart will send the whole package with the grand total to PayPal. The Customer/Shopper ID number will appear on the PayPal website as the "item". This will appear in your PayPal receipts:
Item/Product Name: 17594
Just match that number with the Customer/Shopper ID number in the email receipt that the cart.pl script sends you.
Put this URL in Secure Server Variable #1:
https://www.paypal.com/us/cgi-bin/webscr/
Put your PayPal ID in Secure Server Variable #2. Your PayPal ID is your email address that you use to login to your PayPal account.
If you already have your cart working with a real-time credit card processor, you could run the PayPal payment option from Personal Variable #71.
If you have cart.pl version 3.49+ login to your PayPal account and navigate to: Account Settings -> Website Payments -> Website preferences ->. Set "Auto Return" to "On". Scroll down and set "Payment Data Transfer" to "Off". Scroll down and set "PayPal Account Optional" to "On". There is no need to define the default Auto Return URL, since the cart will pass the correct URL to them during the transaction. Scroll down and click "Save".
Also, make sure you insert something like this in #158 of your lang.dat file:
158 -->Various items in shopping cart with shopper ID number:
If you are using the security feature of PV#66 then, in addition to having your own domain in there, make sure you add "www.paypal.com". Example:
66 -->YourDomain.com,www.paypal.com
You may set the currency_code you want to use with PayPal in SSV#9. If you do not set SSV#9 with the currency_code, USD will be used by default. For example:
-->currency_code=USD
If you currently have other settings in SSV#9, just separate them with a comma like so:
-->visa,mastercard,currency_code=USD
Other currency codes currently supported by PayPal are:
"GBP": Pounds Sterling (£)
"EUR": Euro (¬)
"CAD": Canadian Dollar (C$)
"JPY": Japanese Yen (¥)
"USD": US Dollar ($)
You may also define PayPal's "lc" and "no_shipping" variables:
-->visa,mastercard,currency_code=USD,lc=US,no_shipping=1
You may define PayPal's "ah" variable so PayPal's website will prompt current PayPal members with the option of paying with another credit card or with their PayPal account:
-->visa,mastercard,currency_code=USD,lc=US,no_shipping=1,ah=0
With cart.pl 3.60 you may define the "cbt" variable used by PayPal to customize the text in the link at the bottom of your customer's PayPal receipt page. Example:
-->visa,mastercard,currency_code=USD,lc=US,no_shipping=1,ah=0,cbt=You must click here to complete your transaction!
Do not use any commas or equal signs in the text.
If PayPal requires that you set an auto return URL in your PayPal account, just enable IPN (Instant Payment Notification). The Dansie Shopping Cart automatically sends the return URL to PayPal during the transaction.
Put this URL in Secure Server Variable #1:
https://checkout.psigate.com/HTMLPost/HTMLMessenger
For running test orders, use this URL:
https://dev.psigate.com/HTMLPost/HTMLMessenger
Put your PSiGate StoreKey in Secure Server Variable #2.
Set a unique invoice prefix in PV#65. This is necessary as PSIGate requires all shopper ID numbers to be completely unique from all others.
A test user ID is "teststore" and a test credit card number is: 4111111111111111. Be sure to enter a valid state and zip code when testing.
Put this URL in Secure Server Variable #1:
https://www.payready.net/DMTransaction.asp
Put your PayReady login ID in Secure Server Variable #2.
To run some test orders, set SSV#1 with: https://www.payready.net/DMtransaction.asp
Set SSV#2 with: PayReady.net Test Account
A test credit card number to use is: 4012000010000
Put this URL in Secure Server Variable #1:
https://www.netbanx.com/cgi-bin/payment/NETBANXID
Replace "NETBANXID" in the URL with your NetBanx ID.
For testing, set it to:
https://www.netbanx.com/cgi-bin/payment/dansietest
Decide if you want to use "Skipjack DLL" or their older "Skipjack COM object".
Skipjack DLL:
Put this URL in Secure Server Variable #1:
https://www.YourName.com/cgi-bin/ssl.pl?skipjack
The use of Skipjack DLL will require an SSL Secure Sockets Layer Site Security Certificate. This will allow you to run the ssl.pl script (version 3.19+ required) via "https" with encryption. Your web host can assist you with this. Upload the ssl.pl script (version 3.19+ required) to your cgi-bin in ASCII format and chmod it 755.
Skipjack COM object:
Put this URL in Secure Server Variable #1:
https://www.skipjackic.com/secure/process.asp
The use of Skipjack COM object does not require the use of the ssl.pl script, nor does it require that you have SSL encryption on your website. Skipjack will collect your customers credit card data on their website and will provide the encryption.
Set SSV#2 with your Skipjack MerchantID/HTML Serialnumber
Login to your Skipjack account at http://www.skipjack.com
To log in you will need:
a) Login Serial Number / Vendor ID (This is different from your MerchantID/HTML Serialnumber)
b) Username
c) Password
Click on the "Preferences" link at the top of the page.
Then click on the "Response Files" link under "VENDOR PREFERENCES".
Set the "Thank you for your order:" field with your cart's return URL. Like this:
http://www.YourName.com/cgi-bin/cart.pl?SSV#6
This URL needs to be exactly what you have in HV#1 plus a question mark, plus what you have in SSV#6. The SECURITYID is what you define in variable SSV#6 below.
Set the "Invalid credit card:" field with your cart's "failure" URL. Like this:
http://www.YourName.com/cgi-bin/cart.pl?failure
Click the "Submit" button.
You can use this credit card number for testing: 44459999222225
It is also recommended that you set your email address in SSV#13.
Note: This processor's technique of redirecting shopper's browsers back to the Return URL may cause a browser to yield a security warning message. This can be prevented if your return URL begins with "https" or if the processor provides an alternative redirection technique. Making your return URL begin with "https" would require that you obtain a site security certificate which can be costly. A better, more practical solution for all merchants would be to encourage the processor to modify or at least provide alternative redirection techniques that wont cause browsers to yield this warning message.
To run some test orders, set SSV#9 with DEMO=Y like so:
9 Sending misc info to processor or ssl.pl -->DEMO=Y
A test card number to use is 2345234523452345. When you are ready to go live, drop the DEMO=Y from SSV#9.
Mall Version note: If you are using the Dansie Shopping Cart Mall Version, set the URL in the META tag of the "thanks.html" page like so: http://www.YourName.com/cgi-bin/cart.pl?SSV#6&merchant=MerchantName Change SSV#6 to what you have in SSV#6 and "MercantName" to what the merchant's name is. Example:
http://www.YourName.com/cgi-bin/cart.pl?abcd1234&merchant=acmewidgets
It is also recommended that you set your email address in SSV#13.
Note: This processor's technique of redirecting shopper's browsers back to the Return URL may cause a browser to yield a security warning message. This can be prevented if your return URL begins with "https" or if the processor provides an alternative redirection technique. Making your return URL begin with "https" would require that you obtain a site security certificate which can be costly. A better, more practical solution for all merchants would be to encourage the processor to modify or at least provide alternative redirection techniques that wont cause browsers to yield this warning message.
2Checkout Version 1
Put this URL in Secure Server Variable #1:
https://www.2checkout.com/cgi-bin/Abuyers/purchase.2c
Set SSV#2 with your 2checkout.com seller ID.
Login to your 2checkout.com account at http://www.2checkout.com/login.htm
Select "Account Details" and "Return".
Scroll down to "cartpurchase.2c Shopping Cart Parameters". If you are using 2CO Version 2 you may find this under their Shopping Cart menu.
Set "Return to a routine on your site after credit card processed?" to "Yes".
Set your Return URL in the TEXT field.
http://www.YourName.com/cgi-bin/cart.pl?SSV#6
This URL needs to be the exact URL you have in Host Variable #1 of your vars.dat file, followed by a "?", then the string of random alpha-numeric characters you set in Secure Server Variable #6. Example:
http://www.YourName.com/cgi-bin/cart.pl?1jf8j987h
Click the button "Save Passback Parameters"
Under "Overall Passback Parameters." set "Direct Return" to "No".
Again, click the button "Save Passback Parameters"
It is also recommended that you set your email address in SSV#13.
Note: This processor's technique of redirecting shopper's browsers back to the Return URL may cause a browser to yield a security warning message. This can be prevented if your return URL begins with "https" or if the processor provides an alternative redirection technique. Making your return URL begin with "https" would require that you obtain a site security certificate which can be costly. A better, more practical solution for all merchants would be to encourage the processor to modify or at least provide alternative redirection techniques that wont cause browsers to yield this warning message.
BluePay requires the Digest::MD5 Perl module be installed on your server. Check with your host if they have the Digest::MD5 Perl module installed. The ssl.pl script works with Digest::MD5 to encrypt data before being sent to the BluePay processor.
BluePay does not collect your shoppers credit card data on their secure website, so you will need to use the ssl.pl script on a site with an SSL site security certificate to act as a bridge.
Get your BluePay Secret Key. From your BluePay account menu select: Administration --> Accounts --> list --> view
Set your BluePay Secret Key in the $secret_key variable near the top of the ssl.pl script.
Set Secure Server Variable #1 with the ssl.pl script (version 3.16+) and a "?bluepay" query string like so:
https://www.YourName.com/cgi-bin/ssl.pl?bluepay
Set SSV#2 with your BluePay Account ID. Your Account ID is located on the same page as your Secret Key.
Set the TRANSACTION_TYPE you want to use with BluePay in SSV#9 like so:
-->TRANSACTION_TYPE=AUTH
Another option provided by BluePay besides AUTH is SALE (For Immediate Sale-Capture of funds).
-->TRANSACTION_TYPE=SALE
Set SSV#9 with MODE=TEST if you want to run some test orders like so:
-->TRANSACTION_TYPE=AUTH,MODE=TEST
When you are ready to go live, set it with MODE=LIVE.
A test credit card number to use for test transactions is: 4111111111111111. Use any expiration date greater than today and "123" for the 3 digit number.
It is highly recommended that you set your email address in SSV#13.
Test credit card numbers for testing the ssl.pl script:
5419 8400 0000 0003
Visa
Expiration date: Any date greater than today.
Trouble Shooting: If the ssl.pl script says POST Method Not Allowed or serves as plain text and doesn't execute...
First make sure that ssl.pl is chmoded 755. Second, try renaming it to ssl.cgi and see if it will execute that way. If it still doesn't execute, contact your host and ask them to set permissions on it so that it will execute.
SPECIAL NOTE ABOUT ssl.pl and email
If your ssl.pl script is on a remote host and you are not receiving your customers credit card numbers via email from the ssl.pl script, then see the "SENDMAIL VARIABLES" section near the top of the ssl.pl script. Your remote host may have a different sendmail path than your local host and you will have to set that in the ssl.pl script.
4 Font color -->#000000
This variable works with the ssl.pl script and some credit card processors. What font color do you want to be used on the secure page.
5 Bgrd color -->#FFFFCC
This variable works with the ssl.pl script and some credit card processors. What background color do you want to be used on the secure page. If you are using the ssl.pl script you may use wallpaper if it is local to the ssl.pl script by setting this as the full URL to your wallpaper image. Example:
https://secure.server.com/wp.jpg Must be called via "https" otherwise the SSL wont let any images through.
As an option, instead of having the orders appended to one file, they can be created in multiple files like so: orders1.dat, orders2.dat, orders3.dat. Where each new order placed will create a new file. The number following "orders" will be the customers shopper ID number. To utilize this feature, specify a system path in SSV#8 to a directory rather than a system path to a file. Example:
8 Email orders or append to a data file? -->/cart/host/path/to/orders
Make sure you create this directory and that permissions on it are set as writable (777 on Unix).
System Path to "orders.dat"
You can get your system paths like so:
http://www.YourName.com/cgi-bin/cart.pl?path
http://www.YourName.com/cgi-bin/cart.pl?env
https://YourSecureHost.com/cgi-bin/ssl.pl?path
https://YourSecureHost.com/cgi-bin/ssl.pl?env
Make sure PV#55 is set to 0.
Making sure "orders.dat" is writable
If the directories where you want orders.dat appended to are not writable, then you will need to create an empty file manually on your computer ("orders.dat"), upload it to the directory where you want it and chmod it 777 so it will be writable. Otherwise the scripts wont be able to write to your "orders.dat" file and you will be wondering why it's not appending.
Emailing orders and appending
Order details emailed to you.
Set Host Variable #6 to the sendmail path on your host. Order details will be emailed to the email address you set in Personal Variable #2. You can set as many email addresses as you wish in PV#2 separated by commas, space characters or both. They will get a Bcc (blind carbon copy) of the order details.
Order details appended to a data file on your host.
Customers credit card numbers emailed to you and appended to a data file too.
Set both SSV#8 and SSV#11.
If you have SSV#8 and SSV#11 blank, yet you are using the ssl.pl script, the credit card numbers will be emailed to the first email address you have listed in PV#2. The other email addresses listed in PV#2 will get a copy of the order details, but not the email with the credit card number in it.
If you are using both the ssl.pl script and a real-time processor and you need to set SSV#9 with variables and values for both, that is no problem. Just separate them with commas. Example:
9 -->visa,mastercard,AVSVerify,Language=Spanish,UseCVV2=N
In the example above, "visa,mastercard" would be something the ssl.pl script would understand and "AVSVerify,Language=Spanish,UseCVV2=N" would be something for a real-time processor.
If you are using the ssl.pl script, tell it which card types to accept and which not to accept. Current card types it can accept are the ones you see listed above. Spell them exactly as you see listed here. The ssl.pl script currently does some error checking to make sure that the credit card number appears valid with the first four card types listed here. However, with the last seven card types, there is no error checking. If you would like the ssl.pl script to accept some rare credit cards, near the top of the ssl.pl script you can set "lang" variable #18 and #19 to the card name and then put "dinersclub" or "carteblanche" in SSV#9 to activate it.
You may have the ssl.pl script work with PGP to encrypt the credit card numbers before they are emailed to you.
NOTICE: It is NOT our responsibility to install and configure PGP on your website. We provide the PGP test script so you can isolate and confirm that PGP is working and properly configured before attempting to get the ssl.pl script to work with PGP. If you cannot get PGP to work with this small test script, then do not attempt to get PGP to work with the ssl.pl script. We guarantee that the ssl.pl script will work with the versions of PGP listed above only AFTER you have first confirmed and demonstrated that PGP is properly installed and configured by the use of the PGP test script. You may even download and utilize this PGP test script prior to purchasing a Dansie Shopping Cart software license.
After you have confirmed that PGP is working, set four pieces of information in Secure Server Variable #10 (all separated by the "|" symbol).
The system path to the PGP program
The system path to PGP's temp directory that it writes encrypted files to
Your PGP user ID (key)
and your PGP version
You may need to set the $ENV{'PGPPATH'} or $ENV{'GNUPGHOME'} variable near the top of the ssl.pl script.
Windows NT example:
10 PGP PgpProg|PgpTempDir|PgpUserId|Version -->d:\pgppath\pgp.exe|c:/temp|yourname@host.com|2.6.2
Unix example:
10 PGP PgpProg|PgpTempDir|PgpUserId|Version -->/bin/pgpe|/|Smith|5.0
Put exactly "2.6.2", "2.6.3ia", "5.0", "6.5.2", "gpg1.0", "gpg1.0.6", "gpg1.2.1" or "gpg2.0.11" (if you use GPG) in the fourth field. Nothing else. Make sure your PGP config file is set correctly too.
9. You should have a pgp.cfg file on your server somewhere. Usually in the same directory that the PGP program is in. Open it up and make sure these options are set. Especially make sure verbose is set to 0.
Armor = on # Use -a flag for ASCII armor whenever applicable
TextMode = on # Attempt to use -t option where applicable
clearsig = on # Use unarmored plaintext for unencrypted signed message
# KeepBinary = on # Decrypt will not delete intermediate .pgp file
# verbose = 2 # verbose diagnostic messages
verbose = 0 # be quiet
# compress = off # off means suppress compression to aid debugging
# showpass = on # Echo password when user types it
If you have Secure Server Variable #8 set to a system path so as to have the credit card numbers appended to a datafile and you have this variable set too, then the credit card numbers will be appended to the datafile in an encrypted manner. If SSV#8 is blank, then the credit card numbers will be emailed to the email addresses set in SSV#11. If SSV#11 is blank, then the credit card info will be emailed to the first email address in Personal Variable #2.
Works on Unix hosts with standard sendmail and on Windows NT running either Windmail or Blat as the sendmail program.
11 Credit card numbers are emailed here -->
If you are using the ssl.pl script, this is where you put your email address. When someone orders something via Secure Online Credit Card Transaction, the ssl.pl script can email their credit card number to you. If you leave this variable blank and SSV#8 is blank too, then the credit card numbers will be emailed to the first email address you have in PV#2. If you leave this variable blank and SSV#8 is set, then the credit card numbers wont be emailed to you. Only appended to a datafile. Need to send copies of the order to more than one address? Just set this variable like so:
13 Pending Order Notice -->your@email.com
If a shopper places an order via Secure Online Credit Card Transaction, the cart will email the order details to the email address(es) that you have set in Personal Variable #2. However, sometimes for some reason or another, the shoppers browser doesn't always make it back to the cart.pl script after their credit card is approved. If you set an email address in this variable then you will receive a copy of what they ordered BEFORE they go to the credit card processor to submit their number. So just in case their browser gets hung up at the real-time processors site, you will still have a copy of the order details. Make sure you have some language like so in the following lang.dat variables:
152 -->Pending Order Notice
153 -->This is a Pending Order Notice. The customer has not submitted their credit card number yet. Wait for order confirmation from the credit card processor.
Never rely upon a receipt from the cart as proof that a customers credit card has been approved. It's merely a list of items with a grand total and a shipping address. Always check with your processor or merchant account to see if a customers card has been approved.
The advantages of flat-file databases is that they allow you to update prices, and keep track of your products from simple data files, rather than editing the forms in your HTML documents. Also, you can take advantage of Dansie Shopping Cart's database search engine. (See section 4 in Template.html for details.) Some disadvantages, though, are that your product pages will look a little more cookie cut with a flat-file database than they do if you use HTML forms.
We have provided a sample, ready-to-go database so you can see how easy they are to work with. Just upload the stuff.dat file that came in the zip package to the same directory that your vars.dat file is in. Then point your browser here:
http://www.YourName.com/cgi-bin/cart.pl?db=stuff.dat
2 Full URL of the image of the Dansie Shopping Cart -->http://www.YourName.net/cart.gif
Full URL of the "View Shopping Cart" or "Checkout" image in which your customer will click in order to view their cart contents.
Books|0002|The Boy Scout Handbook|Author: Bill Hillcourt|10.00|1|boyscout_large.jpg|blah|blah|blah
Clothing|1001|Purse|Black Leather purse with leather straps.|20.00|1|purse_large.jpg|blah|blah|blah
14 Optional no-image statement -->No image
Optional statement to make for items that do not yet have thumb-nail images available for them. This will appear in the image column for an item if an item lacks a thumbnail image when most other items do have a thumbnail. If you don't want your pages to say anything, just leave this blank.
17 Default items displayed per page -->10
This will limit the number of items your database displays will put on a page. If you have 500 computers for sale in one database, it could take 5 minutes for that page to load, right? This will limit it and also provide "jump links" to the rest of the items. 11-20, 21-30, 31-40 etc. You can override this default value with the "display" variable. See section 4 in Template.html for more details.
18 Uniform Width and Height of images -->100,100
You can have the cart make the sizes of your thumb-nail images uniform by setting this variable to the width and height. If you leave it blank, the cart will display your images actual height and width. If you just define the width and not the height, your images will maintain their proportion. Example:
-->100
If you define both, they may lose their proportion and appear stretched. This variable controls both the thumbnails as they appear in database displays and in the cart's contents page.
19 Company logo displayed at top of database pages? -->1
Want your company logo to show at the top of database display pages? Set this to 1. Don't want it up there? Set this to 0.
20 Align select pull-down menus (left, right or center) -->center
If you are using any of the Database Options you may determine if they are aligned on the right side of the page, left side or center. Set this variable to one of those three.
21 Select pull-down menus (across or stack) -->across
If you are using any of the Database Options and you have more than one option with each item, you may determine if those options are across on the same line, or if they stack on top of each other. Set this to either "across" or "stack".
25 Database Version (2.0 or 3.0) -->3.0
To take advantage of the powerful 3.0 database search engine features, this variable will need to be set to 3.0. If you wish to continue to use the old 2.0 search format, then leave this blank or set it to 2.0. See section 4 in the Template.html file for full details on using the Dansie Shopping Cart database search engine.
26 Show all links to items or just next (all or next) -->all
If you have DBV#25 above set to 3.0 then you can use this feature. If this variable is set to "all" then large database displays will show jump links to many other sets of items at the bottom of the display pages. If you set this to "next" then you will only see two links at the bottom of database display pages that will say "Next 20 Items" and "Previous 20 Items".
You may change the actual price of the item by using a "$" in the options like so:
OPTIONS^Small $10^Medium $20^Large $30
If you set Personal Variable #36 (currency symbol) to something other than "$", such as "L", then be sure to use that symbol insead. Example:
OPTIONS^Small L10^Medium L20^Large L30
You may add to the current price by placing plus signs before your currency symbol like so:
OPTIONS^Red +$3^Blue +$5^Green +$10
Here is a more detailed example of an entire line (item) of a database file:
Shirts|1001|Men's T-Shirt|100% Cotton|10|.5|shirt.gif|OPTIONS^Small $10^Medium $20^Large $30|OPTIONS^Red +$3^Blue +$5^Green +$10
Key:
category|stock#|ItemName|description|price|shipping(lbs)|image|pull-down menus|pull-down menus
Do you want your <SELECT> menus larger than one line? (In other words <SELECT SIZE=3>) This is how you do it:
OPTIONS3^Red^Blue^Green
Any number immediately following "OPTIONS" will set the SIZE of the SELECT pull-down menu.
Do you want your databases to display checkboxes?
CHECKBOX^With tote bag +$5.00|CHECKBOX^Bag of tees +$2.00
Use + signs with checkboxes if you want to add to the current price.
Do you want to use text fields in your databases so your customers can give you some input?
TEXT^Name to be embroidered on shirt^10-20
The first field tells the cart that you want it to display a TEXT field. The second field is your statement to be printed on the page of the database display. The third field sets the SIZE and MAXLENGTH attributes of the text field.
Do you want to use TEXTAREA fields in your databases so your customers can give you some more input?
TEXTAREA^Name, address, city, state and zip:^30-4
The first field tells the cart to display a TEXTAREA. The second field is your statement to be printed on the page of the database display. The third field sets the COLS and ROWS attributes of the TEXTAREA box.
Do you want a QUANTITY text field in your databases so your customers can enter quantity?
QUANTITY^How many days?^3-3-1
The first field tells the cart script to make a TEXT box for quantity. The second field is your statement to be printed on the page of the database display next to this TEXT box. The third field sets the SIZE and MAXLENGTH attributes of the text box and the default quantity.
Miscellaneous Database Tips:
Want to use Volume Discount Pricing with your databases? Put this format in your price fields:
10.00:1:9.00:10:8.00:20
This means, $10 each for 1 (or more), $9 each for 10 (or more) and $8 each for 20 (or more). Always use the ":" character to separate the sub-fields of your volume discount pricing. Make sure your list is in order from smallest quantity (1) to largest quantity. See Template.html section 1C for information on how to use volume discount pricing with standard HTML forms.
You can add keywords to the items in your databases so the search engine can find the item better, without the keywords appearing in the database's product displays. Use HTML comment tags in your fields like so: |<!-- these are some key words -->|
The search engine will find the keywords and display the products, but the search words wont display on the web page.
If an item in your database is nontaxable, you can put this in one of your custom description fields and the cart wont calculate sales tax on that item. |#nontaxable#|
If an item in your database should always be charged full price, even when a webstore or coupon discount is invoked, you can put this in one of your custom description fields and the cart will always charge full price for that item. |#nodiscount#|
You can have links appear in your database by inserting some <A HREF> tags in the custom description fields of your database like so:
|<A HREF=http://www.YourName.com/Details.html>Click for details</A>|
Or extra images too:
|<IMG SRC=http://www.YourName.com/Image.gif>| Pop-up windows can be used to with a little JavaScript too.
You can comment out items in the database so they wont be displayed. Perhaps your item is temporarily out of stock. Instead of removing it's line from the database, precede it with a pound sign (#) like so:
#category|stock#|ItemName|description|price|shipping|image|extra fields...||||
Another way to pass a referrer's name to the cart is right inside an HTML product form like so:
<INPUT TYPE="hidden" NAME="referrer" VALUE="Buddy">
If you pass that tag to the cart in an HTML form, it will make sure that
the referrer's name is next to the shopper ID number in the email receipt.
Using the Dansie Shopping Cart Mall Version? Have people link to your site like this:
http://www.YourName.com/cgi-bin/cart.pl?referrer=Buddy&url=http://www.YourName.com&merchant=fred
Or:
http://www.YourName.com/cgi-bin/cart.pl?referrer=Buddy&merchant=fred
(Without the "url=http://www.YourName.com")
The URL you use here must match exactly what you have in Host Variable #1.
If you want their password access to automatically expire after a certain number of days, then put this in the third field like so:
Members Calendar of Events|/usr/local/htdocs/calendar/.htpasswd|Expires: 30|blah|blah
This will tell the cart to remove their email address and password from the .htpasswd file after 30 days. Make sure you use the word "Expires:" followed by any number. Put "30" for one month and "360" for one year. Note: Old expired passwords will be deleted from the .htpasswd file when the cart.pl script adds new passwords and not necessarily on their exact expiration date. If you open the .htpasswd file in a plain text editor, you will notice that it has a comment line just above each set of email address and password pair. Example:
The key to the comments are:
Date ordered(yyyy/mm/dd)|date expires|customers name|product/service ordered
If you wish to manually delete a customers email address and password, be sure to delete the comments in the line above it as well.
You can put any text in the additional fields after the first "|" pipe delimiter as you desire. That additional text can be a system path to a .htpasswd file, days until expiration, or just general info that you want to give to your customers. If you insert the marker #random_password# the cart will generate an 8 digit alpha-numeric random password for the customer and insert it in the customers email receipt. If more than one item is ordered with a password, the cart will make all the passwords the same for the convenience of your customer. If you have a situation where you need all the passwords different, just ask us how. You can use as many extra fields as you like, each pipe delimiter will indicate a line break in the email receipts.
If you set a system path to your .htpasswd file in the second field then the cart will automatically append your customers billing email address and crypted password to your .htpasswd file allowing them immediate access to the directory you choose.
For security reasons, if you have the cart accepting Check Drafts using the ssl.pl script, passwords will NOT be issued in the customer's email receipt. You can send them a password AFTER you have verified their check and banking information.
Mall Version note: For security reasons, your hosted merchants will not be allowed to have their passwords.dat file tell the cart.pl script to write to any .htpasswd files outside of their directory or a subdirectory thereof. So this feature is partially disabled. However, if you are the only one that has access to their vars.dat and passwords.dat files, etc, let us know and we can disable the merchant security feature for you and this feature would then work with the Mall Version.
When a customer purchases an item via "Secure Online Credit Card Transaction", if one of the custom descriptive fields contains any phrase found in the left field of the "passwords.dat" file, the cart will email them the special instructions of the corresponding right field(s) of the passwords.dat file.
Example:
<INPUT TYPE=HIDDEN NAME="custom3" VALUE="Super Software Download">
If you had the above tag in one of your product forms, and your customer purchased the item via "Secure Online Credit Card Transaction" or "Online Check Draft" they would receive the special info found in the passwords.dat file. You may put as many lines in your passwords.dat file as you wish. If you are sending URLs it is recommended to leave PV#72 blank when using the Sell Passwords feature so as to avoid problems with the way the email receipts are formatted.
If you are using multi-item forms with the Sell Passwords feature, be sure to set the phrase that triggers the passwords.dat file in fields 5, 6 or 7. Example:
<INPUT TYPE=CHECKBOX NAME="multi-item1" VALUE="A Software Program|9.95|1|software.jpg|Super Software Download">
Then in your passwords.dat file you would put:
Super Software Download|Download now here: "http://www.YourName.com/special/" The password is: #random_password#
If you have PV#27 set to 1 (shipping by weight or unit), the restrict.dat file will regard the shipping methods listed in PV#29. For example, if you have PV#29 set like so:
29 -->Standard UPS,3 day UPS,2 day UPS,Next day UPS,Europe,Australia
the restrict.dat file would cause only the "3 day UPS" and "2 day UPS" shipping methods to be available.
If you have PV#27 set to 2 (shipping according to subtotal), the restrict.dat file will regard the shipping methods listed in PV#34. For example, if you have PV#34 set like so:
34 -->USA,Canada,U.S. Territories
the restrict.dat file would cause only the "Canada" and "U.S. Territories" shipping methods to be available.
Put an IMG tag in Personal Variable #6 in your vars.dat file like so:
<IMG SRC="https://www.affiliate.com/cgi-bin/log.pl?
AMOUNT=#subtotal#&OID=#orderid#&NAME=#name#&EMAIL=#email#&ORDERTYPE=#ordertype#&REFERRER=#referrer#">
Replace "https://www.affiliate.com/cgi-bin/log.pl" with the URL to your affiliate script.
The cart will automatically replace #subtotal#, #orderid#, #name#, #email#, #ordertype# and #referrer# with the real subtotal, customer/shopper ID, customer's name, customer's email address, the purchase method they chose and Referral Tracking ID. You need not use all these, just the ones your affiliate needs.
Replace AMOUNT, OID, NAME, EMAIL and ORDERTYPE with the variable names that your affiliate uses.
After an order is placed, the Dansie Shopping Cart will display the guarantee statement in Personal Variable #6 on the receipt page which will call the affiliate script.
The cart will work with Google AdWords as well. Just copy and paste the <NOSCRIPT> portion of the Google code into PV#6. Omit the NOSCRIPT tags. So you should be pasting just one IMG tag in PV#6.
After your shopping cart is installed, follow these steps:
Create a directory in your cgi-bin with the merchants name and chmod it 777. Example: "merchant1". This directory must be located in the same directory as your cart.pl script. Use letters and numbers and no spaces or special characters.
Upload a vars.dat file and a lang.dat file into that new directory (merchant1).
Point your browser at the cart like so: http://www.YourName.com/cgi-bin/cart.pl?test|merchant1 The query string here is "test" followed by the "|" character, followed by the merchants name (directory name). A "temp" directory and shopperid.dat file should be automatically created in this new directory. If not, create them manually via FTP.
That's all.
In order to use this merchants vars.dat file, always be sure to use the following tag in every product form related to that merchant:
Note: You will have a default vars.dat file located next to your cart.pl script in your cgi-bin. If the NAME=merchant tag isn't used in a form, the default vars.dat file will be accessed.
Mall Merchant Upload Control Panel
The Dansie Shopping Cart Mall Version has a built-in web based upload utility feature that allows merchants to upload their vars.dat and lang.dat files 24 hours a day without bugging you. To access your Mall Merchant Upload Control Panel, just point your browser at your cart.pl script with the "login" query string like so: http://www.YourName.com/cgi-bin/cart.pl?login
If you have a site security certificate, your hosted merchants can upload and download information securely too. Just set Host Variable #14 with the "https" URL to the cart.pl script.
In order to allow your merchants web based upload access to their directory, you will need to place a file in your cgi-bin called "merchant_passwords.dat". This plain text file will look like this:
Use the "|" pipe delimiter to separate the fields. The first line will set the default directory size limit that you will allow to each merchant to have. Only one field goes on this line. The rest of the lines may have either two or three fields. The first field in each line is the merchants name. This must match the name of the merchants directory exactly. The second field is the merchants password. The third field is optional. It allows you to adjust the directory size limit for that merchant. In this example, Moe's third field is not defined, so he gets the default value that is in the first line of the "merchant_passwords.dat" file. Larry's third field has 400000 in it so he gets twice the default size limit to host his files with. Curly's third field is defined as well, but it says 50000. He will only have one-fourth the default allotted space.
Mall Version Security Features and Diagnostics
For security reasons, the following variables are automatically set for mall merchants because they have the ability to write to files on the host: HV#8, HV#9, HV#10. The default location of these variables is a system path to the merchants directory.
For security reasons, the following variables are restricted to being set to a system path inside the merchants own directory or a subdirectory thereof: SSV#8, DBV#1. For example, if one of your merchants directories are here:
/usr/local/etc/httpd/cgi-bin/cart/acme
and your "acme" merchant tries to set SSV#8 to:
/usr/local/etc/httpd/index.html
the cart.pl script will NOT write to that location. It will only write to the acme directory or sub directories thereof.
For security reasons it's recommended to set DBV#1 to a different directory that you don't have anything in except your database files. Example:
-->/system/path/to/cgi-bin/MerchantName/databases
A merchant may set DBV#1 to a system path to a subdirectory inside their directory. The cart will not permit them to set DBV#1 to a system path outside their directory.
For security reasons, the following variables are automatically set for mall merchants because they have the ability to execute programs on the host: HV#6, HV#7. The cart.pl script will grab the values of these variables from the default master vars.dat file in your cgi-bin.
For security reasons, the following variables are limited and if set with a file name, the cart will only look for that file in the same directory that the merchant's vars.dat file is located. A system path will be disregarded. PV#69, PV#80, DBV#22, DBV#27. Put a tracking.dat file in the merchants directory, make sure permissions on it are writable, and the Order Tracking feature will begin working.
For security reasons, the Sell Passwords feature (passwords.dat) does not allow merchants to append to files on the server outside of their directory or a subdirectory thereof.
For simplicity reasons, the following variable is disabled and automatically set for all merchants: HV#1. If your merchant sets it incorrectly, their cart will still operate because the cart.pl script will grab the values of this variable from the default master vars.dat file in your cgi-bin.
You can run diagnostics on the merchants with:
http://www.YourName.com/cgi-bin/cart.pl?test|MerchantName
http://www.YourName.com/cgi-bin/cart.pl?vars|MerchantName
http://www.YourName.com/cgi-bin/cart.pl?lang|MerchantName
http://www.YourName.com/cgi-bin/cart.pl?write_test|MerchantName
To view your cart contents with a merchant, use:
http://www.YourName.com/cgi-bin/cart.pl?look|MerchantName
Or:
http://www.YourName.com/cgi-bin/cart.pl?look&merchant=MerchantName
If you use the ssl.pl script, follow the same instructions above for "cart.pl".
Take any custom variable settings you set near the top of your old ssl.pl script and be sure to maintain them in the new one.
Set your server's sendmail path near the top of the ssl.pl script so you can receive email from it.
Look for any new variables in the new lang.dat file and copy and paste them into your old one.
Look for any new variables in the new vars.dat file and copy and paste them into your old one (in the respective four sections).
Refer to the new ReadMe for instructions on how to take advantage of the latest new variables. Discard your old ReadMe.
Notes: If you don't put the new vars variables into your vars.dat file, your
cart will still work. The new version will assign default values for the
variables you have not defined yet.
If you don't put the new lang variables into your lang.dat file, well,
your cart will probably still work, it just wont look too pretty. In certain
pages and areas of your cart you may be missing some textual display.