Analysis of Online Shopping Cart Solutions
-
Upload
mounicasrunga -
Category
Documents
-
view
226 -
download
0
Transcript of Analysis of Online Shopping Cart Solutions
-
8/11/2019 Analysis of Online Shopping Cart Solutions
1/23
UNIVERSITY OF WATERLOO
Software Engineering
Analysis of Online Shopping Cart Solutions for Small RetailBusinesses
Pressure Equipment Limited
London, Ontario
prepared by
Yuguang ZhangStudent ID: 20311196
Userid: y279zhan1B Software Engineering
September 13, 2009
-
8/11/2019 Analysis of Online Shopping Cart Solutions
2/23
1828 Blackwater Rd.London, ONN5X 4J4
September 13, 2009
Charles Stross, DirectorSoftware EngineeringUniversity of WaterlooWaterloo, ON N2L 3G1
Dear Sir,
I have prepared the enclosed report Analysis of Online Shopping Cart Solutions for SmallRetail Businesses as my 1B Work Report for academic credit following my work-term atPelco Systems. This is my first work report.
Pelco Systems is one of the leading suppliers of car wash station parts in Canada. Ithas a comprehensive catalog concerning all things related to car wash. Pelco is a Canadiancompany 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 theresponsibility of testing and implementing the shopping solution. The shopping cart softwareI 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 businessesdecide which online shopping cart software to use. The report compares two shopping cartoptions based on their customizability and extensibility as well as hosting requirements.
I would like to thank Thomas Dimson for developing the LATEX class used to typeset thisreport. I hereby confirm that I have received no further help other than what is mentionedabove in writing this report. I also confirm that this report has not been previously submittedfor academic credit at this or any other academic institution.
Sincerely,
Yuguang Zhang
-
8/11/2019 Analysis of Online Shopping Cart Solutions
3/23
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 first 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 offers 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
-
8/11/2019 Analysis of Online Shopping Cart Solutions
4/23
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/11/2019 Analysis of Online Shopping Cart Solutions
5/23
-
8/11/2019 Analysis of Online Shopping Cart Solutions
6/23
List of Figures
Figure 1 Zen Cart Side-Box Configuration in the Administration Panel . . . . 5
Figure 2 Satchmo Administration Panel . . . . . . . . . . . . . . . . . . . . . 9
v
-
8/11/2019 Analysis of Online Shopping Cart Solutions
7/23
-
8/11/2019 Analysis of Online Shopping Cart Solutions
8/23
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 notifications need to
be set up so that customer service is notified 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 specifically to meet the requirements of store owners and shoppers first.
However, Satchmo is intended for developers to make highly customized e-commerce sites.
[1]
2
-
8/11/2019 Analysis of Online Shopping Cart Solutions
9/23
-
8/11/2019 Analysis of Online Shopping Cart Solutions
10/23
7.2 Features
At first glance, Zen Cart satisfies 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 webhosting providers support PHP and MySQL. It comes with an administration panel where
most of the options for the store can be configured. 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 offers 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 defined 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
Notification of purchase through email
4
-
8/11/2019 Analysis of Online Shopping Cart Solutions
11/23
7.3 Ease of Customization
Ease of use often comes at the cost of control over the software. Zen Cart takes a different
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 files for a template, it first looks in the specified template direc-
tory. [2] If the file is not there, it loads the file from the default directory. Making a custom
template only requires revising a few CSS and PHP files. Files in the appropriate locations
are automatically loaded for the template. CSS files and images are organized into different
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 files to the appropriate directory.
Layout elements are divided into separate sections and can be configured 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 configured 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 effect 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 configured in the
administration panel shown in Figure 1. [4]
5
-
8/11/2019 Analysis of Online Shopping Cart Solutions
12/23
Figure 1: Zen Cart Side-Box Configuration 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 flexible 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 Notification.
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
-
8/11/2019 Analysis of Online Shopping Cart Solutions
13/23
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 file. This feature can be easily extended in many ways because the
file 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 offer free hosing with PHP and MySQL. Some offer 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 certified hosts that meet the requirements set by the team. [7]
7
-
8/11/2019 Analysis of Online Shopping Cart Solutions
14/23
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 flexible,
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 offer automated
Zen Cart script installers, Satchmo has so many dependencies it is usually installed on
privately owned servers. [8] Despite these pitfalls, Satchmo still offers all the features of
modern shopping carts.
8.2 Features
Satchmo satisfies the requirements for the project through its developer friendliness. The
Django framework offers signals as a way for developers to implement custom features. Store
customizations are made with direct modifications to template files. 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, offers all of the benefits 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
-
8/11/2019 Analysis of Online Shopping Cart Solutions
15/23
Flexible database backend
Security enhancements to prevent common attacks
Caching through database, memory, or files
Google analytics for analyzing traffic
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 files. However, Python configurations files that point to the template and
CSS flocations need to be manually modified. The majority of the text and style of Satchmo
is in template and CSS files. The Satchmo project provides documentation on the purpose
and location of its template files. [9] Template files 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 file. The templating language works by having Python interpret tags
in HTML files 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 define
custom modules. The modules can be configured in the administration panel as Figure
9
-
8/11/2019 Analysis of Online Shopping Cart Solutions
16/23
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
flexibility in configuring shipping estimates. It supports using dimension and weight in
shipping calculations, although weight can be omitted. [13] Also, Satchmo comes with aPayPal Instant Payment Notification 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
different 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, notification of purchase through email can be
implemented with a signal that indicates a completed order.
10
-
8/11/2019 Analysis of Online Shopping Cart Solutions
17/23
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] Djangois 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
-
8/11/2019 Analysis of Online Shopping Cart Solutions
18/23
-
8/11/2019 Analysis of Online Shopping Cart Solutions
19/23
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
-
8/11/2019 Analysis of Online Shopping Cart Solutions
20/23
References
[1] C. Moffitt,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 Certified Hosting, http://www.zen-cart.com/index.php?main_
page=infopages&pages_id=10 (current August 2009).
[8] C. Moffitt,Installation, http://www.satchmoproject.com/docs/svn/new_
installation.html (current August 2009).
[9] C. Moffitt,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
-
8/11/2019 Analysis of Online Shopping Cart Solutions
21/23
[12] C. Moffitt,Custom Payment Modules, http://www.satchmoproject.com/docs/svn/
custom-payment.html(current August 2009).
[13] C. Moffitt,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
-
8/11/2019 Analysis of Online Shopping Cart Solutions
22/23
-
8/11/2019 Analysis of Online Shopping Cart Solutions
23/23