Analysis of Online Shopping Cart Solutions

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 23

UNIVERSITY OF WATERLOO

Software Engineering
Analysis of Online Shopping Cart Solutions for Small Retail
Businesses
Pressure Equipment Limited
London, Ontario
prepared by
Yuguang Zhang
Student ID: 20311196
Userid: y279zhan
1B Software Engineering
September 13, 2009
1828 Blackwater Rd.
London, ON
N5X 4J4
September 13, 2009
Charles Stross, Director
Software Engineering
University of Waterloo
Waterloo, ON N2L 3G1
Dear Sir,
I have prepared the enclosed report Analysis of Online Shopping Cart Solutions for Small
Retail Businesses as my 1B Work Report for academic credit following my work-term at
Pelco Systems. This is my rst work report.
Pelco Systems is one of the leading suppliers of car wash station parts in Canada. It
has a comprehensive catalog concerning all things related to car wash. Pelco is a Canadian
company and has been in business for over 40 years.
During my work-term at Pelco, my major task was to design an online shopping solution.
I worked independently as a web developer on the online shopping project and had the
responsibility of testing and implementing the shopping solution. The shopping cart software
I decided to use played a role in the success of the project.
The purpose of this report is to help web developers working for small retail businesses
decide which online shopping cart software to use. The report compares two shopping cart
options based on their customizability and extensibility as well as hosting requirements.
I would like to thank Thomas Dimson for developing the L
A
T
E
X class used to typeset this
report. I hereby conrm that I have received no further help other than what is mentioned
above in writing this report. I also conrm that this report has not been previously submitted
for academic credit at this or any other academic institution.
Sincerely,
Yuguang Zhang
Executive Summary
This report will help web developers at small retail businesses make the decision on the
shopping cart software for an online store. Pelco will have a clear idea of what shopping
cart software is best suited to the needs of the company. Two open-source solutions that
are able to meet the requirements are Zen Cart and Django. The recommendations in this
report can be applied to any small business that wishes to have an online store, though the
report focuses on the requirements for Pelco.
The two shopping cart systems are evaluated by ease of customization, extensibility, and
hosting requirements. The rst section analyzes Zen Cart in terms of features, customizabil-
ity, extensibility, and hosting requirements. The next section does the same for Satchmo. It
is followed by the conclusions and recommendations based on the analysis.
Both Zen Cart and Satchmo are able to satisfy all of the project requirements. Satchmo
requires more programming knowledge than Zen Cart. However, Zen Cart oers fewer op-
tions for customization. Zen Cart distances itself from Satchmo in that its hosting require-
ments are easily met. Moreover, Zen Cart provides added extensibility through software
contributions made by its users.
This report recommends Zen Cart for online shopping cart development and to host
information about the company. This will allow fast progress during development and ensure
the needs of the customer are met.
ii
Table of Contents
Executive Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ii
Table of Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii
List of Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v
1.0 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2.0 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
3.0 Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
4.0 Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
5.0 Audience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
6.0 Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
7.0 Zen Cart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
7.2 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
7.3 Ease of Customization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
7.4 Extensibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
7.5 Hosting Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
8.0 Satchmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
8.2 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
8.3 Ease of Customization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
8.4 Extensibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
iii
8.5 Hosting Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
9.0 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
10.0Recommendations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Appendix A: Shopping Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
iv
List of Figures
Figure 1 Zen Cart Side-Box Conguration in the Administration Panel . . . . 5
Figure 2 Satchmo Administration Panel . . . . . . . . . . . . . . . . . . . . . 9
v
1.0 Introduction
Pelco Systems is one of the leading suppliers of car wash station parts in Canada. It has a
comprehensive catalog concerning all things related to car wash and has been in business for
over 40 years. Because of its reliance on retail, Pelco must ensure that customers are oered
convenient and friendly service. This report aims to identify the shopping cart software that
is best suited for hosting Pelcos online services.
2.0 Background
A shopping cart management system allows customers to navigate the online store and pur-
chase products. In addition, it allows the store owner to view and manage orders. Contrary
to what many small business owners think, developing an online shopping cart does not
require large sums of money. Completely free shopping carts management systems are avail-
able. These shopping cart systems generally come with a searchable database of products,
customer accounts, and Paypal as a payment method.
3.0 Purpose
Due to the dierences between shopping cart systems, it is necessary to evaluate their suit-
ability. First, the shopping cart software needs to be easily customizable to cater to regular
Pelco customers. Because Pelco is a retailer for car wash station products, the store look
and feel should reect the business. It should allow modication of key visual elements of
the store, such as text and buttons, with minimum changes to core code. The online store
should support estimation of shipping costs through UPS to make instant payment with Pay-
Pal possible. UPS is the most commonly used method for shipping within the company. The
1
shopping cart should have a minimum order amount required to go through the checkout,
as processing each order incurs costs.
Second, the shopping cart must integrate with the existing MS Access database that
stores customer and product information. The data necessary for an online shopping cart
includes product price, product number, and stocking. Stocking needs to be accurate to
ensure products that are out of stock are not available for sale. Email notications need to
be set up so that customer service is notied when an order is made. Ideally, the Access
database and the website database backend is synchronized, so that the website stays updated
and new customers are registered in the Access database.
Third, the shopping cart must have a suitable hosting solution. Web hosting for the
shopping cart should be cheap and come with a database for storing catalog information.
Because the initial phases of the project are experimental, there should be no cost for setting
up and testing installations of the shopping cart. After the development ends, the hosting
fees should be recoverable with purchases from the website.
4.0 Scope
This report will include qualitative analysis of two shopping cart systems, Zen Cart and
Satchmo. Both are selected because they can be extended to meet project requirements.
Additionally, they represent two extreme ends of philosophy in developing software. Zen
Cart is designed specically to meet the requirements of store owners and shoppers rst.
However, Satchmo is intended for developers to make highly customized e-commerce sites.
[1]
2
5.0 Audience
The reader is expected to have knowledge of the typical shopping ow, as this is essential to
understanding the various functions of shopping cart components. The typical set of activi-
ties that customers perform include logging in, providing payment and delivery information,
and conrming the order. More detail about this process can be found in Appendix A.
6.0 Outline
The dierent sections in this report cover the qualitative analysis of Zen Cart and Satchmo.
The rst section analyzes Zen Cart with respect to features, ease of customization, exten-
sibility, and hosting requirements. The second section analyzes Satchmo in the same way.
The nal sections of the report cover the conclusion and recommendations.
7.0 Zen Cart
7.1 Introduction
Zen Cart is shopping cart software written in PHP and requires a MySQL database to work.
It allows business owners to create an e-commerce store for selling goods and services. Zen
Cart is exible and can sell both physical and digital goods. It provides an administration
backend as well as a frontend for shoppers. It is designed so that navigation and checkout
is easy for customers. [2] Zen Cart is distributed under the GNU General Public License. It
comes completely free with many advanced features.
3
7.2 Features
At rst glance, Zen Cart satises all of the requirements for the project except for the ability
to mass import data from Access. Zen Cart is easy to set up on a server because most web
hosting providers support PHP and MySQL. It comes with an administration panel where
most of the options for the store can be congured. The visual elements of the store can be
customized with the templating system and within the administration panel. Due to Zen
Carts extensibility, the ability to mass import data from Access was easily implemented
using an add-on contributed by other Zen Cart users. Additional programming made the
synchronization of data between Access and the website catalog possible.
Zen Cart comes with many features due to input from its large user base and active
forum. A list of useful features that Zen Cart oers is shown below. [2]
Installation through web browser that only requires a server with PHP and MySQL
Simple three-step checkout process designed to reduce shopping cart abandonment
Credit Card, Check Orders, Cash-On-Delivery, and PayPal are available as payment
options
Taxes can be dened based on the province and country
UPS shipping is available as a module
Invoices and delivery orders can be generated at the click of a button
Tax calculations for the order total can be split into GST and PST to comply with
Provincial regulations
Notication of purchase through email
4
7.3 Ease of Customization
Ease of use often comes at the cost of control over the software. Zen Cart takes a dierent
approach. Programming knowledge is optional when making basic customization. For ad-
vanced customization, Zen Cart uses a modular template system with override directories.
When Zen Cart loads the les for a template, it rst looks in the specied template direc-
tory. [2] If the le is not there, it loads the le from the default directory. Making a custom
template only requires revising a few CSS and PHP les. Files in the appropriate locations
are automatically loaded for the template. CSS les and images are organized into dierent
folders so that the look of the store is easy to control. Moreover, Zen Cart has many freely
available templates contributed by its users. [3] Installing a template package is as simple
as copying the les to the appropriate directory.
Layout elements are divided into separate sections and can be congured through the
administration panel without programming knowledge. The layout elements used by Zen
Cart include the header, footer, and side-boxes. The header shows the company logo and
sales message. It also provides navigation links for log in, check out, and product categories.
The footer bar contains the hyperlink to the homepage and a copyright message from Zen
Cart. It can be congured to show the IP address of a site visitor and performance statistics.
Performance statistics such as page parse time, number of queries, and query time are useful
as a reference point for determining the eect of performance tuning. Finally, rectangular
blocks called side-boxes appear on the left and right columns on the storefront. The display
properties of individual side-boxes along with the footer and header can be congured in the
administration panel shown in Figure 1. [4]
5
Figure 1: Zen Cart Side-Box Conguration in the Administration Panel
7.4 Extensibility
Zen Cart provides various shipping and payment methods for store owners. Each shipping
and payment module that is enabled appear as an option in the delivery information screen
of the checkout process. Because Pelco uses UPS Standard for most of its shipping, we
decided to use the UPS shipping module for Zen Cart. Zen Cart includes a UPS shipping
module that fetches shipping charges from UPS. Delivery information is submitted to UPS
where the charges are calculated in real-time. The stock UPS module is not exible enough
to support shipping estimates outside of the US. However, due to Zen Carts extensibility, a
third party module called UPS XML is available and can be used worldwide. [5] Zen Cart
also has several payment options. We decided that the shopping cart should at least provide
the existing payment methods. The methods already in use are manual processing of credit
cards through a point of sale terminal and money or check order. Zen Cart supports all of
these methods as well as other popular options such as PayPal Instant Payment Notication.
Although Zen Cart is already very powerful, it also has add-ons contributed by volunteers.
Zen Cart has a minimum order amount add-on which sets a minimum value for the shopping
6
cart total. If the value is not reached, the customer cannot proceed to checkout. Due to
the large number businesses owners who use Zen Cart, mass import of product information
through Excel is supported through an add-on. The entire online catalog including informa-
tion about products such as weight, quantity, and category, can be edited in a spreadsheet
and uploaded as a text le. This feature can be easily extended in many ways because the
le format for inserting the data into the database is tab delimited. Since proper update of
stock levels and prices play an important role in business, an automated way to synchronize
data between the website and the local database is required. This add-on provides the means
for daily update of stocking and prices. The tab delimited format used for upload can both
be created by a script and edited in Excel.
7.5 Hosting Requirements
Zen Cart installation is expedient. Zen Cart only requires PHP and MySQL. Many web
hosting companies oer free hosing with PHP and MySQL. Some oer automated installation
of Zen Cart. Nevertheless, he Zen Cart team recommends a manual install so that installation
options are not overlooked. [6] Zen Cart meets the no start-up cost requirement, although
advanced features still require paid hosting. Paypal Express checkout and UPS XML both
require a secure connection for communication. Free hosting services often do not support
SSL, which is required for secure communication. Paid hosting not only provides better
support for shopping cart applications, it also gives the customer increased security with
SSL. Zen Cart has a list of certied hosts that meet the requirements set by the team. [7]
7
8.0 Satchmo
8.1 Introduction
Satchmo is shopping cart software written in Python and uses the Django web framework.
The project team decided on Python as the programming language because it is more exible,
has better support for object oriented programming, and has a simpler syntax than PHP.
Consequently, Python and Django are the two requirements that make Satchmo the less
popular choice compared to Zen Cart. While many web hosting services oer automated
Zen Cart script installers, Satchmo has so many dependencies it is usually installed on
privately owned servers. [8] Despite these pitfalls, Satchmo still oers all the features of
modern shopping carts.
8.2 Features
Satchmo satises the requirements for the project through its developer friendliness. The
Django framework oers signals as a way for developers to implement custom features. Store
customizations are made with direct modications to template les. Django has a templating
language for modifying visual elements of the store. Minimum changes can be made to core
code using the templating system.
Satchmo, being built on the Django framework, oers all of the benets of Django in-
cluding:
Flexible administration interface that is generated depending on the modules installed
Powerful text-based templating language [9]
Translation in several languages for global commerce
8
Flexible database backend
Security enhancements to prevent common attacks
Caching through database, memory, or les
Google analytics for analyzing trac
8.3 Ease of Customization
Satchmo requires knowledge of Python in order to make customizations. Satchmo supports
template override directories and allows customizations through changing the directories of
template and CSS les. However, Python congurations les that point to the template and
CSS ocations need to be manually modied. The majority of the text and style of Satchmo
is in template and CSS les. The Satchmo project provides documentation on the purpose
and location of its template les. [9] Template les are written in the Django templating
language, which adds tags for Python to interpret. [10] Django tags are able to reduce
repetitive HTML code. They can replace the document type declaration and HTML tags.
Besides reducing typos, it also allows the programmer to make changes in multiple web pages
by changing a single le. The templating language works by having Python interpret tags
in HTML les that can be reused. [11] The Django templating language provides a scalable
way of changing the look of the website. As a result, making changes to site appearance only
involves editing a small number of lines in Python. Time spent on customization is greatly
reduced.
8.4 Extensibility
Satchmo comes with default shipping and payment modules as well as a way to dene
custom modules. The modules can be congured in the administration panel as Figure
9
Figure 2: Satchmo Administration Panel
2 shows. The Satchmo documentation describes the steps to create a custom payment
module. [12] Many elements of available modules can be reused when creating a custom
module. Satchmo comes with many shipping options including UPS XML, which allows
exibility in conguring shipping estimates. It supports using dimension and weight in
shipping calculations, although weight can be omitted. [13] Also, Satchmo comes with a
PayPal Instant Payment Notication module that can integrate into other parts of the store.
[14]
Although Satchmo lacks third-party add-ons, it can be extended without modifying the
code. Satchmo does this through signals. Signals allow communication to take place between
dierent parts of the online store. [15] According to the Django Signals Documentation, In
a nutshell, signals allow certain senders to notify a set of receivers that some action has
taken place. [16] Satchmo signals can easily be extended to write a custom module for the
minimum order amount. The store can use a signal to check the total amount ordered each
time an item is added to the cart. Likewise, notication of purchase through email can be
implemented with a signal that indicates a completed order.
10
8.5 Hosting Requirements
Installing Satchmo requires a working knowledge of Unix and a dedicated server. Satchmo is
built on the Django framework and requires Django to be installed on the server. [8] Django
is written in Python and requires the Python interpreter to be embedded in the Apache web
server process. The module for embedding Python is more powerful than the module for
PHP and can interfere with other websites hosted with the same Apache process. [17] As
a result, Django is mostly installed on dedicated hosts. [18] Likewise, because Satchmo is
built on the Django framework, many Satchmo users decide to install Satchmo on their own
Linux servers. [19] Besides having Django as a requirement, Satchmo requires a few Python
libraries. Installing Satchmo is a long and arduous process, even though the documentation
provides instructions on the installation of dependencies and sample Unix shell commands.
[8]
11
9.0 Conclusions
Zen Cart and Satchmo come close in their list of features. Zen Cart oers easier shopping cart
customization. Satchmo makes a more customized shopping cart possible with programming,
since many features require programming experience. On the other hand, Zen Cart presents
its conguration options in the control panel so that programming is only used for advanced
customization. Along with its freely available add-ons, Zen Cart allows the inexperienced
programmer to easily make e-commerce websites that rival Satchmo.
Though Satchmo has many of the required features, it lacks the ability to mass import
product information. Zen Cart can be extended with add-ons to implement this feature
without modication to core code. On the other hand, Satchmo lacks third-party extensions
and requires the programmer to extend it. Even though Satchmo is built on the Django
framework, its learning curve is too steep for the developer to make use of the framework.
Minimum order amount and email notication of purchase is not possible in Satchmo without
knowledge of the Django framework and Python.
Finally, Zen Cart diers from Satchmo dier the most in terms of hosting requirements.
The requirements for Zen Cart are commonly available on web hosting servers, while Satchmo
is harder to install on a remote server. Zen Cart installation is expedient compared to the
procedure to install Satchmo.
12
10.0 Recommendations
From the analysis in this report, it is recommended that Pelco use Zen Cart for an online
shopping cart. Zen Cart allows the developer to quickly make the website usable and improve
on various parts as necessary. It is recommended for the web developer to take advantage of
Zen Cart add-ons that are freely available. It is also recommended for further improvements
to the website to be integrated with Zen Cart. In addition, it is recommended to use
paid hosting for online shopping. This will give customers a sense of security and make
development of the website smoother.
13
References
[1] C. Mott,Welcome to Satchmo, http://www.satchmoproject.com/ (current August
2009).
[2] G. K. Hoek, e-Start Your Web Store with Zen Cart. Singapore: Cucumber Media Pte
Ltd, 2007.
[3] Zen Ventures,How do I create a new Custom Template?, http://tutorials.
zen-cart.com/index.php?article=142 (current August 2009).
[4] Zen Ventures,How do I remove and/or re-arrange the sideboxes?, http://tutorials.
zen-cart.com/index.php?article=48 (current August 2009).
[5] T. Walker,osCommerce: UPS XML Rates and Services v1.0, http://www.
oscommerce.com/community/contributions,1323 (current August 2009).
[6] Zen Ventures,How Do I Install Zen Cart(tm)?, http://tutorials.zen-cart.com/
index.php?article=107 (current August 2009).
[7] Zen Ventures,Zen Certied Hosting, http://www.zen-cart.com/index.php?main_
page=infopages&pages_id=10 (current August 2009).
[8] C. Mott,Installation, http://www.satchmoproject.com/docs/svn/new_
installation.html (current August 2009).
[9] C. Mott,Satchmo Templates, http://www.satchmoproject.com/docs/svn/
templates.html (current August 2009).
[10] Django Software Foundation, The Django template language, http://docs.
djangoproject.com/en/dev/topics/templates/ (current July 2009).
[11] J. Bennett, Practical Django Projects. Apress, 2008.
14
[12] C. Mott,Custom Payment Modules, http://www.satchmoproject.com/docs/svn/
custom-payment.html (current August 2009).
[13] C. Mott,Shipping Module Activation, http://www.satchmoproject.com/docs/
svn/shipping.html (current August 2009).
[14] P. Kenjora,PayPal IPN Python Code, http://blog.awarelabs.com/2008/
paypal-ipn-python-code/ (current August 2009).
[15] B. Waycott,Satchmo Diaries: Part Two Satchmo Signals, http://thisismedium.
com/tech/satchmo-diaries-part-two-satchmo-signals/ (current August 2009).
[16] Django Software Foundation,Django Signals Documentation, http://docs.
djangoproject.com/en/dev/topics/signals/ (current August 2009).
[17] Good Web Hosting Info,Hosting for Python powered websites, http://www.
goodwebhosting.info/article.py/15 (current August 2009).
[18] Django Software Foundation,Django Friendly Web Hosts, http://code.
djangoproject.com/wiki/DjangoFriendlyWebHosts (current August 2009).
[19] B. Kroeze,Setting up Satchmo on a Debian Server, http://coderseye.com/2007/
setting-up-satchmo-on-a-debian-server.html (current August 2009).
15
Appendix A: Shopping Flow
The typical customer learns about the website through a search engine or a link from another
website. He arrives on the homepage. The homepage displays a list of products as well as
categories under which the products are organized.
The customer can nd more information on products by clicking on their images or
titles. The product detail page contains information that allows him to make a decision on
the purchase. Once he decides on a product to purchase, he will be directed to the shopping
cart page.
The shopping cart page shows the number of items purchased and the total price. It
allows the customer to change the quantity of the items in the shopping cart. This is where
the items to be purchase are nalized before the checkout process begins.
The customer must be logged in to his account before the checkout process can begin. If
an account has not been created, he needs to sign up for an account. The delivery information
page is where the customer can decide on the shipping option. UPS shipping estimates are
shown on this page. At the payment information page, the customer is given several choices
for their preferred method of payment. Possible payment options include PayPal, credit card,
and cash or check order. The order conrmation page is where customers can review the
delivery and payment information. After the customer conrms his order, he is redirected
to a page indicating successful checkout. Information about expected delivery date is shown
on this page.
16
Glossary
SSL Secure Sockets Layer: cryptographic protocols which provide secure communications
on the Internet.
HTML Hypertext Markup Language: a set of tags and rules (conforming to SGML) for
using them in developing hypertext documents.
CSS Cascading Style Sheets are declarations that describe how a document should be pre-
sented on the Web.
Python A simple, high-level interpreted language invented by Guido van Rossum in 1991.
PHP An Open Source, server-side, cross-platform, scripting language used to create dy-
namic web pages.
MySQL The most popular open source relational database management system. MySQL
is developed, distributed, and supported by MySQL AB.
E-Commerce The conducting of business communication and transactions over networks
and through computers.
17

You might also like