Microsoft were late to realise the potential of the Internet, so many of their Internet products came about through the acquisition of other companies. In order to advance Windows NT Server as a viable platform for e-commerce, in 1996 Microsoft acquired e-Shop Inc., a small company specialising in e-commerce software. e-Shop's software was integrated into Microsoft Merchant Server 1.0, which subsequently evolved into Microsoft Commerce Server 2.0. Version 3.0 was released in early 1998, and added support for Internet Information Server (IIS) 4.0 and Microsoft Transaction Server (MTS). Commerce Server 3.0 is supplied as the major component of Site Server 3.0 Commerce Edition (SSCE). The other component of SSCE is Ad Server.
One thing to note is that Site Server 3.0 Commerce Edition should not be confused with the standard version of Site Server 3.0. The standard version of Site Server contains a number of enhancements to IIS in the areas of content management, personalisation and site searching. The Search facility of Site Server 3.0 was featured in a previous issue of Ariadne .
It is important to bear in mind that SSCE is not a “shop in a box” solution. In this way, it differs from products such as Actinic’s Actinic Catalogue , or Shop@ssistant , which require minimal configuration to get your online shop up and running. The University of Sussex Alumni Society  is an example of a site that uses Shop@ssistant.
SSCE could perhaps more accurately be described as a collection of objects and conventions that aid shop creation. SSCE comes supplied with a number of Component Object Model (COM) objects designed for integration with Active Server Pages. There are objects for handling the usual shop facilities such as shopping baskets. There is a pipeline editor for handling transactions. And there is also a well defined set of coding conventions. In particular, there are functions for encoding query strings, and for changing the site to use SSL when the site is ready to be deployed to the staging server. Most of the sample code is based on ASP written in VBScript. But since SSCE is based on COM, it is possible to develop the shop using any language that supports COM, e.g. JScript, Java, Visual Basic, Visual C++ or even Perl.
SSCE contains two Wizards for building shops: the Site Foundation Wizard and the Commerce Site Builder Wizard. The Foundation Wizard creates the bare bones of the site, including the required folders and certain files (such as the global.asa). Although this can be used as the basis of a standard shop, it is usually best to subsequently make use of the Site Builder Wizard. This Wizard will create a basic shop based on a number of shop types (these are described below). Although very basic, the shops contain all the required ASPs and required database structure.
SSCE also requires additional software to get it up and running. SSCE needs to be installed on a Windows NT Server machine running IIS 4 or above . A database server is also required. Although SSCE directly supports Access, SQL Server and Oracle, Access is only recommended for the smallest of shops.
One way of looking at SSCE is that it is a toolbox containing a number of components that are of use in creating the shop. The major components are described below.
Of fundamental importance to the design of a shop is the "basket", into which shoppers add items they are interested in purchasing, before proceeding to the checkout (or leaving the shop without making a purchase). The basic shops created by the Site Builder Wizard include all the required code and database structure for shopping baskets.
SSCE is supplied with a number of COM objects to aid creation of the shop. The Predictor component is one such example. The component takes information from shoppers’ purchases and calculates related products to those purchased. As such it can be used in a similar way to Amazon.com’s recommendations feature (customers who bought book W also bought books X, Y and Z). It can also be used for other scenarios (e.g. for predicting what parts of a site your visitor might be interested in – see ). The downside is that the predictor component needs a large amount of data before it becomes reliable, and so it is most likely to be of interest in subsequent modifications to a site.
Other COM objects supplied with SSCE include those for handling the shopping basket and order form, and those for manipulating the shop's website.
Another essential part of SSCE is the concept of pipelines. These are executed at certain stages of the shopper's progress through the shop. For example, the purchase pipeline will run some basic checks on the shopper’s address, check the validity of the credit card number, then send an email to the shopper confirming their order. Pipelines use Microsoft Transaction Server (MTS) where appropriate, so failed transactions can be aborted.
Figure 1. The Commerce Order Processing Pipeline Editor
The advantage of using the pipelines is that they allow for much of the complexity of the shop to be separated from the ASP code. Pipelines can be easily extended and customised through the use of the range of components supplied with SSCE, or through the use of custom written or third party components. SSCE comes supplied with a number of useful components that can be used within pipelines, such as those for executing custom SQL or VBScript, or the sending of email. The downside is that pipelines can be difficult to debug, especially if there are numerous stages within that pipeline.
SSCE also supports Microsoft Wallet, a browser plug-in for Microsoft and Netscape browsers that allows a user's address and credit card details to be securely stored on the client machine, and card details to be safely passed to the online shop. In practice, Microsoft Wallet is not widely used by shoppers, so the Wallet functionality is usually best removed from the basic shop template. Microsoft have also invested heavily in Microsoft Passport , so it is unlikely that Wallet will ever become widely used.
The Ad Server is used to manage the targeting of banner ads on the website. Like the Wallet, the Ad Server appears to be little used by SSCE developers.
As well as containing a number of useful COM objects and shop templates, SSCE also introduces certain coding conventions and procedures that can assist with cutting down on development time. A few examples are listed below:
SSCE obviously supports the use of SSL for the creation of a secure shopping environment. It assists development of the secure site by containing an admin function that allows the site to be developed in a non secure environment, then the URLs of the live site to be modified to use https.
HTTP is a stateless protocol, and yet for an online shop it is critical that state is maintained between the various processes (browsing the shop, adding to the basket, ordering etc.) Site Server supports two methods of maintaining state once the shopper has logged onto the site: cookies and query strings. Cookies have their own particular problems of course. One major problem with cookies is the fact that they cannot be used between servers, so a shop using cookies could not be as easily load balanced compared to one using query strings alone. Site Server’s Personalisation and Membership features also require that cookies be used.
SSCE makes extensive use of the global.asa. In particular, it stores SQL queries in a dictionary object so that they can be easily accessed from pipelines and ASP documents. Error messages such as "At least one item is out of stock." are also stored there.
One obvious advantage of SSCE over "shop in a box" solutions is the ease with which the shop can be extended through the use of third party add-ons. Most of these use COM components to provide additional services, such as linking to Electronic Data Interchange (EDI) systems, real time processing of credit card details through a merchant account, tax handling and shop catalogue management. An example of SSCE's extendibility is through the use of the DataCash NT Payment Gateway Module . This is a third party application that allows for the real time processing of credit card details.
The downside to SSCE is that there can sometimes be major issues with extending the sample shops. One particular problem I have encountered is that SSCE treats each item purchased as a single item in the basket, regardless of the quantity purchased. This can cause major complications when you need to perform an operation on each item purchased, such as specifying the type of gift wrapping for items bought as presents.
The other problem is that experienced developers may have problems with doing things "the Site Server way", such as making extensive use of the global.asa, and using the special query string encoders.
Recognising that it would be time consuming to build an online shop from scratch, Microsoft have included the Site Builder Wizard, which allows a basic shop to be created from one of several shop templates. Each of the Wizards builds the shop front, as well as a basic administration interface and the necessary database structure.
Figure 2. The Commerce Site Builder Wizard
The shop templates are:
At the time of SSCE's release, interest from the developer community was firmly focussed on the creation of business to consumer shops, hence the bias towards the creation of business to consumer sites. Additional templates for the Site Builder Wizard (such as an Auction Component ) are available from Microsoft.
Although these templates are useful starting points, a considerable amount of customisation is required. For example, the payment facilities normally use the Microsoft Wallet browser plug-in as default, and the customer order numbers Site Server generates are very long. The shop's administration site will also need integration with any back-end inventory or ordering systems you might have. Needless to say, you will also need a graphic designer to spruce up the site.
Figure 3. Part of a shop’s administration site created by the Site Builder Wizard
A major limitation with SSCE is the cost – both in development time and software costs. Good web developers with knowledge of SSCE are very difficult to find. The cost of SSCE licences  is also significant.
As far as development is concerned, although there is a reasonable amount of documentation available, it tends to concentrate on the basic features. In particular, there is little documentation with respect to using a few of the advanced features (such as integration with the Personalisation & Membership features of Site Server), and in particular, the integration with back-end legacy systems.
As you might expect, e-commerce is a core component of Microsoft's future strategy .
The next version of Commerce, Commerce Server 2000, has been recently released. This new version adds advanced profiling and targeting of customers, data warehousing, data mining and analysis . The product looks like being a complete, if costly, complete e-commerce solution.
There are few web resources for SSCE when compared to those that cover topics such as Active Server Pages. Both ASPToday and 15Seconds have sections dedicated to Site Server  and . Microsoft  also have some useful articles, particularly in the areas of deployment and capacity planning.
An excellent reference guide is also available - Professional Site Server 3.0 Commerce Edition by Marco Tabini . This book is an essential resource for anyone developing sites using SSCE.
Site Server 3.0 Commerce Edition is a useful starting point for web developers wishing to create a online shop on the Windows NT platform. The package is flexible enough to allow the creation of a wide variety of shops. The downside is that the package is costly, and requires significant expertise.
Brett spent two years working in the University of Essex Computing Service before moving to a Microsoft Certified Solutions Provider based in London and the Netherlands. The company develops E-business solutions using Microsoft and Java based web technologies for a range of multinational companies, as well as smaller start-up companies.