Andreas Huttenrauch
www.TheWorkingWeb.com
[email protected]
Simple e-Commerce Store
simplefakestore.com
Function Specification
2008-10-18
Version 1.1
Non-Disclosure Agreement
This document and it’s contents are considered part of my professional consultation and
are provided in confidence. Unauthorized reproduction and/or distribution is prohibited.
1 / 25
(c) 2009 Andreas Huttenrauch – All Rights Reserved
www.TheWorkingWeb.com
Andreas Huttenrauch
www.TheWorkingWeb.com
[email protected]
Overview ......................................................................................................................... 3
Terminology .................................................................................................................... 3
Main Features.................................................................................................................. 3
Target Audience .............................................................................................................. 4
Technical Considerations ................................................................................................ 4
Prerequisites .................................................................................................................... 4
Sitemap............................................................................................................................ 4
High-level Flow............................................................................................................... 5
Specific Requirements..................................................................................................... 6
Wireframe........................................................................................................................ 8
Data Definitions ............................................................................................................ 22
Testing Scenarios .......................................................................................................... 23
Revision History............................................................................................................ 24
Open Issues ................................................................................................................... 24
Sign-off.......................................................................................................................... 25
2 / 25
(c) 2009 Andreas Huttenrauch – All Rights Reserved
www.TheWorkingWeb.com
Andreas Huttenrauch
www.TheWorkingWeb.com
[email protected]
Overview
This scope document is for a sample site to demonstrate the effectiveness of
storyboarding and therefore to illustrate why we need specifications.
For the sake of this example, we’ll look at a simple website with a e-commerce store with
a catalogue of products. The catalogue entries will be visible to the public, but only the
site-owner will be able to make modifications to the catalogue via a secure interface.
Visitors should be able to buy multiple products online and be able to pay with credit
card.
Please note that this is NOT a template, but merely a sample. It is meant to inspire, and to
aid you in the creation of a solid Request for Proposal (RFP). If your RFP is not solid,
then you will receive a wide range in quotes from vendors, which will be based on their
interpretation of the RFP and their perceived risk. A solid RFP on the other hand will
show exactly what your expected outcome is, and if you gave it to multiple vendors,
every one would give you a quote based on exactly the same end product. With a solid
RFP, you will also receive the end-product that you expected.
Terminology
It is assumed that the reader of this document is familiar with basic web terms. Additional
definitions that could come in handy:
• Shopping cart: An internet based system designed to allow an online shopper to
collect items and then, when the user is ready, to purchase the chosen items in a
single transaction.
• Session: A continuous period of time during which a user's browser is viewing
Web pages or a Web application within the same server or domain.
• SSL: Secure Sockets Layer: cryptographic protocols which provide secure
communications on the Internet
Main Features
Simplefakestore.com is an e-commerce store allowing visitors to buy products from the
catalogue. Individual functions include:
• Browse product categories
• Browse products
• Search products
• View a products details (with up to one image and one thumbnail)
• Have one featured product
• Add products to shopping cart
3 / 25
(c) 2009 Andreas Huttenrauch – All Rights Reserved
www.TheWorkingWeb.com
Andreas Huttenrauch
www.TheWorkingWeb.com
[email protected]
• Checkout / pay for items in shopping cart
Administrative functions include:
• Add / edit / delete categories
• Add / edit / delete products
• View historical transactions
Target Audience
For the sake of this example, the website will be selling generic widgets. The target
audience of the site would be the general consumer who is interested in purchasing
widgets.
Technical Considerations
For security reasons, preference is given to PHP and MySQL on a *NIX server with
Apache as the web server. Furthermore, the hosting environment is to be secured to
currently accepted security standards for public production websites.
All code and interfaces are to follow current web development best practices.
Pages accepting credit card details are to be secured with SSL, and any posting to the
merchant gateway is to be done securely via cURL. No credit card details are to be stored
in the database locally.
Prerequisites
In order to accept online credit card payments, the client will require a merchant account.
For the sake of this specification, we will assume a merchant account with a standard
SOAP server and a delivered SOAP client in PHP to communicate with the SOAP server
securely.
Sitemap
Main Navigation: (consisting primarily of content-rich sections, vertical on the left)
• Home
• About Us
• Products (Catalogue)
o Categories (when in product sections)
• Shopping Cart
• Contact Us
4 / 25
(c) 2009 Andreas Huttenrauch – All Rights Reserved
www.TheWorkingWeb.com
Andreas Huttenrauch
www.TheWorkingWeb.com
[email protected] • Search (not a regular menu item but common design element)
Sub-Navigation:
Some Main sections will have sectional sub-navigation. The sub-navigation menus may
appear on the right column. This section is identified as sub links within the Main
navigation.
Support Navigation: (along the bottom of every page)
• Top
• Privacy
• Site Map
• Contact Us
Administrative Navigation:
When the site administrator is logged in, the Main Navigation will change to the
following:
• Home
• Products
• Transactions
• Logout
High-level Flow
Many of the pages of the site will be static and therefore require no further explanation.
The administrative area of the site will follow standard editing interfaces.
The remaining complicated areas that require further defining are the functions in the
product catalogue and shopping cart. Below is the high-level flow for the functions a
visitor / customer can perform in these areas:
5 / 25
(c) 2009 Andreas Huttenrauch – All Rights Reserved
www.TheWorkingWeb.com
Andreas Huttenrauch
www.TheWorkingWeb.com
[email protected]
Select category
/ subcategory
Back to product list
Browse Categories
Products Select product Product Details
& Products
Add a
Continue product
shopping to the
cart
Shopping Cart Shopping Cart Add to cart
Check
out
Billing Details
Pay
Order
Confirmation
Specific Requirements
Localization
The business of the website is located in the USA. All prices are in USD (United States
Dollars).
6 / 25
(c) 2009 Andreas Huttenrauch – All Rights Reserved
www.TheWorkingWeb.com
Andreas Huttenrauch
www.TheWorkingWeb.com
[email protected]
Shipping
Shipping will only be offered to USA and Canada. Other countries cannot order at this
time.
Shipping costs will be calculated using a configuration table based on the total weight of
the products. This requires each product item to have a weight in the system.
Destination 0-5 lb 5.1-10 lb 10.1 – 20 lb 20.1 lb +
Canada $ 5.50 $ 7.50 $ 9.50 $ 11.50
USA $ 3.50 $ 4.50 $ 5.50 $ 6.50
Product Images
Product images will be treated as special objects. When an image file is uploaded, the
server is to dynamically create 2 images of it by cropping and resizing the source image
into a large detail image and a small thumbnail image. These images are to be renamed
on the server to IMG + primary key of the product (to four characters) + .JPG for the
detail image and THUMB + primary key (to four characters) + .JPG for the thumbnail.
(for example, the image for product 5 would be /images/img0005.jpg and it’s thumbnail
would be /images/thumb0005.jpg).
Product Categories
Each product can only be in one category and each category can only be in another
category or the top category. It is essential that no products or categories are orphaned.
Therefore the following rules will apply to administration:
• You cannot delete products – you can only mark them as inactive. If a product
were deleted after a sale, the historical sales data would no longer make sense.
• You cannot delete a category that has sub-categories or products. All sub-
categories and products need to be removed first.
7 / 25
(c) 2009 Andreas Huttenrauch – All Rights Reserved
www.TheWorkingWeb.com
Andreas Huttenrauch
www.TheWorkingWeb.com
[email protected]
Wireframe
A001 : Homepage
Note that the design structure will be common across most pages of the site using
common headers and footers.
8 / 25
(c) 2009 Andreas Huttenrauch – All Rights Reserved
www.TheWorkingWeb.com
Andreas Huttenrauch
www.TheWorkingWeb.com
[email protected]
A002: About Us
9 / 25
(c) 2009 Andreas Huttenrauch – All Rights Reserved
www.TheWorkingWeb.com
Andreas Huttenrauch
www.TheWorkingWeb.com
[email protected]
A003: Browse Product Categories / Subcategories, and Products
Summary list of sub-categories and products in current category / subcategory
10 / 25
(c) 2009 Andreas Huttenrauch – All Rights Reserved
www.TheWorkingWeb.com
Andreas Huttenrauch
www.TheWorkingWeb.com
[email protected]
A004: Search Results
Summary of products matching search query
11 / 25
(c) 2009 Andreas Huttenrauch – All Rights Reserved
www.TheWorkingWeb.com
Andreas Huttenrauch
www.TheWorkingWeb.com
[email protected]
A005: Product Details
12 / 25
(c) 2009 Andreas Huttenrauch – All Rights Reserved
www.TheWorkingWeb.com
Andreas Huttenrauch
www.TheWorkingWeb.com
[email protected]
A010: Shopping Cart
13 / 25
(c) 2009 Andreas Huttenrauch – All Rights Reserved
www.TheWorkingWeb.com
Andreas Huttenrauch
www.TheWorkingWeb.com
[email protected]
A011: Checkout
Main payment screen to collect billing and shipping information. This is a secure page
and will post the credit card information securely to the merchant gateway. Depending on
the response received from the merchant gateway, the purchase will either be declined or
approved.
Upon successful payment for the items in the cart, the customer is to receive an email
receipt summarizing the items purchased:
Order Confirmation
Thank you for you purchase from SimpleFakeStore.com.
Your confirmation number is XQRTSDW
Order Summary:
Item Name Qty Each Price
------------------------------------------
Product Name 1 23.95 23.95
14 / 25
(c) 2009 Andreas Huttenrauch – All Rights Reserved
www.TheWorkingWeb.com
Andreas Huttenrauch
www.TheWorkingWeb.com
[email protected]Another Product 2 12.50 25.00
----------
Subtotal 48.95
Shipping 5.50
Total 54.45
Sold to:
Patricia Amor
4568 Seneca Drive
Salem, OR
97301
Please allow 2-3 weeks for delivery.
SimpleFakeStore.com
[email protected]
http://www.simplefakestore.com
1 (888) 555-1212
A012: Payment confirmation
15 / 25
(c) 2009 Andreas Huttenrauch – All Rights Reserved
www.TheWorkingWeb.com
Andreas Huttenrauch
www.TheWorkingWeb.com
[email protected]
A020: Contact Us
16 / 25
(c) 2009 Andreas Huttenrauch – All Rights Reserved
www.TheWorkingWeb.com
Andreas Huttenrauch
www.TheWorkingWeb.com
[email protected]
A021: Privacy Policy & Security Statement
17 / 25
(c) 2009 Andreas Huttenrauch – All Rights Reserved
www.TheWorkingWeb.com
Andreas Huttenrauch
www.TheWorkingWeb.com
[email protected]
A090: Administrative Login
All administrative functions will be secured by a username and password. Each page
within the admin needs to ensure for itself that it is still secure.
B001: Admin Home
18 / 25
(c) 2009 Andreas Huttenrauch – All Rights Reserved
www.TheWorkingWeb.com
Andreas Huttenrauch
www.TheWorkingWeb.com
[email protected]
B010: Category Admin Summary
B011: Category Admin Detail
19 / 25
(c) 2009 Andreas Huttenrauch – All Rights Reserved
www.TheWorkingWeb.com
Andreas Huttenrauch
www.TheWorkingWeb.com
[email protected]
B020: Product Admin Summary
B021: Product Admin Details
20 / 25
(c) 2009 Andreas Huttenrauch – All Rights Reserved
www.TheWorkingWeb.com
Andreas Huttenrauch
www.TheWorkingWeb.com
[email protected]
B030: Historical Sales Summary
B031: Historical Sales Detail
21 / 25
(c) 2009 Andreas Huttenrauch – All Rights Reserved
www.TheWorkingWeb.com
Andreas Huttenrauch
www.TheWorkingWeb.com
[email protected]
Data Definitions
The following data definitions are to describe the functional requirements of the data. The
programming team will be responsible for choosing the specific data types to achieve the
desired result. Please note also that there are no references to primary key identifiers, etc
– these are left for the database architect and should be considered standards
requirements.
Categories
Variable Type Notes
categoryName 100 char text Name of the category
active 0 or 1 1 if active, and 0 if inactive
fkParent Integer Foreign key into it’s parent category (0 for
top-level categories with no parents)
Products
Variable Type Notes
fkCategory Integer Foreign key into Category
productCode 10 char text SKU
productName 100 char text Name of the product
description Text Full text description
image 0 or 1 Images will be treated as special objects –
see Specific Requirements above. The image
field simply keeps a value of 0 or 1
representing whether or not the product has
an image and thumbnail or not.
price Real Price in USD
weight Real Weight in lb (pounds) for calculating
shipping
active 0 or 1 1 if active, and 0 if inactive
featured 0 or 1 1 if featured, 0 if not. Please note that only
ONE product can be the featured one. When
setting this flag to one, you need to zero out
this flag of all other products
Shopping Carts
We will keep a shopping cart set of records for all purchases, whether abandoned or
successful. A regular cleanup job will need to delete shopping carts that were abandoned
as there is no other data of value if you don’t have contact details for the customer that
attempted the purchase.
Variable Type Notes
22 / 25
(c) 2009 Andreas Huttenrauch – All Rights Reserved
www.TheWorkingWeb.com
Andreas Huttenrauch
www.TheWorkingWeb.com
[email protected]
dateTime Date & time Date and time of the first item being placed
in the cart.
ipAddress 100 char text IP Address of the customer
Cart Contents
Variable Type Notes
fkCart Integer Foreign key into the actual shopping cart
fkProduct Integer Foreign key for the product
quantity Integer Quantity of this product in the cart
Transactions
Variable Type Notes
orderNum Integer Internal order number
fkCart Integer Foreign key into the actual shopping cart
firstname 100 char text First name of customer
lastname 100 char text Last name of customer
email 255 char text Email address of customer
phoneNo 20 char text Phone number
address 100 char text Address
city 100 char text City
state 100 char text State or province
zip 100 char text Zip or postal code
country 100 char text Country
totalCharged Number w. 2 Total amount charged to customer
decimal
ecommReturn 255 char text Exact return code form merchant gateway –
may be used in future debugging or problem
resolution.
confirmationCode 10 char text Confirmation code
Testing Scenarios
Although many functions of the site are intuitive and testing should be rather straight-
forward and logical, the following special tests have been devised to cover some of the
more complicated or error-prone areas:
Scenario 1: Failed Purchase
Prerequisites: Items in the cart
Actions: Proceed to checkout, enter all required details but use an invalid credit card
Expected Result: Should remain on the checkout screen with an error that the transaction
failed
23 / 25
(c) 2009 Andreas Huttenrauch – All Rights Reserved
www.TheWorkingWeb.com
Andreas Huttenrauch
www.TheWorkingWeb.com
[email protected]Scenario 2: Successful Purchase
Prerequisites: Items in the cart
Actions: Proceed to checkout, enter all required fields including valid credit card
Expected Result 1: Successful Order Confirmation Page w. Confirmation No.
Expected Result 2: Email receipt to customer with order summary
Expected Result 3: Email to site admin with order summary
Further Actions: Log in to administrative back-end
Expected Result 4: Order details in order history
Scenario 3: Inactive Product
Prerequisites: none
Actions: Log into administrative area, select a specific product, mark it as inactive, then
save the product. Then log out of admin area.
Actions: Browse the product catalogue to the corresponding category of the product
Expected Result: The inactive product should not be listed
Actions: Search for the product using the search feature
Expected Result: The inactive product should not be returned in the search results.
Revision History
Date Name Comments
2009-03-10 Andreas Huttenrauch Initial draft
2009-03-18 Andreas Huttenrauch Change spec to allow for product categories in a
flexible hierarchy
Open Issues
No. Date Issue Description Status
1
2
3
24 / 25
(c) 2009 Andreas Huttenrauch – All Rights Reserved
www.TheWorkingWeb.com
Andreas Huttenrauch
www.TheWorkingWeb.com
[email protected]
Sign-off
Client name: __________________
Date: __________________
Signature: ____________________
25 / 25
(c) 2009 Andreas Huttenrauch – All Rights Reserved
www.TheWorkingWeb.com