`Blinn et al.
`
`[19]
`
`[54] ELECTRONIC SHOPPING AND
`MERCHANDISING SYSTEM
`
`[75] Inventors: Arnold Blinn, Bellevue, Wash.;
`Michael Ari Cohen, San Francisco,
`Calif; Michael Lorton; Gregory J.
`Stein, both of Redmond, Wash.
`
`[73] Assignee: Microsoft Corporation, Redmond,
`Wash.
`
`[21] Appl. No.: 08/732,012
`[22]
`Filed:
`Oct. 16, 1996
`
`[51]
`
`Int. Cl.6 .......................... .. G06F 17/60; G06F 13/00;
`G06F 15/16
`[52] US. Cl. ................................. .. 705/26; 705/27; 707/3;
`707/104; 707/501; 707/513
`[58] Field of Search ................................ .. 705/26, 27, 30,
`705/35, 39; 707/1, 2, 3, 4, 5, 6, 10, 100,
`102, 103, 104, 501, 509, 513; 395/200.31,
`200.33, 200.47, 200.49
`
`[56]
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`5,708,825
`5,754,772
`5,761,656
`5,802,518
`
`1/1998 Sotomayor ............................ .. 395/762
`5/1998 Leaf ............... ..
`395/20033
`6/1998 Ben-Shachar
`707/4
`9/1998 Karaev et a1. ............................ .. 707/9
`
`OTHER PUBLICATIONS
`
`Andraka; “Put Your Database on the Web”; Data Based
`Advisor,‘ v14 n6; p. 12(3); Jun. 1996; Dialog: File 275,
`Acc#01941476.
`Vaughan—Nichols; “Unleashing Databases on the Web—
`True Wealth and PoWer Belong to Those Who Control
`Information Access”; NetGuia'e, 1996; n307; p. 111; Jul. 1,
`1996; Dialog: File 647, Acc#01097465.
`
`US005897622A
`Patent Number:
`Date of Patent:
`
`[11]
`[45]
`
`5,897,622
`Apr. 27, 1999
`
`Olympia; “Cold Fusion 1.5; Autobahn”; DBMS,‘ v9 n8; p.
`33(4); Jul. 1996; Dialog: File 275, Acc#01955956.
`eShop Technology overview, Internet address: http://WWW.e
`shop.com/corp/technology.html. This reference Was copied
`from the Internet and printed in or about May 1996; the
`pages are dated Jan. 1, 1996.
`eShop In The NeWs—Recent Press Release, Internet
`address: http://WWW.eshop.com/corp/press.html. This refer
`ence Was copied from the Internet and printed in or about
`May 1996; the pages are dated Jan. 1, 1996. Dates are listed
`for press releases of Nov. 7, 1995, Dec. 7, 1995 and Jan. 23,
`1996.
`eShopTM Technology Merchant Manual, Feb. 21, 1996. This
`document contains proprietary material subject to M.P.E.P. §
`724.
`
`Primary Examiner—Stephen R. Tkacs
`Attorney, Agent, or Firm—Lee & Hayes, PLLC
`
`[57]
`
`ABSTRACT
`
`The present invention provides a merchant system for online
`shopping and merchandising. The merchant system archi
`tecture provides great ?exibility for a merchant to adapt the
`merchant system to their existing business practices, pro
`motions and databases. The merchant system includes a
`dynamic page generator, a con?gurable order processing
`module and a database module capable of retrieving data
`from the database Without regard to its schema. The present
`invention enables merchants to create electronic orders
`Which are easily adaptable for different sales situations. The
`order processing module includes multiple con?gurable
`stages to process a merchant’s electronic orders. The mer
`chant system is capable of generating pages dynamically
`using templates having embedded directives. The database
`module and the dynamic page generator alloW merchants to
`modify their databases and page displays Without having to
`reengineer the merchant system.
`
`64 Claims, 18 Drawing Sheets
`
`/2/
`
`DATABASE
`
`QUERY
`DATA
`
`UERY
`0
`/27\
`DATABASE
`MODULE
`
`QUERY
`NAME
`
`ACCESS
`OBJECT
`
`ACCESS
`OBJECT
`
`QUERY
`NAME
`
`125
`
`I25
`
`HTML
`STRUCTURES
`
`TEMPLATE
`
`DYNAMIC
`PAGE
`GENERATOR
`
`REQUEST
`
`ORDER
`
`ORDER
`PROCESSING
`MODULE
`
`/29
`
`URL
`
`HTML
`
`/22, I23
`
`BROWSER
`
` 1
`
`Petitioners' Exhibit 1038, Page
`
`
`
`U.S. Patent
`
`Apr. 27, 1999
`
`Sheet 1 of 18
`
`5,897,622
`
`mmoimz
`
`205E228
`
`
`
`2%; 5m? 11111 iqmmm--
`
`QR 3
`
`Mm OBHmZ
`
`mmE/mmm
`
`_ _ _ _ _ _ _ _ _ _ _
`
`_ _ _ _ _ _ _ _
`
`\
`
`\
`\
`
`
`
` _ _ mm .l. N9 \ ,
`
`, " 55 M\
`555% y E \
`A v23
`
`\ \\
`
`@HPDQEOO \ 6Q
`
`“5502
`
` 2
`
`Petitioners' Exhibit 1038, Page
`
`
`
`U.S. Patent
`
`Apr. 27, 1999
`
`Sheet 2 of 18
`
`5,897,622
`
`NEQ
`
`mmmgomm
`
`mminmzoo
`
`KMQ
`
` 3
`
`Petitioners' Exhibit 1038, Page
`
`
`
`U.S. Patent
`
`Apr. 27, 1999
`
`Sheet 3 of 18
`
`5,897,622
`
`IZ5\
`DYNAMIC PAGE GENERATOR
`
`HTML
`STRUCTURES
`
`PAGE
`" PROCESSOR
`
`’ BROWSER
`
`QUERY
`MODULE
`
`1
`
`DATABASE
`MODULE
`
`I761 .74
`
` 4
`
`Petitioners' Exhibit 1038, Page
`
`
`
`U.S. Patent
`
`Apr. 27, 1999
`
`Sheet 4 of 18
`
`5,897,622
`
`/25\
`DYNAMIC PAGE GENERATOR
`I46
`_\___________
`rMT-IMORY
`
`PAGE
`PROCESSOR
`
`* BROWSER
`
`I44 FA_Y___1
`
`TEMPLATE l
`l
`PARSER
`I
`l____ ___l
`
`T
`
`l
`I
`1
`HTML
`STRUCTURES
`
`QUERY
`MODULE
`
`DATABASE
`MODULE
`
`/761 .319
`
` 5
`
`Petitioners' Exhibit 1038, Page
`
`
`
`U.S. Patent
`
`Apr. 27, 1999
`
`Sheet 5 of 18
`
`5,897,622
`
`I52 —
`
`I54 -
`
`I55 —
`
`\— [fetchrows products "get—products"]
`\—[eachrow product]
`\Product [value product.sku] is [value product.name]<BR>
`/55‘\— [/eachrow]
`
`I 70
`
`I 50
`
`[62
`
`(PROG)
`
`/ I72
`__ (FETCHROWS, "product", "get—products".())
`
`— (EACHROW, "product", PROG)
`
`-~ — — — — — — — —
`
`[/82 |
`— "\nProduct" 4~\I6’6‘
`— (VALUE, (ATTR, "product", "sku"))
`
`_ ll is" &
`
`[/54
`— (VALUE. (ATTR, "product", "name"))
`
`
`
`—— "<BR>\n" L _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _I
`
`I761 4
`
` 6
`
`Petitioners' Exhibit 1038, Page
`
`
`
`U.S. Patent
`
`Apr. 27, 1999
`
`Sheet 6 of 18
`
`5,897,622
`
`DATABASE
`
`QUERY
`
`QUERY
`DATA
`
`DATABASE
`MODULE
`
`I26 \
`
`HTML
`STRUCTURES
`
`ACCESS
`OBJECT
`
`QUERY
`NAME
`I25
`\
`DYNAMIC
`PAGE
`GENERATOR
`
`TEMPLATE
`
`URL
`I22, I2J\
`
`HTML
`
`BROWSER
`
`I765
`
` 7
`
`Petitioners' Exhibit 1038, Page
`
`
`
`U.S. Patent
`
`Apr. 27, 1999
`
`Sheet 7 0f 18
`
`5,897,622
`
`Z02 —
`
`\- [fetchrows product "get—product"]
`
`Z04—
`\ <tr><th>Item<th>Price>
`Z05_\— [eachrow product]
`
`Z/0-\_ <td>[value product.sku]
`272
`\— <td>[money product.list_price]
`205_\- [/eachrow]
`
`2Z0-\
`Product_ table
`SKU
`GLOVE
`HAT
`
`List_price
`1225
`1680
`
`Sku
`List_price
`
`String
`Number
`
`GLOVE
`
`1225
`
`HAT
`
`1680
`
`232
`/
`
`[2J4
`
`[236‘
`
`2J0
`/
`
`Z40-\
`
`Item
`
`Price
`
`GLOVE
`
`313 1 2.25
`
`HAT
`
`1H? 1 6.80
`
`/761 6'
`
` 8
`
`Petitioners' Exhibit 1038, Page
`
`
`
`U.S. Patent
`
`Apr. 27, 1999
`
`Sheet 8 of 18
`
`5,897,622
`
`Z50\ _
`Rev1sed__product_table
`SKU
`LisLprice
`GLOVE
`1225
`HAT
`1680
`
`252
`
`/
`Description
`Nice leather gloves
`Woolly hat w/pom-pom
`
`Sku
`List_price
`Description
`
`String
`Number
`String
`
`Z50
`[252 /
`
`GLOVE
`
`1225
`
`Nice leather gloves
`
`HAT
`
`1680
`
`Woolly hat w/pom-pom
`
`Z70\
`[fetchrows product "get-product’]
`<table>
`<tr><th>Item<th>Price> <th>DescriptionN
`Z74
`_\— [eachrow product]
`272
`<tr>
`Z73_\~ <td>[value product.sku]
`Z80_\— <td>[money product.list_price] Z52
`<td>[value productdescriptio?/
`276~\— [/eachrow]
`234 \\
`
`Item
`
`Price
`
`Description
`
`GLOVE
`
`$12.25 Nice leather gloves
`
`HAT
`
`31516.80 Woolly hot w/pom—pom
`
` 9
`
`Petitioners' Exhibit 1038, Page
`
`
`
`U.S. Patent
`
`Apr. 27, 1999
`
`Sheet 9 of 18
`
`5,897,622
`
`DATABASE
`
`QUERY
`
`QUERY
`DATA
`
`DATABASE
`MODULE
`
`QUERY
`NAME
`
`ACCESS
`OBJECT
`
`ORDER
`PROCESSING
`MODULE
`
`PURCHASE
`ORDER
`
`1‘7616’
`
` 10
`
`Petitioners' Exhibit 1038, Page
`
`
`
`U.S. Patent
`
`Apr. 27, 1999
`
`Sheet 10 of 18
`
`5,897,622
`
`Name
`CC_Number
`
`John Doe
`4111 1111 1111 1111
`
`.302
`/ 30g
`/
`
`SKU
`
`GLOVE
`
`[J04
`
`3/6 \
`\I'
`SKU
`List_price
`
`String
`Number
`
`3/4
`/
`
`rJ/Z
`
`3/0
`/
`
`GLOVE
`
`1225
`
`Name
`CC_Number
`
`John Doe
`4111 1111 1111 1111
`
`502
`/ 3Z0
`/
`
`GLOVE
`SKU
`GLOVE
`product_SKU
`product_List_price 1225
`
`r322
`
` 11
`
`Petitioners' Exhibit 1038, Page
`
`
`
`U.S. Patent
`
`Apr. 27, 1999
`
`Sheet 11 of 18
`
`5,897,622
`
`/Z5\
`HTML
`STRUCTURES
`
`TEMPLATE
`
`/Z.9\
`/Z.5\
`DYNAMIC M ORDER
`PAGE
`PROCESSING
`GENERATOR
`MODULE
`
`ORDER
`
`URL
`
`HTML
`
`I22, /Z.3'\
`
`BROWSER
`
`/761 I0
`
` 12
`
`Petitioners' Exhibit 1038, Page
`
`
`
`U.S. Patent
`
`Apr. 27, 1999
`
`Sheet 12 of 18
`
`5,897,622
`
`J40\
`J42_\— [fetchproduct product GLOVE]
`J44_\- Current price is: [money product.iadjust_currentprice]
`J45
`<p>
`_\— Normal price is: [money product.product_List_price]
`
`/
`SKU
`
`354
`A
`\”\\
`GLOVE
`
`J50
`J52 /
`/
`
`J50 jay
`/
`
`.372 j74
`/
`
`J30
`
`GLOVE
`SKU
`J56
`GLOVE
`§\, product_SKU
`\JproducLLisLprice 1225
`
`J70
`
`GLOVE
`SKU
`GLOVE
`product_SKU
`1225
`product._List._price
`\J iadjust_currentprice 1102
`
`Current price is: $11.02
`
`Normal price is: $12.25
`
`/76I//
`
` 13
`
`Petitioners' Exhibit 1038, Page
`
`
`
`US. Patent
`
`Apr. 27, 1999
`
`Sheet13 0f18
`
`5,897,622
`
`mm<m<h<o
`
`\NK
`
`mm<m<k<o
`
`mADoOE
`
`>mm30
`
`mmmoo<
`
`
`
`m2<zPOmwmo
`
`mmmoo<
`
`homsmo
`
`w2<z
`
`>mm30
`
`mmomo
`
`025mm00mm
`
`“43002
`
`kmmDOmm
`
`22<z>o
`
`mo<m
`
`moh<mm2mo
`
`wh<4a2mk
`
`42h:
`
`mmmnhoamhm
`
`mNKhNN
`
`$NN
`
`N\”QR
`
`mmMBOmm
`
`MNKmMQ
`
`Petitioners' Exhibit 1038, Page 14
`
` 14
`
`Petitioners' Exhibit 1038, Page
`
`
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Apr. 27, 1999
`
`Sheet 14 of 18
`
`5,897,622
`
`400\
`40Z\\[fetchitems orderitems order.items]
`4/0
`4044\[eachrow orderitems]
`405‘\[fetchrows crossinfo cross orderitems.sku]
`4/9
`'?z‘\~[if crossinfo.count>0]
`4/6’
`4,4\\-The item is a [value orderitems.sku] but try a [value crossinfoxelated].
`‘?z‘\[elsel
`/4/7
`4,5‘\The item is a [value orderitemssku] and has no related products.
`"’\[/if]
`405‘\[/eachrow]
`
`Name
`CC_Number
`
`John Doe
`4111 1111 1111 1111
`
`422
`/ 4Z0
`/
`
`GLOVE
`SKU
`42;
`GLOVE
`4J0:\- producLSKU
`\- producLLisLprice 1225
`
`HAT
`SKU
`HAT
`:Z‘\- product_SKU
`~\_ product_List_price 1680
`
`[424
`
`} r426
`
`SKU
`producLSKU
`producLLisLprice
`
`442
`String
`String /
`Number
`
`44g
`/
`
`444~
`\— GLOVE
`
`GLOVE
`
`1225
`
`4‘5‘\ HAT
`
`HAT
`
`1680
`
`/76‘. I34
`
` 15
`
`Petitioners' Exhibit 1038, Page
`
`
`
`U.S. Patent
`
`Apr. 27, 1999
`
`Sheet 15 of 18
`
`5,897,622
`
`450 \\
`Cross_table
`
`SKU
`HAT
`
`RELATED
`SCARF
`
`SKU
`Related
`
`String
`String
`
`462
`/
`
`450
`/
`
`SKU
`Related
`
`String
`String
`
`HAT
`
`SCARF
`
`466'
`/
`
`K466’
`
`454
`/
`
`-'l‘his item is a GLOVE and has no related products.
`~This item is a HAT but try a SCARF.
`
`470
`/
`
`472
`
`474
`
`/761 I35’
`
` 16
`
`Petitioners' Exhibit 1038, Page
`
`
`
`US. Patent
`
`Apr. 27, 1999
`
`Sheet16 0f18
`
`5,897,622
`
`<55zo:.o<
`
`muo<z<2
`
`MNxWNx
`
`mmmoo<
`
`Homwmo
`
`
`
`*mmaommmoo<
`
`
`
`m§<zFOmsmo
`
`mmomo
`
`oz_mmmuo~_n_
`
`W590:
`
`hmmnomE
`
`o_2<z>n_
`
`mo<m
`
`mob<mm2mo
`
`m._.<._n_2u._.
`
`42...:
`
`mmmnhonwfim
`
`um<m<k<o
`
`mgaooz
`
`mm<m<._.<o
`
`V\6%
`
`Petitioners' Exhibit 1038, Page 17
`
` 17
`
`Petitioners' Exhibit 1038, Page
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Apr. 27, 1999
`
`Sheet 17 of 18
`
`5,897,622
`
`2 ii \\0rder = load_order (shopper_id)
`\add arguments to order
`505 \
`\ 0PM.plan(order)
`.508 \
`\if order.error then
`DPG generate (error_template, order.error)
`
`r500
`
`570_ else
`
`i
`
`\/ 1ssue_red1rect (basket.html)
`572x \save_order (order)
`
`.
`
`Name
`525
`\ CC_Number
`\— Billto_ zip
`
`John Doe
`4111 1111 1111 1111
`92101
`
`SKU
`
`GLOVE
`
`.522
`/
`
`.524
`/
`
`[.544
`
`Name
`CC_Number
`
`John Doe
`4111 1111 1111 1111 554
`
`N\— _sh1pp1ng_ total
`.556‘
`555,‘\- _t.ax_ total
`\~ _total_ total
`
`0
`77
`1179
`
`SKU
`54”.‘
`_\-_product_sl<u
`.546"
`545‘\— _ product_ List_price
`550_\— _iadjust_currentprice
`\— _oadjust_adjustedprice
`
`GLOVE
`GLOVE
`1225
`1102
`1102
`
`542
`/
`
`176‘. I54
`
` 18
`
`Petitioners' Exhibit 1038, Page
`
`
`
`U.S. Patent
`
`Apr. 27, 1999
`
`Sheet 18 of 18
`
`5,897,622
`
`.570 \
`\[fetchitems orderitems order.items]
`.574\ \[eachrow orderitems]
`530
`578‘\[fetchrows crossinfo cross orderitems.sku]
`582\\[if crossinfo.count>0]
`§§;\\-The item is a [value orderitemssku] but try a [value crossinfo.related].
`‘\[else]
`56,;
`556‘\The item is a [value orderitems.sku] and has no related products.
`5"\[/if]
`5&9)
`/ 589
`576*\[/eachrow]
`The shopper lives in the [value order.billto_zip] code.
`
`/606
`
`Name
`CC_Number
`Billto_zip
`
`John Doe
`4111 1111 1111 1111
`92101
`
`jag
`
`SKU
`50”
`50Z_\_ product_SKU
`“\_ product_List_price
`
`GLOVE
`GLOVE
`1225
`
`604
`/
`
`/—6/0
`
`SKU
`product_SKU
`product_List_price
`
`String
`String
`Number
`
`GLOVE
`
`GLOVE
`
`1225
`
`6/2
`J
`
`622
`620
`J
`-This item is a GLOVE and has no related products. / /
`// The shopper lives in the 92101 zip code.
`
`624
`
`/761 I519
`
` 19
`
`Petitioners' Exhibit 1038, Page
`
`
`
`1
`ELECTRONIC SHOPPING AND
`MERCHANDISING SYSTEM
`
`BACKGROUND OF THE INVENTION
`
`1. Field of the Invention
`The present invention relates to a shopping and merchan
`dising system and, more speci?cally, 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 informa
`tion 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 sub
`stantial shopping audiences using an online merchant sys
`tem. Online merchant systems enable merchants to cre
`atively 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 speci?c 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, mer
`chants desire an online merchant system that alloWs for a
`signi?cantly 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 envi
`ronment 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
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`5,897,622
`
`2
`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. Cus
`tomer payment using these private label cards requires
`authoriZation through private netWorks, instead of commer
`cial banking netWorks. Thus, it becomes apparent that to
`enter the online shopping market, merchants require an
`online merchant system that provides for substantial varia
`tions in the purchase transaction model.
`Lastly, merchants typically store product data, such as
`product descriptions, prices and pictures, in relational data
`bases. 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 de?ning a retailer’s prod
`uct 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 signi?cance.
`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
`?exibility to accommodate changing needs. Once the
`schema is designed, a tool, knoWn as a database manage
`ment system (DBMS), is used to build the database and to
`operate on data Within the database. The DBMS stores,
`retrieves and modi?es 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 prede?ned database
`schema. Hence, to use such systems, a merchant must either
`convert its existing databases to this prede?ned schema or
`the merchant must create a neW database having the pre
`de?ned 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, speci?cally designed to interact With these
`different databases. If the merchant converted these data
`bases to the prede?ned schemas, their legacy applications
`Would no longer function properly. To protect their invest
`ment in legacy applications, merchants may have to copy
`their product data into a redundant database having the
`prede?ned schema. OtherWise, merchants may have to incur
`substantial costs to reWrite their legacy applications to
`support the prede?ned schema of the online merchant sys
`tem. For these reasons, it is not cost-effective for a merchant
`to use applications requiring a prede?ned schema for exist
`ing 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.
`
` 20
`
`Petitioners' Exhibit 1038, Page
`
`
`
`5,897,622
`
`3
`SUMMARY OF THE INVENTION
`
`The present invention enables merchants to enter the
`online shopping market by providing a system and archi—
`tecture 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 data-
`base 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 data—
`base 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 dynami-
`cally 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 guar-
`anteed 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 data-
`base 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 communi-
`cation 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 mer-
`chant 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 corre-
`sponds to the request and wherein the database module
`retrieves the data in a manner that is independent of any
`database schema.
`
`10
`
`tom
`
`30
`
`L»LA
`
`40
`
`50
`
`60
`
`4
`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 commu-
`nication 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 corre-
`sponds 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 diagam illustrating the structure of
`another preferred embodiment of the dynamic page genera-
`tor 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 anno—
`tated 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.
`
`Petitioners' Exhibit 1038, Page 21
`
` 21
`
`Petitioners' Exhibit 1038, Page
`
`
`
`5,897,622
`
`5
`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.
`
`10
`
`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 communi—
`cates 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 back—
`bone. 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-l-lill, 1994. However, one may
`practice the present invention on a wide variety of commu—
`nication networks. For example,
`the network 104 can
`include interactive television networks, telephone networks,
`wireless data transmission systems, two—way cable systems,
`customiaed computer networks, interactive kiosk networks
`and automatic teller machine networks.
`
`the network 104 includes online service
`In addition,
`providers, such as Microsoft Network, America OnLine,
`Prodigy and CompuServe. In a preferred embodiment, the
`online service provider is a computer system which provides
`
`tom
`
`30
`
`L»LA
`
`40
`
`50
`
`60
`
`6
`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 connec—
`tions. Of course, he 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 connectee to the Internet 104.
`Focusing now on the client 100, the client is a general
`purpose computer. In apreferred embodiment, the client 100
`is a conventiona personal computer equipped with an
`operating system supporting Internet communication
`protocols, such as Microsoft Windows 95 and Microsoft
`Windows NT, a Drowser, 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 worksta ion, 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 proto-
`cols needed to establish communication links with the
`network 104.
`
`
`
`Referring now to FIG. 2, a merchant system 120 com-
`municates 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 cus—
`tomer 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 sys-
`tem 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 gen-
`erator 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 IITML structures 126 and communicates
`with th