Designing the Shopper Profile and Checkout

 

The Checkout Process.  Now that we have developed the shopping basket and store front, we need to make it reasonable for the shopper to checkout and receive their order and reasonable for the firm to make sure they get paid.

For the checkout process we have several things we need to make sure we develop.  These are listed in the following table.

 

Checkout Process
Function Description
Shipping The shopper must first enter in the shipping information for the order.  This information will also be used to calculate the shipping fees.
Validate Shipping We need to make sure that all of the information required from the shopper has been entered.
Payment The shopper needs to enter the payment/billing information as well as the credit card information.
Validate Payment We need to make sure that all of the information required from the shopper has been entered.  Other validation about the credit card may be desirable.
Confirmation This page will give feedback to the customer about what they ordered and give an order number.

 

The diagram on the right gives a representation of some of these operations.

The shopper must first have a basket with items in it to start the checkout process.  Then they go through each of the steps, filling out required information as they go.

If there is an error when filling out the shipping information they are sent back to the shipping page to adjust what they entered.

If there is an error when filling out the payment information they are sent back to the payment page to adjust what they entered.

Finally they receive the confirmation page on their screen and it is e-mailed to them.

 

The Shopper Profile.  The shopper profile allows us and the shopper to maintain certain information about them from one visit to the next.  Typically, it involves keeping addresses and other contact information with the web site from one visit to the next.  This can be advantageous for the shopper because they don't need to keep inputting particular pieces of information every time they start placing an order.  It can also help them pull up old information.  This helps the company behind the web in a variety of ways also.

For the shopper profile we have several things we need to make sure we develop.  These are listed in the following table.

 

Shopper Profile
Function Description
Create Profile A shopper profile is created when a shopper places an order.  On the payment page they will have the option of creating a profile or modifying an existing profile.
E-Mail Password If the user wants to retrieve their profile they will need to enter their username and password.  If they have forgotten their password, it can be e-mailed to them.
Retrieve Profile If the shopper has a cookie set, their profile will automatically be retrieved when they return to the on-line store.  The profile can also be retrieved if they enter the username and password.
Edit Profile When a user has a profile they can edit it by selecting the option.  They will also be editing their profile everytime they place an order.

 

The image on the left represents some of the major influences maintaining a shopper profile can have on a shopper's experience.   The shopper can

  • create a profile

  • modify their existing profile

  • retrieve past baskets and order history

  • save re-entering information by accessing previous profiles

 

 

In addition, there are several scenarios to consider when interacting with a user and their profile.  The possibilities are outlined in the following table.

 

Shopper Profile Scenarios
Scenario Description
No Cookie The shopper can still complete the shopping experience and will essentially create a new profile if they don't retrieve old one with a username and password.
Cookie The Header.asp will check to see if there is an unfinished basket for the shopper using the shopper ID.
No Cookie - username and password entered If the shopper has no cookie set, but retrieves a previous profile, that is all that will be retrieved.  We don't want to overwrite any basket they are currently developing by retrieving something that was unfinished.
No Previous Profile If there was no previous profile then a new profile will be created regardless of whether they enter in a password for later retrieval.  They will only be able to retrieve a profile if they enter a password.

 

The impact of these scenarios will become apparent as we develop our ASPs in other pages.

There is a lot more that can be accomplished with a profile, particularly for internal market research, but we will leave that for other developments.

Loading Tax and Shipping Data.  We need to initialize some of our data using SQL commands similar to what we did with initializing departments and products.  Next we develop some ASPs that will execute our SQL to insert some initializing data into our tables.  Our first program is called LoadShippingCosts.asp.

<%@ Language=VBScript %>
<% Option Explicit %>
<!--#include File="adovbs.inc"-->

<%
' Open a connection to our SQL Server database
' We will use the ADO Driver connection

Dim connLoad, strSQLCreate
Set connLoad = Server.CreateObject("ADODB.Connection")
connLoad.ConnectionString="Driver={SQL Server}; Server=cisdev.quinnipiac.edu;" & _
"Database=YourUserName;UID=cis; PWD=csatqu"

connLoad.Open

' Creating the SQL String to insert data into the table
strSQLCreate = "insert into shipping(intLowQuantity, intHighQuantity, intFee) values(1, 10, 200)"
connLoad.execute(strSQLCreate) 

strSQLCreate = "insert into shipping(intLowQuantity, intHighQuantity, intFee) values(11, 20, 400)"
connLoad.execute(strSQLCreate)

strSQLCreate = "insert into shipping(intLowQuantity, intHighQuantity, intFee) values(21, 30, 600)"
connLoad.execute(strSQLCreate)

strSQLCreate = "insert into shipping(intLowQuantity, intHighQuantity, intFee) values(31, 999999, 800)"
connLoad.execute(strSQLCreate)


connLoad.Close
Set connLoad = Nothing

Response.Write "<font size = 5>The SQL has executed</font>"

%>

 

Next we develop the ASP that will execute our SQL to insert some initializing data into our tax table.  Our second program is called LoadTaxRates.asp.  Ideally, all of the other states would be represented with some tax rate, you just need to make sure when you test the data you use one of VA, TX, CT, MA or NY.

<%@ Language=VBScript %>
<% Option Explicit %>
<!--#include File="adovbs.inc"-->

<%
' Open a connection to our SQL Server database
' We will use the ADO Driver connection

Dim connLoad, strSQLCreate
Set connLoad = Server.CreateObject("ADODB.Connection")
connLoad.ConnectionString="Driver={SQL Server}; Server=cisdev.quinnipiac.edu;" & _
"Database=YourUserName;UID=cis; PWD=csatqu"

connLoad.Open

' Creating the SQL String to insert data into the table
strSQLCreate = "insert into tax(chrState, fltTaxRate) values('VA', .045)"
connLoad.execute(strSQLCreate) 

strSQLCreate = "insert into tax(chrState, fltTaxRate) values('TX', .08)"
connLoad.execute(strSQLCreate)

strSQLCreate = "insert into tax(chrState, fltTaxRate) values('CT', .00)"
connLoad.execute(strSQLCreate)

strSQLCreate = "insert into tax(chrState, fltTaxRate) values('MA', .00)"
connLoad.execute(strSQLCreate)

strSQLCreate = "insert into tax(chrState, fltTaxRate) values('NY', .00)"
connLoad.execute(strSQLCreate)


connLoad.Close
Set connLoad = Nothing

Response.Write "<font size = 5>The SQL has executed</font>"

%>

 

As usual, after having loaded this information, you want to delete these two ASPs from your web so that they do not get re-executed inadvertently.