Where to start
Before you start, take some time to determine what your shopping cart needs are. It will help you immensely in narrowing the available choices!
In my case, I had some fairly specific requirements, such as:-
- The need for a reasonably priced CGI solution in which the pages could be customized to match an existing site design.
- Database-driven technology, with the ability to create product pages 'on-the-fly.'
- Ability to add new products easily.
- Ability to display an item in different formats (i.e. cassettes and CDs), with different prices for each.
- Ability to handle quantity-based pricing.
- Search engine capability, so that customers could perform keyword or category searches of the database for specific products.
- Order process handled on my own secure server. (Many carts are set up to handle that part of the process on THEIR server -- sometimes at a cost, sometimes free -- and they won't release that portion of the script to their customers.)
- Ability to calculate shipping charges in multiple methods, based on quantity, weight or other measurable field, and at multiple costs.
PGP support (Pretty Good Privacy -- an encryption/decryption tool) so that orders could be securely sent and retrieved from the secure server without compromising my customers' personal and credit card information.
Note: This is CRITICAL if you're handling your own transactions (as opposed to having a merchant account provider process them for you), particularly if you're having a copy of the order Emailed back to you with credit card information included.
By adding PGP functionality in a script that supports it, you can (should!) set up your shopping cart script so that orders Emailed to you are automatically encrypted. When you receive the message, you have to enter your PGP key in order to decrypt and read it. That means if anybody intercepts it, or hacks your server, the chances of them being able to decrypt it are very slim.
- A Web-based interface was a desired feature, but not absolutely critical provided the cart somehow offered an easy way to update, add, and/or delete products.
- Good, clear, step-by-step installation instructions and supporting documentation. I wanted to be able to install and maintain the cart myself, so this was an absolute necessity.
During my quest, many carts were dismissed because they didn't fit one or more of my criteria. In particular, those carts which required the order process to be handled on their server were immediately rejected. So were ones with a hefty pricetag. (While my tastes are generally expensive, my bank balance hasn't quite figured out how to keep up with me, darn it!)
Anyhow, criteria duly established, off I went on ... The Quest For The Cart.