Such applications allow companies to display their inventories
online such that clients can quickly and easily browse through and order items
of interest.
Some of the more famous and groundbreaking examples include
Amazon.com
and
eBay.com.
Both of these sites generate millions of dollars from virtual clients through
their user-friendly interfaces and sleek design.
Because warehouses are virtual and sales staff automated, the virtual store
is a profitable option for many small and mid-sized businesses who gain instant
access to a global market.
Web stores can also provide larger, established companies with alternative outlets
for their products as well as a continued presence in emerging markets.
Further, clients receive the benefits of dynamic, customizable browsing tools.
Rather than deal with mail order catalogs, 1-800 numbers and faxable (or worse
yet-snail mail-based) order forms, a customer need only web over to their favorite
store, click to their section of interest, add some items to their virtual shopping
cart, type in some shipping information and submit the information over a secure
channel of the Internet.
As David Cook writes in Launching a Business on the Web, "The idea of a virtual
shopping system is to make the job of picking products as painless as possible.
In essence, we want the user to do no more than simply point to a picture or
word to purchase an item.
Yet however invisible and seamless the application is to the customer, a shopping
cart system, is a demanding application to program, customize and/or install
because it integrates so many CGI functions into one system. Consider the complexity.
A shopping cart application must be able to manage every function of shopping;
not only from the perspective of the customer, but from that of the vendor as
well.
Store Management From the Vendor's Perspective
For one, the application must be able to manage and display the store's
inventory.
That is, the application must be able to keep track of every item in the store's
inventory and be able to present them in an efficient and sensible way.
Think of this function as that of the store employee who must continually re-stock
the shelves of the store with new items, change some prices here, remove some
items there, introduce "specials", and generally make sure that aisles are clean,
current, and organized for the convenience of customers.
In terms of the shopping cart application, the program must be able to generate/display
browsable HTML "product pages" according to the needs of the client.
These product pages might be organized hierarchically, according to categories
and sub-categories of products or they might be generated dynamically based
upon the customer's search criteria.
Further, depending on the desires of the vendor and the demands of the inventory
itself, the inventory might be physically stored as a flat file or SQL database
or may be described as a series of pre-designed HTML pages.
The shopping cart system must be flexible and intelligent enough to produce
a consistent look and feel while all around is variable and changing.
A further complication lies in the fact that every item must be uniquely identified
and may have unique qualities which differentiate it from other items, even
within that same category.
One good example of that is the application of options.
Many items, even within the same category may have different options available
for them. For example in an online music shop, certain albums might come in
CD format only, or in Tape or CD format, or even LP only.
The application must have a means for interpreting such unique qualities for
every item and incorporate them into the logic of the process.
In a thousand item store, there may be a thousand "special cases".
The Web Store must also be able to keep track of many customers simultaneously
and at different times in their shopping process.
Some of those clients might be just entering the store.
Some might be at the cash register.
Others might be browsing the shelves casually or with a specific product in
mind.
The Web Store must be able to handle each of these situations so seamlessly
that each customer should feel as if she is the only customer in the store.
Speed and consistency are paramount.
Keeping track of visitors also involves a motley of administrative functions.
For example, just as someone must constantly keep track of used shopping carts
at your local supermarket, so must the web store application deal with its own
old, used shopping carts.
After all, it would not do to continually save all the carts used by all the
customers.
If all goes well and your products attract droves of wandering websites, you
might generate hundreds of carts per day.
Though each cart will be only a small text file in itself, when combined, the
set of all carts could cause your server's hard disk to fill up quickly.
Thus, the application must be responsible for pruning old carts at some regular
interval.
Another administrative function is that of logging accesses and errors.
Every new client will bring with her a set of valuable information which if
gathered and interpreted wisely could yield insights crucial to your continued
success.
How many of your clients are international?
How many are repeat visitors?
Which pages do clients most often request?
Which items do they most often buy?
What percent of your visitors are smart enough to use Opera?
When are your daily peak hours?
These are the kinds of data which should be available in your
access logs for analysis.
Similarly, you should have a complete error log.
Have there been any attempted hacks?
Are there errors in your configuration that slipped by you?
Has some environment variable on your server changed which demands your attention
like a change in permissions?
The error log can be used to quickly diagnose problems with the application
as it evolves to your own needs.
In some cases, a well analyzed error log can save you from having to hire a
programming consultant to do trouble shooting.
Finally, the Web Store must be your cashier, totaling up shopping carts full
of items, and accepting payment from the customers.
In doing so, it must be able to handle your local taxes, shipping costs, discounts,
specials and any number of surprise price modifications, on the fly, for every
customer.
More crucially, it must do this flawlessly and securely.
Not only must the connection between the browser and server be secure (an issue
between you and your ISP), but orders must then be sent securely from the server
to the person handling order processing.
What good is a powerful (and expensive) SSL account if credit card and personal
information are sent unprotected via email?
A secure store is only as secure as its weakest link.
The Web Store must be able to support SSL technology as well as provide a secure
method of getting that information from the secure server to you.
Whatever the case, the application must be able to quickly provide
a virtual store environment with seamless access to products.
At this infant stage of the web, there are already enough barriersbetween the
clients and vendors; speed, ignorance, unfamiliarity, etc.
The Web Store technology must not add another barrier.
It must be an interface which makes the user want to come back.
Shopping From the Customer's Perspective
A shopping cart system is also responsible for handling the needs of
the customer.
It must follow each client through (even if their are dozens of clients shopping
simultaneously) the store acting as their shopping servant.
When the customer says grab this item, it must do so.
It must also get more of one item or be able to put all the items back on the
virtual shelves if so instructed.
It must do this for every customer over several self-referential instances.
What is a "self-referential instance"?
To answer that, a short discussion of client server technology is in order:
When you type enter a URL into the location window of your favorite browser,
you are becoming a client to some server from which you are requesting some
service.
Typically, you will be asking the server to send you a document formatted with
Hyper-Text Markup Language (HTML).
In the case of a CGI script, you ask the server to execute the program and send
you back the results of the processing.
One of the facts of life with client server architecture is the fact that each
request sent from a client and processed by a server is considered a new and
unique one.
That is, there is no real dialogue between you and the server.
There is only a series of unrelated queries and responses.
The server maintains no link with each client.
Instead it simply, blindly, automatically waits for a query, answers the query
and settled back down waiting for the next query to arrive.
You may ask it for a second document with another hyperlink, but the server
will treat you as the unknown stranger you are.
It will not "remember" anything about you or your past interactions with it.
So how do you create a dialogue, a relationship; a complex relationship between
a customer and a vendor?
For example, in order for each client to maintain a unique set of shopping cart
items, the application must keep track of each client and each client's virtual
cart.
Maintaining state, as this is called, is difficult because HTTP, as we have
mentioned, is a "connectionless" protocol: every time a Web browser requests
the attention of your server, it is considered a new request, unrelated to any
other requests fulfilled by the server.
Because each request is considered independently of others, the server has no
way to keep track of what clients have been doing in the past.
How then can the server "remember" what items you have already placed in your
cart?
If you want to keep track of a client's activities from page to page (perhaps
keeping track of items that the client has ordered), your CGI application must
find a way to "remember" these transactions, because the server cannot.
Furthermore, the cart itself is a database file that is built and modified on
the fly based on the client's needs.
The client must be able to add and delete items from the cart as well as change
the quantities of items ordered.
The maintenance of the cart, therefore requires a full-fledged database management
system.
Yet the script must do more than just display and modify shopping cart items
that are contained in the data file.
It must also manipulate the database fields to perform price calculations, such
as subtotaling and generating grand totals from subtotals.
All this while still performing all the usual CGI functions like reading and
parsing incoming form data, checking that form data against bad input.
Our Web Service will help you find the
right product for your business
and get Your Web Biz going!
Of course, these are just a few free packages.
Which means, they are free of any royalties.
You can spend thousands of Dollars for other Shopping Carts, most of these not
better than the free ones!