Book Image

Building Online Stores with osCommerce: Professional Edition

By : David Mercer
Book Image

Building Online Stores with osCommerce: Professional Edition

By: David Mercer

Overview of this book

<p>The book can be read from front to back, but each chapter is self contained so the reader can skip chapters to read those that they are interested in. Each chapter will move from basic to advanced where applicable and also relate what the administrator (reader) is doing to how this affects what the client sees on the site.</p> <p>So, for example, the customization chapter will start off with a discussion on the concept of design and how to relate this to your business. Once the reader has a clear idea of what they need to do, we look at some really simple changes such as modifying the site's language, before moving to some advanced modifications which may involve some PHP programming. At the same time the discussion will demonstrate how the changes made affect the site.</p> <p>Throughout the book, much consideration is given to the "right" way to doing things. Readers will have the great advantage that they begin, from the very start, doing things properly. This will save them a lot of time and effort in the years to come as they build on and modify their site. Utilizing best practices and sound methodologies is a great asset for beginners and experienced users alike.</p> <p>At all times, the coverage given in this book pays homage to the fact that, ultimately, the reader has a business goal in mind. To this end, the material never gets bogged down in technical issues or long discourses, but rather focuses on what is practically important for the online business and then moves on. To complement this, there are plenty of suggestions and hints as to how and where to look for further information.</p>
Table of Contents (19 chapters)
Building Online Stores with osCommerce: Professional Edition
Credits
About the Author
About the Reviewers
Foreword
Introduction
Index

Designing an E-Commerce Site


There are several design aspects that need to be dealt with before you can begin building a website. These individual pieces of the overall picture form a cycle, which, when implemented properly, provides a consistent and well-structured approach to creating a successful online business. Furthermore, with proper planning you can ensure that your online business can change and scale to suit your real-world business needs.

That's not where the story ends at all though. In fact, in some ways, designing your site never ends precisely because the process is a cycle. And like any other aspect of your business, your online enterprise needs to be maintained and developed as time goes by, with improvements and upgrades and all the stuff that goes with them.

To begin with, however, you have to isolate your business needs, and draw up a specification of your site based on your needs. The next step would be to analyze the specification and determine the best way to do it. Once you have built your site (hopefully, in the most efficient and cost effective way) you have to test it to ensure that it performs as expected and meets the requirements of the specification. No doubt, there will be lessons learned during this stage and this is where the loop of the design cycle closes. Taking what you have learned from the testing phase, it is then necessary to go back and upgrade the site.

The following diagram illustrates the design process:

Of course, there are variations on how this cycle can be implemented. Some people prefer to do a bit of work and test it before moving on. In this way, they arrive at the final solution with a fully tested and operational application. Of course, other considerations like maintaining a good version control policy come into play when there are a lot of modifications to a site. For now, it is not necessary to get bogged down in a debate on methodology. Suffice to say that osCommerce makes life simple; provided we do a good job of planning ahead and testing the final product, we should come out just fine in the end.

Let us now look at the different aspects of designing and maintaining an e-commerce website.

Isolating the Site's Requirements

One of the first things you need to think about is what exactly you want your online business to do. This might seem a little silly at first because the chances are you already know what the business should do—it must sell books or jewelry, or it must provide a consulting service. Whatever it is, isn't it obvious that the site should be built to do just that? Well, yes and no.

For example, if you want to sell books online you could go right ahead and put a picture of all your books on a web page, with their prices and descriptions underneath. This solution certainly meets the specifications we have just mentioned—the site is selling books after all. But what happens when you want to add the ability to sell e-documents, or better yet, want to automate your stock control or implement useful marketing techniques like up-selling? Trying to append these changes onto a site after it has already gone live is often troublesome because the site wasn't initially designed with these things in mind.

Accordingly, the first thing to do is decide exactly the type of functionality you require from your online business. Later on you can look at how to implement those requirements and whether there are any critical problems or issues associated with your needs; for now it's time to put pen to paper.

Note

Please be aware that we are talking specifically about the online business here. This is not the same as writing a business plan, which may deal with investments, office location, and expenses or any number of unrelated things.

Having said that, there are several places where a formal business plan and a site specification overlap. This is of course exactly as one would expect since the virtual enterprise must reflect the needs and realities of the business in the real world. If you already have a business plan, then pull that out of the drawer and look over it as it will certainly aid you in building your site.

Business-Related Needs

Like all conscientious business people, we need to ensure that we know exactly what is required of the business before we jump in. The first thing to deal with is deciding the auxiliary requirements that need to be met in order to run and maintain the site. There are quite a lot of those little things to think about here.

The following bulleted list shows a good, generic list that has been developed for the purposes of the demonstration site. Naturally, each site or business is unique, so use this list only as a guide. There may be things that are important for you, but are not listed here, and some things that are listed here may not be important to you:

  • Find an Internet service provider: There are a lot of options out there so rather than endorse one or two, it is better to give generic advice here. Make sure the provider is giving you enough hard disk space to safely run the business. Remember that you will probably have a lot of log files and a fair amount of images as well as data in your database. The provider must also use Apache and support PHP and MySQL since these are the technologies that make up osCommerce. Other than this, they should provide some form of SSL support, depending on what your needs will be. Beyond that, you should also look for fair pricing, reliability (specifically, look for percentage downtime), and ease of use as well as email facilities. Don't worry if this is slightly confusing at the moment. You only have to find a provider once you are ready to deploy your site to the Internet. Before that, you have to develop it on your own personal computer. Once that is done, you will understand your site's requirements a lot better.

  • Register a domain name: This is easily done through an Internet service provider. If you would like to know whether or not your proposed name has been registered or not, then check out http://www.whois.net/. Depending on the deal you find, you can expect to pay a fairly small amount for your domain. Remember, you might want to explore domains other than .com depending on your customers.

  • Development environment: At some stage you will need a computer to build the site. This means you need either a Windows or Linux machine with PHP, Apache, and MySQL installed. Complete installation and setup instructions for both platforms are covered in Chapter 2. You will also need a text editor to work with PHP files. If you don't have anything that will color code your PHP, then Wordpad will suffice. However, if you do want something that will make things a bit clearer (and it is recommend if you are going to get involved in this project in depth), you might want to consider investing in something like EditPlus (http://www.editplus.com) or PHPEdit (http://www.waterproof.fr/).

  • Integration: If you are already running a conventional business, then ideally the aspects of the business should work in harmony to support and augment each other. Customers should be able to approach a real live person on the other end of the Web address to handle their problems or queries—human contact is not entirely redundant. Of course, changes to the business should be reflected on the site as quickly as possible to avoid dissatisfaction. For example, closing down a department without showing those changes on the site could leave a few customers quite angry if they make orders that are not honored.

    Obviously, one of the biggest tasks is to ensure that the real life part of the business (such as goods storage, ordering, availability, logistics and delivery) reflect the promises and assertions of the site. It is no good building a wonderful site that guarantees overnight delivery, if you are using normal snail mail to deliver goods.

  • Third Parties: While this is probably not an immediate concern, at some stage you may wish to incorporate various different features that are not provided by osCommerce onto your site. In this case, you will need to learn how to deal with various other online establishments. A good example of this, for popular sites, is Google Ads, which allows a site to generate money by advertising related products in a panel.

The above points outline the main issues that surround the ownership of an e-commerce site, but don't actually impact on what the customer sees when browsing online. It is essential to understand what the site will need in order to make it a viable and useful place for people to shop. To this end, a bit of thought is needed as to what functionality to add to the site.

Site Functionality

Being diligent at this stage of the game will really pay off at a later date. A good way to decide on what exactly the site will end up doing is to build a list of tasks that it must be able to perform. Effectively, after creating a list of the various things we need, the site's architect (most probably yourself) should have a clear enough idea of the requirements to go ahead and begin working. Unfortunately, it is often hard to predict exactly what is needed by simply sitting down and writing, but a good way to start is by looking at similar sites. In other words, go to your competitors and take note of everything that is useful and desirable on their site and add this to your list.

If you get stuck or run out of ideas, it is helpful to try a thought exercise. Split yourself into two people—the first is the owner of the business who knows what the business needs are, and the second is a software architect who needs to find out what to build. Use the software architect persona to question the business owner about what has to be done. Approaching the problem from two perspectives often helps mimic real-world situations where software developers try to find out exactly what their client needs by asking probing questions before they start working on a project.

The following is a list of the requirements for developing the example site. Remember to build a list like this for your own site before moving on to the next chapter. The site should have the following features:

  • The online store must be intuitive and easy to use.

  • It should have SSL enabled for both customers making purchases and the administration for increased security.

  • It must have an original design, look, and feel, and accurately reflect the nature of the business—both practically and aesthetically.

  • It should offer shopping cart facilities.

  • It should allow users to search for products using a word search or by navigating a product category tree.

  • It should provide images and buying information for each product, as well as show reviews, if any.

  • It should show any discounts or special offers.

  • It should allow customers to create an account and have their account history tracked so that they can be made eligible for promotions and promotional discounts (perhaps based on the total amount of purchases).

  • It should provide a sophisticated shipping policy for local, national, and international purchases.

  • It should provide bulk email facilities for emailing members as well as automated confirmation and welcome emails.

  • It should have cross-selling and up-selling facilities.

  • It should be optimized for search engines to increase the business's profile on the net.

  • It should possess advertising facilities for increased revenue. For example, banner advertisements and Google AdWords.

  • It should follow good practices throughout like disaster recover/database backups, effective error reporting, high security, and ease of use.

Notice that some of the above bullet points are pretty vague, while others are quite specific. The reason for this is that if we were to list absolutely everything the site needs, we would spend too much time actually building the list instead of the site. Instead, we use sentences like "The online store must be intuitive and easy to use" to demonstrate that each and every aspect of the site's front end (or interface—the part that the client sees) should not be ambiguous in its meaning or use.

Other criteria are more specific, like "It should allow users to search for products using a word search or by navigating a product category tree", which really states that whatever we do, we need to build in a navigable tree structure for the products, as well as provide a text box that users can use to input text (for example, a book's name) to run against the product database.

Incidentally, no mention of the actual architecture of the site has been made in the above specification. Under normal circumstances, a huge chunk of time would be devoted to designing the business logic (the code that drives the website) and the database (the part of the application that retains all the information needed to keep things running). In our case though, all of this is taken off our hands by osCommerce, so we are free to think about what to put on the site instead of having to worry about how to actually make the site.

With the specification in hand, we have taken a large step towards the goal that we laid out earlier.

Analyzing the Proposed Solution

Now that we have the specification in hand, we know what we need. It is time to look at how to deliver it. Off the top of your head, it may seem as if one simply sits down and goes through the list point by point until everything has been checked off. From one perspective this is absolutely fine and certainly at some stage everything should be ticked off the list. But, if we look a little closer, the picture begins to get a bit fuzzy because we really need to go back over all the points listed and find out what is involved in getting each one done. Knowing what lies ahead is the best way to handle problems preemptively!

There are three main areas of concern that we need to deal with.

Feasibility

Having a wish-list is a great way to decide on what you want, but that doesn't mean it is feasible. In order to be feasible, the criteria should not involve an inordinate amount of effort relative to the benefits it will return. For example, if the site specification calls for a feature that requires a hundred hours of programming, then it is probably not in your interests to waste that time doing it, if it is not going to affect your revenue in any way. It may be better to look for a cheap and elegant alternative. One of the old programming mantras, "There's more than one way to do it!" holds true here.

Phone a Friend?

Look at your requirements very carefully. Are you sure you can actually provide everything that is required? If not, spend some time looking over this book, the osCommerce site at http://www.oscommerce.info/docs/english/, and the osCommerce knowledge base at http://www.oscommerce.info/, and forums at http://forums.oscommerce.com/ to see if you can learn anything new. If you are absolutely stuck, then get on the forums and lists and ask for help. One of the great things about osCommerce is that it is what is known as a community-driven project, which roughly translates into, "There are generally people around who are happy to help". Bear in mind that this is not a one-way relationship, and once you have some experience and knowledge to share, there are always people who are grateful for a helping hand.

Critical Versus Desirable Criteria

In order to determine the priority of tasks, it is a good idea to divide all your requirements into two categories—those that are fundamentally necessary to the success of your online business, such as finding a service provider, and those which are not, such as deciding on whether to make your hyperlink color dark blue or light blue. There are a couple of reasons for this. First off, doing this will help you allocate time and resources to certain tasks while putting others on a backburner. Secondly, and as bad as it sounds, at some stage you might find yourself in a situation where you are running out of time, or simply never really had enough time to finish everything. In both these cases, it is important to know what has to be finished and what can perhaps be left out or left for another day.