analysis of online shopping cart solutions

Upload: mounicasrunga

Post on 02-Jun-2018

226 views

Category:

Documents


0 download

TRANSCRIPT

  • 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