ArsDigita Archives
 
 
   
 
spacer

Ecommerce Module Requirements

by Sarah Ewen

I. Introduction

This document pertains to the ecommerce module, part of the ArsDigita Community System. It explains:

II. Vision Statement

Meeting the needs of ecommerce

The ecommerce module fulfills all requirements for operating a standard business-consumer web service. It offers a fully-functional category-based shopping cart system and real-time credit card billing, just as you would find in any large popular ecommerce site. However, this is simply the base of the ecommerce module; it offers a whole host of handy utilities, including (but not limited to):

  • Security
  • User tracking
  • Gift certificates
  • Mailing lists
  • An auditing system
  • Order fulfillment
  • Order tracking
  • Special offers
  • Online reporting
  • User-based product rating & professional reviews
  • Product association (linking)
  • Pre-ordering

Additionally, a large number of settings can be adjusted (e.g., formulae for shipping costs / tax charges / product description information, products displayed on searches) from the administration pages.

The creation of the e-commerce module also prompted the building of the customer service module, which fits seamlessly together with the ecommerce module and the rest of the ACS. This allows all interactions with customers, and the issues they have raised, to be managed efficiently.

If you are a business

It is worth considering the following points:

  • Closed-source ecommerce packages are dangerous:

    • If a closed-source ecommerce package doesn't do exactly what you want, you're out of business.

    • If the company behind a closed-source ecommerce package goes out of business, so will you, unless the package can meet the evolving needs of your business.

    • If the company behind a closed-source ecommerce package adopts a different "business model", you're screwed. The package you have built up your site around is discontinued, along with all customer support. Your end-user license remains in effect, preventing you from altering the software (which would not be an easy task anyway, as the source is not available).

    • If you're even tempted to adopt a commercial ecommerce system from a company other than IBM, Oracle or SAP (three enterprise software vendors that seem likely to be around for awhile), read the iCat story towards the end of http://photo.net/wtr/using-the-acs.

  • The ArsDigita ecommerce module is open source. Consequently:

    • Thousands of programmers around the world have scrutinized the code.

    • Whilst we have faith in ArsDigita, we're not asking anyone else to. Anyone can continue benefitting from and extending our software.

  • This module closely integrates with the rest of the ArsDigita Community System, giving a much clearer portrait of the customer. Valuable information can easily be data-mined out of the ACS to find, for example, "all users who have participated in the discussion forum on at least ten separate occasions but who have not bought anything yet", then spam those folks with gift certificates.

  • The rest of the ACS is ready and waiting to offer any of the functionality your community might require: Bulletin Boards, Classifieds, Events, Chat, Bookmarks...even run the rest of your company using the Intranet module.

  • The customer service module is perfectly designed for working with the ecommerce module to ensure customers receive the support they need within acceptable times. Ecommerce sites are an online community (see the ecommerce example in Using the ACS), just with a different perspective.

III. System Overview

The following is a quick whistle-stop tour of the interesting ecommerce module components, and the functionality they offer.

  • The shopping cart keeps track of user shopping sessions and orders. Orders can be saved and completed later.

  • Product selection is simplified through use of the catalog engine, which enables categorization of all products into (multiple) categories, subcategories and subsubcategories. Site administrators can upload product data in bulk from a structured data file.

  • The real-time credit card billing system allows orders to be authorized on the spot, while you wait. The card is billed once the order is shipped.

  • The e-recommendation engine allows products to be mapped to certain products for all or only some class of user.

  • Products can be reviewed either professionally, or through customer contributions.

  • User tracking provides a comprehensive history of a user's purchasing history, and also the products they have viewed. It can also integrate with the rest of the ACS to provide information about the user's activity on bulletin boards and discussion forums.

  • Intelligent user recognition allows the site to profile users when they visit the site to browse and make purchases. This allows the system to determine and inform customers of products they may be interested in, based on their purchasing history and those of others. A cross-sales platform also exists to inform users of products that are related to others.

  • Content management is fully audited and allows the site administrators to enter or modify existing data. The look and feel of the visual interface can also be completely redesigned without coding or re-programming because the module is template-based.

  • Users can easily find the products they want using the intelligent parametric and free-text search engine.

  • User classes can be defined by the site administrators, and then used to determine the discounts and rates that will be offered to individuals, institutions, or students, for example.

  • The object-oriented design of the site facilitates easy customization of product information fields so that extra attributes can be described where appropriate.

  • The gift certificate system audits and administrates the allocation of gift certificates to customers.

The ecommerce modules offers a highly-scalable e-business solution to ecommerce, which can easily be enabled to generate XML reports for integration with back-end financial systems.

IV. Use-cases and User-scenarios

The ecommerce module will be used by five main groups of users:

  • Site Administrators administer and customize the ecommerce module to suit their requirements. They use the administration interface to add new products and categories, and edit existing ones. They resolve any conflicts and perform maintenance such as updating product recommendations and (dis)approving customer reviews.

  • Site Designers customize the look and feel of the site. They have to be familiar with how to write HTML, with simple extensions for variable inclusion.

  • Customer Service Representatives issue gift certificates, write the template e-mails that are sent out to customers, and perform the customer care activity available in the customer service module.

  • Order Processors fulfill orders and record shipment details so that customers and administrators can track the shipments later.

  • Customers browse the site for products they want to buy, and purchase them. They also write reviews about the products and participate in other community activities on the site.

Setting up the site

Adena the Administrator wants to set up the ecommerce module for a new site. First she ensures that the technical requirements are in place. Then, she follows these steps:

  1. Setting up product categories (optional)

    Although it isn't mandatory, Adena's site is going to categorize its products. Having established what the categories will be, Adena heads over to /admin/ecommerce/cat and starts choosing `insert' to add new category names.

    Categories can be built into a hierarchy three levels deep. They can be edited to change the title they have been given, or deleted completely.

  2. Setting up shipping cost rules

    Adena does this at /admin/ecommerce/shipping-costs/. She reads through the instructions on the page and checks that she understands by looking at some examples before she sets them up.

  3. Setting up sales tax rules

    Sales tax rules are set up at /admin/ecommerce/sales-tax/. Adena is setting up a site for a company located in only a couple of states, so this is easy.

    Arthur the Administrator, however, is setting up sales tax rules for a Fortune 500 company with a nexus (i.e. an office / factory / store) in many states, so he decides to buy tax tables from www.salestax.com. This will take a little bit of coding to integrate into the ecommerce system.

    Ailsa is setting up a site for a company based outside the US, so she has to do some programming to handle tax for the regions in her country.

  4. Adding custom product fields (optional)

    Adena views the existing product fields at /admin/ecommerce/products/add and decides that she'd like to add a couple more for her widget products.

    The ecommerce module provides a lot of standard fields that most products would require, such as SKU, price and description, but Adena is selling wine too, so it may be useful to add a `vintage' field.

    She adds the custom fields at /admin/ecommerce/products/custom-fields.

At this point, she gets Dennis the Designer to set up the product display templates.

  1. Creating new product display templates (optional)

    Dennis visits /admin/ecommerce/templates/ to create templates to replace the default, somewhat minimalist templates.

    The default template that the ecommerce module provides can be modified to:

    • incorporate custom product fields
    • exclude fields you don't use
    • simply change the way the page looks to fit a desired design scheme

    The template is written in AOLserver's ADP language, which is just HTML with Tcl variables (or commands) inside tags. It is extremely easy to pick up; if Dennis can write HTML, he can write ADP.

    Dennis can create as many additional templates as he desires. Templates can be associated with product categories, so that every product in the "book" category, for example, is automatically assigned the "book" template by default, although a template can always be assigned to any product individually, when adding it into the system. This means if Dennis wants to create an interesting template for a special product, he can.

Adena then carries on setting up the following:

  1. Setting up user classes (optional)

    Adena can define groups of users called classes, which can be used to:

    • give special discounts to certain users
    • change the appearance of the site depending on who is viewing it
    • change which products are recommended depending on who is viewing it

    Examples of a user class might be "student", "retired" (for special offers), "institution", "publisher" (for product recommendations), "dog-owner", "cat-owner" (for site appearance).

    User classes are defined at /admin/ecommerce/user-classes/.

    Users can be members of more than one class; if both classes are offering a discount the user will receive the best deal out of all of them (but they are not cumulative).

    Note - check your .ini file configuration to see whether users will be able to view the classes they are members of. If they can see this information it would be wise to name the user classes carefully.

  2. Loading products into the product database

    If Adena only wants to add a few products into the database she can use the form at /admin/ecommerce/products/add.

    If she has a considerable number of products to upload, they are probably already in a database (or structured format) of some kind, in which case it is probably better to export them as a CSV and use one of the following utilities:

    • The Product Loader
      The product loader uploads a CSV file that contains one line per product in your catalog. Each line has fields corresponding to a subset of the columns in the ec_products table. The first line of the CSV file is a header that defines which fields are being loaded and the order that they appear in the CSV file. The remaining lines contain the product data.

    • The Product Extras Loader (note - must load products & define custom fields first)
      The product extras loader is similar to the product loader except it loads data into ec_custom_product_field_values, the table which contains the values for each product of the custom fields you've added. The file format is also similar to that of the product data CSV file.

    • The Product Category Map Loader (note - must create all categories first)
      The product category map loader creates the mappings between products and categories and products and subcategories (specifically, it inserts rows into ec_category_product_map and ec_subcategory_product_map.) The CSV file you create for uploading should consist of product id and category or subcategory names, one per row. This program attempts to be smart by using the SQL like function to resolve close matches between categories listed in the CSV file and those known in the database.

    All the utilities are available and documented at: /admin/ecommerce/products/upload-utilities

  3. Add a professional review (optional)

    To add a professional review, Adena visits /admin/ecommerce/products/, searches or selects the product to be reviewed, and chooses `Add a review'.

    There is a option to toggle whether professional reviews will appear on the web site.

  4. Adding a cross-selling link (optional)

    Cross-selling links tie two products together, so that if a customer views one of the products, a link to the other is displayed on the page. They can be uni-directional (useful for dependencies, e.g. `if you buy a printer, you need an ink cartridge'; this isn't true the other way round) or bi-directional (useful for binding together items which are often purchased together, e.g., aquariums and tropical fish, pizzas and soft drinks).

    Adena can use /admin/ecommerce/products to search for one of the products she would like to link, and then select it. From there, she can click on the cross-selling links count for more information on existing links, and to set up new links.

  5. Putting a product on sale / special offer (optional)

    The next step is to set up the sales and special offers for the relevant products.

    Adena heads back to /admin/ecommerce/products and searches for the product she wants to put on sale. She clicks on it and chooses `put on sale' from the details page.

  6. Adding product recommendations (optional) & associating them with user classes

    Product recommendations are a very useful tool for making sites with many divisions of categories more browsable and interesting. Recommendations are displayed on the home page of the site (if a product is recommended at the top level), and when viewing categories.

    Adena visits /admin/ecommerce/products and adds the recommendations for each product, stating in which category it should be displayed in (or the home page).

    She also decides to associate some of the recommendations with user classes (a recommendation can only be associated with one user class at a time). She does this whilst adding the recommendations to save time, otherwise they have to be deleted and re-created with the association. The accompanying text, however, can be edited simply by clicking on the recommendation and choosing `edit'.

Next, Carl the Customer Service Representative sets up the template for the e-mails that are sent out to customers.

  1. Modifying the email templates

    Carl can modify the templates at /admin/ecommerce/email-templates/). There are seven pre-defined email templates that cover the most important events, but these are pretty bare. It is probably better to modify them so that they are better suited to the site. Carl can also choose to create a `New Email Template' from scratch; this will have to be scheduled by a programmer, who will also need to substitute in the appropriate variables.

  2. Customizing the page layout

    The layout for all the ecommerce pages is created using ADP templates, which are stored in the directory /web/yourservername/templates/ecommerce/ (with the exception of product which, as discussed above, are edited through the admin pages to allow difference products to use different templates). If Dennis the Designer is dissatisfied with the look of any of the pages in the site, there's a good chance that it can be changed simply by editing the corresponding ADP template.

Maintenance

The site will obviously require maintenance as products come and go, and customers purchase orders. The following activities are anticipated:

  • Updating product information

    This includes the following activities:

    • Putting items on sale
    • Updating shipping availability
    • Updating active/discontinued status
    • Adding cross-selling links
    • Adding professional reviews
    • (Dis)approving customer reviews

    Adena Administrator can update all these attributes by visiting /admin/ecommerce/products, searching for the product she wishes to update and selecting it.

  • Updating product recommendations

    Adena simply checks the list of recommended products at /admin/ecommerce/products/recommendations and updates it accordingly.

  • Updating product categorization

    The categories that already exists at /admin/ecommerce/cat/ can be deleted, renamed, and augmented with subcategories.

  • View reports

    It might be an idea for Adena to check out some reports periodically. These include:

  • Resolving potential problems

    Adena should keep an eye on any conflicts which arise whilst marking transactions, authorizing payments through cybercash, re-instating or claiming gift certificates, adding items to a shopping cart and refunding transactions. She can do this by checking the problems list at /admin/ecommerce/problems/; once a problem has been fixed, she just clicks the option to mark it resolved.

  • Processing and fulfilling orders

    Oliver the Order Processor has two options:

    1. View a list of all orders that require fulfillment at /admin/ecommerce/orders/fulfillment

      Oliver can then choose `fulfill' to view the items that require shipping. Oliver collects as many of the items as are available, and then checks them off as shipped. If there is a FedEx or UPS tracking number, he enters that too, along with the shipping details. He views the items he has just marked as shipped, and then confirms the shipment.

    2. Check the list of items required to fulfill all outstanding orders

      If Oliver is going to fetch one copy of `Philip and Alex's Guide to Web Publishing', he might as well fetch as many as are required for all outstanding orders. He checks the quantity that are currently required at /admin/ecommerce/orders/fulfillment-items-needed and collects the correct amount.

  • Issuing gift certificates

    Carl Customer Service Rep may want to occasionally issue gift certificates to valuable customers. He can do this by going to /admin/ecommerce/customer-service/gift-certificates. (The customer relations management module is designed to help select the most valuable customers on a web site, based on custom value metrics that the administrator defines).

Customers

Calvin the customer wants to buy stuff, so he drops by Adena's new ecommerce site. What are his options?

  • Browse a category

    Calvin can select a category from the homepage, or a subcategory from another category page. The items in the category are listed all one page. Calvin can click on one of the products to find out more about it (see view information about one product).

  • Search for a particular product

    The footer of the site page always contains a search box. Calvin can pick a category from the drop down list next to it, and enter a keyword. If he hits `Go', he'll get a list of search results returned to him.

  • View information about one product

    Clicking on the name of a product from a product recommendation list, the shopping cart, or a category page will show Calvin details about one products, including its price, attributes, professional reviews and customer reviews. He can choose `Add to Cart' from this page to add the product to his list of shopping cart items.

  • View the shopping cart

    Calvin can choose to view his shopping cart at any time by clicking on `Shopping Cart', either at the top of the page, or in the footer.

    The shopping cart view shows him a list of the items that he has ear-marked for purchase. Calvin can see:

    • The name of the item
    • The options he has selected for it (color, size, etc)
    • The quantity he would like to purchase
    • The price per item

    Next to each item in the shopping cart is the option to delete it from the list or update the quantity.

  • Make a purchase

    Calvin can make a purchase by viewing his shopping cart, and then selecting `Proceed to Checkout'.

  • View account

    From the homepage, Calvin clicks on `Your Account'. He is taken to a page where he can:

    • browse his entire order history
    • see a list of all the mailing lists he is subscribed to
    • track his shipments
    • edit his shipping addresses
    • go to his workspace in the ACS

    • Save the shopping cart

      If Calvin can't decide between pink or purple car seat covers, he can go to view his cart, choose `Save Your Cart for Later', think things over, and then log on at a later date to make his order. He has 30 days to make up his mind. In the meantime, he can make other purchases by choosing `Continue Shopping'.

    • Retrieve a saved cart

      Calvin finally gets his next pay check and returns to the site to blow it all on the fluffy purple car covers he's had his eye on. He heads over to view his cart and selects `Retrieve a Saved Cart'

    • Join a mailing list

      Calvin is developing a healthy interested in car seat covers, so he decides to join the `car seat cover' mailing list. He selects the category, and selects the `Add yourself to the car seat cover mailing list!' option.

    • Leave a mailing list

      Calvin isn't interested in fluffy car seat covers now that he owns some; he's bored of them. To unsubscribe from the list, he goes to view his account. Beside each entry in the list of mailing lists he is subscribed to is an option to `remove me'. He simply selects it and he's removed from the list.

V. Related Links

The ecommerce overview

The ecommerce design document

The original documentation for the ecommerce module before it was re-formatted:

VI.A Requirements: Data Model

  • 1.10.0 Product Information

    1.10.01 A unique identifier for each product, independent of any manufacturer identifier or SKU number.

    1.10.05 Fields for product description, long and short.

    1.10.10 Fields to display standard merchandise information: color, weight, color list, size list.

    1.10.15 A set of fields for shipping availability information.

    1.10.20 Must accommodate user defined custom product fields.

    1.10.25 Products can be kept in the database even once they are discontinued.

  • 1.20.0 Product Categorization

    1.20.01 A set of tables to allow three levels of depth in the category tree.

    1.20.05 Must accommodate products which are members of more than one category.

    1.20.10 A unique identifier for each category, subcategory and subsubcategory.

  • 1.30.0 Table Auditing

    1.30.01 Must save all problems & retain information about them even once they are marked resolved.

    1.30.05 Must log all cybercash activity with timestamps.

    1.30.10 Must store record of all activity (additions, modifications, deletions) on the following tables:

    1. Products
    2. Email templates
    3. Categories
    4. Prices
    5. User classes
    6. User class prices
    7. Product recommendations
    8. Cross-selling links
    9. Product comments
    10. Professional and customer reviews
    11. Product custom fields
    12. Shipments
    13. Administrator settings (sales tax, shipping costs)
    14. Retailers & their locations
    15. Special offers
    16. Gift certificates

    1.30.15 All data entered or modified by administrators is audited, to store:

    • Who made the changes
    • When the changes were made
    • What was modified
    • The history of all states of the data, so that nothing can be lost

  • 1.40.0 Default Values

  • 1.40.01 Default page template must exist in product templates table.

  • 1.40.05 Default email templates must exist for following events:
    • New order has been placed
    • (Partial) Order has been shipped
    • Credit card denied, order delayed
    • Received a gift certificate from someone (sent to recipient)
    • New gift certificate order
    • Failed to order a gift certificate

VI.B Requirements: Functionality

  • 5.10.0 Products

    5.10.01 Products can be assigned to categories, subcategories and subsubcategories, which are defined by the site administrator. Products can belong to as many of these categories as desired, e.g. `purple fluffy car seat covers' can belong to the `car seat covers' category, and the `purple stuff' category.

    5.10.05 Users can search through categories.

    5.10.15 Administrators can make product recommendations for each category.

    5.10.20 Administrators can upload product information into the database in bulk. Product pictures and other formatted information such as sample chapters are uploaded into the file system.

    5.10.25 Users can comment on and rate products. Site administrators can:

    • Allow all user comments to be viewed when submitted
    • Only allow comments to be viewed after they have been approved
    • Disallow all comments

    5.10.30 Administrators can add professional reviews of products.

    5.10.35 Products can be flagged so that they can't be searched for, but still available in the categories (e.g., because they are part of a set).

    5.10.40 Products can be cross-linked, either uni-directionally or bi-directionally.

    5.10.45 Products can be listed before they available for sale. It is possible to accept a pre-order for an item if it has been set to accept pre-orders before it is available.

  • 5.15.0 Pricing

    5.15.01 Products can have any of the following special prices:

    1. an introductory price
    2. a time-limited sale price
    3. a special offer price only available to users to have access to a special code

    5.15.05 Tax charges can be set by geographical region.

    5.15.10 Shipping charges are calculated as a base cost, plus either:

    • an extra charge for each individual item
    • the weight of the order

    Express deliveries can also incur an extra charge.

  • 5.20.0 Personalization

    5.20.01 Users are recognized by the site if possible.

    5.20.05 Users can be assigned a user class by themselves, in which case the administrator must approve it, or by the site administrator.

    5.20.10 Members of user classes can be given different views of the site, different prices for each product, and different product recommendations.

    5.20.15 A user's purchasing history as well as browsing history is stored. Product recommendations can be made based on both histories.

    5.20.20 Frequent buyers can be recognized and rewarded.

    5.20.25 For each product, other products that were popular among its purchases will automatically be calculated. E.g., we can see that people who bought fluffy purple car seat covers also bought purple fluffy dice.

  • 5.30.0 Ordering

    5.30.01 Items can be added to and removed from a customer's shopping cart.

    5.30.05 Shopping carts can be saved, viewed, and restored.

    5.30.10 Customers receive confirmation of their order by email.

    5.30.15 Billing and shipping addresses are saved for re-use.

    5.30.20 If the site has been configured to store credit card data, customers can re-use their credit card number.

    5.30.25 The credit card is authorized when customers confirm their order. It is billed only after the items have been shipped.

    5.30.30 An order can be partially fulfilled if only some of the items are available.

    5.30.35 Gift certificates can be issued to users.

    5.30.40 Refunds can be given if an order is wholly or partially returned.

    5.30.45 Customers' entire order histories are stored.

    5.30.50 Customers can purchase gift certificates for people. A random claim check is created and sent to the recipient for collection.

    5.30.55 Gift certificates have an expiry date.

  • 5.40.0 Community

    5.40.01 Users can sign up for mailing lists based on the product categories they are interested in.

    5.40.05 The module can offer a complete portrait of the customer based on their interaction with the rest of the ArsDigita Community System. E.g., their forum postings and classified adverts can be used to determine what kind of products they may be interested in.

  • 5.50.0 Problems

    5.50.01 Problems with conflicts involving:

    • marking transactions
    • authorizing payments through CyberCash
    • re-instating or claiming gift certificates
    • adding items to a shopping cart
    • refunding transactions
    are logged in order to allow the administrators to view them and deal with them.

    5.50.05 Problems can be marked `resolved'.

VI.C Requirements: User Interface

  • 10.10.0 Placing product orders

    10.10.01 Customers can select items to put into their shopping cart and then go to their cart when they want to "check out". The shopping cart is editable.

    10.10.10 Customers can track their packages once they have been shipped.

    10.10.15 Customers can view a list of the contents of their shopping cart, with details about the names of the items, the quantity of the items in the cart, the attributes they have select (color, etc) and the price.

    10.10.20 Customers confirm their order before it is placed.

    10.10.25 Customers preview their product reviews before they are submitted.

  • 10.20.0 Product presentation

    10.20.01 Individual products can be associated with a product template that determines the look and feel of the page.

    10.20.05 Categories can have a `default product template' associated with them.

    10.20.10 Designers can write new product templates without having to code any Tcl or write SQL.

  • 10.30.0 Customer Accounts

    10.30.01 The customer can view their entire order history on one page.

    10.30.05 Customers can view the list of mailing lists they are subscribed to on their account page.

    10.30.05 Customers can remove themselves from any mailing list just by clicking options next to each mailing list in the list on their account page.

  • 10.40.0 Administering the site

    10.40.01 Administrators can browse lists of categories, subcategories and subsubcategories. They can add / remove categories and change the order in which categories appear on the site.

    10.40.05 Products can be uploaded in bulk by visiting a page that contains uploading utilities, which offer explicit instructions on pre-requisites and proper usage.

    10.40.10 Administrators can view all user comments which are not approved, and by clicking on the option next to them, choose to approve them.

    10.40.15 Forms should exist for submitting professional product reviews.

    10.40.20 Administrators can choose to add a cross-link to any product.

    10.40.25 An index page should exist with links to all administrative areas of the site. Summary statistics of important facts (such as unapproved reviews, unresolved problems) should be presented by the links.

VI.D Requirements: Security

  • 15.10.0 Credit Card Information

    10.10.01Unless the administrator has chosen to permanently store credit card numbers, they should only be stored until a customer's order has been fulfilled.

VII. Revision History

Document Revision # Action Taken, Notes When? By Whom?
0.1 Creation, based on
/arsdigita/doc/ecommerce
/arsdigita/doc/ecommerce-for-mbas
/arsdigita/doc/ecommerce-setup
/arsdigita/doc/ecommerce-features
/arsdigita/doc/ecommerce-technical
10/06/2000 Sarah Ewen
0.2 Refined some points, took Audrey McLoghlin's review into account 10/13/2000 Sarah Ewen
0.3 Reviewed document in light of Eve Andersson's comments. 10/15/2000 Sarah Ewen


acs-docs@arsdigita.com
spacer