The present invention relates to commerce systems for use on the Internet. More particularly, the present invention relates to a system and method for utilizing Web services in order processing in an electronic commerce system.
Through the use of common software structures, a network of computers known as the World Wide Web (Web), or Internet, enables vast and immediate interconnectedness for many users. Web technologies (such as hypertext markup language (HTML), hypertext transfer protocol (HTTP), Web servers and browsers) and a combination of software applications known as “Web services” allow customers to connect with businesses and businesses to connect with each other to conduct transactions over the Internet. In most cases, these technologies are standardized to provide an interoperable means for internet content providers and merchants to expose their products and services to end users.
A browser application installed on a client computer allows the user access to internet resources. This access, and movement around the Internet, is enhanced by the use of hyperlinks (“links”) within a Web page's HTML content, which defines the document. The link, typically a word in a text field or an image on a Web page, acts as a path that moves the user from one Web page universal resource locator (URL) address to another using HTTP by means of the Transmission Control Protocol (TCP) and the Internet Protocol (IP) collectively known as the TCP/IP suite of protocols. The movement from one URL to another allows near-instant access to information, products, and services and is particularly well-suited to the exchange of information, goods, and services between buyers and sellers. Such business is commonly referred to as “electronic commerce,” or “e-commerce.”
With the abundance of goods and services available on the Internet, a Web merchant seeks a method for competitively processing orders for its goods and services in a way that makes sense for its size, product line, available resources, and goals and objectives. For some merchants, self-hosting of the e-commerce functions and processes makes sense. These merchants may only require the basic catalog display, shopping cart and transaction processing functions. For others, however, more extensive features are required, or the merchant may desire integration of these basic features with its own inventory control, order processing and accounting systems and/or with other services and features. These highly integrated systems require flexibility and interoperability in order to interface applications with one another across organizations. The use of Web services allows communications between these programs, where neither system need know anything about the software with which it communicates.
A web service is a standardized way of integrating Web-based applications using the Extensible Markup Language (XML), Simple Object Access Protocol (SOAP), Web Services Description Language (WSDL), and other open standards over an internet protocol backbone. XML is used to tag the data, SOAP is used to transfer the data. WSDL is used for describing the services available. These services provide the interoperability required to integrate a merchant's applications with another merchant or one or more service providers.
Unlike Web technologies, Web services are not meant to be displayed in a web browser or otherwise exposed to an end user. Instead, they allow communication between systems. XML is a framework for creating tags which convey the meaning of the information included within them. The meanings, or semantics, of the tagged data are described by an XML schema. The XML document is created in the sending system, and parsed and translated in the receiving system using that shared definitions provided by the schema.
WSDL is a standard published by the World Wide Web Consortium (W3C) which allows a service provider to describe Web services in an XML format as a set of endpoints operating on messages. It is used to describe and locate Web services. The WSDL allows endpoints and messages to be described regardless of the message formats or network protocols.
SOAP is used to send information over the internet. A SOAP message contains a way to bind the standard Web messaging protocol, HTTP, an envelope that specifies the start and end of the message, the message itself, and a header containing additional information related to the message being sent. An alternative to using SOAP is to use a Web Services Invocation Framework (WSIF), for which SOAP is one possible binding method. A WSIF is an open application programming interface (API) for invoking Web services regardless of how the Web services are provided. The API is a simple Java program. Rather than use a common message format, such as SOAP, the WSIF API allows application developers to interact directly with abstract representations of Web services through their WSDL descriptions.
Without privacy and security assurances, many customers would not purchase online. In addition to Web services, many Web applications use the popular, easy to use and effective Pretty Good Privacy (PGP) encryption standard to ensure communication channel security. PGP uses public key cryptography to encrypt the contents of a shopping cart and to provide authentication. It provides a higher level of security than user names and passwords, which are also required to create or log customers into an online store account.
Taking advantage of the interoperability and flexibility provided by Web services allows a web merchant to distribute its business logic and strategy among several systems, applications and providers in order to meet its own e-commerce objectives.
In accordance with one embodiment of the invention, a half-graphical, or partial, user interface (half-GUI) order processing (HGOP) system and its method of use is described. The HGOP web service and system provides flexibility as to which components of the e-commerce system the merchant hosts, and which is supplied by the e-commerce provider. In the preferred embodiment of the present invention as outlined in more detail below, the HGOP system uses Web technologies and Web services to allow an internet merchant to host its own product catalog and partial shopping cart and other components of an online store as desired, but post the information from the shopping cart to the commerce system cart at checkout time using a single transaction, over a pre-existing communication network. Single sign on (SSO) may be used to provide broad, but low-level authentication, to maintain synchronization between the e-commerce system and the merchant system, to preload existing customer information and to maintain a seamless user experience. The e-commerce system provides a PGP key and a posting URL to the merchant at the outset of the merchant/e-commerce system relationship. PGP armors the shopping cart and customer information for added security. The posting URL directs the checkout process in a way that provides a natural load balancing effect and offers additional features that may be had by using local e-commerce servers.
Additional advantages and features of an embodiment of the invention will be set forth in part in the description which follows, and in part, will become apparent to those skilled in the art upon examination of the following or may be learned by practice of the invention.
A preferred embodiment of the present invention referred to as an HGOP web service is described in detail below. It will be appreciated by those skilled in the art that variations the following is an example embodiment and that other embodiments may be implemented which do not depart from the scope and spirit of the present invention. In one embodiment, an HGOP service allows a merchant web site to host its own product catalog and shopping cart, but post the information from the shopping cart to the commerce system cart in one XML-formatted WSDL transaction at checkout time. The use of SSO technology allows the system to match the customer's information transmitted in the transaction with the information in its accounts, preload the existing customer information, maintain synchronization between the merchant store and accounts and the e-commerce system customer accounts. It also facilitates transparency to the customer when s/he is redirected to the commerce system upon posting the shopping cart contents and avoids the annoying need to sign in to more than one system and create more than one account.
One embodiment of an HGOP system 100 is illustrated in
Providing the merchant with the posting endpoint URL serves several purposes. It directs the transaction to the commerce system; however, if the commerce system operates multiple servers in world wide locations, the direct can be made to the server most appropriate to the customer's region. In one embodiment, the URL end point allows the e-commerce system to redirect the customer to a local server. For example, if the customer is located in Europe the end point could direct the customer to the nearest e-commerce server, located in, for example, Ireland rather than Canada. This provides an efficient and highly performant load balancing effect. It also allows a great deal of flexibility in supporting world-wide payment options.
The e-commerce system may respond to the XML request with a simple HTML form 110, populated with the customer information as provided in the XML request, or pulled from the customer's e-commerce account. Additionally, the form may contain a single hidden HTML parameter, called “message,” and assign the results obtained above as its value. When the user submits the form with an HTTP request to the URL, it is posted to its assigned end point.
In an embodiment of this invention the e-commerce system 108 provides authentication and the full spectrum of back-end order processing, including checkout, account management and fulfillment and distribution. Data may be stored on both sides of the transaction—in both the merchant system 104 and the e-commerce system 108, 114. Sales records may be created in the e-commerce system database 112, 114 and could be accessible to the customer from the merchant's web site 104 using SSO technology, allowing the customer to search his/her order history from the merchant site.
SSO is used to make the entire process transparent to the user and to keep the accounts on both systems in sync. The merchant system 104 passes the user login information to the commerce system 108 in the XML request 106, or WSDL file. If the customer is a known customer, the system logs in the user, processes the order within the indicated account and prepopulates the HGOP form 110 with the customer information. If the customer is new, the system creates a new account and processes the order within the new account. In this way, the commerce system is able to maintain a complete order history for the customer. In addition, account and order management functions may be performed at the application service provider (ASP) level.
In the preferred embodiment, web services are provided for managing order processing in a commerce system through the use of an invoker application programming interface (API) or WSIF. A web service user may specify a number of input parameters for the invoke method of the API to invoke a specific commerce server operation. The input parameters in the illustrative examples that follow include a WSDL definition file location, the name of operation to be invoked, necessary parameters for the operation, a user name, and a password for accessing the commerce server 108 resource. The invoker API utilizes the WSIF to invoke commerce server operations dynamically as specified in the WSDL file.
The WSDL file of an embodiment of an HGOP contains just one function—the OrderService.CreateCart( ). This function sends order details to the commerce system by accepting the order contents (e.g., language, site, line items, product information, prices etc.) and returning the order ID and a redirect URL for the customer to complete the order.
A createCartRequest message of this type would be used to create a shopping cart in the commerce system and allow:
In one embodiment, where the merchant 104 hosts the entire product catalog and pricing functions, client-driven pricing can be implemented by passing a LineItemPriceInfo structure for each line item. Since this information may not be verified on the e-commerce 108 side, independent measures should be established to ensure that prices cannot be spoofed by unauthorized parties.
The following provide examples of XML and XSD for some of the functions of the system. It will be appreciated by those skilled in the art that other XML code could be devised that performs the same functions without departing from the scope and spirit of the present invention.
Within the XML sample software code, certain XML Schema Definitions (XSD) are identified. Tables 1 and 2 provide sample XSD software code that may be utilized with the WSDL and XML in accordance with one embodiment of the present invention and its associated schema definitions. Generally, XSD software code specifies how to formally describe the elements in an XML document. This description can be used to verify that each item of content in a document adheres to the description of the element in which the content is to be placed.
- <createCartRequest
- <user>
- <billToAddress>
- <shipToAddress>
- <lineItems>
- <lineItem>
- <product>
- <priceOverrideInfo>
- <price>
- <lineItemExtendedAttributes>
- <lineItemExtendedAttribute>
- <offers>
- <offer>
- <payment>
- <customer>
- <creditcard>
- <paymentExtendedAttributes>
- <paymentExtendedAttribute>
- <taxInfo>
- <test>
In general, a schema is an abstract representation of an object's characteristics and relationship to other objects. An XML schema represents the interrelationship between the attributes and elements of an XML object (for example, a document or a portion of a document). To create a schema for a document, the structure of the document is analyzed, and each structural element is defined as it is encountered. For example, within a schema for a document describing a web site, a web site element, a web page element, and other elements that describe possible content divisions within any page on that site are defined. Elements may be defined within a set of tags. Table 2 is an exemplary schema for one embodiment of an HGOP request.
User
common:AddressInfo
common:AddressInfo
LineItems
Offers
Payment
TaxInfo
Test
ExtendedAttributes
LineItem
Offer
Customer
Creditcard
PaymentExtended-
Attributes
Product
PriceOverrideInfo
LineItemExtendedAttributes
PaymentExtended-
Attribute
Price
LineItemExtendedAttribute
ExtendedAttribute
The flowcharts in
In
In
The type of Web services described are preferably implemented in a data processing system configured as a server in accordance with an embodiment of the contemplated invention. The data processing system may be a symmetric multiprocessor (SMP) system including a plurality of processors and connected to system bus. Alternatively, a single processor system may be employed. Also connected to system bus is memory controller/cache, which provides an interface to local memory. An I/O bus bridge is connected to system bus and provides an interface to the I/O bus. Memory controller/cache and the I/O bus bridge also may be integrated together. A peripheral component interconnect (PCI) bus bridge connected to the I/O bus provides an interface to a PCI local bus. Communications links to clients may be provided through a network adapter connected to the PCI local bus. A memory-mapped graphics adapter and hard disk may also be connected to the I/O bus. Those of ordinary skill in the art will appreciate that the hardware described above may vary. For example, other peripheral devices, such as optical disk drives and the like, also may be used in addition to or in place of the hardware depicted. The example described is not meant to imply architectural limitations with respect to an embodiment of the present invention.
Instructions for the operating system, the object-oriented programming system, and applications or programs are located on storage devices, such as the hard disk drive, and may be loaded into memory for execution by a processor. The processes of an embodiment of the present invention are performed by a processor using computer implemented instructions, which may be located in a memory or in one or more peripheral devices.
It is to be understood that even though numerous characteristics and advantages of various embodiments of the present invention have been set forth in the foregoing description, together with details of the structure and function of various embodiments of the invention, this disclosure is illustrative only, and changes may be made in detail, especially in matters of structure and arrangement of parts within the principles of the present invention to the full extent indicated by the broad general meaning of the terms in which the appended claims are expressed. For example, the particular elements may vary depending on the particular application for the Web interface such that different dialog boxes are presented to a customer that are organized or designed differently while maintaining substantially the same functionality without departing from the scope and spirit of the contemplated invention.
Number | Name | Date | Kind |
---|---|---|---|
4633394 | Georgiou et al. | Dec 1986 | A |
5757917 | Rose et al. | May 1998 | A |
5892900 | Ginter et al. | Apr 1999 | A |
6374402 | Schmeidler et al. | Apr 2002 | B1 |
6490567 | Gregory | Dec 2002 | B1 |
6629135 | Ross et al. | Sep 2003 | B1 |
6836765 | Sussman | Dec 2004 | B1 |
7072859 | Huber | Jul 2006 | B1 |
7137006 | Grandcolas et al. | Nov 2006 | B1 |
7197475 | Lorenzen et al. | Mar 2007 | B1 |
7225148 | Kassan | May 2007 | B2 |
7257581 | Steele et al. | Aug 2007 | B1 |
7308424 | Urabe | Dec 2007 | B2 |
7346587 | Goldstein et al. | Mar 2008 | B2 |
7363247 | Barnhill, Jr. et al. | Apr 2008 | B1 |
7373321 | Collings et al. | May 2008 | B2 |
7640193 | Crespo | Dec 2009 | B2 |
7716077 | Mikurak | May 2010 | B1 |
7865399 | Crespo | Jan 2011 | B2 |
8190493 | Saarinen | May 2012 | B2 |
9324098 | Agrawal | Apr 2016 | B1 |
20010049672 | Moore et al. | Dec 2001 | A1 |
20020059114 | Cockrill et al. | May 2002 | A1 |
20030023512 | Festa et al. | Jan 2003 | A1 |
20030088483 | Moyer | May 2003 | A1 |
20030115107 | Amensen et al. | Jun 2003 | A1 |
20030126075 | Mascavage et al. | Jul 2003 | A1 |
20030191709 | Elston et al. | Oct 2003 | A1 |
20040047287 | Tremblay et al. | Mar 2004 | A1 |
20040068693 | Rawat et al. | Apr 2004 | A1 |
20050027610 | Wharton | Feb 2005 | A1 |
20050065881 | Li | Mar 2005 | A1 |
20050108104 | Woo | May 2005 | A1 |
20050171836 | Leacy | Aug 2005 | A1 |
20050177437 | Ferrier | Aug 2005 | A1 |
20050273396 | Aliabadi et al. | Dec 2005 | A1 |
20060021019 | Hinton et al. | Jan 2006 | A1 |
20060031147 | Bell et al. | Feb 2006 | A1 |
20060085281 | Hanai et al. | Apr 2006 | A1 |
20060085282 | Hanai et al. | Apr 2006 | A1 |
20070043626 | Duvall et al. | Feb 2007 | A1 |
20070233573 | Wang et al. | Oct 2007 | A1 |
20070260529 | Furuno | Nov 2007 | A1 |
20070268163 | Aydar et al. | Nov 2007 | A1 |
20070294184 | Lee | Dec 2007 | A1 |
20070299732 | Gluzberg et al. | Dec 2007 | A1 |
20070299739 | Urabe | Dec 2007 | A1 |
20080005021 | Brown et al. | Jan 2008 | A1 |
20080228853 | Brinck et al. | Sep 2008 | A1 |
20090271250 | Sriver et al. | Oct 2009 | A1 |
Number | Date | Country |
---|---|---|
0114990 | Mar 2001 | WO |
Entry |
---|
Intelligent Application Gateway 2007, Whale Communications, Feb. 2007. |
Creative Cart Internet Shopping Cart Service, advertisement on www.creativecart.com, last accessed Aug. 19, 2008. |
Number | Date | Country | |
---|---|---|---|
20100049656 A1 | Feb 2010 | US |