Three e-commerce webshops tested

Good Business

© Lead Image © David Dieschburg, photocase.com

© Lead Image © David Dieschburg, photocase.com

Author(s): , Author(s):

If you're looking to start your own web store, you don't need to spend thousands of dollars on software. We test three affordable e-commerce platforms.

Users wanting to run their own store on the Internet do not need to invest huge sums in software and hardware. An online store can be affordable even for small businesses or sole proprietors. One solution for non-techs is to sell their goods through auction sites or marketplaces and pay a fee to the service provider.

Alternatively, web hosting providers offer ready-made shop systems to their customers, allowing them to point and click through the process of compiling a small warehouse. This solution usually entails paying a monthly or multi-digit fixed fee. Many content management systems also contain corresponding webshop modules.

Running a store on your own LAMP server can help you both save costs and retain control. For this article, we tested ready-made shop systems, including two free, open source tools, OpenCart and Satchmo, and the commercial, proprietary LemonStand. The test environment was a RHEL-based Amazon Linux AMI (2013.03).

Among other things, we wanted to show how complex the installation and setup would be on your own server, whether the candidates support user roles (e.g., for changes to the product range and descriptions), how intuitive the stores are for buyers, whether cooperation with CRM systems is possible, and what payment interfaces the e-commerce platforms provide. To simulate a real store, the testers used the same set of sample files and products.

OpenCart

The first candidate was developed by OpenCart Limited of Hong Kong. OpenCart [1] is released under the GPLv3 and is free in the basic version, although users must pay for some extensions and themes [2]. The store software requires a web server (preferably Apache), PHP 5.2 or newer, MySQL, and cURL. We looked at version 1.5.6, which additionally required two PHP extensions, GD and Mycrypt, on the test system.

Stockpiling

After unpacking the ZIP file, you need to copy the contents of upload to any directory below the document root. You also need to create a new MySQL database and user in the shell or the GUI. Installation continues via the web interface. After you accept the license agreement, the installation script checks to see whether all dependencies are fulfilled and other PHP files and directories have the correct access rights. Next, you rename the config-dist.conf file to config.conf and admin/config-dist.conf to admin/config.conf.

In the browser, you then enter the database information in a form and create an initial account for the store administrator. Finally, you remove the install directory from the server.

To access the OpenCart admin area, append admin to the URL. After logging in, the dashboard comes up with an overview and statistics for visitors and purchases. Your first port of call on the freshly installed store is the System menu and then to Settings or Localisation, where you can set up general details of the shop and the proprietor, including the address, language, currency, and units of weights and measures. All told, this process does involve a huge amount of clicking, even though OpenCart does support granular tuning.

A visit to Settings | Users is mandatory. OpenCart supports users and groups, which you can use to define in a very precise way which employees have access to what areas and whether they are allowed to make changes (Figure 1). Thus, a warehouse employee will see the shipping information, someone in sales will be able to maintain the product catalog but not the customer data, and an employee in the Accounts group could access customers, sales, and tax information but could not modify the products offered.

Figure 1: The OpenCart admin adds employees to a group. The group settings define the access and modification rights of a user.

The store system manages customers in Sales | Customers. The Customer Groups section contains the general settings for the shopper accounts. The administrator can, for example, stipulate that new registrations are approved manually.

Window Dressing

Our testing revealed some important omissions, such as an option for importing customer lists. Likewise, the basic version of OpenCart lacks import and export functions for product catalogs. A search on the Extensions page [2] brings to light a number of plugins that extend the shop, adding import and export features – either for free or for a small or large amount money. Without add-ons, OpenCart can at least produce a SQL dump with all settings and text content via System | Backup/Restore, but you need to back up images and other media manually. A click on Restore opens a selection dialog that lets the user upload data backups in SQL format.

More than 2,300 themes are available on the Extensions page for your store's window dressing. Many looks are free, and others cost between US$ 15 and 90. More offerings for OpenCart are available from independent marketplaces on the Internet. To create a new template for the shop, download the archive, unzip it, and save the content to the catalog/view/theme directory on the web server. The look is activated via the admin panel in System  | Settings. Press Edit next to the store and then select the new template in the Store area.

Besides themes, extensions also include a number of plugins for payment and shipping interfaces, RSS feeds, multilingual shops, or even blogs. Enhancements that help evaluate sales and generate practical reports for management are also available.

The administrator organizes the product range in the Catalog menu. Categories and subcategories help you set up the internal navigation of your website. The parent departments, which have a checkmark next to the Top option, appear in the main menubar on the store's home screen. OpenCart also supports properties, which allow customers to sort and filter products. In Catalog  | Options (Figure 2), you can determine what versions of a commodity are available (e.g., sizes, colors, etc.).

Figure 2: The store manager uses Catalog options to define the details of a product. Here, you also can specify how the web interface presents your goods (e.g., forms, buttons, images).

The Products section with its dozen submenus and plethora of configuration options can pose a challenge to employees. Entering names, descriptions, metatags, article numbers, tax classes, and SEO keywords is a huge amount of work. Shop owners should also allow a little time for editing images. Their dimensions must not exceed a maximum width or height of 1,000 pixels, and the files cannot be larger than 300KB.

Shopping Spree

Once the shelves are filled and the store is opened, the results are impressive. Shoppers will find a clear-cut online store, with intuitive navigation. The integrated search function is satisfactory for simple terms and finds products whose titles contain the string entered. Optionally, customers can search in subcategories and product descriptions. Operators who want to offer their potential buyers more search flexibility need to invest in a corresponding extension.

By default, OpenCart stores offer to rate products. To voice their opinions, users press Write a review in the article description, enter a name and text, choose between one and five stars, enter a captcha, and submit the whole enchilada. The shop manager releases the reviews under Catalog | Reviews. If you want to turn off the feature, you will find the function for doing so in the System | Settings | Option | Products tab.

If you want to combine OpenCart with a CRM system, you need to invest in an extension; there are two commercial interfaces to SugarCRM and Vtiger. OpenCart also implements relevant payment options [3], such as PayPal, credit card, Amazon Payment, and bank transfer in the basic installation or via modules and extensions, as well as Free Checkout (useful for free downloads) and Cash on Delivery.

Satchmo

The second test candidate is written in Python, is available under the BSD license, and uses the Django web framework [4]. Satchmo [5] requires Python 2.5 or later as well as a database that works with Django. Natively, the online store uses SQLite3, with MySQL or PostgreSQL as alternatives. The Satchmo version installed for the test (v0.9.2) requires Django 1.4. If a newer version of Django exists, you need to downgrade. Although the development instance includes its own server, the Satchmo makers recommend a web server with a Python adapter for production use (e.g., Apache and mod_wsgi [6]).

Before installing Satchmo, you need to prepare the system and install Pip, a package manager for Python modules, as well as Mercurial, the GNU Compiler Collection and the python-devel package. The project website offers detailed documentation for a quick install and a step-by-step guide. With the help of pip and the clonesatchmo.py script, this can all be done in a short time.

When prompted, the user enters the desired admin login data, then changes to the newly created store subdirectory and starts the test instance by typing:

python manage.py runserver

By default, the server listens on 127.0.0.1:8000. To accept connections from other hosts, admins define the IP address for the port, as in:

python manage.py runserver 0.0.0.0:8000

The admin panel does not exactly impress with its clarity. Because the entries are not sorted logically, but alphabetically, the most frequently accessed menu items in the daily sales grind are hidden at the bottom of the page. Administrators should plan enough time not only for the initial setup of an online store, but also for expanding and collapsing the numerous menus. If you already have experience with Django, you should proceed faster.

Unlike its competitors, Satchmo does not distinguish between employees and customers and manages all users and groups via the Auth menu item. When it comes to access rights, the software relies on optional flags, like Staff and Super User. Below this is a field in which the administrator can individually grant access to areas of the admin panel. The field also appears in the group management section, so it is possible to assign rights in a very granular way (Figure 3).

Figure 3: Satchmo is the only test candidate that does not distinguish between employees and customers and has a single point of control for access privileges and group memberships.

An import and export function for customer and employee information is again missing; however, Satchmo does have an Export Product Defs menu item on the right side of the dashboard below Admin Tools that lets you export all your product data, including images and categories, and store them in XML, JSON, and YAML formats. This backup also includes information on the numbers of individual articles available and sold. The store system imports existing backup files at the same location. Both functions are still marked as experimental in the current version.

I Got the Blues

Prefabricated themes to help vary the look are missing. If you want to decorate a Satchmo shop, you need to manipulate the HTML and CSS code directly. Calls for new looks on user forums have gone unheard thus far, and most of the stores linked to as references from the Satchmo home page are now offline and fail to provide inspiration.

As with OpenCart, a Python program sorts the products into categories and subcategories. Customers see them in a menu on the left on the store page. In the Products section, admins can also assign descriptions, options, and attributes to the articles. The Configurable Products item lets you generate variants and define different designs for certain articles (Figure 4). Just like the rest of the interface, the work involves much clicking and pointing before everything is in place.

Figure 4: The Variation Manager in Satchmo helps the administrator add different versions of the products to the online store.

The search function in this test candidate is very simple. Users type simple terms into the Search box, and the program returns the matching products and categories and evaluates the titles and descriptions. Satchmo automatically interprets two inputs as an AND operation and displays only results that match both criteria. The use of quotation marks does not change the results. Customer reviews are completely missing.

Satchmo includes several preinstalled modules for the payment interface, most of which serve the international market. Billing methods commonly used in Europe include PayPal and Google Checkout. The developers have also implemented modules for providers such as Sermepa, Cybersource.net, Trust Commerce, and others. Alternatively, Satchmo supports Cash on Delivery and coupons. Functions and add-ons for cooperation with CRM systems are missing.

LemonStand

LemonStand [7] is the second PHP-based test candidate. The tool, produced in Canada, is available under a commercial license and costs just under $US 500 after a 30-day trial period, during which no real payment processes are possible. And, that's not the only lemon users are forced to suck. Some modules and themes for extending the functionality are available for free from the LemonStand Marketplace, whereas others cost up to several hundred dollars.

The testers looked at the current version 1. Anyone interested in future developments and the progress of LemonStand 2 and its cloud version should check out the developer blog [8].

The store software requires a LAMP system: Apache 2, PHP version 5.2.5 or later, and at least MySQL 4.1, with 5 recommended. Additionally, the cURL, OpenSSL, and PHP Mcrypt libraries are required; SOAP PHP is optional. ImageMagick should also be in place; the browser needs a flash plugin to draw charts in the admin panel and upload files. The documentation forgets to mention the php-xml package, but if it is missing and the admin imports the PHP version of the free Zest theme, the whole installation fails because of unmet template engine dependencies.

Before installing, you need to create a MySQL database. Next, unzip lemonstand_installer.zip in the web server directory of your choice. You need to set the Apache configuration option All AllowOveride for the folder and enable mod_rewrite. In the browser, call the install.php script, accept the license agreement, and enter your name, the associated license keys, and database information. You can choose your own identifier for the admin area of the store; this gives you a little more peace of mind when faced with automated attacks from botnets. You can change the directory name specified during the installation at any time in the config/config.php file.

LemonStand's installation routine generates an additional password for sensitive database content, which you will want to keep in a safe place. You will need it, among other things, to access the inventory data for a new installation or if you migrate the server. The documentation does not reveal encryption details. In addition to the administrator account, you need to create another privileged account that has access to the actual store and one account for configuring the database and encryption. The daily administrative tasks are performed with the admin account.

As a final step, you can import an optional theme and sample data for the shop. After that, you need to delete the install.php file and the installer_files directory from the server. The manufacturer recommends moving the config.dat file to a directory outside of the web server root and modifying the config/config.php file accordingly.

Just like OpenCart, LemonStand welcomes the admin to a dashboard with a store overview and statistics charts. The first step of setup is to press the menu button in the left margin, which takes you to System | Settings. At first glance, the surface looks tidier than that of its competitors, but the impression is quickly put into perspective. The individual configuration steps are not always intuitive. For example, if you want to exclude a country from your delivery zone, don't bother looking for a disable switch. Instead, you simply do not choose an option in the pop-up menu that appears after pressing the Enable or disable button. User friendly is different.

Returnable?

LemonStand meticulously distinguishes between customers and employees. The system manages customers in Store | Customers and employees in System | Users. Customers have no special rights, but the system does divide them into groups, such as wholesalers or retailers (Figure 5). The store operator can define different prices or taxes for different groups of customers. CSV-based importing and exporting is also included. The administrator can easily assign or revoke privileges to colleagues. The online shop software also supports roles for the store itself, a related blog, and its own content management system.

Figure 5: LemonStand is the only system in the test to assign customers to groups and thus offer special rates for wholesalers and resellers.

Admins will find the product selection and the user guidance through the store in the dashboard below Categories and Products. Our test team liked the logical LemonStand interface best of all candidates. Products have attributes, options, and extras that can be accessed directly from tabs in the configuration dialog, rather than through extra menu items.

You can even click to assign attributes that you define yourself to other products, thus reducing the need for annoying toggling and the tendency to make careless mistakes. The product administration section also includes functions for exporting and importing the product range and orders in CSV format. LemonStand also has a backup and restore module that can handle SQL dumps and even covers associated product images and other media.

The theme offerings [9] are manageable. About half of the nearly 20 skins are available free of charge. The most expensive look with responsive web design costs just less than US$ 90. The admin manages them in the dashboard area below CMS. Other functions let you choose a look for specific clients, allowing your store to fit on smaller and larger screens.

The LemonStand search function impressed in the test, because it lets the admin influence what is searchable, such as product descriptions and even metadata. The search box accepts quoted strings and wildcards. The filter options in the product overview are also well implemented, keeping the store well defined, even with a large range of stock. The makers also include a system for customer reviews.

Multiple payment options, including PayPal (Figure 6), credit cards, and Google Checkout are integrated directly. Operators can turn to the Marketplace for modules that implement other interfaces, including the instant transfer, now widely used in Europe. A look at the collection of extensions is worthwhile in any case, with add-ons for connecting LemonStand with the Infusionsoft and OneSaas CRM systems.

Figure 6: LemonStand natively implements some interfaces for payment options. For each billing mode, you can determine which customer groups are allowed to use it.

Final Sale

There is no clear winner in this month's review. Both OpenCart and LemonStand are useful systems, each of which only lack only a few small things to make a store operator perfectly happy. OpenCart, for example, lacks a function for managing themes and extensions directly from the dashboard. This is resolved better by LemonStand. However, the LemonStand Marketplace offers significantly fewer extensions. The OpenCart community seems more active in this area.

Satchmo is not a bad system, but it turns out to be too labor intensive and messy compared with LemonStand and OpenCart. Without Django knowledge, users will not feel as comfortable with Satchmo as with the other candidates, and product presentation leaves much to be desired in as-delivered condition. With no ready-made themes available, users definitely need to budget for a graphic designer or web designer.

If you already have a website or a blog with WordPress [10], you might be able to save the trouble of setting up your own shop environment and instead rely on an extension (see the "WordPress Plugins for Online Stores" box). The installation and setup take next to no time, and you only need to maintain one system. Although this approach might be convenient for administrators, you should always remember that this kind of software monoculture will tend to be vulnerable to attacks from the outside.

WordPress Plugins for Online Stores

Easy to use, offering variable design options, and available in many languages – WordPress [10] is one of the most popular content management systems. Every day, designers and developers publish new themes and plugins; thus, a number of extensions are now available to convert WordPress sites into small to medium-sized sales platforms.

One very popular system is WooCommerce [11] by the US company WooThemes. The plugin itself is free and is quite sufficient for a simple shop. However, a variety of premium extensions are available for retrofitting special functions, such as delivery notes, invoices, and additional payment interfaces.

wpShopGermany [12] is quite widespread in Germany. It helps users operate webshops in line with German legislation, integrates well with existing themes, is multilingual, offers gateways to the typical payment modes in Germany, and helps sellers issue invoices and create vouchers. Users can test the plugin for 14 days free of charge, after which they pay between EUR 25 and 150, depending on license.

Small solutions such Tinypass [13] and Sell Media [14] are aimed primarily at users who want to sell digital content such as articles, pictures, or the like on their own WordPress site. Tinypass is free of charge but is not published under a free license; registration on the provider's site is necessary. Sell Media is licensed under the GPLv2. The plugin itself is also free of charge. Commercial extensions let users upgrade to include features such as discounts, a watermark function, and so on.