|
Claims  |
|
|
What is claimed is:
1. A merchant system, comprising:
a dynamic page generator to compose a page for display by processing a
template having a database request for page data, wherein the database
request is a query name; and
a database module, in communication with a database and with the dynamic
page generator, to retrieve page data from the database and to communicate
the page data to the dynamic page generator, wherein the retrieved page
data corresponds to a query stored in the database, wherein said query
corresponds to said query name, and wherein the database module retrieves
the data in a manner that is independent of any database schema.
2. The merchant system of claim 1, wherein the database is defined by a
single schema.
3. The merchant system of claim 1, wherein the database is defined by a
plurality of schemas.
4. The merchant system of claim 1, wherein the query is a SQL query.
5. The merchant system of claim 1, wherein the database module returns an
access object having the page data to the dynamic page generator.
6. The merchant system of claim 1, wherein the template includes HTML and
directives.
7. The merchant system of claim 6, wherein the directive is a keyword
specifying how to build the page for display.
8. The merchant system of claim 1, further comprising HTML structures in
communication with the dynamic page generator.
9. The merchant system of claim 8, wherein the HTML structures include a
plurality of templates.
10. The merchant system of claim 8, wherein the HTML structures include a
plurality of HTML pages.
11. The merchant system of claim 8, further comprising a browser in
communication with the dynamic page generator.
12. The merchant system of claim 11, wherein the browser sends a URL to the
dynamic page generator indicating the template to display.
13. The merchant system of claim 11, wherein the dynamic page generator
sends to the browser HTML resulting from the processing of the template.
14. The merchant system of claim 1, further comprising a browser in
communication with the dynamic page generator.
15. The merchant system of claim 14, wherein the browser sends a URL to the
dynamic page generator indicating the template to display.
16. The merchant system of claim 15, wherein the dynamic page generator
sends to the browser HTML resulting from the processing of the template.
17. A merchant system, comprising:
an order processing module, which makes a request for order data using a
query name; and
a database module, in communication with a database and with the order
processing module, to retrieve the order data from the database and to
communicate the order data to the order processing module, wherein the
retrieved order data corresponds to a query stored in the database,
wherein said query corresponds to said query name, and wherein the
database module retrieves the data in a manner that is independent of any
database schema.
18. The merchant system of claim 17, wherein the database is defined by a
single schema.
19. The merchant system of claim 17, wherein the database is defined by a
plurality of schemas.
20. The merchant system of claim 17, wherein the guery is a SQL query.
21. The merchant system of claim 17, wherein the database module returns an
access object having the order data to the order processing module.
22. The merchant system of claim 17, wherein the order processing module
comprises,
an order pipeline having multiple stages, wherein each stage includes a
plurality of components configured to process the order, and
an order engine to determine which stages of the order pipeline to execute
in order to process the order.
23. The merchant system of claim 22, wherein the sequence of execution of
the stages in the order pipeline is configurable.
24. The merchant system of claim 22, wherein the components within each
stage are configurable.
25. The merchant system of claim 17, wherein the order comprises an order
blackboard having key-value pairs.
26. The merchant system of claim 25, wherein the order further comprises an
item blackboard having key-value pairs.
27. The merchant system of claim 26, wherein the component posts a portion
of the order data retrieved from the database to the item blackboard in a
key-value pair.
28. The merchant system of claim 25, wherein the component posts a portion
of the order data retrieved from the database to the order blackboard in a
key-value pair.
29. A merchant system, comprising:
an order processing module having a plurality of components configured to
create and process an order, wherein a component makes a component request
for order data;
a dynamic page generator, in communication with the order processing
module, to compose a page for display by processing a template having a
request for information from the order and a database request for page
data, wherein the request for page data is a query name; and
a database module, incommunication with a database and with the order
processing module and with the dynamic page generator, to retrieve order
data from the database and to communicate the order data to the order
processing module and to retrieve page data from the database and to
communicate the page data to the dynamic page generator, wherein the
retrieved order data corresponds to a query stored in the database,
wherein said query corresponds to said query name, and the database module
retrieves the order and page data in a manner that is independent of any
database schema.
30. The merchant system of claim 29, wherein the template includes HTML and
directives.
31. The merchant system of claim 30, wherein the directive is a keyword
specifying how to build the page for display.
32. The merchant system of claim 29, further comprising HTML structures in
communication with the dynamic page generator.
33. The merchant system of claim 32, wherein the HTML structures include a
plurality of templates.
34. The merchant system of claim 32, wherein the HTML structures include a
plurality of HTML pages.
35. The merchant system of claim 32, further comprising a browser in
communication with the dynamic page generator.
36. The merchant system of claim 35, wherein the browser sends a URL to the
dynamic page generator indicating the template to display.
37. The merchant system of claim 35, wherein the dynamic page generator
sends to the browser HTML resulting from the processing of the template.
38. The merchant system of claim 29, further comprising a browser in
communication with the dynamic page generator.
39. The merchant system of claim 38, wherein the browser sends a URL to the
dynamic page generator indicating the template to display.
40. The merchant system of claim 38, wherein the dynamic page generator
sends to the browser HTML resulting from the processing of the template.
41. The merchant system of claim 38, further comprising an action manager
in communication with the browser, the order processing unit and the
database module.
42. The merchant system of claim 41, wherein the browser sends a URL to the
action manager indicating an action to perform.
43. The merchant system of claim 41, wherein the action manager redirects
the browser to display a selected page.
44. The merchant system of claim 41, wherein the action manager retrieves
data from the database.
45. The merchant system of claim 41, wherein the action manager saves data
to the database.
46. The merchant system of claim 41, wherein the action manager creates a
new order having an order blackboard and posts a key-value pair to the
order blackboard.
47. The merchant system of claim 41, wherein the action manager retrieves
the order having an order blackboard from the database module and posts a
key-value pair to the order blackboard.
48. The merchant system of claim 41, wherein the action manager retrieves
the order having an item blackboard from the database module and posts a
key-value pair to the item blackboard.
49. The merchant system of claim 29, wherein the order processing module
comprises,
an order pipeline having multiple stages, wherein each stage includes a
plurality of components configured to process the order, and
an order engine to determine which stages of the order pipeline to execute
in order to process the order.
50. The merchant system of claim 49, wherein the sequence of execution of
the stages in the order pipeline is configurable.
51. The merchant system of claim 49, wherein the components within each
stage are configurable.
52. The merchant system of claim 29, wherein the order comprises an order
blackboard having key-value pairs.
53. The merchant system of claim 52, wherein the order further comprises an
item blackboard having key-value pairs.
54. The merchant system of claim 53, wherein the component posts a portion
of the data retrieved from the database to the item blackboard in a
key-value pair.
55. The merchant system of claim 52, wherein the dynamic page generator
extracts the information from the order using a key from a key-value pair.
56. The merchant system of claim 52, wherein the component posts a portion
of the data retrieved from the database to the order blackboard in a
key-value pair.
57. The merchant system of claim 29, wherein the database is defined by a
single schema.
58. The merchant system of claim 29, wherein the database is defined by a
plurality of schemas.
59. The merchant system of claim 29, wherein the query is a SQL query.
60. The merchant system of claim 29, wherein the component request is a
component query name.
61. The merchant system of claim 60, wherein the database module uses the
component query name to retrieve a corresponding SQL query.
62. The merchant system of claim 29, wherein the component request is
stored in the database.
63. The merchant system of claim 29, wherein the database module returns an
access object having the page data to the dynamic page generator.
64. The merchant system of claim 29, wherein the database module returns an
access object having the order data to the dynamic page generator. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to a shopping and merchandising system and,
more specifically, to a shopping and merchandising system for online
networks, such as the World Wide Web portion of the Internet.
2. Description of the Related Technology
The World Wide Web (Web) is part of a global computer network known as the
Internet. Scientists and academicians initially developed and used the
Internet to share information and collaborate. The Web functions as an
object based multimedia system. It allows for the creation, storage and
delivery of multimedia objects. Recently, on-line service providers, such
as Microsoft Network, CompuServe, Prodigy and America Online, have linked
to the Web. This enables their customers to access a variety of products
and services available from independent content providers and other Web
users. For example, a typical customer can access electronic mail, news
services, travel services and online stores and malls on the Web.
The global penetration of the Internet provides merchants with the
capability to merchandise their products to substantial shopping audiences
using an online merchant system. Online merchant systems enable merchants
to creatively display and describe their products to shoppers using Web
pages. Merchants can layout and display Web pages having content, such as
text, pictures, sound and video, using HyperText Markup Language (HTML).
Web shoppers, in turn, access a merchant's Web page using a browser, such
as Microsoft Explorer or Netscape Navigator, installed on a client
connected to the Web through an online service provider, such as the
Microsoft Network or America OnLine. The browser interprets the HTML to
format and display the merchant's page for the shopper. The online
merchant system likewise enables shoppers to browse through a merchant's
store to identify products of interest, to obtain specific product
information and to electronically purchase products after reviewing
product information.
To promote their products, merchants often discount their products or have
sales. Merchants can use a wide variety of discounting schemes to promote
their products. For example, a merchant may offer volume discounts, such
as buy two and get one free, or membership discounts where, for example
frequent shoppers and AAA members get 10% off, or cross-sell incentives
offering, for example, 50% off socks with a shoe purchase. Existing online
merchant systems, such as Netscape Merchant System, support only
date-based sale pricing, such as 20% off all shirts during the month of
May. To enter the online shopping market, merchants desire an online
merchant system that allows for a significantly wider variety of product
discounting and sales schemes.
Similarly, existing online merchant systems, such as eShop 1.0, implement a
generic purchase transaction model to capture the most common variations
of a purchasing transaction. To complete a purchase transaction, a
merchant sums up the prices of items, deducts applicable discounts, adds
sales tax, receives payment and delivers the purchased items to the
shopper. Although these basic steps are the same for many merchants,
electronic commerce in a global environment imposes many variations to
this basic model. For example, merchants generally have to include a
shipping and handling fee for their online shoppers. Merchants may
likewise have to include special taxes or fees, such as value added taxes
or use fees, applicable only in certain countries or economic unions. In
addition, merchants may issue their online customers private label credit
or charge cards. Customer payment using these private label cards requires
authorization through private networks, instead of commercial banking
networks. Thus, it becomes apparent that to enter the online shopping
market, merchants require an online merchant system that provides for
substantial variations in the purchase transaction model.
Lastly, merchants typically store product data, such as product
descriptions, prices and pictures, in relational databases. Online
merchant systems, therefore, have to interface with merchant databases to
access and display product information. Databases require a consistent
structure, termed a schema, to organize and manage the information. In a
relational database, the schema is a collection of tables. For each table,
there is generally one schema to which it belongs. In an implementation of
a relational database, a relation corresponds to a table having rows,
where each row corresponds to a tuple, and columns, where each column
corresponds to an attribute. From a practical standpoint, rows represent
records of related data and columns identify individual data elements. A
table defining a retailer's product line may, for example, have product
names, product numbers (e.g., SKUs) and prices. Each row of this table
holds data for a single product and each column holds a single attribute,
such as a product name. The order in which the rows and columns appear in
a table has no significance. In a relational database, one can add a new
column to a table without having to modify older applications that access
other columns in the table. Relational databases thus provide flexibility
to accommodate changing needs. Once the schema is designed, a tool, known
as a database management system (DBMS), is used to build the database and
to operate on data within the database. The DBMS stores, retrieves and
modifies data associated with the database and, to the extent possible,
protects data from corruption and unauthorized access. Because each
merchant organizes its product information differently, there is a large
installed base of databases having a wide variety of database schemas for
product information.
Available online merchant systems, such as eShop 1.0 and Netscape Merchant
System, require merchants to organize their product information according
to a predefined database schema. Hence, to use such systems, a merchant
must either convert its existing databases to this predefined schema or
the merchant must create a new database having the predefined schema. For
many merchants, conversion of their existing databases is not feasible.
For example, the merchant may have several hundred thousand product
entries located in different remote databases accessed by legacy
applications, such as a point of sale system or an inventory control
system, specifically designed to interact with these different databases.
If the merchant converted these databases to the predefined schemas, their
legacy applications would no longer function properly. To protect their
investment in legacy applications, merchants may have to copy their
product data into a redundant database having the predefined schema.
Otherwise, merchants may have to incur substantial costs to rewrite their
legacy applications to support the predefined schema of the online
merchant system. For these reasons, it is not cost-effective for a
merchant to use applications requiring a predefined schema for existing
relational databases. To enter the online shopping market, merchants
require an online merchant system that will cooperatively function with
existing database systems having a wide variety of schemas.
SUMMARY OF THE INVENTION
The present invention enables merchants to enter the online shopping market
by providing a system and architecture to obtain and perform a large set
of processing operations and computations on a rich set of dynamically
generated information from a wide variety of data sources. In contrast to
the rigid display formats and fixed database schemas of existing merchant
systems, the present invention provides a dynamic page generator that
permits the display of dynamically generated data in any format or
presentation desired by the merchant. The present invention provides this
flexibility through the use of display templates and a database schema
independent query mechanism. In this manner, a merchant changes the
display formats by modifying a template instead of revising the system
modules producing the display formats. Similarly, a merchant handles
database modifications by modifying the queries stored in the database
instead of modifying the system modules performing the database queries.
In addition, the present invention enables a merchant to effectively
promote their products. In contrast to existing merchant systems that
separate display operations from processing operations, the present
invention provides the capability to generate product information pages
dynamically during order processing. Thus, a shopper using the present
invention can view special promotion information during order processing
operations. Similarly, the present invention uses the same calculations to
display product information and to process an order, so a shopper is
guaranteed consistency and reliability in the information used to make
purchasing decisions. Moreover, the present invention provides a
configurable order processing module that enables merchants to add
components to the merchant system they need to address the particular
requirements of their purchase transactions, such as special value added
taxes or use fees.
Lastly, the present invention enables merchants to protect their
investments in existing databases by providing a database schema
independent query mechanism. The present invention provides for the
storage of database queries in the database to isolate applications that
access the database from differences in schemas and data sublanguages.
Similarly, because of the database schema independence, the order
processing module of the present invention does not require modification
for each change to the database.
One aspect of the present invention includes a merchant system comprising a
dynamic page generator to compose a page for display by processing a
template having a database request for page data, and a database module,
in communication with a database and with the dynamic page generator, to
retrieve page data from the database and to communicate the page data to
the dynamic page generator, wherein the retrieved page data corresponds to
the database request and wherein the database module retrieves the data in
a manner that is independent of any database schema.
Another aspect of the present invention includes a merchant system
comprising an order processing module, a plurality of components
associated with the order processing module so as to create and process an
order, wherein a component makes a request for order data, and a database
module, in communication with a database and with the order processing
module, to retrieve order data from the database and to communicate the
order data to the order processing module, wherein the retrieved order
data corresponds to the request and wherein the database module retrieves
the data in a manner that is independent of any database schema.
Yet another aspect of the present invention includes a merchant system
comprising an order processing module having a plurality of components
configured to create and process an order, and a dynamic page generator,
in communication with the order processing module, to compose a page for
display by processing a template having a request for information from the
order.
Lastly, another aspect of the present invention includes a merchant system
comprising an order processing module having a plurality of components
configured to create and process an order, wherein a component makes a
request for order data, a dynamic page generator, in communication with
the order processing module, to compose a page for display by processing a
template having a request for information from the order and a database
request for page data, and a database module, in communication with a
database and with the order processing module and with the dynamic page
generator, to retrieve order data from the database and to communicate the
order data to the order processing module and to retrieve page data from
the database and to communicate the page data to the dynamic page
generator, wherein the retrieved order data corresponds to the component
request, the retrieved page data corresponds to the database request and
the database module retrieves the order and page data in a manner that is
independent of any database schema.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram illustrating an example of an online network for
practicing the present invention.
FIG. 2 is a block diagram illustrating the merchant system of the present
invention.
FIG. 3a is a block diagram illustrating the structure of a preferred
embodiment of the dynamic page generator of FIG. 2.
FIG. 3b is a block diagram illustrating the structure of another preferred
embodiment of the dynamic page generator of FIG. 2.
FIG. 4 illustrates the correspondence between -a syntax tree and a template
used by the dynamic page generator of FIG. 3.
FIG. 5 illustrates the data flow for the database module and the dynamic
page generator shown in FIG. 2.
FIG. 6 shows a portion of a template, a product table and an access object
which illustrate an example of the data flow of FIG. 5 used to produce a
HTML table for display.
FIG. 7 shows a revised portion of a template, a revised product table and
an access object which illustrate an example of the data flow of FIG. 5
used to produce a HTML table for display.
FIG. 8 illustrates the data flow for the database module and the order
processing module shown in FIG. 2.
FIG. 9 shows an order, an access object and an annotated order which
illustrate an example of the data flow of FIG. 8.
FIG. 10 illustrates the data flow for the dynamic page generator and the
order processing module of FIG. 2.
FIG. 11 shows a template portion, an order, a first annotated order, a
second annotated order and a page portion displayed on a consumer browser
which illustrate an example of the data flow of FIG. 10.
FIG. 12 illustrates the data flow for the dynamic page generator, the order
processing module and the database module of FIG. 2.
FIG. 13a shows a template portion, an order and an access object which
illustrate an example of the data flow of FIG. 12.
FIG. 13b shows a cross sell table, an access object having no data, an
access object having one data row and a page portion which illustrate the
data flow of FIG. 12.
FIG. 14 illustrates the architecture of the merchant system of FIG. 2.
FIG. 15a shows pseudo code for an action, an order and an annotated order
which illustrate the data flow of FIG. 14.
FIG. 15b shows a template portion, an order, an access object and a page
portion which illustrate the data flow of FIG. 14.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
For convenience, the description comprises the following sections:
I. Merchant System Overview
II. Templates, Directives and Actions
III. The Dynamic Page Generator
IV. The Order Processing Module
V. The Database Module
VI. Merchant System Data Flows and Architecture
The following detailed description of the preferred embodiments presents a
description of certain specific embodiments to assist in understanding the
claims. However, one may practice the present invention in a multitude of
different embodiments as defined and covered by the claims.
I. Merchant System Overview
FIG. 1 is an example of an online network for practicing the present
invention. In particular, a client 100 communicates with a server 102 by
means of a network 104, such as the World Wide Web portion of the
Internet. The server 102 may include a gateway to a Wide Area Network
(WAN) 106 having a plurality of Local Area Networks (LANs) 108. A browser
101, residing on the client 100, displays a store home page 103 retrieved
from the World Wide Web on a viewing device 105. A user can view this page
by entering, or selecting a link to, a Universal Resource Locator (URL),
such as "www.store.com", in a browser program, such as Microsoft Explorer
or Netscape Navigator, executing on the user's computer. Note that an
online merchant system may reside in a server or in a combination of
servers comprising the WAN 106. Similarly, the client 100 may access the
network 104 through a wireless connection, such as the infrared link 107
or the satellite dish 109.
Focusing now on the network 104, the presently preferred network is the
Internet. The structure of the Internet is well known to those of ordinary
skill in the art and includes a network backbone with networks branching
from the backbone. These branches, in turn, have networks branching from
them, and so on. For a more detailed description of the structure and
operation of the Internet, please refer to "The Internet Complete
Reference," by Harley Hahn and Rick Stout, published by McGraw-Hill, 1994.
However, one may practice the present invention on a wide variety of
communication networks. For example, the network 104 can include
interactive television networks, telephone networks, wireless data
transmission systems, two-way cable systems, customized computer networks,
interactive kiosk networks and automatic teller machine networks.
In addition, the network 104 includes online service providers, such as
Microsoft Network, America OnLine, Prodigy and CompuServe. In a preferred
embodiment, the online service provider is a computer system which
provides Internet access to a client 100. Customers pay monthly access
fees to the online service providers for help services and access to the
Internet through local telephone connections. Of course, the online
service providers are optional, and in some cases, the clients 100 may
have direct access to the Internet 104. For example, the client 100 may be
connected to a local area network 108 which in turn is directly connected
to the Internet 104.
Focusing now on the client 100, the client is a general purpose computer.
In a preferred embodiment, the client 100 is a conventional personal
computer equipped with an operating system supporting Internet
communication protocols, such as Microsoft Windows 95 and Microsoft
Windows NT, a browser, such as Microsoft Explorer or Netscape Navigator,
to access the Merchant System and a conventional modem for access to the
Internet 104. In other embodiments, the client 100 could, for example, be
a computer workstation, a local area network of computers, an interactive
television, an interactive kiosk, a personal digital assistant, an
interactive wireless communications device or the like which can interact
with the network. While the operating systems may differ in such systems,
they will continue to provide the appropriate communications protocols
needed to establish communication links with the network 104.
Referring now to FIG. 2, a merchant system 120 communicates with a database
121, a consumer browser 122, a merchant browser 123, and a network 124. In
a preferred embodiment, the database 121 comprises data stored locally in
one or more storage devices, such as a magnetic disk drive or an optical
disk drive. In another preferred embodiment, the database 121 comprises
data distributed across a LAN 108 (FIG. 1) or a WAN 106 (FIG. 1). The
database 121 may include query data, product information, order
information, shopper information, store information, receipts and customer
feedback data. A shopper uses a consumer browser 122, such as Microsoft
Explorer or Netscape Navigator, communicating with a network 124, such as
the World Wide Web portion of the Internet, to access a merchant's online
store using the merchant system 120. Similarly, a merchant uses a merchant
browser 123, such as Microsoft Explorer or Netscape Navigator,
communicating with the merchant system 120 directly or through a network
124 to manage its online store. There are, of course, typically, a
multiplicity of the browsers 122, 123 operating on the network 124 at any
time.
The merchant system 120 includes a dynamic page generator 125, HTML
structures 126, a database module 127, an action manager 128, and an order
processing module 129 having an order engine 130, an order pipeline 131,
and components 132 for various purposes, such as calculating sales tax and
shipping/handling fees. The dynamic page generator 125 uses HTML
structures 126 and communicates with the database module 127 to access
data from the database 121 to format and display on the consumer browser
122 and the merchant browser 123. The order processing module 129
communicates with the dynamic page generator 125 and the database module
127 to create Web pages having product information for display on a
consumer browser 122. Similarly, the order processing module 129
communicates with the action manager 128 and the database module 127 as
needed to execute purchasing transactions for the merchant's online store.
Lastly, the order processing module 129 includes components 132, that is,
a plurality of application programs to enhance and administer the merchant
system 120. For example, the components 132 can include applications to
interface with commercial banking systems, to calculate shipping/handling,
to determine applicable taxes and to post payments to various bank
accounts. The data communication internal to the merchant system 120 is
shown in FIG. 14.
II. Templates, Directives and Actions
The following section discusses how the merchant system 120 uses templates,
directives and actions to dynamically respond to customer requests.
Templates, which include directives and actions, are located in the HTML
structures 126. In response to browser requests, the dynamic page
generator 125 composes HTML pages dynamically from templates stored in the
HTML structures 126. In a preferred embodiment, the shopper invokes the
dynamic page generator 125 by selecting a URL having the form:
"http://server.sub.-- name/environment.security/pgen/store.sub.--
name/shopper.sub.-- id/template.htm1;arg1=value 1;arg2=value2 . . .".
The merchant system 120 interprets the URL by analyzing its constituents to
identify a template and its arguments. Thus, the "http://" portion of the
URL specifies use of the HyperText Transfer Protocol (HTTP) for
communication across the Internet. The "server.sub.-- name" portion of the
URL specifies the name of the server having the router to the merchant's
store. The "environment" portion of the URL describes the version of the
merchant system used. For example, "prd" denotes a production version and
"dev" denotes a development version of the merchant system 120. The
"security" portion of the URL indicates whether the connection to the
server is secure or insecure. Secure connections are specified with "s"
and insecure with "i". The "pgen" portion invokes the dynamic page
generator 125. The "store.sub.-- name" portion indicates the name of the
store, in addition to the directories where the template files reside. The
"shopper.sub.-- id" portion specifies the unique shopper identifier.
Lastly, the "template.htm1" portion is the name of the HTML template to
use to generate a page in response to the shopper's request and the
"arg1=value1; arg2=value2 . . ." portion provides arguments for use by the
dynamic page generator 125. Note that the specific URL format described
above is for explanatory purposes only. Thus, other URL formats and
locator techniques are included in the present invention.
A template defines the appearance of a page, such as the store home page
103 (FIG. 1), a product page or a customer information page. A portion of
an example template is shown as 200 in FIG. 6. Templates include HTML and
directives, which are keywords to the dynamic page generator 125
specifying how to build a page for display, such as what data to insert
into the page and what queries to run against the database to obtain data
for display on the page. A template may also include a wide variety of
content, such as ActiveX controls, Visual Basic Scripts, forms, images,
video and sound.
In a preferred embodiment, the merchant system 120 includes several
predefined templates in the HTML structures 126. For example, a
welcome.html page serves as a logon page for consumers. Similarly, a
register.html page provides a form for a new consumer to enter
registration information. An update.html page likewise provides a form for
consumers to update their registration information. In addition, a
mailn.html page presents an entrance to the store similar to a store
lobby. The main.html page may include an index to store departments as
well as links to important store information. Moreover, a dept.html page
presents a list of store departments and a product.html page presents
product information, such as an image and textual description. Lastly, a
find.htrnl page, typically accessible from a navigation bar, provides a
product search capability.
To support consumer purchases, the merchant system 120 includes a
basket.html page having an interface that allows shoppers to manipulate
items in their shopping baskets, the online equivalent of a shopping cart
or handheld basket. Similarly, an orderfrm.html page provides an order
form display for shoppers to select shipping methods and to provide
delivery instructions for the order. A purchase.html page presents the
order total and provides a form for entry of credit card payment
information. To confirm purchases, a confirmed.html page presents a
message confirming completion of the purchase transaction. Similarly, a
receipt.html page presents a summary of the order in the form of an online
checkout receipt. In addition, a detail.html page presents a detailed line
item receipt for items ordered. Lastly, a receipts.html page presents
receipts from all orders placed by a particular shopper.
Directives may include value references for evaluation during page
generation. A value reference provides for evaluation of an expression,
such as a string or function name, to a value prior to use in a page. For
example, if the value reference is a number, say the cost of a product, it
evaluates to the numerical value of the number. If the value reference is
quoted text, such as "Glove", it likewise evaluates to the text within the
quotes, or Glove. Similarly, if the value reference is a known function,
say a function to calculate sales tax, the function evaluates to the value
resulting from execution of the function. Note that arguments to functions
are themselves value references and may be a constant, a parameter, a
variable or even another function. Thus, value references are useful for
performing mathematical calculations, retrieving data from database query
results, storing and retrieving temporary variables, retrieving arguments
and variables passed to a template and accessing shopper or order
information.
Directives in a HTML template are set off by square brackets and may
include value references as arguments. Thus, directives take the form
›directive args!, where directive is the name of the directive and args
are arguments for the directive. For examples of directives, see the
fetchrows 202, eachrow 206, value 210 and money 212 directives of FIG. 6.
Using value references, the dynamic page generator 125 evaluates arguments
of a directive before running the directive. Thus, value references may be
used as variables for a directive. Directives affect the dynamic page
generator 125 in three ways. First, a directive may generate text, such as
HTML, formatted text and the contents of another file, for inclusion into
the page. Second, the directive may perform a conditional test, similar to
the standard if-then-else statement in many computer programming
languages, for the inclusion or exclusion of text. Lastly, the directive
may produce new value references for later use in page generation.
The merchant system 120 includes several types of directives. For example,
value display directives generate text for inclusion on a HTML page.
Typically, value display directives serve to format and display values,
such as currency, dates, time and text. See directives 210, 212 in FIG. 6,
for instance. Similarly, as noted above, conditional directives may
include or exclude text in a page depending on the truth of a conditional
statement. In addition, navigational directives result in selectable links
or regions in a Web page that can take a shopper to another generated page
or template. The merchant system 120 also includes database access
directives. A database access directive typically selects and executes a
database query to obtain query results having desired information. The
dynamic page generator 125 then manipulates the query results to format
and display the desired information. See directive 202 in FIG. 6, for
instance. Similarly, order, product and receipt directives retrieve
orders, receipts, product or shopper data for use in displaying order
information. Lastly, convenience directives produce new value references
for later use and generally facilitate page design and development. For
example, convenience directives can include files in real-time, set
variables, affect the status of a checkbox and provide comments to a
template that are removed during page generation. Detailed information on
the syntax of all directives supported by the merchant system 120 is found
in the Microsoft Merchant Server Documentation, hereby incorporated by
reference.
To perform various system operations, the merchant system 120 uses actions.
For example, actions can add an item to an order form, clear an order
from, initiate a purchase or insert and delete data from the database. An
action is a routine to perform specific functions. Actions have return
values that control the display of results to a shopper. Similarly,
actions take arguments that control their behavior. Some actions generate
errors when they receive incorrect arguments while other actions process
and validate the arguments they receive. Many action arguments have
default values to use when no values are specified. After execution of an
action and its resulting system operation, the action may cause display of
a HTML page having information, such as confirmation information or error
information resulting from execution of the action, or the action may
redirect the shopper to a new HTML page. Actions are called when a shopper
clicks on a URL, generated by a directive, having the form:
"http://server.sub.-- name/environment.security/xt/store.sub.--
name/shopper.sub.-- id/module.action; arg1=value1; arg2=value2 . . .".
The action manager 128 interprets the URL by analyzing its constituents to
extract the action and its arguments for execution. Thus, the "http://"
portion of the URL specifies use of HTTP for communication across the
Internet. The "server.sub.-- name" portion of the URL specifies the name
of the server having the router to the merchant's electronic store. The
"environment" portion of the URL describes the version of the merchant
system used. For exam | | |