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):
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.
It is worth considering the following points:
The following is a quick whistle-stop tour of the interesting ecommerce module components, and the functionality they offer.
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.
The ecommerce module will be used by five main groups of users:
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:
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.
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.
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.
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.
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:
The template is written in AOLserver's ADP language, which is just HTML with Tcl variables (or commands) inside <% and %> 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:
Adena can define groups of users called classes, which can be used to:
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.
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:
All the utilities are available and documented at: /admin/ecommerce/products/upload-utilities
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.
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.
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.
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.
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.
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:
This includes the following activities:
Adena Administrator can update all these attributes by visiting /admin/ecommerce/products, searching for the product she wishes to update and selecting it.
Adena simply checks the list of recommended products at /admin/ecommerce/products/recommendations and updates it accordingly.
The categories that already exists at /admin/ecommerce/cat/ can be deleted, renamed, and augmented with subcategories.
It might be an idea for Adena to check out some reports periodically. These include:
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.
Oliver the Order Processor has two options:
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.
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.
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?
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).
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.
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.
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:
Next to each item in the shopping cart is the option to delete it from the list or update the quantity.
Calvin can make a purchase by viewing his shopping cart, and then selecting `Proceed to Checkout'.
From the homepage, Calvin clicks on `Your Account'. He is taken to a page where he can:
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'.
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'
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.
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.
The original documentation for the ecommerce module before it was re-formatted:
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.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.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.30.15 All data entered or modified by administrators is audited, to store:
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:
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.01 Products can have any of the following special prices:
5.15.05 Tax charges can be set by geographical region.
5.15.10 Shipping charges are calculated as a base cost, plus either:
Express deliveries can also incur an extra charge.
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.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.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.01 Problems with conflicts involving:
5.50.05 Problems can be marked `resolved'.
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.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.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.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.
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.
| 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 |