|Hartco Engineering Web Site - Functional Specification
Table of Contents:
a. Individual Customers
3. Operational Specifications
d. The Client
a. Order Initiation
4. Data Specifications
b. Sub Categories
f. Purchase Orders
g. Purchase Order Detail
The primary purpose of this website software is to automate the ordering of goods sold by the client (one who purchases this website software) to individual customers and resellers. The level of automation extends to vendors who manufacture or distribute the goods sold by the client. In addition, the web site will also facilitate the tracking of shipments made by vendors to customers of the client, and assist in invoicing, billing, and will interface with the clients QuickBooks Premier accounting software.
The scope of this web site encompasses the basic graphic design and page layout as well as application programming and e-commerce as on this www.hartco-eng.com web site.
This product is ordered in two parts. The first is a non refundable deposit required to set up your site on our server. Here you will put in initial products, vendors, and customers and have a chance to work with and test the site to your satisfaction. Once you are satisfied with the site you will be required to purchase the remaining balance.
There are additional seperate fees involved for allowing credit card processing through your site.
Here are the server specs and the additional software listed here that you will need. You will need an SSL certificate. Your server provider can be the best resource for help with this.
PHP Version 4.3.4
- MySQL 3.23
(The four items listed here are options in PHP that need to be enabled)
MySQL Server 3.23
Windows 2000 Server
Web Server Software
Microsoft Internet Information Server (IIS) Version 5.0
Apache Web Server 1.3
The website will have four major target audiences; individual customers, resellers, vendors, and the client.
a. Individual Customers
An Individual Customer is any retail customer who can order from the website at list price. The Individual Customer interface will be that portion of the website that is publicly available with out restriction. An Individual Customer can:
Browse the website for any of the clients products.
Purchase any product sold by the client using a credit card only (Compatible Merchant Account Required).
Set up an account profile for future visits to the web site (see Data Specifications).
A Reseller is a person or organization who is reselling the clients products to a different client-base. It is important to note that Resellers and Individual Customers are nearly identical with the two major exceptions: 1.) Some resellers are invoiced and 2.) Account profiles are set up by the client, not by the reseller. The Reseller interface is identical to the Individual Customer interface with two exceptions: 1.) A reseller must log in using a username and password set up by the Client and 2.) The prices offered the Reseller will be at a discounted rate (percentage based, per Reseller) off the list price. A reseller can:
Browse the website for any of the clients products.
Purchase any product sold by the client using a credit card, or be billed at NET 30 terms as determined by the client.
A vendor is a person or organization who manufactures or distributes goods sold by the client. The Vendor interface is password-protected and available only if the Client has authorized them to do so. Vendor account profiles are set up and maintained by the Client. A Vendor can:
Enter all information appropriate to the shipping of goods to the Clients Individual Customers (see Data Specifications).
d. The Client
The clients primary use of the web site is to track orders made by individual customers and resellers, and to interface with their own in-house accounting software, QuickBooks. The Client can:
View all outstanding orders made by Individual Customers and Resellers.
View fulfilled/reconciled orders made by Individual Customers and Resellers.
Add/Edit account profiles for Individual Customers, Resellers, and Vendors.
Export a data file to be imported into QuickBooks.
Add/Edit/Remove products and categories.
Perform any maintenance as necessary.
3. Operational Specifications
This section outlines the flow of data and the significant events which occur throughout the ordering process.
a. Order Initiation
An order is initiated by an Individual Customer (a user) or Reseller. While browsing the web site, a user can add any quantity of a product offered by the Client to a shopping cart. The shopping cart stores pertinent information about the product to be purchased. When done browsing, the user has the option to check out (purchase). At this time the user has the option of setting up a new account profile (Individual Customers only), or retrieving a previously set up account profile (see Data Specifications). Resellers will have to log in before adding products to the shopping cart to receive any discount offered by the Client. Once an order has been placed and confirmed, the following will take place:
A printer-friendly email will be sent to each Vendor that is responsible for an item ordered. A Vendor will see only those items that they manufacture, and will not see the purchase price.
An email notification will be sent to the user noting the items ordered and the order amount less shipping charges. The user will be notified that shipping charges will be added to the final invoice.
At this point the order is considered outstanding. No charges will be made until all items are shipped. Users will have the ability to log in at any time to track the progress of their order, as well as view any previous orders they may have placed.
As Vendors ship items, they will log in to an administration area where they can enter all appropriate information pertaining to the shipment of products ordered. It will be required that a Vendor ship all items they are responsible for in any given order at one time. No provisions will be made in the administration area to split up the shipping of any order.
Once the last item in an order has been shipped, the following will take place:
The final order amount will be charged to users paying by credit card.
A receipt will be sent to users paying by credit card, and an invoice will be sent to those who have pay NET 30. Each of these will be sent by email and be designed to be printer-friendly.
An email notification will be sent to the Client noting that the order has been shipped by all vendors and that the user has been billed or invoiced. If a charge has taken place, any information about the transaction will be sent to the Client via this email.
At this point the order is considered fulfilled.
Once an order has been fulfilled, the Client has the capability to download a file containing all information necessary to import into QuickBooks. Once the file has been created and downloaded, the order is considered reconciled.
At this point the order process is complete. Information about the order gathered throughout the order process will be retained in the online system until such a time that the Client deems it necessary to remove it.
4. Data Specification
This section outlines data that is stored by the online ordering system. It is not intended to be an exhaustive list of all data fields, only a list of data pertinent to the Clients business.
Data in the system can be broken down into entities (tables), which represent people or objects. Each entity has properties (data fields), or attributes, as outlined here. If an entity, or an attribute of an entity, does not appear on this list, it can be assumed that the online ordering system will not will not account for it. Some attributes are required and are typed in bold face.
a. Products A product is an item offered for sale by the client. Any two or more products may be similar in manufacture, but if any of the attributes are different (color, size,
) it is to be considered a unique product unto itself. A product may have one or more of the following attributes:
ProductKey or part number, this is to be determined and entered by the client. This alphanumeric code must be unique within the system.
VendorKey - This is an alphanumeric code, which is assigned to the vendor by the client. Each Vendor ID must be unique within the system.
ProductName This is a short product name used for display on the web site and tracking systems.
ProductDescription This is a detailed description used for display on the web site.
ProductPrice This is the list price for the product.
ProductImagePath This is a path to the image file on the database, it is used internally by the online ordering system.
ProductStatus This attribute identifies whether or not the item is to be displayed on the web site. It allows for temporary removal of a product from the web site without the need to delete it from the system.
b. Sub Categories A sub category is a sub-division of categories. SubCategories contain products. A product can be in only one sub category, and a sub category can be in only one category. It is permissible to have two sub categories of the same name under two different categories. They are, however, still two distinct and different sub categories. SubCategories have the following attributes:
SubCategoryName This is a description of the SubCategory to be created and entered by the Client for display on the web site. Primarily used for navigation through the site.
c. Categories A Category is the highest level of division for products. Categories contain SubCategories. Categories have the following attributes:
CategoryName This is a description of the Category to created and entered by the client for display on the web site. Primarily used for navigation through the site.
d. Users A User is either an Individual Customer or a Reseller. They are treated as one entity because a Reseller is essentially a specialized Individual Customer. Even though they are treated as one entity, each is treated differently by the system. A user has the some or all of the following attributes:
UserKey This is a numeric code generated by the system to uniquely identify a User.
UserReferenceID This optional alphanumeric code for reference to an external system.
UserName This is the full name of the User, intended to be a persons name, not an organization.
UserEmail This is the email address of the User. All correspondence to the User is sent to this address.
UserPhone This is the contact phone number for the user (optional).
UserLogin This is the login name the User will use to access their account profile.
UserPass This is the password the User will use to access their account profile.
UsersReseller This is a flag, which will identify the user as a Reseller.
UserResellerDiscount This is the percentage discount a reseller receives off the list price, not applicable to Individual Customers.
UserInvoicing This is the method by which payments are made to the Client. Valid entries are Credit Cards, or NET 30.
UserCardNumber This is the credit card number to be billed, not applicable to NET30 Users.
UserCardExpiration - This is the expiration date of the credit card to be billed, not applicable to NET30 Users.
UserStatus This attribute identifies whether or not the User can log in to the system. It allows for temporary removal of a User from the web site without the need to delete them from the system.
e. Vendors A Vendor is a person or organization that manufactures goods sold by the Client. Vendors have the following attributes:
VendorKey This is an alphanumeric code generated and entered by the Client which uniquely identifies a Vendor.
VendorName This is the name of the person or organization.
VendorEmail This is the email of the Vendor. All correspondence with the Vendor will be sent to this address.
VendorLogin - This is the login name the Vendor will use to access the Vendor Administration area.
VendorPass - This is the password the Vendor will use to access the Vendor Administration area.
VendorStatus This attribute identifies whether or not the Vendor can log in to the system. It allows for temporary removal of a Vendor from the web site without the need to delete them from the system.
f. Purchase Orders A Purchase Order stores all information pertaining to an order except for the products ordered (see Purchase Order Detail below). Much of the information here is duplicated from the Users table to reduce data dependency. Purchase Orders have some or all of the following attributes:
PurchaseOrderKey or Purchase Order Number. This is an alphanumeric code generated by the system using a method determined by the Client. This code must be unique within the system.
UserKey This is the numeric code of the User that placed the order.
UserReferenceID See Users above.
UserName See Users above.
UserEmail See Users above.
UserPhone See Users above.
UserBilltoAddress See Users above.
UserBillToCity See Users above.
UserBillToState See Users above.
UserBillToPostalCode See Users above.
UserBillToCountry See Users above.
UserShiptoAddress See Users above.
UserShipToCity See Users above.
UserShipToState See Users above.
UserShipToPostalCode See Users above.
UserShipToCountry See Users above.
PurchaseOrderInvoicing See Users above.
UserCardNumber See Users above.
UserCardExpiration See Users above.
PurchaseOrderDate This is the date the order is placed.
PurchaseOrderInvoiceNumber This is the Invoice number generated by the system after the order is fulfilled.
PurchaseOrderInvoiceDate This is the date the invoice is created.
PurchaseOrderStatus This identifies the status of the order. Valid entries are Pending, In Transit, Fulfilled, and Reconciled
o Pending The order has not yet been placed; the user is still shopping or has left the web site without checking out.
o In Transit The order has been placed and is awaiting shipment.
o Fulfilled All items have been shipped and the user has been billed or invoiced.
o Reconciled Order information has been exported to QuickBooks.
g. Purchase Order Detail The Purchase Order Detail stores all information about the products associated with a Purchase Order. This equates to a line item on a Purchase Order. Much of the information here is duplicated from the Products and Vendors tables to reduce data dependency. Purchase Order Details have some or all of the following attributes:
PurchaseOrderKey This is the alphanumeric code, which associates this item with a Purchase Order.
ShipmentKey This is an internal system code which ties this item to its shipping details (see Shipments below).
VendorKey This is the VendorKey for the Vendor responsible for this product.
ProductKey This is the ProductKey for the product ordered.
ProductName see Products above.
ProductDescription see Products above.
ProductPrice see Products above. Note that this price will reflect any discounts offered to Resellers.
ProductQuantity This is the quantity of this product ordered.
VendorName see Vendors above.
VendorEmail see Vendors above.
h. Shipments A Shipment contains all information about a shipment from a Vendor to a User. It is the vehicle through which Vendors will update the status of a shipment, and through which Users can check on the status. It will be required that a Vendor ship all items they are responsible for in any given order at one time. No provisions will be made in the administration area to split up the shipping of any order. A Shipment has the following attributes:
ShipmentKey This is a system generated numeric code to uniquely identify a Shipment.
ShipmentCarrier This is the carrier through which the Shipment was sent.
ShipmentCharges This is the total shipping cost for all items in a Shipment.
ShipmentDate This is the date the Shipment was made.
ShipmentTrackingNumber This is the tracking number supplied by the carrier.
ShipmentHandlingCharge This is any handling charge associated with the Shipment.
ShipmentInvoiceNumber This is the Invoice Number from the Vendor to the Client.