CSC/ECE 517 Summer 2008/wiki3 7 shopper

From Expertiza_Wiki
Jump to navigation Jump to search

Shopper pattern

Introduction

The idea of a "shopping cart" is ubiquitous in e-commerce. This idea lends itself to abstraction in the form of a Shopper pattern. Find examples and descriptions that are suitable for teaching this pattern, if possible, including some non-obvious applications. Write up your findings in the form of a narrative. Hint: You will have an easier time of searching if you exclude any pages including the terms "sewing" or "fabric"!

The Shopping Cart Pattern

The idea of a shopping cart in e-commerce comes from the physical shopping cart used in brick and mortar stores. It is used to collect and store the items that the user wants to buy. On a shopping website, the items aren't physical, so the shopping cart can do much more than it's physical counterpart. It can be used to easily add or remove items, change the quantity of an item already in the cart, and quickly total the cost of the chosen items.

It is an extension of the Collector pattern. A Collector is simply a temporary collection of generic items, which provides basic functionality such as adding and removing items.

The software typically interfaces with payment and inventory features of sites. In commercial packages, it is often sold as a bundle with secure payment software. The cart is usually aware of the type of inventory it collects, for instance, differentiating between physical goods (books, clothing), and services (software licenses, contract renewal fees).

It's basic design has aided countless websites since the advent of e-commerce. It's a simple concept, but when implemented well, gives a great improvement in user experience [1]

From ui-patterns.com, websites can benefit from the use of a shopping cart in the following situations:


  • Use when the user can possibly buy more than one product.
  • Use when the user can possibly buy more than one instance of a product.
  • Use when the user may want to return later to carry on shopping
  • Use when the user may want to return at a later time to conduct payment


Some of the features of shopping carts include:

  • Adding new items to the cart
  • Removing items from the cart
  • Changing the quantity of items
  • Totaling the cost of the items

These are the basic requirements that a shopping cart should provide. It makes integration with inventory and purchasing software easy. A list of all the items purchased can be forwarded to the inventory system so that the necessary stock levels can be reduced, and the invoice can be sent to the purchasing software, which can handle the payment itself.

The Shopper pattern

Interaction with shopping cart

A Shopper is a model of a user who selects items and makes purchases at an e-commerce site. The pattern incorporates features of the shopping cart, allowing the shopper to interact with the cart in a seamless way. Much like a physical shopping cart is useless without a shopper to push it around and use it, a software shopping cart is useless without the user to drive it.

The Shopper is an extension of the shopping cart pattern. Just like a brick and mortar store, where each shopper has her own cart, each implementation of the shopper pattern has a shopping cart. The shopper interacts with the cart by adding and removing items, changing quantities, and initiating checkout.

A shopper is a user of a shopping cart, and so it makes sense that the Shopper patterns would be designed to interact with those operations. That means it is able to add and remove items from the cart, change quantities of items, and initiate checkout. It represents a user of a e-commerce site, and it's interactions with the site and the shopping cart.

Extension of shopping cart pattern

The Shopper pattern does more however. From [2], "A consumer creates a shopper object with a list of requests. The shopper traverses a set of objects and collects the requested items." The requests are purchasable items that the user wants to place in her cart. The Shopper object traverses the set of requested items, and places them in the cart. In this way, the Shopper provides user interaction with the cart, as well as automated interaction for bulk operations.

Many websites track individual consumers, and use algorithms to recommend items she may be interested in, or to store payment information. The Shopper object can also be used to track past purchases to be used to make those recommendations, and to store user account information.

Past purchases can also be used outside of the typical shopping cart scenario. Oftentimes stores allow items to be return within a certain period, or track applicable warranties. The Shopper uses information about historical purchases, such as the date of the purchase and warranty information about individual items, to provide a streamlined interface for not just purchases, but the interaction with the site across the entire shopping experience.

Many online stores allow users to create an account that stores, among other things, shipping addresses, payments information and billing address, and preferred shipping methods [3]. The shopper can return to the site later, and quickly make purchases, or track past purchases.

Examples

This diagram illustrates the basic design of a Shopper, and it's interactions with other parts of the system. It is linked to the inventory and payment systems, and is composed of the user's account information, her current shopping cart, as well as data about past purchases.


Figure 1: High level design of Shopper pattern.


Welie.com gives several good examples of shopping carts form many popular online stores.

David Hayden gives a sample implementation of a shopping cart.

Related Links

Shopping Cart

Shopper