Some Background on the Business

 

Introduction.  In this course we will actually be developing both an ecommerce store and the store management interfaces.  Almost all people are only aware of their shopping experience and don't think about what it takes to actually manage the online store.  But after thinking about it some you probably realize that managing the online store is much more involved than a shopping experience.  But, at present we will develop the store.  We leave developing the store management interface to the last month or so of the semester.

Rather than go directly to working with MySQL via PHP I want to motivate a relatively large and complicated example template.  We will be developing a full featured ecommerce site.  But in order to make it more realistic, we need to present some background on the organization.

The firm will be called firefox.  They specialize in selling hard to find items, some people accuse their founder of obscurantism.  We will keep the product list artificially short, but all of are developments will be done so that adding more products should be relatively seamless.  The firefox departments will be

  • t-shirts
  • posters
  • martial arts DVDs
  • Kurosawa DVDs
  • Amerindian DVDs

It is important to realize that some of the products in these departments have certain sorts of attributes that are important to distinguish

  • t-shirts
    • size
    • color
  • posters
    • dimensions
    • framed (yes/no)

The rest of the departments don't really have these kinds of attributes.  But clearly, we need to be able to effectively deal with these sorts of contingencies so that our customers can appropriately select products.

Desired Features.  There are a number of different basic functionalities that ecommerce stores can have.  We want to make sure our customers can do at least the following.

  • investigate products and site
    • browse products and departments
    • search products and departments
  • shopping basket
    • order products
    • update the quantity of a given product
    • delete a particular product
    • go to check out
  • profile
    • create a profile
      • billing address
      • shipping address
      • email contact
      • credit card information
    • update a profile
    • access their profile to automatically fill in check out details
    • email password to email address
  • check out
    • acquire and validate shipping and billing address
      • possibly from profile
    • modify shipping for this order only
    • acquire and validate credit card information
    • compute taxes
    • compute shipping